plainbox-0.5.3/0000775000175000017500000000000012320462103013274 5ustar zygazyga00000000000000plainbox-0.5.3/contrib/0000775000175000017500000000000012320462103014734 5ustar zygazyga00000000000000plainbox-0.5.3/contrib/policykit_auth_admin_keep/0000775000175000017500000000000012320462103022140 5ustar zygazyga00000000000000././@LongLink0000000000000000000000000000015200000000000011213 Lustar 00000000000000plainbox-0.5.3/contrib/policykit_auth_admin_keep/org.freedesktop.policykit.pkexec.run-plainbox-job.policyplainbox-0.5.3/contrib/policykit_auth_admin_keep/org.freedesktop.policykit.pkexec.run-plainbox-job.p0000664000175000017500000000217712320461715034112 0ustar zygazyga00000000000000 PlainBox https://launchpad.net/checkbox checkbox Run Job command Please enter your password. Some tests require root access to run properly. Your password will never be stored and will never be submitted with test results. no no auth_admin_keep /usr/bin/plainbox-trusted-launcher-1 TRUE plainbox-0.5.3/contrib/policykit_yes/0000775000175000017500000000000012320462103017623 5ustar zygazyga00000000000000plainbox-0.5.3/contrib/policykit_yes/org.freedesktop.policykit.pkexec.run-plainbox-job.policy0000664000175000017500000000170012320461715032624 0ustar zygazyga00000000000000 PlainBox https://launchpad.net/checkbox checkbox Run Job command yes yes yes /usr/bin/plainbox-trusted-launcher-1 TRUE plainbox-0.5.3/docs/0000775000175000017500000000000012320462103014224 5ustar zygazyga00000000000000plainbox-0.5.3/docs/changelog.rst0000664000175000017500000005514512320461715016727 0ustar zygazyga00000000000000ChangeLog ========= .. note:: This changelog contains only a summary of changes. For a more accurate accounting of development history please inspect the source history directly. .. _version_0_5: PlainBox 0.5.3 ^^^^^^^^^^^^^^ This is a maintenance release of the 0.5 series. Bug fixes --------- Bugs fixed in this release are assigned to the following milestone: * Bugfixes: https://launchpad.net/plainbox/+milestone/0.5.3 API changes ----------- * PlainBox now has an interface for transport classes. :class:`plainbox.abc.ISessionStateTransport` that differs from the old implementation of the certification transport (the only one that used to exist). The new interface has well-defined return value, error semantics and takes one more argument (session state). This change was required to implement the launchpad transport. * PlainBox now has support for pluggable build systems that supply automatic value for the build_cmd argument in manage.py's setup() call. They existing build systems are available in the :mod:`plainbox.impl.buildsystems` module. * All exporters can now make use of key=value options. * The XML exporter can now be customized to set the client name option. This is available using the standard exporter option list and is available both at API level and on command line. * The provider class can now keep track of the src/ directory and the build/bin directory, which are important for providers under development. This feature is used to run executables from the build/bin directory. * PlainBox will now load the src/EXECUTABLES file, if present, to enumerate executables built from source. This allows manage.py install to be more accurate and allows manage.py info do display executables even before they are built. PlainBox 0.5.2 ^^^^^^^^^^^^^^ This is a maintenance release of the 0.5 series. Bug fixes --------- Bugs fixed in this release are assigned to the following milestone: * Bugfixes: https://launchpad.net/checkbox/+milestone/plainbox-0.5.2 API changes ----------- * PlainBox now remembers the base directory (aka location) associated with each provider. This is available as and :attr:`plainbox.impl.secure.providers.v1.Provider1.base_dir` * The :class:`plainbox.impl.commands.checkbox.CheckBoxInvocationMixIn` gained a new required argument to pass the configuration object around. This is required to fix bug https://bugs.launchpad.net/checkbox/+bug/1298166. This API change is backwards incompatible and breaks checkbox-ng << 0.3. * PlainBox now offers the generic extensibility point for build systems for provider executables. Entry points for classes implementing the :class:`plainbox.abc.IBuildSystem` interface can be registered in the ``plainbox.buildsystems`` pkg-resources entry point. * PlainBox has a better job validation subsystem. Job validation parameters (eventually passed to :meth:`plainbox.impl.job.CheckBoxJobValidator.validate()`) can be set on the provider loader class and they will propagate across the stack. Along with more fine-tuned controls for strict validation and deprecated fields validation this offers tools better ways to discover potential problems. PlainBox 0.5.1 ^^^^^^^^^^^^^^ First working release of the 0.5 series, 0.5 was missing one critical patch and didn't work. Basically, The tag was applied on the wrong revision. PlainBox 0.5 ^^^^^^^^^^^^ New Features ------------ * PlainBox is now a better development tool for test authors. With the new 'plainbox startprovider' command it is easy to bootstrap development of third party test collections. This is further explained in the new :ref:`tutorial`. The template is described in :doc:`provider template `. * Test providers now control namespaces for job definitions, allowing test authors to freely name job definitions without any central coordination authority. See more about :doc:`provider namespaces `. * PlainBox is now fully internationalized, making it possible to translate all of the user interface. Certain extensible features such as commands and test job providers are also translatable and can be shipped by third party developers. All the translations are seamlessly enabled, even if they come from different sources. See more about :doc:`provider internationalization `. Command Line Interfaces Changes ------------------------------- * The -c | --checkbox option was removed. It used to select which "provider" to load (out of packaged providers, special source provider and special stub provider) but with the introduction of :term:`namespaces ` this option became meaningless. To support a subset of reasons why it was being used a new option was added in its place. The new --providers option can decide if plainbox will load **all** providers (default), just the special **src** provider or just the special **stub** provider. We hope that nobody will need to use this option. * The ``plainbox run -i``, ``plainbox dev analyze -i`` and similar --include-patterns options no longer works with simple job definition identifier patterns. It now requires fully qualified patterns that also include the name-space of the defining provider. In practical terms instead of ``plainbox run -i foo`` one needs to use ``plainbox run -i 2013.example.com::foo``. If one really needs to run *any* job ``foo`` from any provider that can be achieved with ``plainbox run -i '.*::foo'``. Workflow Changes ---------------- * PlainBox is now available in Debian as the ``python3-plainbox`` and ``plainbox`` packages. Several of the Checkbox project developers are maintaining packages for the core library, test providers and whole test applications. * PlainBox dropped support for Ubuntu 13.04 (Raring Rigtail), following scheduled end-of-life of that release. * PlainBox dropped support for Ubuntu 13.10 (Saucy Salamander) given the imminent release of the next version of Ubuntu. * PlainBox now supports Ubuntu 14.04 (Trusty Thar), scheduled for release on the 17th of April 2014. This implies that any patch merged into trunk is only tested on Ubuntu 12.04 (with python3.2) and Ubuntu 14.04 (with python3.3, which will switch to python 3.4 later, before the final release.) Internal Changes ---------------- General Changes ............... * PlainBox now supports Python 3.4. This includes existing support for Python 3.2 and 3.3. Effective Ubuntu coverage now spans two LTS releases. This will be maintained until the end of Ubuntu 12.04 support. New Modules ........... * PlainBox now has a dedicated module for implementing versatile command line utilities :mod:`plainbox.impl.clitools`. This module is used to implement the new :mod:`plainbox.provider_manager` which is what backs the per-provider management script. * The new :mod:`plainbox.provider_manager` module contains the implementation of the ``manage.py`` script, which is generated for each new provider. The script implements a set of subcommands for working with the provider from a developer's point of view. * The vendor package now contains a pre-release version of :mod:`~plainbox.impl.vendor.textland` - a text mode, work-in-progress, compositor for console applications. TextLand is used to implement certain screens displayed by checkbox-ng. This makes it easier to test, easier to develop (without having to rely on complex curses APIs) and more portable as the basic TextLand API (to display a buffer and provide various events) can be implemented on many platforms. API changes (Job Definitions) ............................. * PlainBox now offers two new properties for identifying (naming) job definitions, :meth:`plainbox.impl.job.JobDefinition.id` and :meth:`plainbox.impl.job.JobDefinition.partial_id`. The ``id`` property is the full, effective identifier composed of ``partial_id`` and ``provider.namespace``, with the C++ scope resulution operator, ``::`` joining both into one string. The ``partial_id`` field is loaded from the ``id`` key in RFC822-like job definition syntax and is the part without the name-space. PlainBox now uses the ``id`` everywhere where ``name`` used to be used before. If the ``id`` field (which defines ``partial_id`` is not present in a RFC822 job definition then it defaults to ``name`` making this change fully backwards compatible. * The :meth:`plainbox.impl.job.JobDefinition.name` property is now deprecated. It is still available but is has been entirely replaced by the new ``id`` and ``partial_id`` properties. It will be removed as a property in the next release of PlainBox. * PlainBox now offers the new :meth:`plainbox.impl.job.JobDefinition.summary` which is like a short, one line description of the provider. It should be used whenever a job definition needs to be listed (in user interfaces, reports, etc). It can be translated and a localized version is available as :meth:`plainbox.impl.job.JobDefinition.tr_summary()` * PlainBox now offers a localized version of a job description as :meth:`plainbox.impl.job.JobDefinition.tr_description()`. API changes (White Lists) ......................... * PlainBox now offers new and improved APIs for loading whitelists :meth:`plainbox.impl.secure.qualifiers.WhiteList.from_string()` and :meth:`plainbox.impl.secure.qualifiers.WhiteList.from_file()`. * PlainBox now tracks the origin of whitelist, knowing where they were defined in. Origin is available as :meth:`plainbox.impl.secure.qualifiers.WhiteList.origin` * PlainBox can now optionally store and use the implicit name-space of a WhiteList objects. This name space will be used to qualify all the patterns that don't use the scope resolution operator ``::``. The implicit name-space is available as :meth:`plainbox.impl.secure.qualifiers.WhiteList.implicit_namespace`. API changes (Providers) ....................... * PlainBox can validate providers, jobs and whitelists better than before. In particular, broken providers are now verbosely ignored. This is implemented as a number of additional validators on :class:`plainbox.impl.secure.providers.v1.Provider1Definition` * PlainBox can now enumerate all the executables of a provider :meth:`plainbox.abc.IProvider1.get_all_executables()` * PlainBox now offers new APIs for applications to load as much of provider content as possible, without stopping on the first encountered problem. :meth:`plainbox.impl.secure.providers.v1.Provider1.load_all_jobs()` * The ``Provider1.load_jobs()`` method has been removed. It was only used internally by the class itself. Identical functionality is now offered by :class:`plainbox.impl.secure.plugins.FsPlugInCollection` and :class:`plainbox.impl.secure.providers.v1.JobDefinitionPlugIn`. * PlainBox now associates a gettext domain with each provider. This information is available both in :attr:`plainbox.impl.secure.providers.v1.Provider1Definition.gettext_domain` and :attr:`plainbox.impl.secure.providers.v1.Provider1.gettext_domain` * PlainBox now derives a namespace from the name of the provider. The namespace is defined as the part of the provider name up to the colon. For example provider name ``2013.com.canonical.ceritifaction:resources`` defines provider namespace ``2013.com.canonical.certification``. The computed namespace is available as :meth:`plainbox.impl.secure.providers.v1.Provider1.namespace` * PlainBox now offers a localized version of the provider description string as :meth:`plainbox.impl.secure.providers.v1.Provider1.tr_description()` * PlainBox now passes the provider namespace to both whitelist and job definition loaders, thus making them fully aware of the namespace they come from. * The implementation of various directory properties on the :class:`plainbox.impl.secure.providers.v1.Provider1` class have changed. They are now explicitly configurable and are not derived from the now-gone ``location`` property. This affects :meth:`plainbox.impl.secure.providers.v1.Provider1.jobs_dir`, :meth:`plainbox.impl.secure.providers.v1.Provider1.whitelists_dir`, :meth:`plainbox.impl.secure.providers.v1.Provider1.data_dir`, :meth:`plainbox.impl.secure.providers.v1.Provider1.bin_dir`, and the new :meth:`plainbox.impl.secure.providers.v1.Provider1.locale_dir`. This change makes the runtime layout of each directory flexible and more suitable for packaging requirements of particular distributions. * PlainBox now associates an optional directory with per-provider locale data. This allows it to pass it to ``bindtextdomain()``. The locale directory is available as :meth:`plainbox.impl.secure.providers.v1.Provider1.locale_dir`. * PlainBox now offers a utility method, :meth:`plainbox.impl.secure.providers.v1.Provider1.from_definition()`, to instantiate a new provider from :class:`plainbox.impl.secure.providers.v1.Provider1Definition` * The :class:`plainbox.impl.secure.providers.v1.Provider1Definition` class now offers a set of properties that compute the implicit values of certain directories. Those all depend on a non-Unset ``location`` field. Those include: :meth:`plainbox.impl.secure.providers.v1.Provider1Definition.implicit_jobs_dir`, :meth:`plainbox.impl.secure.providers.v1.Provider1Definition.implicit_whitelists_dir`, :meth:`plainbox.impl.secure.providers.v1.Provider1Definition.implicit_data_dir`, :meth:`plainbox.impl.secure.providers.v1.Provider1Definition.implicit_bin_dir`, :meth:`plainbox.impl.secure.providers.v1.Provider1Definition.implicit_locale_dir`, and :meth:`plainbox.impl.secure.providers.v1.Provider1Definition.implicit_build_locale_dir`, * The :class:`plainbox.impl.secure.providers.v1.Provider1Definition` class now offers a set of properties that compute the effective values of certain directories: :meth:`plainbox.impl.secure.providers.v1.Provider1Definition.effective_jobs_dir`, :meth:`plainbox.impl.secure.providers.v1.Provider1Definition.effective_whitelists_dir`, :meth:`plainbox.impl.secure.providers.v1.Provider1Definition.effective_data_dir`, :meth:`plainbox.impl.secure.providers.v1.Provider1Definition.effective_bin_dir`, and :meth:`plainbox.impl.secure.providers.v1.Provider1Definition.effective_locale_dir`. * The :class:`plainbox.impl.secure.providers.v1.Provider1Definition` class now offers the :meth:`plainbox.impl.secure.providers.v1.Provider1Definition.effective_gettext_domain` property. API changes (Qualifiers) ........................ * PlainBox now has additional APIs that correctly preserve order of jobs selected by a :term:`WhiteList`, see: :func:`plainbox.impl.secure.qualifiers.select_jobs`. * PlainBox has new APIs for converting any qualifier into a list of primitive (non-divisible) qualifiers that express the same selection, :meth:`plainbox.abc.IJobQualifier.get_primitive_qualifiers()` and :meth:`plainbox.abc.IJobQualifier.is_primitive()`. * PlainBox has new APIs for qualifiers to uniformly include and exclude jobs from the selection list. This is implemented as a voting system described in the :meth:`plainbox.abc.IJobQualifier.get_vote()` method. * PlainBox has new APIs for creating almost arbitrary job qualifiers out of the :class:`plainbox.impl.secure.qualifiers.FieldQualifier` and :class:`plainbox.impl.secure.qualifiers.IMatcher` implementations such as :class:`plainbox.impl.secure.qualifiers.OperatorMatcher` or :class:`plainbox.impl.secure.qualifiers.PatternMatcher`. Older qualifiers will likely be entirely dropped and replaced by one of the subsequent releases. API changes (command line tools) -------------------------------- * :class:`plainbox.impl.clitools.ToolBase` now offers additional methods for setting up translations specific to a specific tool. This allows a library (such as PlainBox) to offer a basic tool that other libraries or applications subclass and customize, part of the tool implementation (including translations) will come from one library while the rest will come from another. This allows various strings to use different gettext domains. This is implemented in the new set of methods: :meth:`plainbox.impl.clitools.ToolBase.get_gettext_domain()` :meth:`plainbox.impl.clitools.ToolBase.get_locale_dir()` and :meth:`plainbox.impl.clitools.ToolBase.setup_i18n()` last of which is now being called by the existing :meth:`plainbox.impl.clitools.ToolBase.early_init()` method. * :class:`plainbox.impl.clitools.CommandBase` now offers additional methods for setting up sub-commands that rely on the docstring of the subcommand implementation class. Those are :meth:`plainbox.impl.clitools.CommandBase.get_command_name()` :meth:`plainbox.impl.clitools.CommandBase.get_command_help()`, :meth:`plainbox.impl.clitools.CommandBase.get_command_description()` and :meth:`plainbox.impl.clitools.CommandBase.get_command_epilog()`. Those methods return values suitable to argparse. They are all used from one high-level method :meth:`plainbox.impl.clitools.CommandBase.add_subcommand()` which is now used in the implementation of various new subcommand classes. All of those methods are aware of i18n and hide all of the associated complexity. API changes (Resources) ----------------------- * :class:`plainbox.impl.resource.ResourceExpression` now accepts, stores and users an optional implicit name-space that qualifies all resource identifiers. It is also available as :meth:`plainbox.impl.resource.ResourceExpression.implicit_namespace`. * :class:`plainbox.impl.resource.ResourceProgram` now accepts and uses an optional implicit name-space that is being forwarded to the resource expressions. API changes (Execution Controllers) ----------------------------------- * :class:`plainbox.impl.ctrl.CheckBoxExecutionController` no longer puts all of the provider-specific executables onto the PATH of the execution environment for each job definition. Now only executables from providers that have the same name-space as the job that needs to be executed are added to PATH. This brings the behavior of execution controllers in sync with all the other name-space-aware components. API changes (Other) ................... * :class:`plainbox.impl.secure.plugins.FsPlugInCollection` can now load plug-ins from files of various extensions. The ``ext`` argument can now be a list of extensions to load. * :class:`plainbox.impl.secure.plugins.FsPlugInCollection` now takes a list of directories instead of a PATH-like argument that had to be split with the platform-specific path separator. * :class:`plainbox.impl.secure.rfc822.Origin` gained the :meth:`plainbox.impl.secure.rfc822.Origin.relative_to()` method which is useful for presenting origin objects in a human-friendly form. * Implementations of :class:`plainbox.impl.secure.plugins.IPlugIn` can now raise :class:`plainbox.impl.secure.plugins.PlugInError` to prevent being added to a plug-in collection. * :class:`plainbox.impl.secure.config.Config` gained :meth:`plainbox.impl.secure.config.Config.get_parser_obj()` and :meth:`plainbox.impl.secure.config.Config.write()` which allow configuration changes to be written back to the filesystem. * :class:`plainbox.impl.secure.config.Config` now has special support for the new :class:`plainbox.impl.secure.config.NotUnsetValidator`. Unlike all other validators, it is allowed to inspect the special :data:`plainbox.impl.secure.config.Unset` value. * PlainBox now stores application identifier :meth:`plainbox.impl.session.state.SessionMetaData.app_id` which complements the existing application-specific blob property :meth:`plainbox.impl.session.state.SessionMetaData.app_blob` to allow applications to resume only the session that they have created. This feature will allow multiple plainbox-based applications to co-exist their state without clashes. * PlainBox now stores both the normalized and raw version of the data produced by the RFC822 parser. The raw form is suitable as keys to gettext. This is exposed through the RFC822 and Job Definition classes. Bug fixes --------- Bugs fixed in this release are assigned to the following milestones: * https://launchpad.net/checkbox/+milestone/plainbox-0.5a1 * https://launchpad.net/checkbox/+milestone/plainbox-0.5b1 * https://launchpad.net/checkbox/+milestone/plainbox-0.5 PlainBox 0.4 ^^^^^^^^^^^^ * Bugfixes: https://launchpad.net/checkbox/+milestone/plainbox-0.4 PlainBox 0.4 beta 2 ^^^^^^^^^^^^^^^^^^^ * Bugfixes: https://launchpad.net/checkbox/+milestone/plainbox-0.4b2 PlainBox 0.4 beta 1 ^^^^^^^^^^^^^^^^^^^ * Lots of production usage, bug fixes and improvements. Too many to list here but we shipped one commercial product on top of plainbox and it basically works. * Better internal abstractions, job runner, execution controller, session state controller, session manager, suspend and resume Helpers, on-disk format version and upgrade support. Lots of very important internal plumbing done better to improve maintainability of the code. * Switched from a model where checkbox and plainbox are tied closely together to a model where plainbox is a back-end for multiple different products and job definitions (all kinds of "test payload") is orthogonal to the interaction/work-flow/user interface. This opens up the path for a separate "test payload market" to form around plainbox where various projects can just focus on producing and maintaining tests rather than complete solutions by themselves. Such parties don't have to coordinate with anyone or manage their code inside our repository. * Generalized the trusted launcher concept to run any job wrapped inside a job provider. This allows any job, regardless where it is coming from, to run as another user securely and easily. * DBus service (present throughout the development cycle) moved to checkbox-ng as it was not mature enough. Makes plainbox easier to test by hiding the complexity in another project. Not sure if we keep the DBus interface though so this was a good move for the core itself. PlainBox 0.3 ^^^^^^^^^^^^ * Added support for all job types (manual, user-interact, user-verify, attachment, local) * Added support for running as another user * Added support for creating session checkpoints and resuming testing across reboots * Added support for exporting test results to JSON, plain text and XML * Added support for handling binary data (eg, binary attachments) * Added support for using sub-commands to the main plainbox executable * Added documentation to the project * Numerous internal re-factorings, changes and improvements. * Improved unit and integration testing coverage PlainBox 0.2 ^^^^^^^^^^^^ * Last release made from the standalone github tree. * Added support for discovering dependencies and automatic dependency resolution (for both job dependencies and resource dependencies) PlainBox 0.1 ^^^^^^^^^^^^ * Initial release plainbox-0.5.3/docs/appdev/0000775000175000017500000000000012320462103015503 5ustar zygazyga00000000000000plainbox-0.5.3/docs/appdev/index.rst0000664000175000017500000000336312320461715017361 0ustar zygazyga00000000000000====================== Application developers ====================== This chapter organizes information useful for developers working on testing systems and :term:`CheckBox` derivatives. .. warning:: This chapter is very much under development. The list of stories below is a guiding point for subsequent editions that will expand and provide real value. Personas and stories -------------------- * I'm a CheckBox, CheckBox derivative or third party developer: * What use cases should require a new application? * How should I be using PlainBox APIs? * Which parts of PlainBox APIs are stable? * How can I have *special sauce* with using PlainBox at the core? * What is covered by CheckBox * I'm a CheckBox developer. * I'm adding a new feature, should that feature go to CheckBox or PlainBox? * I'm writing a new job, should that job go to CheckBox or JobBox? * I'm a developer working on test system different from but not unlike plainbox (this is in the same chapter but should heavily link to derivative systems and application development chapter) * Why would I depend on plainbox rather than do everything I need myself? * Do I need to create a derivative or can I just create jobs for what plainbox supports? * What are the stability guarantees if I choose to build with planbox? * How can I use plainbox as a base for my automated or manual testing system? * How does an example third party test system built on top of plainbox look like? Key topics ---------- .. note:: The list here should always be based on the personas and stories section above. * Introduction to plainbox * Where is plainbox getting the jobs from? * Creating and maintaining jobs with plainbox plainbox-0.5.3/docs/_theme/0000775000175000017500000000000012320462103015465 5ustar zygazyga00000000000000plainbox-0.5.3/docs/_theme/plainbox/0000775000175000017500000000000012320462103017301 5ustar zygazyga00000000000000plainbox-0.5.3/docs/_theme/plainbox/page.html0000664000175000017500000000140012320461715021106 0ustar zygazyga00000000000000{% extends "basic/page.html" %} {% block body %} {{ body }} {%- if theme_show_disqus|tobool %}
comments powered by Disqus {%- endif %} {%- endblock %} plainbox-0.5.3/docs/_theme/plainbox/theme.conf0000664000175000017500000000006612320461715021264 0ustar zygazyga00000000000000[theme] inherit = default [options] show_disqus = '' plainbox-0.5.3/docs/dev/0000775000175000017500000000000012320462103015002 5ustar zygazyga00000000000000plainbox-0.5.3/docs/dev/resources.rst0000664000175000017500000002472112320461715017564 0ustar zygazyga00000000000000.. _resources: Resources ========= Resources are a mechanism that allows to constrain certain :term:`job` to execute only on devices with appropriate hardware or software dependencies. This mechanism allows some types of jobs to publish resource objects to an abstract namespace and to a way to evaluate a resource program to determine if a job can be started. Resources in PlainBox ===================== The following chapters explain how resources actually work in :term:`PlainBox`. Currently there *is* a subtle difference between this and the original :term:`CheckBox` implementation. Resource programs ----------------- Resource programs are multi-line statements that can be embedded in job definitions. By far, the most common use case is to check if a required package is installed, and thus, the job can use it as a part of a test. A check like this looks like this:: package.name == "fwts" This resource program codifies that the job needs the ``fwts`` package to run. There is a companion job with the same name that interrogates the local package database and publishes a set of resource objects. Each such object is a collection of arbitrary key-value pairs. The ``package`` job simply publishes the ``name`` and ``version`` of each installed package but the mechanism is generic and applies to all resources. As stated, resource programs can be multi-line, a real world example of that is presented below:: device.category == 'CDROM' optical_drive.cd == 'writable' This example is much like the one above, referring to some resources, here coming from jobs ``device`` and ``optical_drive``. What is important to point out is that, as a rule of a thumb, multi line programs have an implicit ``and`` operator between each line. This program would only evaluate to True if there is a writable CD-ROM available. Each resource program is composed of resource expressions. Each line maps directly onto one expression so the example program above uses two resource expressions. Resource expressions -------------------- Resource expressions are evaluated like normal python programs. They use all of the same syntax, semantics and behavior. None of the operators are overridden to do anything unexpected. The evaluator tries to follow the principle of least surprise but this is not always possible. Resource expressions cannot execute arbitrary python code. In general almost everything is disallowed, except as noted below: * Expressions can use any literals (strings, numbers, True, False, lists and tuples) * Expressions can use boolean operators (``and``, ``or``, ``not``) * Expressions can use all comparison operators * Expressions can use all binary and unary operators * Expressions can use the set membership operator (``in``) * Expressions can use read-only attribute access Anything else is rejected as an invalid resource expression. In addition to that, each resource expression must use exactly one variable, which must be used like an object with attributes. The name of that variable must correspond to the name of the job that generates resources. Attempts to use more than one variable or to not use any variables are detected early and rejected as invalid resource expressions. The name of the variable determines which resource group to use. It must match the name of the job that generates such resources. In the examples elsewhere in this page the ``package`` resources are generated by the ``package`` job. PlainBox uses this to know which resources to try but also to implicitly to express dependencies so that the ``package`` job does not have to be explicitly selected and marked for execution prior to the job that in fact depends on it. This is all done automatically. Evaluation ---------- Due to mandatory compatibility with existing :term:`CheckBox` jobs there are some unexpected aspects of how evaluation is performed. Those are marked as **unexpected** below: 1. First PlainBox looks at the resource program and splits it into lines. Each non-empty line is parsed and converted to a resource expression. 2. **unexpected** Each resource expression is repeatedly evaluated, once for each resource from the group determined by the variable name. All exceptions are silently ignored and treated as if the iteration had evaluated to False. The whole resource expression evaluates to ``True`` if any of the iterations evaluated to ``True``. In other words, there is an implicit ``any()`` around each resource expression, iterating over all resources. 3. **unexpected** The resource program evaluates to ``True`` only if all resource expressions evaluated to ``True``. In other words, there is an implicit ``and`` between each line. Limitations ----------- The design of resource programs has the following shortcomings. The list is non-exhaustive, it only contains issues that we came across found not to work in practice. Exactly one variable per expression ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Each resource expression must refer to exactly one variable. This is a side effect of the way the evaluator works. It basically bind one object (a particular resource) to that variable and evaluates the expression. The expression parser / syntax analyzer identifies expressions with this problem early and rejects them with an appropriate error message. Here are some examples of hypothetical expressions that exhibit this problem. "I want to have mplayer and an audio device so that I can play some sounds":: device.category == "AUDIO" and package.name == "mplayer" To work around this, split the expression to two separate expressions. The evaluator will put an implicit ``and`` between them and it will do exactly what you intended:: device.category == "AUDIO" package.name == "mplayer" "I want to always run this test":: True To work around this, simply remove the requirement program entirely! "I want to never run this test":: False To work around this remove this job from the selection. You may also use a special resource that produces one constant value, and check that it is equal to something different. Exactly one resource bound to a variable at once ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ It's not possible to refer to two different resources, from the same resource group, in one resource expression. In other terms, the variable always points to one object, it is not a collection of objects. For example, let's consider this program:: package.name == 'xorg' and package.name == 'procps' Seemingly the intent was to ensure that both ``xorg`` and ``procps`` are installed. The reason why this does not work is that at each iteration of the the expression evaluator, the name ``package`` refers to exactly one resource object. In other words, that expression is equivalent to this one:: A == True and A == False This type of error is not captured by our limited semantic analyzer. It will silently evaluate to False and inhibit the job from being stated. To work around this, split the expression to two consecutive lines. As stated in rule 3 in the list above, there is an implicit ``and`` operator between all expressions. A working example that expresses the same intent looks like this:: package.name == 'xorg' package.name == 'procps' Operator != is useless ^^^^^^^^^^^^^^^^^^^^^^ This is strange at first but quickly becomes obvious once you recall rule 2 from the list above. That rule states that the expression is evaluated repeatedly for each resource from a particular group and that any ``True`` iteration marks the whole expression as ``True``). Let's look at a real-world example:: xinput.device_class == 'XITouchClass' and xinput.touch_mode != 'dependent' So seemingly, the intent here was to have at least ``xinput`` resource with a ``device_class`` attribute equal to ``XITouchClass`` that has ``touch_mode`` attribute equal to anything but ``dependent``. Now let's assume that we have exactly two resources in the ``xinput`` group:: device_class: XITouchClass touch_mode: dependant device_class: XITouchClass touch_mode: something else Now, this expression will evaluate to ``True``, as the second resource fulfils the requirements. Is this what the test designer had expected? That's hard to say. The problem here is that this expression can be understood as *at least one resource isn't something* **or** *all resources weren't something*. Both are equally valid desires and, depending on how the test is implemented, may or many not work correctly in practice. Currently there is no workaround. We are considering adding a new syntax that would allow to specify this explicitly. The proposal is documented below as "implicit any(), explicit all()" Everything is a string ^^^^^^^^^^^^^^^^^^^^^^ Resource programs are regular python programs evaluated in unusual ways but all of the variables that are exposed through the resource object are strings. This has considerable impact on comparison, unless you are comparing to a string the comparison will always silently fail as python has dynamic but strict, not loose types (there is no implicit type conversion). To alleviate this problem several type names / conversion functions are allowed in requirement programs. Those are: * :py:class:`int`, to convert to integer numbers * :py:class:`float`, to convert to floating point numbers * :py:class:`bool`, to convert to a boolean context Considered enhancements ----------------------- We are currently considering one improvement to resource programs. This would allow us to introduce a fix that resolves some issues in a backwards compatible way. Technical aspects are not yet resolved as that extension would not be available in :term:`CheckBox` until CheckBox can be built on top of :term:`PlainBox` Implicit any(), explicit all() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This proposal changes the way resource expressions are evaluated. The implicit ``any()`` implemented as a loop over all resources from the resource group designated by variable name would be configurable. A developer may choose to wrap the whole expression in the ``all()`` function to indicate that the expression inside ``all()`` must evaluate to ``True`` for **all** iterations (all resources). This would allow solving the case where a job can only run, for example, when a certain package is **not** installed. This could be expressed as:: all(package.name != 'ubuntu-desktop') Resources in CheckBox ===================== The following chapters explain how resources originally worked in :term:`CheckBox`. Only notable differences from :term:`PlainBox` implementation are listed. plainbox-0.5.3/docs/dev/architecture.rst0000664000175000017500000000277612320461715020242 0ustar zygazyga00000000000000PlainBox Architecture ===================== This document explains the architecture of PlainBox internals. It should be always up-to-date and accurate to the extent of the scope of this overview. .. toctree:: :maxdepth: 3 trusted-launcher.rst config.rst resources.rst old.rst General design considerations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PlainBox is a reimplementation of CheckBox that replaces a reactor / event / plugin architecture with a monolithic core and tightly integrated components. The implementation models a few of the externally-visible concepts such as jobs, resources and resource programs but also has some additional design that was not present in CheckBox before. The goal of the rewrite is to provide the right model and APIs for user interfaces in order to build the kind of end-user solution that we could not build with CheckBox. This is expressed by additional functionality that is there only to provide the higher layers with the right data (failure reason, descriptions, etc.). The code is also intended to be highly testable. Test coverage at the time of writing this document was exceeding 80% The core requirement for the current phase of PlainBox development is feature parity with CheckBox and gradual shift from one to another in the daily responsibilities of the Hardware Certification team. Currently PlainBox implements a large chunk of core / essential features from CheckBox. While not all features are present the core is considered almost feature complete at this stage. plainbox-0.5.3/docs/dev/intro.rst0000664000175000017500000002367312320461715016712 0ustar zygazyga00000000000000Getting started with development ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PlainBox uses python3 for development. The core is really system independent but you will need Ubuntu to really make the best of it and experience it as we do. We encourage everyone to use the most recent Ubuntu release for development. Usually this brings the best, most recent tools without having to search for software on the Internet. PlainBox has almost no dependencies itself, almost, because we depend on the mighty :term:`CheckBox` project to provide us with a lot of existing infrastructure. Testing PlainBox requires additional packages and some non-packaged software. You will typically want to install it and take advantage of the integration we provide. .. note:: If you are working with the source please be aware that PlainBox requires an installed copy of CheckBox. CheckBox in turns is has many scripts that depend on various system packages, including python packages that cannot be installed from pypi. If you were planning on using :command:`virtualenv` then please make sure to create it with the ``--system-site-packages`` option. Get the source -------------- Source code for PlainBox is kept along with several other related projects in the `checkbox` project on launchpad. You will need to use bzr to get a local copy. .. code-block:: bash $ bzr branch lp:checkbox .. note:: If you would rather use ``git`` you can also do that (and in fact, some of us already do). Head to `git-lp homepage `_ and follow the guide there to use git-lp with this project. Get the dependencies -------------------- You will need some tools to work on CheckBox. Scripted installation of almost everything required is available (except for VirtualBox and Vagrant, those are still manual). From the top of the checkbox checkout run `mk-venv`, that script will install all the missing dependencies and set you up for work on your machine. Getting Vagrant --------------- While developing PlainBox you will often need to run potentially dangerous commands on your system, such as asking it to suspend and wake up automatically. We also need to support a range of Ubuntu releases, going all the way back to Ubuntu 12.04. This may cause compatibility issues that are unnoticed all until they hit our CI system. To minimize this PlainBox uses :term:`Vagrant` to create lightweight execution environments that transparently share your source tree and allow you to quickly create and share testing environment that can be deployed by any developer in minutes. Vagrant uses :term:`VirtualBox` and while both are packaged in Ubuntu, unless you are running Ubuntu 13.04 you should download and install the software from their upstream projects. If you are running Ubuntu 13.04 .. code-block:: bash $ sudo apt-get install vagrant If you are running earlier version of Ubuntu follow those two links to get started: * http://downloads.vagrantup.com/ * https://www.virtualbox.org/wiki/Downloads If you have not installed VirtualBox before, you must add yourself to the ``vboxusers`` group, log out and log back in again. .. code-block:: bash $ sudo usermod -G vboxusers -a $USER Initialize virtualenv --------------------- PlainBox will use a few unpackaged and bleeding-edge releases from :term:`pypi` those are installed by additional script. By default the script assumes you have a `/ramdisk` directory but you can pass any path as an argument for an alternate location. .. code-block:: bash $ ./mk-venv After everything is set up you can activate the virtualenv environment with the dot command. Note that there *is* a space between the dot and the forward slash. You can repeat this command in as many shells as you like. .. code-block:: bash $ . /ramdisk/venv/bin/activate Once virtualenv is activated your shell prompt will be changed to reflect that. You should now be able to run :command:`plainbox --help` to ensure everything is working properly. Initialize vagrant ------------------ Vagrant allows us to ship a tiny text file :file:`Vagrantfile` that describes the development and testing environment. This file tells :command:`vagrant` how to prepare a virtual machine for testing. If you never used it before you may want to keep a tab open on `vagrant getting started guide `_ We did all the hard work so that you don't have to, to get everything ready just run one command: .. code-block:: bash $ vagrant up This will download vanilla Ubuntu cloud images, initialize VirtualBox, provision virtual machines (one for each supported Ubuntu release) and allow you to ssh into them for testing with one command. This will take a moment, depending on the speed of your network. Once that is done you should be able to log into, say, ``precise`` and run :command:`plainbox --help` to see if everything is all right. .. code-block:: bash $ vagrant ssh precise vagrant@vagrant-ubuntu-precise-32:~$ plainbox --help usage: plainbox [-h] [-v] {run,special,self-test} ... positional arguments: {run,special,self-test} run run a test job special special/internal commands self-test run integration tests optional arguments: -h, --help show this help message and exit -v, --version show program's version number and exit $ exit Running PlainBox tests ^^^^^^^^^^^^^^^^^^^^^^ PlainBox is designed to be testable so it would be silly if it was hard to run tests. Actually, there are many different ways to run tests. They all run the same code so don't worry. To test the current code you are working on you can: - Run the :command:`./test-in-vagrant.sh` from the top-level directory. This will take the longer but will go over *all* the tests on *all* the supported versions of Ubuntu. It will run CheckBox unit-tests, PlainBox unit-tests and it will even run integration tests that actually execute jobs. - Run :command:`plainbox self-test --unit-tests` or :command:`plainbox self-test --integration-tests`. This will execute all the tests right on your machine, without any virtualization (well, unless you do that after running :command:`vagrant ssh`). Typically you would run unit tests while being in a ``virtualenv`` with the ``plainbox`` package in development mode, as created by running :command:`python setup.py develop` - Run :command:`./setup.py test` this will install any required test dependencies from pypi and run unit tests. - Run the script :command:`test-with-coverage.sh` while being in a virtualenv. This will also compute testing code coverage and is very much recommended while working on new code and tests. Submitting Patches ^^^^^^^^^^^^^^^^^^ We use `Launchpad `_ for most of our project management. All code changes should be submitted as merge requests. Launchpad has `extensive documentation `_ on how to use various facilities it provides. In general we are open to contributions but we reserve the right to reject patches if they don't fit into the needs of the :term:`Hardware Certification`. If you have an idea go and talk to us on :abbr:`IRC (Internet Relay Chat)` on the `#ubuntu-quality `_ channel. We have some basic rules patch acceptance: 0. Be prepare to alter your changes. This is a meta-rule. One of the points of code reviews is to improve the proposal. That implies the proposal may need to change. You must be prepared and able to change your code after getting feedback. To do that efficiently you must structure your work in a way where each committed change works for you rather than against you. The rules listed below are a reflection of this. 1. Each patch should be a single logical change that can be applied. Don't clump lots of changes into one big patch. That will only delay review, make accepting feedback difficult and annoying. This may mean that the history has many small patches that can land in trunk in a FIFO mode. The oldest patch of your branch may be allowed to land and should make sense. This has implications on how general code editing should be performed. If you break some APIs then firsts introduce a working replacement, then change usage of the API and lastly remove any dead code. 2. Don't keep junk patches in your branch. Don't keep patches such as "fix typo" in your branch, that makes the review process more difficult as some reviewers will read your patches one by one. This is especially important if your changes are substantial. 3. Don't merge with trunk, rebase on trunk. This way you can keep your local delta as a collection of meaningful, readable patches. Reading the full diff and following the complex merge history (especially for long-lived branches) is difficult in practice. 4. Keep unrelated changes in separate branches. If you ware working on something and found a bug that needed immediate fixing, typo or anything else that is small and quick to fix, do it. Then take that patch out of your development branch and into a dedicated branch and propose it. As the small change is reviewed and lands you can remove that patch from your development branch. This is intended to help both the developer and the reviewer. Seemingly trivial patches may turn out to be more complicated than initially assumed (and may have their own feedback cycle and iterations). The reviewer can focus on logical changes and not on a collection of unrelated alterations. Lastly we may need to apply some fixes to other supported branches and release those. 5. Don't propose untested code. We generally like tests for new code. This is not a super-strict requirement but unless writing tests is incredibly hard we'd rather wait. If testing is hard we'd rather invest some time in refactoring the code or building required support infrastructure. plainbox-0.5.3/docs/dev/old.rst0000664000175000017500000003250512320461715016327 0ustar zygazyga00000000000000Old Architecture Notes ====================== .. warning:: This section needs maintenance Application Skeleton ^^^^^^^^^^^^^^^^^^^^ This skeleton represents a typical application based on PlainBox. It enumerates the essential parts of the APIs from the point of view of an application developer. 1. Instantiate :class:`plainbox.impl.checkbox.CheckBox` then call :meth:`plainbox.impl.checkbox.CheckBox.get_builtin_jobs()` to discover all known jobs. In the future this might be replaced by a step that obtains jobs from a named provider. 3. Instantiate :class:`plainbox.impl.runner.JobRunner` so that we can run jobs 4. Instantiate :class:`plainbox.impl.session.SessionState` so that we can keep track of application state. - Potentially restore an earlier, interrupted, testing session by calling :meth:`plainbox.impl.session.SessionState.restore()` - Potentially remove an earlier, interrupted, testing session by calling :meth:`plainbox.impl.session.SessionState.discard()` - Potentially start a new test session by calling :meth:`plainbox.impl.session.SessionState.open()` 5. Allow the user to select jobs that should be executed and update session state by calling :meth:`plainbox.impl.session.SessionState.update_desired_job_list()` 6. For each job in :attr:`plainbox.impl.SessionState.run_list`: 1. Check if we want to run the job (if we have a result for it from previous runs) or if we must run it (for jobs that cannot be persisted across suspend) 2. Check if the job can be started by looking at :meth:`plainbox.impl.session.JobState.can_start()` - optionally query for additional data on why a job cannot be started and present that to the user. - optionally abort the sequence and go to step 5 or the outer loop. 3. Call :meth:`plainbox.impl.runner.JobRunner.run_job()` with the current job and store the result. - optionally ask the user to perform some manipulation - optionally ask the user to qualify the outcome - optionally ask the user for additional comments 4. Call :meth:`plainbox.impl.session.SessionState.update_job_result()` to update readiness of jobs that depend on the outcome or output of current job. 5. Call :meth:`plainbox.impl.session.SessionState.checkpoint()` to ensure that testing can resume after system crash or shutdown. 7. Instantiate the selected state exporter, for example :class:`plainbox.impl.exporters.json.JSONSessionStateExporter` so that we can use it to save test results. - optionally pass configuration options to customize the subset and the presentation of the session state 8. Call :meth:`plainbox.impl.exporters.SessionStateExporterBase.get_session_data_subset()` followed by :meth:`plainbox.impl.exporters.SessionStateExporterBase.dump()` to save results to a file. 9. Call :meth:`plainbox.impl.session.SessionState.close()` to remove any nonvolatile temporary storage that was needed for the session. Essential classes ================= :class:`~plainbox.impl.session.SessionState` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Class representing all state needed during a single program session. Usage ----- The general idea is that you feed the session with a list of known jobs and a subset of jobs that you want to run and in return get an ordered list of jobs to run. It is expected that the user will select / deselect and run jobs. This class can react to both actions by recomputing the dependency graph and updating the read states accordingly. As the user runs subsequent jobs the results of those jobs are exposed to the session with :meth:`update_job_result()`. This can cause subsequent jobs to become available (not inhibited by anything). Note that there is no notification of changes at this time. The session does almost nothing by itself, it learns about everything by observing job results coming from the job runner (:class:`plainbox.impl.runner.JobRunner`) that applications need to instantiate. Suspend and resume ------------------ The session can save check-point data after each job is executed. This allows the system to survive and continue after a catastrophic failure (broken suspend, power failure) or continue across tests that require the machine to reboot. .. todo:: Create a section on suspend/resume design Implementation notes -------------------- Internally it ties into :class:`plainbox.impl.depmgr.DependencySolver` for resolving dependencies. The way the session objects are used allows them to return various problems back to the UI level - those are all the error classes from :mod:`plainbox.impl.depmgr`: - :class:`plainbox.impl.depmgr.DependencyCycleError` - :class:`plainbox.impl.depmgr.DependencyDuplicateError` - :class:`plainbox.impl.depmgr.DependencyMissingError` Normally *none* of those errors should ever happen, they are only provided so that we don't choke when a problem really happens. Everything is checked and verified early before starting a job so typical unit and integration testing should capture broken job definitions (for example, with cyclic dependencies) being added to the repository. Implementation issues --------------------- There are two issues that are known at this time: * There is too much checkbox-specific knowledge which really belongs elsewhere. We are working to remove that so that non-checkbox jobs can be introduced later. There is a branch in progress that entirely removes that and moves it to a new concept called SessionController. In that design the session delegates understanding of results to a per-job session controller and exposes some APIs to alter the state that was previously internal (most notably a way to add new jobs and resources). * The way jobs are currently selected is unfortunate because of local jobs that can add new jobs to the system. This causes considerable complexity at the application level where the application must check if each executed job is a 'local' job and re-compute the desired_job_list. This should be replaced by a matcher function that can be passed to SessionState once so that desired_job_list is re-evaluated internally whenever job_list changes. :class:`~plainbox.impl.job.JobDefinition` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :term:`CheckBox` has a concept of a :term:`job`. Jobs are named units of testing work that can be executed. Typical jobs range from automated CPU power management checks, BIOS tests, semi-automated peripherals testing to all manual validation by following a script (intended for humans). Jobs are distributed in plain text files, formated as a loose RFC822 documents where typically a single text file contains a few dozen different jobs that belong to one topic, for example, all bluetooth tests. Tests have a number of properties that will not be discussed in detail here, they are all documented in :class:`plainbox.impl.job.JobDefinition`. From the architecture point of view the four essential properties of a job are *name*, *plugin* and *requires* and *depends*. Those are discussed in detail below. JobDefinition.name ------------------ The *name* field must be unique and is referred to by other parts of the system (such as whitelists). Typically jobs follow a simple naming pattern 'category/detail', eg, 'networking/modem_connection'. The name must be _unique_ and this is enforced by the core. JobDefinition.plugin -------------------- The *plugin* field is an archaism from CheckBox and a misnomer (as PlainBox does not have any plugins). In the CheckBox architecture it would instruct the core which plugin should process that job. In PlainBox it is a way to encode what type of a job is being processed. There is a finite set of types that are documented below. plugin == "shell" ################# This value is used for fully automated jobs. Everything the job needs to do is automated (preparation, execution, verification) and fully handled by the command that is associated with a job. plugin == "manual" ################## This value is used for fully manual jobs. It has no special handling in the core apart from requiring a human-provided outcome (pass/fail classification) .. _local: plugin == "local" ################# This value is used for special job generator jobs. The output of such jobs is interpreted as additional jobs and is identical in effect to loading such jobs from a job definition file. There are two practical uses for such jobs: * Some local jobs are used to generate a number of jobs for each object. This is needed where the tested machine may have a number of such objects and each requires unique testing. A good example is a computer where all network tests are explicitly "instantiated" for each network card present. This is a valid use case but is rather unfortunate for architecture of PlainBox and there is a desire to replace it with equally-expressive pattern jobs. The advantage is that unlike local jobs (which cannot be "discovered" without enduring any potential side effects that may be caused by the job script command) pattern jobs would allow the core to determine the names of jobs that can be generated and, for example, automatically determine that a pattern job needs to be executed as a dependency of a phantom (yet undetermined) job with a given name. The solution with "pattern" jobs may be executed in future phases of PlainBox development. Currently there is no support for that at all. Currently PlainBox cannot determine job dependencies across local jobs. That is, unless a local job is explicitly requested (in the desired job list) PlainBox will not be able to run a job that is generated by a local job at all and will treat it as if that job never existed. * Some local jobs are used to create a form of informal "category". Typically all such jobs have a leading and trailing double underscore, for example '__audio__'. This is currently being used by CheckBox for building a hierarchical tree of tests that the user may select. Since this has the same flaws as described above (for pattern jobs) it will likely be replaced by an explicit category field that can be specified each job. plugin == "resource" #################### This value is used for special "data" or "environment" jobs. Their output is parsed as a list of RFC822 records and is kept by the core during a testing session. They are primarily used to determine if a given job can be started. For example, a particular bluetooth test may use the _requires_ field to indicate that it depends (via a resource dependency) on a job that enumerates devices and that one of those devices must be a bluetooth device. plugin == "user-interact" ######################### For all intents and purposes it is equivalent to "manual". The actual difference is that a user is expected to perform some physical manipulation before an automated test. plugin == "user-verify" ####################### For all intents and purposes it is equivalent to "manual". The actual difference is that a user is expected to perform manual verification after an automated test. JobDefinition.depends --------------------- The *depends* field is used to express dependencies between two jobs. If job A has depends on job B then A cannot start if B is not both finished and successful. PlainBox understands this dependency and can automatically sort and execute jobs in proper order. In many places of the code this is referred to as a "direct dependency" (in contrast to "resource dependency") The actual syntax is not strictly specified, PlainBox interprets this field as a list of tokens delimited by comma or any whitespace (including newlines). A job may depend on any number of other jobs. There are a number of failure modes associated with this feature, all of which are detected and handled by PlainBox. Typically they only arise when during CheckBox job development (editing actual job files) and are always a sign of a human error. No released version of CheckBox or PlainBox should ever encounter any of those issues. The actual problems are: * dependency cycles, where job either directly or indirectly depends on itself * missing dependencies where some job refers to a job that is not defined anywhere. * duplicate jobs where two jobs with the same name (but different definition) are being introduced to the system. In all of those cases the core removes the offending job and tries to work regardless of the problem. This is intended more as a development aid rather than a reliability feature as no released versions of either project should cause this problem. JobDefinition.command --------------------- The *command* field is used when the job needs to call an external command. Typically all shell jobs define a command to run. "Manual" jobs can also define a command to run as part of the test procedure. JobDefinition.user ------------------ The *user* field is used when the job requires to run as a specific user (e.g. root). The job command will be run via pkexec to get the necessary permissions. .. _environ: JobDefinition.environ --------------------- The *environ* field is used to pass additional environmental keys from the user session to the new environment set up when the job command is run by another user (root, most of the time). The actual syntax is not strictly specified, PlainBox interprets this field as a list of tokens delimited by comma or any whitespace (including newlines). plainbox-0.5.3/docs/dev/index.rst0000664000175000017500000000074012320461715016654 0ustar zygazyga00000000000000Core Developers =============== This chapter organizes information useful for developers working on the core, aka, PlainBox itself. .. note:: The PlainBox project hopes to be a friendly developer environment. We invested in a lot of tools to make your life easier. Despite being a business-centric software project we welcome and encourage contributions from both Canonical and Community members. .. toctree:: :maxdepth: 3 intro.rst architecture.rst plainbox-0.5.3/docs/dev/trusted-launcher.rst0000664000175000017500000002100312320461715021031 0ustar zygazyga00000000000000Running jobs as root ==================== :term:`PlainBox` is started without any privilege. But several tests need to start commands requiring privileges. Such tests will call a trusted launcher, a standalone script which does not depend on the :term:`PlainBox` core modules. `polkit `_ will control access to system resources. The trusted launcher has to be started using `pkexec `_ so that the related policy file works as expected. To avoid a security hole that allows anyone to run anything as root, the launcher can only run jobs installed in a system-wide directory. This way we are not weaken the trust system as root access is required to install both components (the trusted runner and jobs). The :term:`PlainBox` process will send an identifier which is matched by a well-known list in the trusted launcher. This identifier is the job hash: .. code-block:: bash $ pkexec plainbox-trusted-launcher-1 --hash JOB-HASH See :attr:`plainbox.impl.secure.job.BaseJob.checksum` for details about job hashes. Using Polkit ^^^^^^^^^^^^ Available authentication methods -------------------------------- .. note:: Only applicable to the package version of PlainBox PlainBox comes with two authentication methods but both aim to retain the granted privileges for the life of the :term:`PlainBox` process. * The first method will ask the password only once and show the following agent on desktop systems (a text-based agent is available for servers): .. code-block:: text +-----------------------------------------------------------------------------+ | [X] Authenticate | +-----------------------------------------------------------------------------+ | | | [Icon] Please enter your password. Some tests require root access to run | | properly. Your password will never be stored and will never be | | submitted with test results. | | | | An application is attempting to perform an action that requires | | privileges. | | Authentication as the super user is required to perform this action. | | | | Password: [________________________________________________________] | | | | [V] Details: | | Action: org.freedesktop.policykit.pkexec.run-plainbox-job | | Vendor: PlainBox | | | | [Cancel] [Authenticate] | +-----------------------------------------------------------------------------+ The following policy file has to be installed in :file:`/usr/share/polkit-1/actions/` on Ubuntu systems. Asking the password just one time and keeps the authentication for forthcoming calls is provided by the **allow_active** element and the **auth_admin_keep** value. Check the `polkit actions `_ documentation for details about the other parameters. .. code-block:: xml PlainBox https://launchpad.net/checkbox checkbox Run Job command Authentication is required to run a job command. no no auth_admin_keep /usr/bin/plainbox-trusted-launcher-1 TRUE * The second method is only intended to be used in headless mode (like `SRU`). The only difference with the above method is that **allow_active** will be set to **yes**. .. note:: The two policy files are available in the PlainBox :file:`contrib/` directory. Environment settings with pkexec -------------------------------- `pkexec `_ allows an authorized user to execute a command as another user. But the environment that ``command`` will run it, will be set to a minimal known and safe environment in order to avoid injecting code through ``LD_LIBRARY_PATH`` or similar mechanisms. However, some jobs commands require specific enviroment variables such as the name of an access point for a wireless test. Those kind of variables must be available to the trusted launcher. To do so, the enviromment mapping is sent to the launcher like key/value pairs are sent to the env(1) command: .. code-block:: bash $ pkexec trusted-launcher JOB-HASH [NAME=VALUE [NAME=VALUE ...]] Each NAME will be set to VALUE in the environment given that they are known and defined in the :ref:`JobDefinition.environ ` parameter. plainbox-trusted-launcher-1 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The trusted launcher is the minimal code needed to be able to run a :term:`CheckBox` job command. Internally the checkbox trusted launcher looks for jobs in the system locations defined in :attr:`plainbox.impl.secure.providers.v1.all_providers` which defaults to :file:`/usr/share/plainbox-trusted-launcher-1/*.provider`. Usage ----- .. code-block:: text plainbox-trusted-launcher-1 [-h] (--hash HASH | --warmup) [--via LOCAL-JOB-HASH] [NAME=VALUE [NAME=VALUE ...]] positional arguments: NAME=VALUE Set each NAME to VALUE in the string environment optional arguments: -h, --help show this help message and exit --hash HASH job hash to match --warmup Return immediately, only useful when used with pkexec(1) --via LOCAL-JOB-HASH Local job hash to use to match the generated job .. note:: Check all job hashes with ``plainbox special -J`` As stated in the polkit chapter, only a trusted subset of the environment mapping will be set using `subprocess.call` to run the command. Only the variables defined in the job environ property are allowed to avoid compromising the root environment. Needed modifications like adding ``CHECKBOX_SHARE`` and new paths to scripts are managed by the plainbox-trusted-launcher-1. Authentication on PlainBox startup ---------------------------------- To avoid prompting the password at the first test requiring privileges, :term:`PlainBox` will call the ``plainbox-trusted-launcher-1`` with the ``--warmup`` option. It's like a NOOP and it will return immediately, but thanks to the installed policy file the authentication will be kept. .. note:: When running the development version from a branch, the usual polkit authentication agent will pop up to ask the password each and every time. This is the only difference. Special case of jobs using the CheckBox local plugin ---------------------------------------------------- For jobs generated from :ref:`local ` jobs (e.g. disk/read_performance.*) the trusted launcher is started with ``--via`` meaning that we have to first eval a local job to find a hash match. Once a match is found, the job command is executed. .. code-block:: bash $ pkexec plainbox-trusted-launcher-1 --hash JOB-HASH --via LOCAL-JOB-HASH .. note:: it will obviously fail if any local job can ever generate another local job. plainbox-0.5.3/docs/dev/config.rst0000664000175000017500000002532112320461715017014 0ustar zygazyga00000000000000PlainBox Configuration System ============================= PlainBox has a modular configuration system. The system allows one to define static configuration models that are composed of variables. This is all implemented in :mod:`plainbox.impl.secure.config` as two classes :class:`plainbox.impl.secure.config.Config` and :class:`plainbox.impl.secure.config.Variable`:: >>> from plainbox.impl.secure.config import Config, Variable Configuration models ^^^^^^^^^^^^^^^^^^^^ Each subclass of :class:`plainbox.impl.secure.config.Config` defines a new configuration model. The model is composed of named variables and sections defined as members of the class using a quasi-declarative syntax:: >>> class AppConfig(Config): ... log_level = Variable() ... log_file = Variable() If you've ever used Django this will fell just like models and fields. Using Config objects and Variables ---------------------------------- Each configuration class can be simply instantiated and used as an object with attributes:: >>> config = AppConfig() Accessing any of the Variable attributes is handled and actually access data in an underlying in-memory storage:: >>> config.log_level = 'DEBUG' >>> assert config.log_level == 'DEBUG' Writes are validated (see validators below), reads go to the backing store and, if missing, pick the default from the variable declaration. By default values are not constrained in any way. The Unset value --------------- Apart from handling arbitrary values, variables can store the ``Unset`` value, which is of the special ``UnsetType``. Unset variables are used as the implicit default values so understanding them is important. The ``Unset`` value is always false in a boolean context. This makes it easier to accommodate but applications are still expected to handle it correctly. One way to do that is to provide a default value for **every** variable used. Another is to use the :class:`~plainbox.impl.secure.config.NotUnsetValidator` to prevent such values from reaching the application. Using Variable with custom default values ----------------------------------------- Each variable has a default value that is used when variable is accessed but was not assigned or loaded from a config file before. By default that value is a special :class:`~plainbox.impl.secure.config.Unset` object, but it can be changed using the ``default`` keyword argument:: >>> class AppConfig(Config): ... log_level = Variable(default='INFO') ... log_file = Variable() Here a freshly instantiated AppConfig class has a value in the ``log_level`` attribute. Note that there is a difference between values that have been assigned and values that are loaded from defaults, as it will be explained later:: >>> config = AppConfig() >>> assert config.log_level == "INFO' Using Variables with custom sections ------------------------------------ Each variable has section name that is used to lookup data in a INI-like config file. By default that section is set to ``'DEFAULT'``. Particular variables can be assigned to a non-default section. This can help managing multiple groups of unrelated settings in one class / file. To specify a section simply use the ``section`` keyword:: >>> class AppConfig(Config): ... log_level = Variable(section='logging', default='WARNING') ... log_file = Variable( ... section='logging', ... default='/var/log/plainbox.log') ... debug = Variable(default=False) Using sections has no impact on how particular variables are used by the application, it is only an utility for managing complexity. Using Variable with custom kind ------------------------------- Variables cannot hold values of arbitrary python type. In fact only a fixed list of types are supported and allowed, those are: ``str``, ``bool``, ``int`` and ``float``. By default all variables are treated as strings. Different *kind* can be selected with the ``kind`` keyword argument. Setting it to a type (as listed above) will have two effects: 1) Only values of that type will be allowed upon assignment. This acts as an implicit validator. It is also true for using the default ``str`` kind. 2) When reading configuration files from disk, the content of the file will be interpreted accordingly. Let's expand our example to indicate that the ``debug`` variable is actually a boolean:: >>> class AppConfig(Config): ... log_level = Variable(section='logging', default='WARNING') ... log_file = Variable( ... section='logging', ... default='/var/log/plainbox.log') ... debug = Variable(default=False, kind=bool) Specifying Custom Validators ---------------------------- As mentioned above in the kind section, values are validated upon assignment. By default all values are validated to check if the value is appropriate for the variable ``kind`` In certain cases additional constraints may be necessary. Those can be expressed as any callable object (function, method or anything else with a ``__call__`` method). Let's expand the example to ensure that ``log_level`` is only one of fixed possible choices:: >>> class ChoiceValidator: ... ... def __init__(self, choices): ... self.choices = choices ... ... def __call__(self, variable, value): ... if value not in self.choices: ... return "unspported value" Each time the called validator returns None, it is assumed that everything is okay. Otherwise the returned string is used as a message and :class:`plainbox.impl.secure.config.ValidationError` is raised. To use the new validator simply pass it to the ``validator_list`` keyword argument:: >>> class AppConfig(Config): ... log_level = Variable( ... section='logging', ... default='WARNING', ... validator_list=[ ... ChoiceValidator([ ... "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"])]) ... ... log_file = Variable( ... section='logging', ... default='/var/log/plainbox.log') ... ... debug = Variable(default=False, kind=bool) .. note:: Validators that want to see the ``Unset`` value need to be explicitly tagged, otherwise they will never see that value (they will not be called) but can assume that the value is of correct type (bool, int, float or str). If you need to write a validator that understands and somehow handles the Unset value, decorate it with the :func:`~plainbox.impl.secure.config.understands_Unset` decorator. Using Section objects --------------------- Sometimes there is a necessity to allow the user to add arbitrary key=value data to the configuration file. This is possible using the :class:`plainbox.impl.secure.config.Section` class. Consider this example:: >>> class AppConfig(Config): ... log_level = Variable( ... section='logging', ... default='WARNING', ... validator_list=[ ... ChoiceValidator([ ... "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"])]) ... ... log_file = Variable( ... section='logging', ... default='/var/log/plainbox.log') ... ... debug = Variable(default=False, kind=bool) ... ... logger_levels = Section() This is the same application config example we've been using. This time it's extended with a ``logger_levels`` attribute. The intent for this attribute is to allow the user to customise the logging level for any named logger. This could be implemented by iterating over all the values of that section and setting the level accordingly. .. note:: Accessing Section objects returns a dictionary of the key-value pairs that were defined in that section. Loading configuration from file ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Configuration objects are not of much use without being able to load data from actual files. This is fully supported using just one call to :meth:`plainbox.impl.secure.config.Config.read()`. Read takes a list of files to read as argument and tries to parse and load data from each existing file. Missing files are silently ignored. Because configuration files may be corrupted, have typos, incorrectly specified values or other human-caused mistakes. The read() operation never fails as the application probably does not want to block on errors unconditionally. Instead after calling read() the application may inspect two instance attributes: :attr:`plainbox.impl.secure.config.Config.problem_list` and :attr:`plainbox.impl.secure.config.Config.filename_list`. They contain the list of exceptions raised while trying to load and use the configuration files and the list of files that were actually loaded, respectively. The Config.Meta class ^^^^^^^^^^^^^^^^^^^^^ Each Config class or subclass has a special Meta class as an attribute. This is *not* about the python metaclass system. This is a special helper class that contains a list of meta-data about each Config class. The Meta class has several attributes that are used internally but can be sometimes useful for applications. Meta.variable_list ------------------ This attribute holds a list of all the Variable objects defined in the parent Config class. The order is maintained exactly as defined by the source code. Meta.section_list ----------------- This attribute holds a list of all the Section objects defined in the parent Config class. The order is maintained exactly as defined in the source code. Meta.filename_list ------------------ This attribute is an empty list by default. The intent is to hold a list of all the possible pathnames that the configuration should be loaded from. This field is used by :func:`plainbox.impl.secure.config.Config.get()` method. Typically this field is specified in a custom version of the Meta class to encode where the configuration files are typically stored. Notes on subclassing Meta ------------------------- A Config sub-class can define a custom Meta class with any attributes that may be desired. That class will be merged with an internal :class:`plainbox.impl.secure.config.ConfigMetaData` class. In effect the actual Meta attribute will be a new type that inherits from both the custom class that was specified in the source code and the standard ConfigMetaData class. This mechanism is fully transparent to the user. There is no need to explicitly inherit from ConfigMetaData directly. The Unset value ^^^^^^^^^^^^^^^ The config system uses a special value :obj:`plainbox.impl.secure.config.Unset` which is the only instance of :class:`plainbox.impl.secure.config.UnsetType`. Unset is used instead of ``None`` as an implicit default for each ``Variable`` The only thing that ``Unset`` is special for is that it evaluates to false in a boolean context. plainbox-0.5.3/docs/index.rst0000664000175000017500000000367212320461715016105 0ustar zygazyga00000000000000.. PlainBox documentation master file, created by sphinx-quickstart on Wed Feb 13 11:18:39 2013. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. PlainBox ======== .. seealso:: See what's new in :ref:`version_0_5` :term:`PlainBox` is a toolkit consisting of python3 library, development tools, documentation and examples. It is targeted at developers working on testing or certification applications and authors creating tests for such applications. PlainBox can be used to both create simple and comprehensive test tools as well as to develop and execute test jobs and test scenarios. It was created as a refined and rewritten core of the :term:`CheckBox` project. It has a well tested and documented core, small but active development community and a collection of associated projects that use it as a lower-level engine/back-end library. PlainBox has a novel approach to discovering (and probing) hardware and software that is extensible and not hardwired into the system. It allows test developers to express association between a particular test and the hardware, software and configuration constraints that must be met for the test to execute meaningfully. This feature, along with pluggable test definitions, makes PlainBox flexible and applicable to many diverse testing situations, ranging from mobile phones, traditional desktop computers, servers and up to testing "cloud" installations. What are you interested in? ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Are you a :doc:`test author `, :doc:`application developer ` or :doc:`core developer `? Table of contents ================= .. toctree:: :maxdepth: 2 install.rst usage.rst manpages/index.rst changelog.rst author/index.rst appdev/index.rst dev/index.rst ref/index.rst glossary.rst Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` plainbox-0.5.3/docs/manpages/0000775000175000017500000000000012320462103016017 5ustar zygazyga00000000000000plainbox-0.5.3/docs/manpages/plainbox-trusted-launcher-1.rst0000664000175000017500000000746412320461715024035 0ustar zygazyga00000000000000=========================================================== plainbox-trusted-launcher-1 -- security elevation mechanism =========================================================== .. toctree:: :maxdepth: 2 Synopsis ======== usage: plainbox-trusted-launcher-1 [-h] (-w | -t CHECKSUM) [-T NAME=VALUE [NAME=VALUE ...]] [-g CHECKSUM] [-G NAME=VALUE [NAME=VALUE ...]] Description =========== This command is a part of the implementation of plainbox(1). It is not intended to be invoked directly and the command line arguments and behavior may freely change between versions. Technically this program is used to run a command associated with a job definition as another user (typically as root). The existing technologies such as sudo(8) and pkexec(1) don't have enough granularity to still restrict arbitrary commands but allow the commands that are inside system-wide installed locations (thus safe as one needs root access to install those in the first place). One additional restriction is that some commands are themselves generated by other jobs. Execution ========= Warm-up Mode ------------ If the --warmup option is specified then nothing more happens and the program exists immediately. This is intended to 'warm-up' the tool that executes plainbox-trusted-launcher-1 itself (typically pkexec or sudo) Normal Execution ---------------- In normal execution mode, the launcher looks up the job with the checksum specified by --target and executes the command embedded inside. Environment passed via --target-environment is appended to the environment variables inherited from the parent process. Standard output, standard error and exit code of plainbox-trusted-launcher-1 is exactly as the values from the commands embedded into the selected job itself. Indirect Execution ------------------ In indirect execution mode, the launcher first looks up the job with the checksum specified by --generator, executes it, discarding stderr and re-interpreting stdout as a set of job definitions. Environment passed via the --generator-environment is appended (but just to the generator job, the --target job has independent environment). All of the additional job definitions are added to the global pool of jobs the launcher knows about. After that the launcher continues as with normal execution, returning the same stdout, stderr and exit code. Options ======= Optional Arguments ------------------ -h, --help show this help message and exit -w, --warmup return immediately, only useful when used with pkexec(1) Target job specification ------------------------ -t CHECKSUM, --target CHECKSUM run a job with this checksum -T NAME=VALUE [NAME=VALUE ...], --target-environment NAME=VALUE [NAME=VALUE ...] environment passed to the target job Generator job specification --------------------------- -g CHECKSUM, --generator CHECKSUM also run a job with this checksum (assuming it is a local job) -G NAME=VALUE [NAME=VALUE ...], --generator-environment NAME=VALUE [NAME=VALUE ...] environment passed to the generator job Environment Variables ===================== The following environment variables *DO NOT* affect plainbox-trusted-launcher-1 ``PROVIDERPATH`` For plainbox(1) this would affect the set of directories where plainbox looks for provider definitions. The trusted launcher has a fixed list of directories that cannot be extended. The fixed list is composed of two system-wide locations: * ``/usr/local/share/plainbox-providers-1`` * ``/usr/share/plainbox-providers-1`` All the other environment variables mentioned in plainbox(1) work the same way. plainbox-0.5.3/docs/manpages/index.rst0000664000175000017500000000015412320461715017670 0ustar zygazyga00000000000000Manual Pages ============ .. toctree:: :maxdepth: 1 plainbox.rst plainbox-trusted-launcher-1.rst plainbox-0.5.3/docs/manpages/plainbox.rst0000664000175000017500000002006012320461715020373 0ustar zygazyga00000000000000============================================= plainbox -- test developer's swiss army knife ============================================= .. toctree:: :maxdepth: 2 Synopsis ======== usage: plainbox [-h] [--version] [-v] [-D] [-C] [-T LOGGER] [-P] [-I] subcommand ... Description =========== :term:`PlainBox` is a toolkit consisting of python3 library, development tools, documentation and examples. It is targeted at developers working on testing or certification applications and authors creating tests for such applications. Options ======= Optional Arguments ------------------ -h, --help show this help message and exit --version show program's version number and exit Logging and Debugging --------------------- -v, --verbose be more verbose (same as --log-level=INFO) -D, --debug enable DEBUG messages on the root logger -C, --debug-console display DEBUG messages in the console -T LOGGER, --trace LOGGER enable DEBUG messages on the specified logger (can be used multiple times) -P, --pdb jump into pdb (python debugger) when a command crashes -I, --debug-interrupt crash on SIGINT/KeyboardInterrupt, useful with --pdb PlainBox Sub-Commands ===================== PlainBox uses a number of sub-commands for performing specific operations. Since it targets several different audiences commands are arranged into three parts: test authors, test users and core developers Test Users ---------- plainbox run Run a test job. This is the swiss army knife of a swiss army knife. Has lots of options that affect job selection, execution and handling results. plainbox check-config check and display plainbox configuration. While this command doesn't allow to edit any settings it is very useful for figuring out what variables are available and which configuration files are consulted. Test Authors ------------ plainbox startprovider Create a new provider (directory). This command allows test authors to create a new collection (provider) of test definitions for PlainBox. plainbox dev script Run the command from a job in a way it would run as a part of normal run, ignoring all dependencies / requirements and providing additional diagnostic messages. plainbox dev analyze Analyze how selected jobs would be executed. Takes almost the same arguments as ``plainbox run`` does. Additional optional arguments control the type of analysis performed. plainbox dev parse Parse stdin with the specified parser. PlainBox comes with a system for plugging parser definitions so that shell programs (and developers) get access to structured data exported from otherwise hard-to-parse output. plainbox dev list List and describe various objects. Run without arguments to see all the high-level objects PlainBox knows about. Optional argument can restrict the list to objects of one kind. Core Developers --------------- plainbox self-test Run unit and integration tests. Unit tests work also after installation so this command can verify a local installation at any time. plainbox dev special Access to special/internal commands. plainbox dev crash Crash the application. Useful for testing the crash handler and crash log files. plainbox dev logtest Log messages at various levels. Useful for testing the logging system. Files and Directories ===================== The following files and directories affect PlainBox: Created or written to --------------------- ``$XDG_CACHE_HOME/plainbox/logs`` PlainBox keeps all internal log files in this directory. In particular the ``crash.log`` is generated there on abnormal termination. If extended logging / tracing is enabled via ``--debug`` or ``--trace`` then ``debug.log`` will be created in this directory. The files are generated on demand and are rotated if they grow too large. It is safe to remove them at any time. ``$XDG_CACHE_HOME/plainbox/sessions`` PlainBox keeps internal state of all running and dormant (suspended or complete) sessions here. Each session is kept in a separate directory with a randomly generated name. This directory may also contain a symlink ``last-session`` that points at one of those sessions. The symlink may be broken as a part of normal operation. Sessions may accumulate, in some cases, and they are not garbage collected at this time. In general it is safe to remove sessions when PlainBox is not running. Looked up or read from ---------------------- ``/usr/local/share/plainbox-providers-1/*.provider`` System wide, locally administered directory with provider definitions. See PROVIDERS for more information. Jobs defined here have access to ``plainbox-trusted-launcher(1)`` and may run as root without prompting (depending on configuration). ``/usr/share/plainbox-providers-1/*.provider`` Like ``/usr/local/share/plainbox-providers-1`` but maintained by the local package management system. This is where packaged providers add their definitions. ``$XDG_DATA_HOME/plainbox-providers-1/*.provider`` Per-user directory with provider definitions. This directory may be used to install additional test definitions that are only available to a particular user. Jobs defined there will not have access to ``plainbox-trusted-launcher(1)`` and will use ``pkexec(1)`` or ``sudo(1)`` to run as root, if needed. Typically this directory is used by test provider developers transparently by invoking ``manage.py develop`` (manage.py is the per-provider management script generated by ``plainbox startprovider``) ``/etc/xdg/plainbox.conf`` System-wide configuration file (lowest priority). See below for details. ``$XDG_CONFIG_HOME/plainbox.conf`` Per-user configuration (highest priority). Configuration Files =================== PlainBox (and its derivatives) uses a configuration system composed of variables arranged in sections. All configuration files follow the well-known INI-style syntax. While PlainBox itself is not really using any variables, knowledge of where those can be defined is useful for working with derivative applications, such as Checkbox. The environment section ----------------------- The ``[environment]`` section deserves special attention. If a job advertises usage of environment variable ``FOO`` (by using the `environ: FOO` declaration) and ``FOO`` is not available in the environment of the user starting plainbox, then the value is obtained from the ``[environment]`` section. This mechanism is useful for distributing both site-wide and per-user configuration for jobs. Environment Variables ===================== The following environment variables affect PlainBox: ``PROVIDERPATH`` Determines the lookup of test providers. Note that unless otherwise essential, it is recommended to install test providers into one of the aforementioned directories instead of using PROVIDERPATH. The default value is composed out of ':'-joined list of: * ``/usr/local/share/plainbox-providers-1`` * ``/usr/share/plainbox-providers-1`` * ``$XDG_DATA_HOME/plainbox-providers-1`` ``PLAINBOX_LOCALE_DIR`` Alters the lookup directory for translation catalogs. When unset uses system-wide locations. Developers working with a local copy should set it to ``build/mo`` (after running ``./setup.py build_i18n``) ``PLAINBOX_I18N_MODE`` Alters behavior of the translation subsystem. This is only useful to developers that wish to see fake translations of all the strings marked as translatable. Available values include ``no-op``, ``gettext`` (default), ``lorem-ipsum-XX`` where ``XX`` is the language code of the faked translations. Supported faked translations are: ``ar`` (Arabic), ``ch`` (Chinese), ``he`` (Hebrew), ``jp`` (Japanese), ``kr`` (Korean), ``pl`` (Polish) and ``ru`` (Russian) plainbox-0.5.3/docs/glossary.rst0000664000175000017500000001117312320461715016634 0ustar zygazyga00000000000000Glossary ======== .. glossary:: hardware certification A process of ensuring that a specific device works well with Ubuntu. For more details see our certification program: http://www.canonical.com/engineering-services/certification/hardware-certification hardware certification team A team inside Canonical working on :term:`Hardware Certification`. CheckBox CheckBox is a hardware testing tool developed by Canonical for certifying hardware with Ubuntu. CheckBox is free software and is available at http://launchpad.net/checkbox. The ``checkbox`` package is pre-installed on all Ubuntu systems PlainBox PlainBox is a rewrite of CheckBox with the aim of improving internal architecture, testability, robustness, quality and speed. It is currently under active development. It is not pre-installed on Ubuntu. It is developed inside CheckBox code repository. whitelist Whitelists are text files used by Checkbox to select jobs for execution. They can include simple regular expressions to match and pick many similar jobs at once. For more information see :doc:`Checkbox Whitelist Files ` job Jobs are smallest units of testing that can be performed by either CheckBox or PlainBox. All jobs have an unique name. There are many types of jobs, some are fully automated others are fully manual. Some jobs are only an implementation detail and a part of the internal architecture of CheckBox provider A container for jobs, whitelists, private executables and data. Providers are the foundation of PlainBox as they *provide* all of the content. Providers can be created and managed by any entity, separately from the CheckBox project. namespace A private space for naming job definitions. Each job definition has a partial identifier and a full identifier (typically just called job id). The partial identifier is encoded in job definition file. The full identifier is composed of the namespace of a job provider and the partial identifier, joined with the double-colon string ``::``. resources Resources are collections of key-value data sets that are generated by special resource jobs. They are extensively used to indicate hardware or software dependencies. For example a bluetooth test may indicate it requires bluetooth hardware and appropriate software packages installed. requirement program Requirement programs are small (one to few lines) programs that use a subset of python to execute some code against resources. They are what actually describes the relationship of a Job to some Resources. For example a resource program ``package.name == "bluez"`` indicates that at least one resource generated by the ``package`` job has a key ``name`` equal to the string ``bluez``. attachment Attachments are a special type of a Job that can creates an attachment record in the submission.xml file. They are commonly used to include basic system information files and output of certain commands which can aid in system certification. certification website The website https://certification.canonical.com/ Canonical ID A number assigned to the specific device (laptop, desktop or server) by Canonical. This number is used on the Certification Website and by the Hardware Certification Team. It is an internal bookkeeping identifier used in our labs. Secure ID An identifier, similar to Canonical ID, used for hardware certification. This identifier is used when interacting with the Certification Website, it does not reveal anything about the actual hardware (like the manufacturer name or device name) pypi The Python Package Index where any developer can share their python programs and libraries. Pypi is available at: https://pypi.python.org/pypi. Vagrant Vagrant is command line program intended for software developers to quickly create portable virtual environments for testing their software in a production operating system. Vagrant is free software and is available at http://www.vagrantup.com/ VirtualBox VirtualBox is a free, powerful desktop vitalization software. VirtualBox is available in the Ubuntu Software Center and at https://www.virtualbox.org/ plainbox-0.5.3/docs/conf.py0000664000175000017500000002146212320461715015540 0ustar zygazyga00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # PlainBox documentation build configuration file, created by # sphinx-quickstart on Wed Feb 13 11:18:39 2013. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os try: import plainbox except ImportError as exc: raise SystemExit("plainbox has to be importable") else: # Inject mock modules so that we can build the # documentation without having the real stuff available from plainbox.vendor import mock for mod_name in ['lxml', 'xlsxwriter', 'requests', 'requests.exceptions']: sys.modules[mod_name] = mock.Mock() print("Mocked {}".format(mod_name)) # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.insert(0, os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.viewcode'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = 'PlainBox' copyright = '2012-2014 Canonical Ltd' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = "{0[0]}.{0[1]}".format(plainbox.__version__) # The full version, including alpha/beta/rc tags. release = "{0[0]}.{0[1]}.{0[2]}.{0[3]}.{0[4]}".format(plainbox.__version__) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = [] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # # Use our custom theme. For now it only adds Disqus.com support but we may # customize it further later on. The theme is called 'plainbox' and has one # option which controls if disqus is active or not. html_theme = 'plainbox' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # # Due to the way disqus works, it's only going to work on # plainbox.readthedocs.org so only use it if building for readthedocs. html_theme_options = { 'show_disqus': 'true' if os.environ.get("READTHEDOCS", None) == 'True' else '' } # Add any paths that contain custom themes here, relative to this directory. html_theme_path = ['_theme'] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. #html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'PlainBoxdoc' # -- Options for LaTeX output -------------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', # Additional stuff for the LaTeX preamble. #'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'PlainBox.tex', 'PlainBox Documentation', 'Zygmunt Krynicki', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Options for manual page output -------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('manpages/plainbox', 'plainbox', 'toolkit for software and hardware integration testing', ['Zygmunt Krynicki'], 1), ('manpages/plainbox-trusted-launcher-1', 'plainbox-trusted-launcher-1', 'execute job command as another user', ['Zygmunt Krynicki'], 1) ] # If true, show URL addresses after external links. #man_show_urls = False # -- Options for Texinfo output ------------------------------------------------ # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ ('index', 'PlainBox', 'PlainBox Documentation', 'Zygmunt Krynicki', 'PlainBox', 'One line description of project.', 'Miscellaneous'), ] # Documents to append as an appendix to all manuals. #texinfo_appendices = [] # If false, no module index is generated. #texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. #texinfo_show_urls = 'footnote' plainbox-0.5.3/docs/author/0000775000175000017500000000000012320462103015526 5ustar zygazyga00000000000000plainbox-0.5.3/docs/author/rfc822.rst0000664000175000017500000000372112320461715017301 0ustar zygazyga00000000000000.. _rfc822: ============================= PlainBox RFC822 Specification ============================= The syntax is only loosely inspired by the actual :RFC:`822` syntax. Since PlainBox is not processing email, the original specification is used only as an inspiration. One of the most important aspect of the syntax we're using is relative familiarity for other users of the system and ease-of-use when using general, off-the-shelf text editors. BNF --- An approximated syntax can be summarized as the following BNF:: record-list: record-list '\n' record | record record: entry-list '\n\n' entry | entry entry: KEY ':' VALUE KEY: ^[^:]+ VALUE: .+\n([ ].+)* There are two quirks which not handled by this syntax (see below). Otherwise the syntax is very simple. It defines a list of records. Each record is a list of entries. Each entry is a key-value pair. Values can be multi-line, which allows for convenient expression of longer text fragments. Quirk 1 -- the magic dot ------------------------ Due to the way the multi-line VALUE syntax is defined, it would be impossible (or possible but dependant only on whitespace, which is not friendly) to include two consecutive newlines. For that reason a line consisting of a single space, followed by a single dot is translated to an empty line. The example below:: key: . more value Is parsed as an ENTRY (in python syntax):: ("key", "\nvalue") Quirk 2 -- the # comments ------------------------- Since it's a line-oriented format and people are used to being able to insert comments anywhere with the ``# comment`` notation, any line that _starts_ with a hash or pound character is discarded. This happens earlier than other parts of parsing so comments are invisible to the rest of the parser. They can be included anywhere, including in the middle of a multi-line value. Example:: # this is a comment key: value multi-line # comment! and more plainbox-0.5.3/docs/author/jobs.rst0000664000175000017500000002045112320461715017227 0ustar zygazyga00000000000000=================================== Checkbox job file format and fields =================================== This file contains NO examples, this is on purpose since the jobs directory contains several hundred examples showcasing all the features described here. File format and location ------------------------ Jobs are expressed as sections in text files that conform somewhat to the :rfc:`822` specification format. Our variant of the format is described in :ref:`rfc822`. Each record defines a single job. Fields that can be used on a job -------------------------------- :id: (mandatory) - A name for the job. Should be unique, an error will be generated if there are duplicates. Should contain characters in [a-z0-9/-]. This field used to be called ``name``. That name is now deprecated. For backwards compatibility it is still recognized and used if ``id`` is missing. :summary: (mandatory) - A human readable name for the job. This value is available for translation into other languages. It is used when listing jobs. It must be one line long, ideally it should be short (50-70 characters max). :plugin: (mandatory) - For historical reasons it's called "plugin" but it's better thought of as describing the "type" of job. The allowed types are: :manual: jobs that require the user to perform an action and then decide on the test's outcome. :shell: jobs that run without user intervention and automatically set the test's outcome. :user-interact: jobs that require the user to perform an interaction, after which the outcome is automatically set. :user-verify: jobs that automatically perform an action or test and then request the user to decide on the test's outcome. :user-interact-verify: jobs that require the user to perform an interaction, run a command after which the user is asked to decide on the test's outcome. This is essentially a manual job with a command. :attachment: jobs whose command output will be attached to the test report or submission. :local: a job whose command output needs to be in :term:`CheckBox` job format. Jobs output by a local job will be added to the set of available jobs to be run. :resource: A job whose command output results in a set of rfc822 records, containing key/value pairs, and that can be used in other jobs' ``requires`` expressions. :requires: (optional). If specified, the job will only run if the conditions expressed in this field are met. Conditions are of the form ``. 'value' (and|or) ...`` . Comparison operators can be ==, != and ``in``. Values to compare to can be scalars or (in the case of the ``in`` operator) arrays or tuples. The ``not in`` operator is explicitly unsupported. Requirements can be logically chained with ``or`` and ``and`` operators. They can also be placed in multiple lines, respecting the rfc822 multi-line syntax, in which case all requirements must be met for the job to run ( ``and`` ed). The :term:`PlainBox` resource program evaluator is extensively documented, to see a detailed description including rationale and implementation of :term:`CheckBox` "legacy" compatibility, see :ref:`Resources in Plainbox `. :depends: (optional). If specified, the job will only run if all the listed jobs have run and passed. Multiple job names, separated by spaces, can be specified. :command: (optional). A command can be provided, to be executed under specific circumstances. For ``manual``, ``user-interact`` and ``user-verify`` jobs, the command will be executed when the user presses a "test" button present in the user interface. For ``shell`` jobs, the command will be executed unconditionally as soon as the job is started. In both cases the exit code from the command (0 for success, !0 for failure) will be used to set the test's outcome. For ``manual``, ``user-interact`` and ``user-verify`` jobs, the user can override the command's outcome. The command will be run using the default system shell. If a specific shell is needed it should be instantiated in the command. A multi-line command or shell script can be used with the usual multi-line syntax. Note that a ``shell`` job without a command will do nothing. :description: (mandatory). Provides a textual description for the job. This is mostly to aid people reading job descriptions in figuring out what a job does. The description field, however, is used specially in ``manual``, ``user-interact`` and ``user-verify`` jobs. For these jobs, the description will be shown in the user interface, and in these cases it's expected to contain instructions for the user to follow, as well as criteria for him to decide whether the job passes or fails. For these types of jobs, the description needs to contain a few sub-fields, in order: :PURPOSE: This indicates the purpose or intent of the test. :STEPS: A numbered list of steps for the user to follow. :INFO: (optional). Additional information about the test. This is commonly used to present command output for the user to validate. For this purpose, the ``$output`` substitution variable can be used (actually, it can be used anywhere in the description). If present, it will be replaced by the standard output generated from running the job's command (commonly when the user presses the "Test" button). :VERIFICATION: A question for the user to answer, deciding whether the test passes or fails. The question should be phrased in such a way that an answer of **Yes** means the test passed, and an answer of **No** means it failed. :user: (optional). If specified, the job will be run as the user specified here. This is most commonly used to run jobs as the superuser (root). :environ: (optional). If specified, the listed environment variables (separated by spaces) will be taken from the invoking environment (i.e. the one :term:`CheckBox` is run under) and set to that value on the job execution environment (i.e. the one the job will run under). Note that only the *variable names* should be listed, not the *values*, which will be taken from the existing environment. This only makes sense for jobs that also have the ``user`` attribute. This key provides a mechanism to account for security policies in ``sudo`` and ``pkexec``, which provide a sanitized execution environment, with the downside that useful configuration specified in environment variables may be lost in the process. :estimated_duration: (optional) This field contains metadata about how long the job is expected to run for, as a positive float value indicating the estimated job duration in seconds. =========================== Extension of the job format =========================== The :term:`CheckBox` job format can be considered "extensible", in that additional keys can be added to existing jobs to contain additional data that may be needed. In order for these extra fields to be exposed through the API (i.e. as properties of JobDefinition instances), they need to be declared as properties in (:mod:`plainbox.impl.job`). This is a good place to document, via a docstring, what the field is for and how to interpret it. Implementation note: if additional fields are added, *:term:`CheckBox`* needs to be also told about them, the reason is that :term:`CheckBox` *does* perform validation of the job descriptions, ensuring they contain only known fields and that fields contain expected data types. The jobs_info plugin contains the job schema declaration and can be consulted to verify the known fields, whether they are optional or mandatory, and the type of data they're expected to contain. Also, :term:`CheckBox` validates that fields contain data of a specific type, so care must be taken not to simply change contents of fields if :term:`CheckBox` compatibility of jobs is desired. :term:`PlainBox` does this validation on a per-accessor basis, so data in each field must make sense as defined by that field's accessor. There is no need, however, to declare field type beforehand. plainbox-0.5.3/docs/author/provider-namespaces.rst0000664000175000017500000001724212320461715022245 0ustar zygazyga00000000000000==================== Provider Name-Spaces ==================== Name-spaces are a new feature in the 0.5 release. They alter typically short job identifiers (names) and prefix them with a long and centrally-managed name space identifier to ensure that jobs created by different non-cooperating but well-behaving authors are uniquely distinguishable. Theoretical Considerations ========================== About name-spaces ----------------- Starting with the 0.5 release, PlainBox supports name-spaces for job identifiers. Each job has a partial identifier which is encoded by the ``id:`` or the legacy ``name:`` field in job definition files. That partial identifier is prefixed with the name-space of the provider that job belongs to. This creates unique names for all jobs. Rationale --------- Historically the :term:`Checkbox` project used to ship with a collection of job definitions for various testing tasks. Since there was only one organization controlling all jobs there was no problem of undesired clashes as all the involved developers could easily coordinate and resolve issues. With the rewrite that brought :term:`PlainBox` the core code and the pluggable data concept was becoming easier to work with and during the 0.4 development cycle we had decided to offer first-class support for external developers to work on their own test definitions separately of the Canonical Hardware Certification team that maintained the Checkbox project. The first concern that became obvious as we introduced test providers was that the name-space for all identifiers (job names at the time) was flat. As additional test authors started using providers and, devoid of the baggage of experience with legacy Checkbox, used natural, generic names for job definitions it became clear that in order to work each test author needs to have a private space where no clashes are possible. Name-Space Organization Guide ----------------------------- This section documents some guidelines for using name-spaces in practice. Provider Name Spaces and IQN ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PlainBox name-spaces are based on the iSCSI IQN concept. It is a simple extension of the usage of DNS names to create name-spaces. As DNS is externally managed anyone owning a domain name can use that domain name and have a high chance of avoiding clashes (as long as no party is maliciously trying to create clashing names). IQN extends that with a year code. Since DNS name ownership can and does change (people don't extend domains, companies change ownership, etc.) it was important to prevent people from having to own a domain forever to ensure name-space collisions are avoided. By prepending the four-digit year number when a domain was owned by a particular entity, anyone that ever owned a domain can create unique identifiers. Sole Developers ^^^^^^^^^^^^^^^ If you are a sole developer you need to own at least one domain name at least once. Assuming you owned example.com in 2014 you can create arbitrary many name-spaces starting with ``2014.example.com``. It is advisable to use at least one sub-domain if you know up front that the tests you are working on are for a particular, well-defined task. For example, you could use ``2014.example.com.project1``. Within that name-space you can create arbitrary many test providers (typically to organize your dependencies so that not everything needs to be installed at once). An example provider could be called ``2014.example.com.project1:acceptance-tests``. If you have two jobs inside that provider, say ``test-1`` and ``test-2`` they would be called (**surprise**) ``2014.example.com.project1::test-1`` and ``2014.example.com.project1::test-2``. Organizations and Companies ^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you are working as a part of an organization you should coordinate within that organization and use the same rules as the sole developer above. The primary difference is that you should really always use a sub-domain (so for example, ``2014.example.com.department``) to differentiate your tests from tests that may be independently developed by other people within the same company. It is recommended that managers of particular organizational units decide on the particular name-space to use. Important Notes ^^^^^^^^^^^^^^^ There are two important notes that apply to everyone: .. note:: Remember that provider namespace is **derived** from the provider name, the part after the colon, including the colon, is discarded. Providers are a way to organize tests together for dependencies. Namespaces are a way to organize tests regardless of dependencies. .. warning:: If you are reading this in 2015 and beyond, don't bump the year component. Unless you are the new owner of ``example.com`` and you want to differentiate your tests from whoever used to own *example.com* in 2014 you should **keep using the same year forever**. If you bump the year all the time you will create lots of small namespaces and you will most likely break other people that may run your tests with a fixed identifier hardcoded in a package name or script. Technical Details ================= Implicit Provider Name-Space ---------------------------- As mentioned above, the provider name-space is derived from the provider name:: 2014.com.example.project:acceptance ^----------------------^ | provider namespace ^---------------------------------^ | provider name The part of the provide name before the colon is used as the name-space. The colon is *not* a part of the name-space. The implicit name-space is used to construct non-partial job definition names as well as to implicitly prefix each pattern inside :term:`whitelists `. Using Explicit Name-Spaces -------------------------- Explicit name-spaces need to be used in two situations: 1. When running a single job by name, e.g.: ``plainbox run -i 2013.com.canonical.plainbox::stub/true``. This is required as any partial ID may silently change the job it resolves to and we didn't want to introduce that ambiguity. 2. When including a job from another name-space inside a whitelist, e.g.:: ~/2014.com.example.some:provider$ cat whitelists/cross.whitelist job-a job-b 2014\.com\.example\.other::job-a ~/2014.com.example.some:provider$ Here the whitelist names three jobs: * 2014.com.example.some::job-a * 2014.com.example.some::job-b * 2014.com.example.other::job-a Note that the dots are escaped with ``\`` to prevent them from matching arbitrary character. Custom Executables & Execution Environment ------------------------------------------ When PlainBox needs to execute a job with a shell command it constructs a special execution environment that includes additional executables specific to some providers. The execution environment is comprised of a directory with symbolic links to all the private executables of all of the provides that have the same name-space as the provider that owns the job that is to be executed. Names of custom executables should be treated identically as job identifiers, they share a private name-space (though separate from job names) and need to be managed in the same way. Limitations and Known Issues ============================ List of issues as of version 0.5 -------------------------------- * It is impossible to use a resource from one name-space in a job definition from another name-space. This restriction should be lifted with the introduction of additional syntax in subsequent versions. * It is impossible for a local job to generate a new job definition in a different name-space than the one of the local job itself. This limitation is likely not to be lifted. plainbox-0.5.3/docs/author/whitelists.rst0000664000175000017500000001127412320461715020474 0ustar zygazyga00000000000000======================== Checkbox Whitelist Files ======================== When creating a test suite for a particular purpose, it will be necessary to specify which tests to run and which order they should run in. For this purpose Checkbox provides the concept of Whitelists. Whitelist Format ================ A whitelist is a text file containing a line-seperated sequence of patterns, each representing one or more 'jobs'. These patterns are in the Python regular expression syntax. Comments may be included in the file by starting the line with '#'. Minimal Whitelist File ====================== In order to be useful a whitelist file needs to include a particular subset of jobs which provide Checkbox with all of the information it needs to run tests properly. These include jobs which attach hardware information and resource jobs which provide other jobs with information of the environment they a re running in (available hardware, available packages etc). To make this easy to do a single job exists whose purpose is to execute all of these other jobs:: miscellanea/submission-resources This should be included as the first job in any whitelist. Job Categories ============== In order to allow Checkbox to display jobs by category in the UI it is necessary to include a particular local job which itself generates jobs which belong to that category. This job will normally look like ``____`` where is the name of the job file which contains the job. This is indicated again by the prefix of the job (before the ``/`` in the job name). As a quick example, the job ``graphics/glxgears`` is contained in ``graphics.txt``. Therefore we should include the ``__graphics__`` job so that the ``graphics/glxgears`` job shows correctly under the category. The ``__graphics__`` job itself looks like:: name: __graphics__ plugin: local _description: Graphics tests command: shopt -s extglob cat $CHECKBOX_SHARE/jobs/graphics.txt?(.in) Checkbox will interpret this job as a request to display any job in ``graphics.txt`` (or its untranslated version ``graphics.txt.in``) under the heading shown in the description of this job (in this case 'Graphics tests'). Tutorial ======== To compound what we discussed before, below is a brief tutorial which walks through assembling a basic whitelist file. 1. First we need to create a file, let's name it tutorial.whitelist. Whitelists don't have to end with the .whitelist suffix but this is the convention used to help identify them. 2. We start by adding the one job that is required for all whitelists, as explained above in the section 'Minimal Whitelist File', so our whitelist file looks like:: miscellanea/submission-resources 3. Next we should choose some jobs that we want to run. This all depends on your specific use-case of course, but I've selected a few jobs that will help clearly illustrate more of the concepts involved in whitelists. These jobs will give us a whitelist file that looks like:: miscellanea/submission-resources cpu/clocktest ethernet/multi_nic ethernet/multi_nic_eth0 graphics/glxgears If we run this whitelist now then all of these jobs will be executed and a valid test submission will be created, but we can still improve it in a couple of ways. 4. The first way is by adding the necessary jobs to allow the Checkbox UI to group the jobs into specific categories. To do this we need to add a job with a name like ``____`` for each category. We have three categories in our whitelist file - cpu, ethernet and graphics. The category of the job is the prefix of the job name prior to the ``/``. So now our whitelist file looks like:: miscellanea/submission-resources __cpu__ __ethernet__ __graphics__ cpu/clocktest ethernet/multi_nic ethernet/multi_nic_eth0 graphics/glxgears Now the Checkbox UI will group the jobs into these categories. 5. Although it's not immediately apparent there is another problem with this whitelist. The ``ethernet/multi_nic`` tests are only able to include one job for the ethernet port 'eth0'. It would be better if we included all of the jobs generated by 'ethernet/multi_nic', no matter how many ethernet ports are present on the system under test. The best way to do this is to write the pattern so that it matches all of the possible job names. We can take advantage of the Python regular expression syntax and use the ``\d`` special character to match any decimal number. After doing this the whitelist file will look like this:: miscellanea/submission-resources __cpu__ __ethernet__ __graphics__ cpu/clocktest ethernet/multi_nic ethernet/multi_nic_eth\d graphics/glxgears plainbox-0.5.3/docs/author/tutorial.rst0000664000175000017500000001476612320461715020151 0ustar zygazyga00000000000000.. _tutorial: ======== Tutorial ======== To best illustrate how providers work, we will walk through creating one step-by-step. At the end of this tutorial you will have a provider which adds a new :term:`whitelist`, several new jobs and the scripts and test data supporting those jobs. Before starting this tutorial you will need to have a running version of :term:`PlainBox` installed. You can either install it from the repositories of Debian or its derivatives by running ``apt-get install plainbox``, or if you prefer to work with the source, see :doc:`Getting started with development <../dev/intro>`. There is also a Launchpad PPA with the very latest development build for Ubuntu, which is `ppa:checkbox-dev/ppa`. #. To get started we create an initial template for our provider by running ``plainbox startprovider 2014.com.example:myprovider``. #. This will create a directory called ``2014.com.example:myprovider`` where this year is of course the current year (2014 is when this document was written). Change to this directory and you will see that it contains:: /bin /data /integration-tests /jobs manage.py README.md /whitelists The ``manage.py`` script is a helper script for developing the provider. It provides a set of commands which assist in validating the correctness of the provider and making it ready for distribution. #. Let’s create some jobs first by changing to the jobs directory. It currently contains a file called category.txt which serves as an example of how jobs should look. Let’s delete it and instead create a file called ``myjobs.txt``. This can contain the following simple jobs:: plugin: shell name: myjobs/shell_command command: true _description: An example job that uses a command provided by the shell. plugin: shell name: myjobs/provider_command command: mycommand _description: An example job that uses a test command provided by this provider. At this point we can check that everything looks okay by running the command ``./manage.py info`` which displays some information about the provider. The output should be something like:: [Provider MetaData] name: 2014.com.example:myprovider version: 1.0 [Job Definitions] 'myjobs/builtin_command', from jobs/myjobs.txt:1-5 'myjobs/provider_command', from jobs/myjobs.txt:7-11 [White Lists] 'category', from whitelists/category.whitelist:1-1 This shows all three jobs from the job file we added - great! #. Next we need to change directory to ``bin`` to add the command used by the job ``myjobs/this_provider_command``. We create a file there called ``mycommand`` which contains the following text:: #!/bin/sh test `cat $CHECKBOX_SHARE/data/testfile` = 'expected' This needs to be executable to be used in the job command so we need to run ``chmod a+x mycommand`` to make it executable. You'll notice the command uses a file in ``$CHECKBOX_SHARE/data`` - we'll add this file to our provider next. #. Because the command we’re using uses a file that we expect to be located in ``$CHECKBOX_SHARE/data``, we need to add this file to our provider so that after the provider is installed this file is available in that location. First we need to change to the directory called ``data``, then as indicated by the contents of the script we wrote in the previous step, we need to create a file there called ``testfile`` with the contents:: expected As simple as that! #. Lastly we need to add a :term:`whitelist` that utilizes the jobs we created earlier. We need to change to the directory called ``whitelists``. As with the ``jobs`` directory there is already an example file there called ``category.whitelist``. We can delete that and add a file called ``mywhitelist.whitelist``. The contents should be:: myjobs/shell_command myjobs/provider_command The ``miscellanea/submission_resources`` and ``graphics/glxgears`` jobs are from the default provider that is part of PlainBox. We can check that everything is correct with the whitelist by running the ``./manage.py info`` command again. The output should be like:: [Provider MetaData] name: 2014.com.example:myprovider version: 1.0 [Job Definitions] 'myjobs/builtin_command', from jobs/myjobs.txt:1-5 'myjobs/provider_command', from jobs/myjobs.txt:7-11 [White Lists] 'mywhitelist', from whitelists/mywhitelist.whitelist:1-2 Our new :term:`whitelist` is listed there. #. Now we have a provider we need to test it to make sure everything is correct. The first thing to do is to install the provider so that it it visible to PlainBox. Run ``./manage.py develop`` then run ``plainbox dev list provider``. Your provider should be in the list that is displayed. #. We should also make sure the whole provider works end-to-end by running the :term:`whitelist` which it provides. Run the following command - ``plainbox run -w whitelists/mywhitelist.whitelist``. #. Assuming everything works okay, we can now package the provider for distribution. This involves creating a basic ``debian`` directory containing all of the files needed for packaging your provider. Create a directory called ``debian`` at the base of your provider, and then create the following files within it. ``compat``:: 9 ``control``:: Source: plainbox-myprovider Section: utils Priority: optional Maintainer: Brendan Donegan Standards-Version: 3.9.3 X-Python3-Version: >= 3.2 Build-Depends: debhelper (>= 9.2), lsb-release, python3 (>= 3.2), python3-plainbox Package: plainbox-myprovider Architecture: all Depends: plainbox-provider-checkbox Description: My whitelist provider A provider for PlainBox. ``rules``:: #!/usr/bin/make -f %: dh "$@" override_dh_auto_build: $(CURDIR)/manage.py install Note that the ``rules`` file must be executable. Make it so with ``chmod a+x rules``. Also, be careful with the indentation in the file - all indents must be actual TAB characters, not four spaces for example. ``source/format``:: 3.0 (native) Finally we should create a ``changelog`` file. The easiest way to do this is to run the command ``dch --create 'Initial release.'``. You'll need to edit the field ``PACKAGE`` to the name of your provider and the field ``VERSION`` to something like ``0.1``. plainbox-0.5.3/docs/author/index.rst0000664000175000017500000000324712320461715017405 0ustar zygazyga00000000000000======================= Job and Test Developers ======================= This chapter organizes information useful for developers creating and maintaining jobs and test scripts but not directly involved in changing the core. .. toctree:: tutorial.rst providers.rst jobs.rst whitelists.rst rfc822.rst .. warning:: This chapter is very much under development. The list of stories below is a guiding point for subsequent editions that will expand and provide real value. Personas and stories -------------------- * I'm a developer working on the checkbox project. With my *job developer* hat on: * how does plainbox help me do my job when... * ... I'm fixing a bug in existing jobs or scripts? * ... I'm working on a new job from scratch? * ... I'm working on private collection of jobs? * how can I check for syntax correctness, simple errors, etc? * how can I write automated tests for my jobs? * how can I run automated tests for my jobs? * how can I document my jobs so that others can understand and use them better? * I'm a developer working on a derivative of the checkbox project. I don't know much about plainbox. What should I be aware of and how can I use plainbox to do my job better. * (same as above but with different assumptions about initial familiarity with plainbox) * how can I find about all the existing jobs? * how can I find about all the existing resource jobs? Key topics ---------- .. note:: The list here should always be based on the personas and stories section above. * Introduction to plainbox * Where is plainbox getting the jobs from? * Creating and maintaining jobs with plainbox plainbox-0.5.3/docs/author/providers.rst0000664000175000017500000000100712320461715020303 0ustar zygazyga00000000000000========= Providers ========= Providers are a new feature introduced in PlainBox 0.5. They allow third party developers to produce and maintain private and public test collections. All :term:`jobs ` and :term:`whitelists ` are now loaded from a provider. This also affects the :term:`CheckBox` project that now produces a custom user interface and a number of providers for various purposes. .. toctree:: provider-template.rst provider-namespaces.rst provider-i18n.rst provider-files.rst plainbox-0.5.3/docs/author/provider-i18n.rst0000664000175000017500000001347112320461715020705 0ustar zygazyga00000000000000============================= Provider Internationalization ============================= About ----- :term:`PlainBox` offers a way for test authors to create localized testing experience. This allows test developers to mark certain strings as translatable and make them a part of existing internationalization and localization frameworks. Working with translations ------------------------- In practical terms, the summary and description of each job definition can now be translated to other languages. The provider management tool (``manage.py``) can now extract, merge and build translation catalogs that will be familiar to many developers. The job definition file format already supported this syntax but it was not supported by PlainBox before, if you are maintaining an existing provider the only new thing, for you, may be the fact that a job name (summary) is now also translatable and that there are dedicated tools that make the process easier. Looking at an example job definition from the :doc:`provider-template`:: id: examples/trivial/always-pass _summary: A test that always passes _description: A test that always passes . This simple test will always succeed, assuming your platform has a 'true' command that returns 0. plugin: shell estimated_duration: 0.01 command: true The summary and description fields are prefixed with ``_`` which allows their value to be collected to a translation catalog. Updating Translations --------------------- Whenever you edit those fields you should run ``./manage.py i18n``. This command will perform several steps: * All files mentioned in ``po/POTFILES.in`` will be scanned and translatable messages will be extracted. * The ``po/*.pot`` file will be rewritten based on all of the extracted strings. * The ``po/*.po`` files will be merged with the new template. New strings may be added, similar but changed strings will be marked as *fuzzy* so that a human translator can ensure they are okay (and typically make small changes) by removing the fuzzy tag. Unused strings will be commented out but not removed. * Each ``po/*.po`` file will be compiled to a ``build/mo/*/LC_MESSAGES/*.mo`` file. Those files are what is actually used at runtime. If you ran ``manage.py develop`` on your provider you should now see translated values being available. Each of those actions can be individually disabled. See ``manage.py i18n --help`` for details. This may be something you need to do in your build system. Translating Job Definitions --------------------------- After generating the template file at least once you can translate all of the job definitions into other languages. There are many tools available to make this task easier. To get started just copy the ``.pot`` file to ``LL.po`` where LL code of the language you want to translate to and start editing. Run ``manage.py i18n`` often to spot syntax issues and get updated values as you typically will edit code and translations at the same time. Make sure that your editor can detect when a file is being overwritten and offer to refresh the edited copy, ``manage.py i18n`` almost always changes the layout of the file. Once you commit the template file to your version control then you can use tooling support offered by code hosting sites, such as Launchpad.net, to allow the community to contribute translations. You can also seek paid services that offer professional translations on a deadline. In both cases you should end up with additional ``.po`` files in your repository. .. note:: If English is not your first language it's a very good idea to try to keep all of the strings translated to your language of choice and use the translated version daily. This process allows you to think about the English text, correct confusing statements, reword sentences and think about the terminology used throughout your tests. It will also show missing strings (those that are not marked for translation) or missing translator comments. Remember: If you, the author of the test, cannot reasonably translate your test definitions into your native language, how can anyone else do it? Translating Test Programs ------------------------- Test definitions are not the whole story. It is probably even more important to translate various testing programs or utilities that your test definitions depend on. Standard development practices apply, you should make properly translated testing applications. It is advisable to reuse the same gettext domain as your test definitions so that you can reasonably measure how much of your test definition content is available in a given language. For third party applications you may consider ensuring that they can be localized and translated, file bugs or contribute patches, including translations, for the languages that you care about. Working with Version Control Systems ------------------------------------ It is advisable to separate commits that change the original string to the commits that update the translation template file and individual translation catalogues. The latter tend to be very long and almost impossible for anyone to review without specialized tools. Keep in mind that changes to actual translations that are *not* caused by updates to the template file should be separated as well. This will allow reviewers to actually look at the changes in text (assuming that more than one person on the team knows that language). Lastly you should never commit any of the build/ files (especially the generated, compiled ``.mo`` files) into the version control system. Further Reading --------------- You may find those links handy: * https://help.launchpad.net/Translations/YourProject * https://help.launchpad.net/Translations/StartingToTranslate * https://www.transifex.com/ * https://www.gnu.org/software/gettext/manual/gettext.html plainbox-0.5.3/docs/author/provider-template.rst0000664000175000017500000003103312320461715021733 0ustar zygazyga00000000000000================= Provider Template ================= PlainBox comes with a built-in template for a new provider. You can use it to quickly start working on your own collection of tests. This is not the :doc:`tutorial`, mind you, this is the actual template. It is here though as a additional learning resource. To create this template locally, for easier editing / experiments, just run:: plainbox startprovider 2013.com.example:template Provider Template Layout ======================== The following files and directories are generated:: 2013.com.example:template/ ├── bin │   ├── custom-executable │   └── README.md ├── data │   ├── example.dat │   └── README.md ├── jobs │   ├── examples-intermediate.txt │   ├── examples-normal.txt │   └── examples-trivial.txt ├── manage.py ├── po │   └── POTFILES.in ├── README.md └── whitelists ├── normal.whitelist └── trivial.whitelist Generated Content ================= README.md --------- :: Skeleton for a new PlainBox provider ==================================== This is a skeleton PlainBox provider that was generated using ``plainbox startprovider ...``. It is just the starting point, there is nothing here of value to you yet. If you know how this works then just remove this file along with other example content and start working on your new tests, otherwise, read on. Inside the ``jobs/`` directory you will find several files that define a number of "jobs" (more than one job per file actually). A job, in PlainBox parlance, is the smallest piece of executable test code. Each job has a name and a number of other attributes. Jobs can be arranged in lists, test plans if you will that are known as "whitelists". Those are defined in the ``whitelists/`` directory, this time one per file. You can create as many whitelists as you need, referring to arbitrary subsets of your jobs. Then there are the ``bin/`` and ``data/`` directories. Those are entirely for custom content you may need. You can put arbitrary executables in ``bin/``, and those will be available to your job definitions. Similarly you can keep any data your jobs might need inside the ``data/`` directory. Referring to that directory at runtime is a little bit trickier but one of the examples generated in this skeleton shows how to do that. Lastly there is the ``manage.py`` script. It requires python3 to run. It depends on the python3-plainbox Debian package (or just the PlainBox 0.5 upstream package) installed. This script can automate and simplify a number of tasks that you will want to do as a test developer. Run ``./manage.py --help`` to see what sub-commands are available. You can additionally pass ``--help`` to each sub command, for example ``./manage.py install --help`` will print the description of the install command and all the arguments it supports. That is it for now. You should check out the official documentation for test authors at http://plainbox.readthedocs.org/en/latest/author/index.html If you find bugs or would like to see additional features developed you can file bugs on the parent project page: https://bugs.launchpad.net/checkbox/+filebug manage.py --------- :: #!/usr/bin/env python3 from plainbox.provider_manager import setup, N_ # You can inject other stuff here but please don't go overboard. # # In particular, if you need comprehensive compilation support to get # your bin/ populated then please try to discuss that with us in the # upstream project IRC channel #checkbox on irc.freenode.net. # NOTE: one thing that you could do here, that makes a lot of sense, # is to compute version somehow. This may vary depending on the # context of your provider. Future version of PlainBox will offer git, # bzr and mercurial integration using the versiontools library # (optional) setup( name='2013.com.example:template', version="1.0", description=N_("The 2013.com.example:template provider"), gettext_domain="2013_com_example_template", ) bin/README.md ------------- :: Container for arbitrary executables needed by tests =================================================== You can execute files from this directory without any additional setup, they are automatically added to the PATH of the executing job examples/bin-access for details. You should delete this file as anything here is automatically distributed in the source tarball or installed. bin/custom-executable --------------------- :: #!/bin/sh echo "Custom script executed" data/README.md -------------- :: Container for arbitrary data needed by tests ============================================ You can refer to files from this directory, in your scripts, using the $PLAINBOX\_PROVIDER\_DATA environment variable. See the job examples/data-access for details. You should delete this file as anything here is automatically distributed in the source tarball or installed. data/example.dat ---------------- :: DATA examples-trivial.txt -------------------- :: # Two example jobs, both using the 'shell' "plugin". See the # documentation for examples of other test cases including # interactive tests, "resource" tests and a few other types. # # The summary and description keys are prefixed with _ # to indicate that they can be translated. # # http://plainbox.rtfd.org/en/latest/author/jobs.html id: examples/trivial/always-pass _summary: A test that always passes _description: A test that always passes . This simple test will always succeed, assuming your platform has a 'true' command that returns 0. plugin: shell estimated_duration: 0.01 command: true id: examples/trivial/always-fail _summary: A test that always fails _description: A test that always fails . This simple test will always fail, assuming your platform has a 'false' command that returns 1. plugin: shell estimated_duration: 0.01 command: false jobs/examples-normal.txt ------------------------ :: id: examples/normal/data-access _summary: Example job using provider-specific data _description: This test illustrates that custom data can be accessed using the $PLAINBOX_PROVIDER_DATA environment variable. It points to the absolute path of the data directory of the provider. plugin: shell estimated_duration: 0.01 command: test "$(cat $PLAINBOX_PROVIDER_DATA/example.dat)" = "DATA" id: examples/normal/bin-access _summary: Example job using provider-specific executable _description: This test illustrates that custom executables can be accessed directly, if placed in the bin/ directory of the provider. . Those are made available in the PATH, at runtime. This job succeeds because the custom-executable script returns 0. plugin: shell estimated_duration: 0.01 command: custom-executable id: examples/normal/info-collection _summary: Example job attaching command output to results _description: This test illustrates that output of a job may be collected for analysis using the plugin type ``attachment`` . Attachment jobs may fail and behave almost the same as shell jobs (exit status decides their outcome) . The output is saved but, depending on how tests are how results are handled, may not be displayed. You can save attachments using, for example, the JSON test result exporter, like this: ``plainbox run -f json -p with-attachments`` plugin: attachment estimated_duration: 0.01 command: cat /proc/cpuinfo jobs/examples-intermediate.txt ------------------------------ :: id: examples/intermediate/dependency-target _summary: Example job that some other job depends on _description: This test illustrates how a job can be a dependency of another job. The dependency graph can be arbitrarily complex, it just cannot have any cycles. PlainBox will discover various problems related to dependencies, including cyclic dependencies and jobs that are depended upon, without a definition. . This job simply "passes" all the time but realistic examples may include multi-stage manipulation (detect a device, set it up, perform some automatic and some manual tests and summarise the results, for example) plugin: shell command: true estimated_duration: 0.01 id: examples/intermediate/dependency-source _summary: Example job that depends on another job _description: This test illustrates how a job can depend on another job. . If you run this example unmodified (selecting just this job) you will see that PlainBox will automatically run the 'dependency-target' job before attempting to run this one. This will happen, even if you explicitly order the jobs incorrectly. . If you edit the 'dependency-target' job to run 'false' instead of 'true' and rerun this job you will see that it automatically fails without being started. This is because of a rule which automatically fails any job that has a failed dependency. plugin: shell command: true depends: examples/intermediate/dependency-target estimated_duration: 0.01 # TODO: this should be possible: # name: examples/intermediate/detected-device # resource-object: examples.intermediate.detected_device id: detected_device _summary: Example job producing structured resource data _description: This job illustrates that not all jobs are designed to be a "test". PlainBox has a system of the so-called resources. . Technically a resource is a list of records with named fields. Any program that prints RFC822-like output can be considered a valid resource. Here a hypothetical resource program has detected (fake) two devices which are represented as records with the field ``device``. . Resources are ran on demand, their output parsed and stored. All resources are made available to jobs that use resource programs. See the next job for an example of how that can be useful. plugin: resource command: echo "type: WEBCAM" echo "" echo "type: WIFI" estimated_duration: 0.03 id: examples/intermediate/test-webcam _summary: Example job depending on structured resource _description: This test illustrates two concepts. It is the first test that uses manual jobs (totally not automated test type). It also uses a resource dependency, via a resource program, to limit this test only on a machine that has a hypothetical webcam. . If you run this example unmodified (selecting just this job) you will see that PlainBox will automatically run the 'detected_device' job before attempting to run this one. This will happen, even if you explicitly order the jobs incorrectly. . If you edit the resource job to not print information about the hypothetical WEBCAM device (just remove that line) and rerun this job you will see that it automatically gets skipped without being started. This is because of a rule which automatically skips any job that has unmet requirement. . Resources are documented in detail here: http://plainbox.rtfd.org/en/latest/search.html?q=resources Please look at the ``Resources`` chapter there (it may move so a search link is more reliable) plugin: manual requires: detected_device.type == "WEBCAM" estimated_duration: 30 po/PORFILES.in -------------- :: [encoding: UTF-8] [type: gettext/rfc822deb] jobs/examples-trivial.txt [type: gettext/rfc822deb] jobs/examples-normal.txt [type: gettext/rfc822deb] jobs/examples-intermediate.txt manage.py whitelists/trivial.whitelist ---------------------------- :: # select two trivial jobs by directly selecting their names examples/trivial/always-pass examples/trivial/always-fail whitelists/normal.whitelist --------------------------- :: # use regular expression to select all normal jobs examples/normal/.* plainbox-0.5.3/docs/author/provider-files.rst0000664000175000017500000000620512320461715021225 0ustar zygazyga00000000000000========================= Provider Definition Files ========================= Provider Definition Files are how :term:`PlainBox` learns about :term:`providers `. .. warning:: Normally provider definition files are generated automatically by manage.py. They are generated both by ``manage.py install`` and ``manage.py develop``. It should not be necessary to create such a file by hand. Lookup Directories ================== PlainBox discovers and loads providers based on '.provider' files placed in one of the following three directories: * ``/usr/local/share/plainbox-providers-1`` * ``/usr/share/plainbox-providers-1`` * ``$XDG_DATA_HOME/plainbox-providers-1`` typically ``$HOME/.local/share/plainbox-providers-1`` File Structure ============== Each provider file has similar structure based on the well-known ``.ini`` file syntax. Square braces denote sections, each of which contains arbitrary key-value entries. Currently only one section is used, *PlainBox Provider*. The [PlainBox Provider] Section ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following keys may be defined in this section: name The format for the provider name is an RFC3720 IQN. This is specified in :rfc:`3720#section-3.2.6.3.1`. It is used by PlainBox to uniquely identify the provider. version The version of this provider. It must be a sequence of decimal numbers with arbitrary many dots separating particular parts of the version string. description A short description of the provider. This value can be localized. jobs_dir Absolute pathname to a directory with :term:`job definitions ` as individual ``.txt`` files using the :doc:`job file format `. whitelists_dir Absolute pathname to a directory with :term:`whitelists ` as individual ``.whitelist`` files using the :doc:`whitelist format `. bin_dir Absolute pathname to a directory with additional executables required by any of the job definitions. data_dir Absolute pathname to a directory with additional data files required by any of the job definitions. locale_dir Absolute pathname to a directory with translation catalogues. The value should be suitable for :py:func:`bindtextdomain()`. This should not be specified, unless in special circumstances. location Absolute pathname to a *base* directory that can be used to derive all of the other directories. If defined, any of the dir variables mentioned above gets an implicit default values: ================ ===================== Variable Default Value ================ ===================== jobs_dir $location/jobs whitelists_dir $location/whitelists bin_dir $location/bin data_dir $location/data locale_dir $location/locale locale_dir (alt) $location/build/mo ================ ===================== Example ======= An example provider definition file looks like this:: [PlainBox Provider] name = 2013.com.canonical:myprovider version = 1.0 description = My Plainbox test provider location = /opt/2013.com.canonical.myprovider/ plainbox-0.5.3/docs/install.rst0000664000175000017500000000162012320461715016433 0ustar zygazyga00000000000000Installation ============ Debian Jessie and Ubuntu 14.04 ------------------------------ You can install :term:`PlainBox` straight from the archive: .. code-block:: bash $ sudo apt-get install plainbox Ubuntu (Development PPA) ------------------------ PlainBox can be installed from a :abbr:`PPA (Personal Package Archive)` on Ubuntu Precise (12.04) or newer. .. code-block:: bash $ sudo add-apt-repository ppa:checkbox-dev/ppa && sudo apt-get update && sudo apt-get install plainbox From python package index ------------------------- PlainBox can be installed from :abbr:`pypi (python package index)`. Keep in mind that you will need python3 version of ``pip`` and you will need to have ``python3-lxml`` installed (package names may differ depending on your platform): .. code-block:: bash $ pip3 install plainbox We recommend using virtualenv or installing with the ``--user`` option. plainbox-0.5.3/docs/ref/0000775000175000017500000000000012320462103015000 5ustar zygazyga00000000000000plainbox-0.5.3/docs/ref/plainbox.impl.session.state.rst0000664000175000017500000000017612320461715023123 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.session.state .. automodule:: plainbox.impl.session.state :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.testing_utils.resource.rst0000664000175000017500000000020612320461715024076 0ustar zygazyga00000000000000.. currentmodule:: plainbox.testing_utils.resource .. automodule:: plainbox.testing_utils.resource :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.commands.analyze.rst0000664000175000017500000000020412320461715023554 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands.analyze .. automodule:: plainbox.impl.commands.analyze :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.resource.rst0000664000175000017500000000016412320461715022145 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.resource .. automodule:: plainbox.impl.resource :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.testing_utils.rst0000664000175000017500000000016412320461715022253 0ustar zygazyga00000000000000.. currentmodule:: plainbox.testing_utils .. automodule:: plainbox.testing_utils :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.secure.launcher1.rst0000664000175000017500000000020412320461715023460 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.secure.launcher1 .. automodule:: plainbox.impl.secure.launcher1 :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.clitools.rst0000664000175000017500000000016412320461715022146 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.clitools .. automodule:: plainbox.impl.clitools :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.integration_tests.rst0000664000175000017500000000020612320461715024060 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.integration_tests .. automodule:: plainbox.impl.integration_tests :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.transport.rst0000664000175000017500000000016612320461715022354 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.transport .. automodule:: plainbox.impl.transport :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.providers.rst0000664000175000017500000000016612320461715022335 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.providers .. automodule:: plainbox.impl.providers :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.signal.rst0000664000175000017500000000016012320461715021567 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.signal .. automodule:: plainbox.impl.signal :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.secure.rfc822.rst0000664000175000017500000000017612320461715022614 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.secure.rfc822 .. automodule:: plainbox.impl.secure.rfc822 :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.public.rst0000664000175000017500000000014612320461715020634 0ustar zygazyga00000000000000.. currentmodule:: plainbox.public .. automodule:: plainbox.public :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.applogic.rst0000664000175000017500000000016412320461715022114 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.applogic .. automodule:: plainbox.impl.applogic :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.commands.special.rst0000664000175000017500000000020412320461715023531 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands.special .. automodule:: plainbox.impl.commands.special :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.session.rst0000664000175000017500000000016212320461715021777 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.session .. automodule:: plainbox.impl.session :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.commands.parse.rst0000664000175000017500000000020012320461715023217 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands.parse .. automodule:: plainbox.impl.commands.parse :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.box.rst0000664000175000017500000000015212320461715021103 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.box .. automodule:: plainbox.impl.box :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.commands.rst0000664000175000017500000000016412320461715022117 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands .. automodule:: plainbox.impl.commands :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.depmgr.rst0000664000175000017500000000016012320461715021570 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.depmgr .. automodule:: plainbox.impl.depmgr :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.rst0000664000175000017500000000014212320461715020313 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl .. automodule:: plainbox.impl :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.exporter.json.rst0000664000175000017500000000017612320461715023141 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.exporter.json .. automodule:: plainbox.impl.exporter.json :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.abc.rst0000664000175000017500000000014012320461715020075 0ustar zygazyga00000000000000.. currentmodule:: plainbox.abc .. automodule:: plainbox.abc :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.exporter.text.rst0000664000175000017500000000017612320461715023154 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.exporter.text .. automodule:: plainbox.impl.exporter.text :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.color.rst0000664000175000017500000000015612320461715021435 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.color .. automodule:: plainbox.impl.color :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.logging.rst0000664000175000017500000000016212320461715021742 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.logging .. automodule:: plainbox.impl.logging :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.exporter.xml.rst0000664000175000017500000000017412320461715022766 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.exporter.xml .. automodule:: plainbox.impl.exporter.xml :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.secure.providers.v1.rst0000664000175000017500000000021212320461715024137 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.secure.providers.v1 .. automodule:: plainbox.impl.secure.providers.v1 :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.secure.rst0000664000175000017500000000016012320461715021600 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.secure .. automodule:: plainbox.impl.secure :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.secure.job.rst0000664000175000017500000000017012320461715022352 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.secure.job .. automodule:: plainbox.impl.secure.job :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.session.suspend.rst0000664000175000017500000000020212320461715023452 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.session.suspend .. automodule:: plainbox.impl.session.suspend :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.session.resume.rst0000664000175000017500000000020012320461715023267 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.session.resume .. automodule:: plainbox.impl.session.resume :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.vendor.textland.rst0000664000175000017500000000076212320461715022501 0ustar zygazyga00000000000000.. currentmodule:: plainbox.vendor.textland :mod:`plainbox.vendor.textland` -- TextLand =========================================== This package contains a bundled copy of the upstream TextLand project. Over time it will be updated with subsequent releases. Eventually it will be replaced by a dependency on API-stable TextLand release. .. seealso:: TextLand upstream project: https://github.com/zyga/textland/ .. automodule:: plainbox.vendor.textland :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.providers.special.rst0000664000175000017500000000020612320461715023747 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.providers.special .. automodule:: plainbox.impl.providers.special :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.secure.config.rst0000664000175000017500000000017612320461715023053 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.secure.config .. automodule:: plainbox.impl.secure.config :members: :undoc-members: plainbox-0.5.3/docs/ref/index.rst0000664000175000017500000000023112320461715016645 0ustar zygazyga00000000000000.. _apiref: =============== API Reference =============== :Release: |version| :Date: |today| .. toctree:: :maxdepth: 1 :glob: plainbox* plainbox-0.5.3/docs/ref/plainbox.impl.commands.check_config.rst0000664000175000017500000000021612320461715024516 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands.check_config .. automodule:: plainbox.impl.commands.check_config :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.runner.rst0000664000175000017500000000016012320461715021623 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.runner .. automodule:: plainbox.impl.runner :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.vendor.rst0000664000175000017500000000014612320461715020653 0ustar zygazyga00000000000000.. currentmodule:: plainbox.vendor .. automodule:: plainbox.vendor :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.exporter.rst0000664000175000017500000000016412320461715022166 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.exporter .. automodule:: plainbox.impl.exporter :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.commands.list.rst0000664000175000017500000000017612320461715023074 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands.list .. automodule:: plainbox.impl.commands.list :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.result.rst0000664000175000017500000000016012320461715021630 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.result .. automodule:: plainbox.impl.result :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.commands.dev.rst0000664000175000017500000000017412320461715022675 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands.dev .. automodule:: plainbox.impl.commands.dev :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.commands.script.rst0000664000175000017500000000020212320461715023413 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands.script .. automodule:: plainbox.impl.commands.script :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.testing_utils.rst0000664000175000017500000000017612320461715023216 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.testing_utils .. automodule:: plainbox.impl.testing_utils :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.session.jobs.rst0000664000175000017500000000017412320461715022736 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.session.jobs .. automodule:: plainbox.impl.session.jobs :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.session.storage.rst0000664000175000017500000000020212320461715023435 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.session.storage .. automodule:: plainbox.impl.session.storage :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.secure.plugins.rst0000664000175000017500000000020012320461715023253 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.secure.plugins .. automodule:: plainbox.impl.secure.plugins :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.commands.run.rst0000664000175000017500000000017412320461715022723 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands.run .. automodule:: plainbox.impl.commands.run :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.testing_utils.io.rst0000664000175000017500000000017212320461715022660 0ustar zygazyga00000000000000.. currentmodule:: plainbox.testing_utils.io .. automodule:: plainbox.testing_utils.io :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.ctrl.rst0000664000175000017500000000015412320461715021261 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.ctrl .. automodule:: plainbox.impl.ctrl :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.parsers.rst0000664000175000017500000000016212320461715021773 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.parsers .. automodule:: plainbox.impl.parsers :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.testing_utils.cwd.rst0000664000175000017500000000017412320461715023030 0ustar zygazyga00000000000000.. currentmodule:: plainbox.testing_utils.cwd .. automodule:: plainbox.testing_utils.cwd :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.session.legacy.rst0000664000175000017500000000020012320461715023233 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.session.legacy .. automodule:: plainbox.impl.session.legacy :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.commands.crash.rst0000664000175000017500000000020012320461715023205 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands.crash .. automodule:: plainbox.impl.commands.crash :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.commands.checkbox.rst0000664000175000017500000000020612320461715023701 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands.checkbox .. automodule:: plainbox.impl.commands.checkbox :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.secure.qualifiers.rst0000664000175000017500000000020612320461715023744 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.secure.qualifiers .. automodule:: plainbox.impl.secure.qualifiers :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.symbol.rst0000664000175000017500000000016012320461715021617 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.symbol .. automodule:: plainbox.impl.symbol :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.buildsystems.rst0000664000175000017500000000017412320461715023046 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.buildsystems .. automodule:: plainbox.impl.buildsystems :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.secure.providers.rst0000664000175000017500000000020412320461715023613 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.secure.providers .. automodule:: plainbox.impl.secure.providers :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.highlevel.rst0000664000175000017500000000016612320461715022267 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.highlevel .. automodule:: plainbox.impl.highlevel :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.commands.selftest.rst0000664000175000017500000000020612320461715023744 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands.selftest .. automodule:: plainbox.impl.commands.selftest :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.job.rst0000664000175000017500000000015212320461715021065 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.job .. automodule:: plainbox.impl.job :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.providers.v1.rst0000664000175000017500000000017412320461715022661 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.providers.v1 .. automodule:: plainbox.impl.providers.v1 :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.testing_utils.testcases.rst0000664000175000017500000000021012320461715024240 0ustar zygazyga00000000000000.. currentmodule:: plainbox.testing_utils.testcases .. automodule:: plainbox.testing_utils.testcases :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.session.manager.rst0000664000175000017500000000020212320461715023403 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.session.manager .. automodule:: plainbox.impl.session.manager :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.exporter.rfc822.rst0000664000175000017500000000020212320461715023164 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.exporter.rfc822 .. automodule:: plainbox.impl.exporter.rfc822 :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.rst0000664000175000017500000000013012320461715017350 0ustar zygazyga00000000000000.. currentmodule:: plainbox .. automodule:: plainbox :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.exporter.html.rst0000664000175000017500000000017612320461715023134 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.exporter.html .. automodule:: plainbox.impl.exporter.html :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.provider_manager.rst0000664000175000017500000000017212320461715022701 0ustar zygazyga00000000000000.. currentmodule:: plainbox.provider_manager .. automodule:: plainbox.provider_manager :members: :undoc-members: plainbox-0.5.3/docs/ref/plainbox.impl.commands.logtest.rst0000664000175000017500000000020412320461715023572 0ustar zygazyga00000000000000.. currentmodule:: plainbox.impl.commands.logtest .. automodule:: plainbox.impl.commands.logtest :members: :undoc-members: plainbox-0.5.3/docs/usage.rst0000664000175000017500000000643112320461715016076 0ustar zygazyga00000000000000.. _usage: Basic Usage =========== Currently :term:`PlainBox` has no graphical user interface. To use it you need to use the command line. PlainBox has built-in help system so running :command:`plainbox run --help` will give you instant information about all the various arguments and options that are available. This document is not intended to replace that. Running a specific job ^^^^^^^^^^^^^^^^^^^^^^ Basically there is just one command that does everything we can do so far, that is :command:`plainbox run`. It has a number of options that tell it which :term:`job` to run and what to do with results. To run a specific :term:`job` pass it to the ``--include-pattern`` or ``-i`` option. For example, to run one of the internal "smoke" test job: .. code-block:: bash $ plainbox run -i 2013.com.canonical.plainbox::stub/true .. note:: The option ``-i`` can be provided any number of times. Running jobs related to a specific area ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PlainBox has no concept of job categories but you can simulate that by running all jobs that follow a specific naming pattern. For example, to run all of the USB tests you can run the following command: .. code-block:: bash $ plainbox run -i 'usb/.*' To list all known jobs run: .. code-block:: bash plainbox special --list-jobs Running a white list ^^^^^^^^^^^^^^^^^^^^ To run a :term:`whitelist` pass the ``--whitelist`` or ``-w`` option. For example, to run the default white list run: .. code-block:: bash $ plainbox run -w /path/to/some/file.whitelist Saving test results ^^^^^^^^^^^^^^^^^^^ Anything that PlainBox captures and stores during test execution can be exported to a file using the exporter system. The two most commonly used exporters are JSON (versatile and general) and XML (for internal Canonical use). JSON Exporter ------------- To generate a JSON file with all of the internally available data (for storage, processing or other automation) you will need to pass three additional arguments to ``plainbox run``: #. ``--output-format=json`` #. ``--output-options=OPTION1,OPTION2`` where *OPTIONx* are option names. #. ``--output-file=NAME`` where *NAME* is a file name. Pass ``?`` to ``--output-options`` for a list of available options. Multiple exporter options can be specified, separated with commas. .. code-block:: bash $ plainbox run --whitelist=/path/to/some/file.whitelist --output-format=json --output-file=results.json XML Exporter ------------ To generate an XML file that can be sent to the :term:`certification website` you need to pass two additional arguments to ``plainbox run``: #. ``--output-format=xml`` #. ``--output-file=NAME`` where *NAME* is a file name For example, to get the default certification tests ready to be submitted run this command: .. code-block:: bash $ plainbox run --whitelist=/path/to/some/file.whitelist --output-format=xml --output-file=submission.xml Other Exporters --------------- You can discover the full list of known exporters at runtime, by passing ``?`` to ``--output-format``. Custom Exporters ---------------- Exporters can be provided by third party packages. Exporters are very simple to write. If you don't want to transform JSON to your preferred format, you can copy the json exporter and use it as template for writing your own. plainbox-0.5.3/setup.cfg0000664000175000017500000000017712320462103015122 0ustar zygazyga00000000000000[upload] sign = True [upload_docs] upload-dir = build/sphinx/html [egg_info] tag_build = tag_svn_revision = 0 tag_date = 0 plainbox-0.5.3/MANIFEST.in0000664000175000017500000000131112320461715015036 0ustar zygazyga00000000000000global-include *.po *.pot POTFILES.in global-include *.sh global-include COPYING LICENSE global-include README* global-include Vagrantfile include plainbox/impl/providers/stubbox/bin/* include plainbox/impl/providers/stubbox/jobs/*.txt.in include plainbox/impl/providers/stubbox/manage.py include plainbox/impl/providers/stubbox/whitelists/*.whitelist include plainbox/vendor/argparse/py*-argparse.py recursive-exclude daily-package-testing * recursive-exclude plainbox/vendor/textland-project COPYING README.md recursive-include contrib *.policy recursive-include docs *.rst *.py *.html *.conf recursive-include plainbox/data *.rng *.xsl *.png *.css *.js recursive-include plainbox/test-data *.json *.xml *.html plainbox-0.5.3/PKG-INFO0000664000175000017500000000553112320462103014375 0ustar zygazyga00000000000000Metadata-Version: 1.0 Name: plainbox Version: 0.5.3 Summary: Simple replacement for checkbox Home-page: https://launchpad.net/checkbox/ Author: Zygmunt Krynicki Author-email: zygmunt.krynicki@canonical.com License: GPLv3 Description: PlainBox ======== PlainBox is a toolkit consisting of python3 library, development tools, documentation and examples. It is targeted at developers working on testing or certification applications and authors creating tests for such applications. PlainBox can be used to both create simple and comprehensive test tools as well as to develop and execute test jobs and test scenarios. It was created as a refined and rewritten core of the CheckBox project. It has a well tested and documented core, small but active development community and a collection of associated projects that use it as a lower-level engine/back-end library. PlainBox has a novel approach to discovering (and probing) hardware and software that is extensible and not hardwired into the system. It allows test developers to express association between a particular test and the hardware, software and configuration constraints that must be met for the test to execute meaningfully. This feature, along with pluggable test definitions, makes PlainBox flexible and applicable to many diverse testing situations, ranging from mobile phones, traditional desktop computers, servers and up to testing "cloud" installations. External Documentation Links ============================ * `Using PlainBox `_ * `Hacking on PlainBox `_ * `Testing PlainBox `_ Known Issues ============ `List of bugs tagged with 'plainbox' on lp:checkbox `_ Platform: UNKNOWN plainbox-0.5.3/plainbox.egg-info/0000775000175000017500000000000012320462103016602 5ustar zygazyga00000000000000plainbox-0.5.3/plainbox.egg-info/entry_points.txt0000664000175000017500000000126412320462102022102 0ustar zygazyga00000000000000[plainbox.buildsystem] autotools = plainbox.impl.buildsystems:AutotoolsBuildSystem go = plainbox.impl.buildsystems:GoBuildSystem make = plainbox.impl.buildsystems:MakefileBuildSystem [plainbox.exporter] text = plainbox.impl.exporter.text:TextSessionStateExporter html = plainbox.impl.exporter.html:HTMLSessionStateExporter rfc822 = plainbox.impl.exporter.rfc822:RFC822SessionStateExporter xlsx = plainbox.impl.exporter.xlsx:XLSXSessionStateExporter [xlsx] xml = plainbox.impl.exporter.xml:XMLSessionStateExporter json = plainbox.impl.exporter.json:JSONSessionStateExporter [console_scripts] plainbox = plainbox.public:main plainbox-trusted-launcher-1 = plainbox.impl.secure.launcher1:main plainbox-0.5.3/plainbox.egg-info/PKG-INFO0000664000175000017500000000553112320462102017702 0ustar zygazyga00000000000000Metadata-Version: 1.0 Name: plainbox Version: 0.5.3 Summary: Simple replacement for checkbox Home-page: https://launchpad.net/checkbox/ Author: Zygmunt Krynicki Author-email: zygmunt.krynicki@canonical.com License: GPLv3 Description: PlainBox ======== PlainBox is a toolkit consisting of python3 library, development tools, documentation and examples. It is targeted at developers working on testing or certification applications and authors creating tests for such applications. PlainBox can be used to both create simple and comprehensive test tools as well as to develop and execute test jobs and test scenarios. It was created as a refined and rewritten core of the CheckBox project. It has a well tested and documented core, small but active development community and a collection of associated projects that use it as a lower-level engine/back-end library. PlainBox has a novel approach to discovering (and probing) hardware and software that is extensible and not hardwired into the system. It allows test developers to express association between a particular test and the hardware, software and configuration constraints that must be met for the test to execute meaningfully. This feature, along with pluggable test definitions, makes PlainBox flexible and applicable to many diverse testing situations, ranging from mobile phones, traditional desktop computers, servers and up to testing "cloud" installations. External Documentation Links ============================ * `Using PlainBox `_ * `Hacking on PlainBox `_ * `Testing PlainBox `_ Known Issues ============ `List of bugs tagged with 'plainbox' on lp:checkbox `_ Platform: UNKNOWN plainbox-0.5.3/plainbox.egg-info/requires.txt0000664000175000017500000000004512320462102021200 0ustar zygazyga00000000000000lxml >= 2.3 [XLSX] XlsxWriter >= 0.3plainbox-0.5.3/plainbox.egg-info/dependency_links.txt0000664000175000017500000000000112320462102022647 0ustar zygazyga00000000000000 plainbox-0.5.3/plainbox.egg-info/top_level.txt0000664000175000017500000000001112320462102021323 0ustar zygazyga00000000000000plainbox plainbox-0.5.3/plainbox.egg-info/SOURCES.txt0000664000175000017500000002451512320462103020475 0ustar zygazyga00000000000000COPYING MANIFEST.in README.rst mk-interesting-graphs.sh setup.cfg setup.py contrib/policykit_auth_admin_keep/org.freedesktop.policykit.pkexec.run-plainbox-job.policy contrib/policykit_yes/org.freedesktop.policykit.pkexec.run-plainbox-job.policy docs/changelog.rst docs/conf.py docs/glossary.rst docs/index.rst docs/install.rst docs/usage.rst docs/_theme/plainbox/page.html docs/_theme/plainbox/theme.conf docs/appdev/index.rst docs/author/index.rst docs/author/jobs.rst docs/author/provider-files.rst docs/author/provider-i18n.rst docs/author/provider-namespaces.rst docs/author/provider-template.rst docs/author/providers.rst docs/author/rfc822.rst docs/author/tutorial.rst docs/author/whitelists.rst docs/dev/architecture.rst docs/dev/config.rst docs/dev/index.rst docs/dev/intro.rst docs/dev/old.rst docs/dev/resources.rst docs/dev/trusted-launcher.rst docs/manpages/index.rst docs/manpages/plainbox-trusted-launcher-1.rst docs/manpages/plainbox.rst docs/ref/index.rst docs/ref/plainbox.abc.rst docs/ref/plainbox.impl.applogic.rst docs/ref/plainbox.impl.box.rst docs/ref/plainbox.impl.buildsystems.rst docs/ref/plainbox.impl.clitools.rst docs/ref/plainbox.impl.color.rst docs/ref/plainbox.impl.commands.analyze.rst docs/ref/plainbox.impl.commands.check_config.rst docs/ref/plainbox.impl.commands.checkbox.rst docs/ref/plainbox.impl.commands.crash.rst docs/ref/plainbox.impl.commands.dev.rst docs/ref/plainbox.impl.commands.list.rst docs/ref/plainbox.impl.commands.logtest.rst docs/ref/plainbox.impl.commands.parse.rst docs/ref/plainbox.impl.commands.rst docs/ref/plainbox.impl.commands.run.rst docs/ref/plainbox.impl.commands.script.rst docs/ref/plainbox.impl.commands.selftest.rst docs/ref/plainbox.impl.commands.special.rst docs/ref/plainbox.impl.ctrl.rst docs/ref/plainbox.impl.depmgr.rst docs/ref/plainbox.impl.exporter.html.rst docs/ref/plainbox.impl.exporter.json.rst docs/ref/plainbox.impl.exporter.rfc822.rst docs/ref/plainbox.impl.exporter.rst docs/ref/plainbox.impl.exporter.text.rst docs/ref/plainbox.impl.exporter.xml.rst docs/ref/plainbox.impl.highlevel.rst docs/ref/plainbox.impl.integration_tests.rst docs/ref/plainbox.impl.job.rst docs/ref/plainbox.impl.logging.rst docs/ref/plainbox.impl.parsers.rst docs/ref/plainbox.impl.providers.rst docs/ref/plainbox.impl.providers.special.rst docs/ref/plainbox.impl.providers.v1.rst docs/ref/plainbox.impl.resource.rst docs/ref/plainbox.impl.result.rst docs/ref/plainbox.impl.rst docs/ref/plainbox.impl.runner.rst docs/ref/plainbox.impl.secure.config.rst docs/ref/plainbox.impl.secure.job.rst docs/ref/plainbox.impl.secure.launcher1.rst docs/ref/plainbox.impl.secure.plugins.rst docs/ref/plainbox.impl.secure.providers.rst docs/ref/plainbox.impl.secure.providers.v1.rst docs/ref/plainbox.impl.secure.qualifiers.rst docs/ref/plainbox.impl.secure.rfc822.rst docs/ref/plainbox.impl.secure.rst docs/ref/plainbox.impl.session.jobs.rst docs/ref/plainbox.impl.session.legacy.rst docs/ref/plainbox.impl.session.manager.rst docs/ref/plainbox.impl.session.resume.rst docs/ref/plainbox.impl.session.rst docs/ref/plainbox.impl.session.state.rst docs/ref/plainbox.impl.session.storage.rst docs/ref/plainbox.impl.session.suspend.rst docs/ref/plainbox.impl.signal.rst docs/ref/plainbox.impl.symbol.rst docs/ref/plainbox.impl.testing_utils.rst docs/ref/plainbox.impl.transport.rst docs/ref/plainbox.provider_manager.rst docs/ref/plainbox.public.rst docs/ref/plainbox.rst docs/ref/plainbox.testing_utils.cwd.rst docs/ref/plainbox.testing_utils.io.rst docs/ref/plainbox.testing_utils.resource.rst docs/ref/plainbox.testing_utils.rst docs/ref/plainbox.testing_utils.testcases.rst docs/ref/plainbox.vendor.rst docs/ref/plainbox.vendor.textland.rst plainbox/__init__.py plainbox/__main__.py plainbox/abc.py plainbox/i18n.py plainbox/provider_manager.py plainbox/public.py plainbox/test_abc.py plainbox/test_i18n.py plainbox/test_provider_manager.py plainbox/test_public.py plainbox/tests.py plainbox.egg-info/PKG-INFO plainbox.egg-info/SOURCES.txt plainbox.egg-info/dependency_links.txt plainbox.egg-info/entry_points.txt plainbox.egg-info/requires.txt plainbox.egg-info/top_level.txt plainbox/data/report/checkbox.js plainbox/data/report/checkbox.xsl plainbox/data/report/hardware-1_0.rng plainbox/data/report/styles.css plainbox/data/report/images/body_bg.png plainbox/data/report/images/bullet.png plainbox/data/report/images/closed.png plainbox/data/report/images/fail.png plainbox/data/report/images/header_bg.png plainbox/data/report/images/open.png plainbox/data/report/images/pass.png plainbox/data/report/images/skip.png plainbox/impl/__init__.py plainbox/impl/_argparse.py plainbox/impl/_shlex.py plainbox/impl/applogic.py plainbox/impl/box.py plainbox/impl/buildsystems.py plainbox/impl/clitools.py plainbox/impl/color.py plainbox/impl/ctrl.py plainbox/impl/depmgr.py plainbox/impl/highlevel.py plainbox/impl/integration_tests.py plainbox/impl/job.py plainbox/impl/logging.py plainbox/impl/parsers.py plainbox/impl/resource.py plainbox/impl/result.py plainbox/impl/runner.py plainbox/impl/signal.py plainbox/impl/symbol.py plainbox/impl/test_applogic.py plainbox/impl/test_box.py plainbox/impl/test_buildsystems.py plainbox/impl/test_clitools.py plainbox/impl/test_color.py plainbox/impl/test_ctrl.py plainbox/impl/test_depmgr.py plainbox/impl/test_job.py plainbox/impl/test_resource.py plainbox/impl/test_result.py plainbox/impl/test_runner.py plainbox/impl/test_signal.py plainbox/impl/test_symbol.py plainbox/impl/test_testing_utils.py plainbox/impl/test_transport.py plainbox/impl/testing_utils.py plainbox/impl/transport.py plainbox/impl/commands/__init__.py plainbox/impl/commands/analyze.py plainbox/impl/commands/check_config.py plainbox/impl/commands/checkbox.py plainbox/impl/commands/crash.py plainbox/impl/commands/dev.py plainbox/impl/commands/list.py plainbox/impl/commands/logtest.py plainbox/impl/commands/parse.py plainbox/impl/commands/run.py plainbox/impl/commands/script.py plainbox/impl/commands/selftest.py plainbox/impl/commands/special.py plainbox/impl/commands/startprovider.py plainbox/impl/commands/test_dev.py plainbox/impl/commands/test_parse.py plainbox/impl/commands/test_run.py plainbox/impl/commands/test_script.py plainbox/impl/exporter/__init__.py plainbox/impl/exporter/html.py plainbox/impl/exporter/json.py plainbox/impl/exporter/rfc822.py plainbox/impl/exporter/test_html.py plainbox/impl/exporter/test_init.py plainbox/impl/exporter/test_json.py plainbox/impl/exporter/test_rfc822.py plainbox/impl/exporter/test_text.py plainbox/impl/exporter/test_xml.py plainbox/impl/exporter/text.py plainbox/impl/exporter/xlsx.py plainbox/impl/exporter/xml.py plainbox/impl/providers/__init__.py plainbox/impl/providers/special.py plainbox/impl/providers/test_special.py plainbox/impl/providers/test_v1.py plainbox/impl/providers/v1.py plainbox/impl/providers/stubbox/manage.py plainbox/impl/providers/stubbox/bin/stub_package_list plainbox/impl/providers/stubbox/jobs/local.txt.in plainbox/impl/providers/stubbox/jobs/multilevel.txt.in plainbox/impl/providers/stubbox/jobs/stub.txt.in plainbox/impl/providers/stubbox/po/POTFILES.in plainbox/impl/providers/stubbox/po/de.po plainbox/impl/providers/stubbox/po/en_GB.po plainbox/impl/providers/stubbox/po/pl.po plainbox/impl/providers/stubbox/po/pt.po plainbox/impl/providers/stubbox/po/stubbox.pot plainbox/impl/providers/stubbox/po/zh_TW.po plainbox/impl/providers/stubbox/whitelists/stub.whitelist plainbox/impl/providers/stubbox/whitelists/stub1.whitelist plainbox/impl/providers/stubbox/whitelists/stub2.whitelist plainbox/impl/secure/__init__.py plainbox/impl/secure/config.py plainbox/impl/secure/job.py plainbox/impl/secure/launcher1.py plainbox/impl/secure/plugins.py plainbox/impl/secure/qualifiers.py plainbox/impl/secure/rfc822.py plainbox/impl/secure/test_config.py plainbox/impl/secure/test_job.py plainbox/impl/secure/test_launcher1.py plainbox/impl/secure/test_plugins.py plainbox/impl/secure/test_qualifiers.py plainbox/impl/secure/test_rfc822.py plainbox/impl/secure/providers/__init__.py plainbox/impl/secure/providers/test_v1.py plainbox/impl/secure/providers/v1.py plainbox/impl/session/__init__.py plainbox/impl/session/jobs.py plainbox/impl/session/legacy.py plainbox/impl/session/manager.py plainbox/impl/session/resume.py plainbox/impl/session/state.py plainbox/impl/session/storage.py plainbox/impl/session/suspend.py plainbox/impl/session/test_jobs.py plainbox/impl/session/test_legacy.py plainbox/impl/session/test_manger.py plainbox/impl/session/test_resume.py plainbox/impl/session/test_state.py plainbox/impl/session/test_storage.py plainbox/impl/session/test_suspend.py plainbox/test-data/html-exporter/example-data.html plainbox/test-data/html-exporter/html-inliner.html plainbox/test-data/integration-tests/stub/true.json plainbox/test-data/xml-exporter/example-data.json plainbox/test-data/xml-exporter/example-data.xml plainbox/test-data/xml-exporter/test_dump_with_binary_attachment.json plainbox/test-data/xml-exporter/test_dump_with_binary_attachment.xml plainbox/test-data/xml-exporter/test_dump_with_comments.json plainbox/test-data/xml-exporter/test_dump_with_comments.xml plainbox/test-data/xml-exporter/test_dump_with_hardware_info.json plainbox/test-data/xml-exporter/test_dump_with_hardware_info.xml plainbox/test-data/xml-exporter/test_dump_with_io_log.json plainbox/test-data/xml-exporter/test_dump_with_io_log.xml plainbox/test-data/xml-exporter/test_dump_with_text_attachment.json plainbox/test-data/xml-exporter/test_dump_with_text_attachment.xml plainbox/testing_utils/__init__.py plainbox/testing_utils/cwd.py plainbox/testing_utils/io.py plainbox/testing_utils/resource.py plainbox/testing_utils/test_cwd.py plainbox/testing_utils/test_io.py plainbox/testing_utils/test_testcases.py plainbox/testing_utils/testcases.py plainbox/vendor/__init__.py plainbox/vendor/mock.py plainbox/vendor/argparse/py32-argparse.py plainbox/vendor/argparse/py33-argparse.py plainbox/vendor/argparse/py34-argparse.py plainbox/vendor/extcmd/__init__.py plainbox/vendor/extcmd/test.py plainbox/vendor/funcsigs/LICENSE plainbox/vendor/funcsigs/__init__.py plainbox/vendor/funcsigs/version.py plainbox/vendor/textland/__init__.py plainbox/vendor/textland/abc.py plainbox/vendor/textland/bits.py plainbox/vendor/textland/display.py plainbox/vendor/textland/drawing.py plainbox/vendor/textland/events.py plainbox/vendor/textland/image.py plainbox/vendor/textland/keys.py po/POTFILES.in po/de.po po/en_AU.po po/en_CA.po po/en_GB.po po/es.po po/ja.po po/pl.po po/plainbox.pot po/pt.po po/ru.po po/tr.po po/uk.po po/zh_TW.poplainbox-0.5.3/setup.py0000775000175000017500000000572512320461735015034 0ustar zygazyga00000000000000#!/usr/bin/env python3 # This file is part of Checkbox. # # Copyright 2012 Canonical Ltd. # Written by: # Zygmunt Krynicki # # Checkbox is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, # as published by the Free Software Foundation. # # Checkbox 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 Checkbox. If not, see . import sys import os from setuptools import setup, find_packages if "test" in sys.argv: # Reset locale for setup.py test os.environ["LANG"] = "" os.environ["LANGUAGE"] = "" os.environ["LC_ALL"] = "C.UTF-8" base_dir = os.path.dirname(__file__) # Load the README.rst file relative to the setup file with open(os.path.join(base_dir, "README.rst"), encoding="UTF-8") as stream: long_description = stream.read() # Check if we are running on readthedocs.org builder. on_rtd = os.environ.get('READTHEDOCS', None) == 'True' # When building on readthedocs.org, skip all real dependencies as those are # mocked away in 'plainbox/docs/conf.py'. This speeds up the build process. # and makes it independent on any packages that are hard to get in a virtualenv if on_rtd: install_requires = [] else: install_requires = [ 'lxml >= 2.3', ] setup( name="plainbox", version="0.5.3", url="https://launchpad.net/checkbox/", packages=find_packages(), author="Zygmunt Krynicki", test_suite='plainbox.tests.test_suite', author_email="zygmunt.krynicki@canonical.com", license="GPLv3", description="Simple replacement for checkbox", long_description=long_description, install_requires=install_requires, extras_require={ 'XLSX': 'XlsxWriter >= 0.3', }, entry_points={ 'console_scripts': [ 'plainbox=plainbox.public:main', ('plainbox-trusted-launcher-1=' 'plainbox.impl.secure.launcher1:main'), ], 'plainbox.exporter': [ 'text=plainbox.impl.exporter.text:TextSessionStateExporter', 'json=plainbox.impl.exporter.json:JSONSessionStateExporter', 'rfc822=plainbox.impl.exporter.rfc822:RFC822SessionStateExporter', 'xlsx=plainbox.impl.exporter.xlsx:XLSXSessionStateExporter [XLSX]', 'xml=plainbox.impl.exporter.xml:XMLSessionStateExporter', 'html=plainbox.impl.exporter.html:HTMLSessionStateExporter', ], 'plainbox.buildsystem': [ 'make=plainbox.impl.buildsystems:MakefileBuildSystem', 'go=plainbox.impl.buildsystems:GoBuildSystem', 'autotools=plainbox.impl.buildsystems:AutotoolsBuildSystem', ], }, include_package_data=True) plainbox-0.5.3/README.rst0000664000175000017500000000452412320461715015000 0ustar zygazyga00000000000000PlainBox ======== PlainBox is a toolkit consisting of python3 library, development tools, documentation and examples. It is targeted at developers working on testing or certification applications and authors creating tests for such applications. PlainBox can be used to both create simple and comprehensive test tools as well as to develop and execute test jobs and test scenarios. It was created as a refined and rewritten core of the CheckBox project. It has a well tested and documented core, small but active development community and a collection of associated projects that use it as a lower-level engine/back-end library. PlainBox has a novel approach to discovering (and probing) hardware and software that is extensible and not hardwired into the system. It allows test developers to express association between a particular test and the hardware, software and configuration constraints that must be met for the test to execute meaningfully. This feature, along with pluggable test definitions, makes PlainBox flexible and applicable to many diverse testing situations, ranging from mobile phones, traditional desktop computers, servers and up to testing "cloud" installations. External Documentation Links ============================ * `Using PlainBox `_ * `Hacking on PlainBox `_ * `Testing PlainBox `_ Known Issues ============ `List of bugs tagged with 'plainbox' on lp:checkbox `_ plainbox-0.5.3/COPYING0000664000175000017500000010451312320461715014343 0ustar zygazyga00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. 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. Copyright (C) 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 . 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: Copyright (C) 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 . 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 . plainbox-0.5.3/po/0000775000175000017500000000000012320462103013712 5ustar zygazyga00000000000000plainbox-0.5.3/po/plainbox.pot0000664000175000017500000021550212320461715016267 0ustar zygazyga00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "" #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "" #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr "" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr "" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "" #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "" #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "" #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "" #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "" #: .././plainbox/impl/commands/run.py:411 msgid "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern ``YYYY.example.org:" "name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "" #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "" #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr "" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "" #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "" #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "" #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "" #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit manage." "py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "" plainbox-0.5.3/po/zh_TW.po0000664000175000017500000021727312320461715015331 0ustar zygazyga00000000000000# Chinese (Traditional) translation for checkbox # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the checkbox package. # FIRST AUTHOR , 2014. # msgid "" msgstr "" "Project-Id-Version: checkbox\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: 2014-03-19 09:40+0000\n" "Last-Translator: Po-Hsu Lin \n" "Language-Team: Chinese (Traditional) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2014-04-05 04:34+0000\n" "X-Generator: Launchpad (build 16976)\n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "用法: " #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "顯示程å¼çš„版本並離開" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "引數數目太少" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "收到 SystemExit è¨Šè™Ÿï¼ŒçµæŸç¨‹å¼ä¸­" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "é‡å°ä¾‹å¤– %r çš„è™•ç†æ–¹å¼ç‚º %s" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "啟動除錯工具..." #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "找ä¸åˆ°ä»»ä½•å¯åŸ·è¡Œæª” {}" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "自動" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "未知" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "é ä¼°çš„æ¸¬è©¦æ‰€éœ€æ™‚間:" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "自動測試項目:{}" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "無法估計" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "手動測試項目:{}" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "設定檔:" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr "" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "變數:" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "å•題:" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr " - 變數 {0}: {1}" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "一個除錯訊æ¯" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "一個警告訊æ¯" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "一個錯誤訊æ¯" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "範例: " #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "?" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "å¯ç”¨çš„輸出格å¼ï¼š{}" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "ç•¥éŽ" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "失敗" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "[ çµæžœ ]" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "å°‡çµæžœé™¤å­˜è‡³ {}" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "" #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "備註" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "測試" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "請輸入您的備註:\n" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "[ 警告 ]" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "無法é ä¼°è‡ªå‹•測試項目所需時間。" #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "" #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "" #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "備註: {}" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "" #: .././plainbox/impl/commands/run.py:411 msgid "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "" #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "" #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr "" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "" #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "" #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "" #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "" #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "無法匯入 {}:{}" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit " "manage.py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr ".__call__() 未定義" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "無法開啟 '%s':%s" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "鏿“‡æ€§å¼•數" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "顯示此說明訊æ¯ä¸¦é›¢é–‹" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "無法識別的引數: %s" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "需è¦ä¸€å€‹å¼•數" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "需è¦ä¸‹åˆ—引數:%s" plainbox-0.5.3/po/tr.po0000664000175000017500000021652312320461715014720 0ustar zygazyga00000000000000# Turkish translation for plainbox # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the plainbox package. # FIRST AUTHOR , 2014. # msgid "" msgstr "" "Project-Id-Version: plainbox\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: 2014-03-27 21:10+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2014-04-05 04:34+0000\n" "X-Generator: Launchpad (build 16976)\n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "kullanım: " #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "Kullanmak için varsayılan saÄŸlayıcının adı" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "DEBUG mesajlarını konsolda göster" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "debugger baÅŸlatılıyor..." #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "Çalıştırılabilir herhangi birini bulamıyor {}" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "saÄŸlayıcı listesi ve geliÅŸtirme" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "hangi saÄŸlayıcılar yüklensin" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "Problem listesi" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "interaktif" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "Tahmini test süresi:" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "otomatik testler: {}" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "tahmin edemiyor" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "manuel testler: {}" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "toplam: {}" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr "" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr "" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "Onaylama sorunları bulunamadı" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "plainbox yapılandırmasını denetle ve göster" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "" #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "" #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "" #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "" #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "" #: .././plainbox/impl/commands/run.py:411 msgid "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "" #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "" #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr "" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "" #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "" #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "" #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "" #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit " "manage.py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "" plainbox-0.5.3/po/POTFILES.in0000664000175000017500000000773712320461715015515 0ustar zygazyga00000000000000[encoding: UTF-8] ./plainbox/__init__.py ./plainbox/__main__.py ./plainbox/abc.py ./plainbox/impl/__init__.py ./plainbox/impl/_argparse.py ./plainbox/impl/applogic.py ./plainbox/impl/box.py ./plainbox/impl/clitools.py ./plainbox/impl/color.py ./plainbox/impl/commands/__init__.py ./plainbox/impl/commands/analyze.py ./plainbox/impl/commands/check_config.py ./plainbox/impl/commands/checkbox.py ./plainbox/impl/commands/crash.py ./plainbox/impl/commands/dev.py ./plainbox/impl/commands/list.py ./plainbox/impl/commands/logtest.py ./plainbox/impl/commands/parse.py ./plainbox/impl/commands/run.py ./plainbox/impl/commands/script.py ./plainbox/impl/commands/selftest.py ./plainbox/impl/commands/special.py ./plainbox/impl/commands/startprovider.py ./plainbox/impl/commands/test_dev.py ./plainbox/impl/commands/test_parse.py ./plainbox/impl/commands/test_run.py ./plainbox/impl/commands/test_script.py ./plainbox/impl/ctrl.py ./plainbox/impl/depmgr.py ./plainbox/impl/exporter/__init__.py ./plainbox/impl/exporter/html.py ./plainbox/impl/exporter/json.py ./plainbox/impl/exporter/rfc822.py ./plainbox/impl/exporter/test_html.py ./plainbox/impl/exporter/test_init.py ./plainbox/impl/exporter/test_json.py ./plainbox/impl/exporter/test_rfc822.py ./plainbox/impl/exporter/test_text.py ./plainbox/impl/exporter/test_xml.py ./plainbox/impl/exporter/text.py ./plainbox/impl/exporter/xlsx.py ./plainbox/impl/exporter/xml.py ./plainbox/impl/highlevel.py ./plainbox/impl/integration_tests.py ./plainbox/impl/job.py ./plainbox/impl/logging.py ./plainbox/impl/parsers.py ./plainbox/impl/providers/__init__.py ./plainbox/impl/providers/special.py ./plainbox/impl/providers/test_special.py ./plainbox/impl/providers/test_v1.py ./plainbox/impl/providers/v1.py ./plainbox/impl/resource.py ./plainbox/impl/result.py ./plainbox/impl/runner.py ./plainbox/impl/secure/__init__.py ./plainbox/impl/secure/config.py ./plainbox/impl/secure/job.py ./plainbox/impl/secure/launcher1.py ./plainbox/impl/secure/plugins.py ./plainbox/impl/secure/providers/__init__.py ./plainbox/impl/secure/providers/test_v1.py ./plainbox/impl/secure/providers/v1.py ./plainbox/impl/secure/qualifiers.py ./plainbox/impl/secure/rfc822.py ./plainbox/impl/secure/test_config.py ./plainbox/impl/secure/test_job.py ./plainbox/impl/secure/test_launcher1.py ./plainbox/impl/secure/test_plugins.py ./plainbox/impl/secure/test_qualifiers.py ./plainbox/impl/secure/test_rfc822.py ./plainbox/impl/session/__init__.py ./plainbox/impl/session/jobs.py ./plainbox/impl/session/legacy.py ./plainbox/impl/session/manager.py ./plainbox/impl/session/resume.py ./plainbox/impl/session/state.py ./plainbox/impl/session/storage.py ./plainbox/impl/session/suspend.py ./plainbox/impl/session/test_jobs.py ./plainbox/impl/session/test_legacy.py ./plainbox/impl/session/test_resume.py ./plainbox/impl/session/test_state.py ./plainbox/impl/session/test_storage.py ./plainbox/impl/session/test_suspend.py ./plainbox/impl/signal.py ./plainbox/impl/symbol.py ./plainbox/impl/test_applogic.py ./plainbox/impl/test_box.py ./plainbox/impl/test_clitools.py ./plainbox/impl/test_color.py ./plainbox/impl/test_ctrl.py ./plainbox/impl/test_depmgr.py ./plainbox/impl/test_job.py ./plainbox/impl/test_resource.py ./plainbox/impl/test_result.py ./plainbox/impl/test_runner.py ./plainbox/impl/test_signal.py ./plainbox/impl/test_symbol.py ./plainbox/impl/test_testing_utils.py ./plainbox/impl/test_transport.py ./plainbox/impl/testing_utils.py ./plainbox/impl/transport.py ./plainbox/provider_manager.py ./plainbox/public.py ./plainbox/test_abc.py ./plainbox/test_provider_manager.py ./plainbox/test_public.py ./plainbox/testing_utils/__init__.py ./plainbox/testing_utils/cwd.py ./plainbox/testing_utils/io.py ./plainbox/testing_utils/resource.py ./plainbox/testing_utils/test_cwd.py ./plainbox/testing_utils/test_io.py ./plainbox/testing_utils/test_testcases.py ./plainbox/testing_utils/testcases.py ./plainbox/tests.py ./plainbox/vendor/argparse/py32-argparse.py ./plainbox/vendor/argparse/py33-argparse.py ./plainbox/vendor/argparse/py34-argparse.py plainbox-0.5.3/po/ru.po0000664000175000017500000022501212320461715014712 0ustar zygazyga00000000000000# Russian translation for plainbox # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the plainbox package. # FIRST AUTHOR , 2014. # msgid "" msgstr "" "Project-Id-Version: plainbox\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: 2014-04-06 03:09+0000\n" "Last-Translator: Checkbox Administrators \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2014-04-07 05:36+0000\n" "X-Generator: Launchpad (build 16976)\n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "иÑпользование: " #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "Ðи у одного из провайдеров нет белого ÑпиÑка Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ '{}'" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "Переменные Ñреды Ð´Ð»Ñ Ñценариев и заданий" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "ТекÑÑ‚ приветÑтвиÑ, отображаемый перед выбором/выполнением теÑта" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "Ð˜Ð¼Ñ Ð¿Ñ€Ð¾Ð²Ð°Ð¹Ð´ÐµÑ€Ð° по умолчанию" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "показать верÑию программы и выйти" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "журналирование и отладка" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "более подробно (аналогично --log-level=INFO)" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "отображать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ DEBUG в конÑоли" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "переключитьÑÑ Ð½Ð° pdb (отладчик python) при Ñбое программы" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "Ñлишком мало аргументов" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "Ð´Ð»Ñ Ð¸ÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ %r выполнить %s" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "запуÑк отладчика..." #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "СпиÑок проблем" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "[ÐžÐ±Ñ‰Ð°Ñ ÑтатиÑтика]" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "ИзвеÑтные заданиÑ: {}" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "Выбранные заданиÑ: {}" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "Выбранные Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð½Ðµ имеют проблем Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑ‚Ñми" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "[Отчёт о раÑчётной продолжительноÑти]" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "РаÑчётное Ð²Ñ€ÐµÐ¼Ñ Ñ‚ÐµÑтированиÑ:" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "автоматичеÑкое теÑтирование: {}" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "не удалоÑÑŒ раÑчитать" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "ручное теÑтирование: {}" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "итого: {}" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "Проблемы не обнаружены" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "не выполнÑть Ð·Ð°Ð´Ð°Ð½Ð¸Ñ local" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "вывеÑти общую ÑтатиÑтику заданий" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "вывеÑти отчёт о завиÑимоÑÑ‚ÑÑ…" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "вывеÑти отчёт о раÑчётном времени" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "Файлы конфигурации:" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr " - {0} (отÑутÑтвует)" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "Переменные:" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "Разделы:" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "Проблемы:" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr " - Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ {0}: {1}" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "ИÑпользовать белый ÑпиÑок %r, полученный от провайдера %r" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "Ðе удалоÑÑŒ загрузить белый ÑпиÑок %r: %s" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "Ðекорректный шаблон %r: %s" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "параметры Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "ШÐБЛОÐ" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "включить заданиÑ, Ñовпадающие Ñ Ñ€ÐµÐ³ÑƒÐ»Ñрным выражением" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "иÑключить заданиÑ, Ñовпадающие Ñ Ñ€ÐµÐ³ÑƒÐ»Ñрным выражением" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "БЕЛЫЙ СПИСОК" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "загрузить белый ÑпиÑок, Ñодержащий шаблоны запуÑка" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "показать атрибуты объекта" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "Ñообщение отладчика" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "информационное Ñообщение" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "предупреждение" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "Ñообщение об ошибке" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "критичеÑкое Ñообщение" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "ДоÑтупны Ñледующие обработчики:" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "обрабатывать stdin заданным обработчиком" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "Пример: " #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "ИМЯ-ОБРÐБОТЧИКÐ" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "Ð˜Ð¼Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ°, который необходимо иÑпользовать" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "?" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "ДоÑтупные форматы вывода: {}" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "Каждый формат может поддерживать разные наборы параметров" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "ДоÑтупные транÑпорты: {}" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "Хотите возобновить предыдущую ÑеÑÑию?" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "Что требуетÑÑ Ñделать Ñ Ð·Ð°Ð´Ð°Ð½Ð¸ÐµÐ¼?" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "пропуÑтить" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "Ñбой" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "запуÑк" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "Пропущено поÑле Ð²Ð¾Ð·Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "Сбой поÑле Ð²Ð¾Ð·Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "[ ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ ]" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "[ Результаты ]" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "Сохранение результатов в {}" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "" #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "комментарии" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "теÑÑ‚" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "Разрешённые ответы: {}" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "Введите ваши комментарии:\n" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "" #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "" #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "" #: .././plainbox/impl/commands/run.py:411 msgid "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "" #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "" #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr "" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "" #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "" #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "" #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "" #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit " "manage.py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "" plainbox-0.5.3/po/en_CA.po0000664000175000017500000021571212320461715015237 0ustar zygazyga00000000000000# English (Canada) translation for plainbox # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the plainbox package. # FIRST AUTHOR , 2014. # msgid "" msgstr "" "Project-Id-Version: plainbox\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: 2014-03-31 18:03+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: English (Canada) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2014-04-05 04:34+0000\n" "X-Generator: Launchpad (build 16976)\n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "" #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "" #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr "" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr "" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "an info message" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "" #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "" #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "" #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "" #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "" #: .././plainbox/impl/commands/run.py:411 msgid "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "" #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "" #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr "" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "" #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "" #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "" #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "" #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit " "manage.py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "" plainbox-0.5.3/po/uk.po0000664000175000017500000022276712320461715014721 0ustar zygazyga00000000000000# Ukrainian translation for plainbox # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the plainbox package. # FIRST AUTHOR , 2014. # msgid "" msgstr "" "Project-Id-Version: plainbox\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: 2014-03-27 06:55+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2014-04-05 04:34+0000\n" "X-Generator: Launchpad (build 16976)\n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "кориÑтуваннÑ: " #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "показати дані щодо верÑÑ–Ñ— програми Ñ– завершити роботу" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "ВЕДЕÐÐЯ ЖУРÐÐЛУ" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "" #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "[Загальна ÑтатиÑтика]" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "[Звіт щодо інтерактивноÑті]" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "автоматично" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "інтерактивно" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "невідомо" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "загалом: {}" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "[Звіт щодо перевірки]" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "Проблем не виÑвлено" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "Файли налаштуваннÑ:" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr " - {0} (немає)" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "Змінні:" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "Розділи:" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "Проблеми:" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr " - змінна {0}: {1}" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "ЗРÐЗОК" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "Приклад: " #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "пропуÑтити" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "помилка" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "запуÑтити" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "[ Ð Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ ]" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "[ Результати ]" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "" #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "коментарі" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "перевірка" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "[ ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ ]" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "" #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "" #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "Додаток: %s" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "Коментарі: {}" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "параметри виведеннÑ" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "ФОРМÐТ" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "ПÐРÐМЕТРИ" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "ФÐЙЛ" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "ПЕРЕÐЕСЕÐÐЯ" #: .././plainbox/impl/commands/run.py:411 msgid "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "ДЕ" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "команда:" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "ІД_ЗÐДÐЧІ" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "назва" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ %s: %s" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "Ðепідтримуваний параметр: {}" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "ПроцеÑори" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "Пам'Ñть" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "Ðудіо" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "КМІ" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "Бездротова" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "Bluetooth" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "Ðазва" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "ВерÑÑ–Ñ" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "{} перевірку пройдено" msgstr[1] "{} перевірки пройдено" msgstr[2] "{} перевірок пройдено" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "{} перевірка зазнала невдачі" msgstr[1] "{} перевірки зазнали невдачі" msgstr[2] "{} перевірок зазнали невдачі" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "Помилка" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "ПропуÑтити" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "Пройти" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "Резюме" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "ОпиÑи перевірок" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "ПРОЙДЕÐО" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "ПОМИЛКÐ" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "не підтримуєтьÑÑ" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "Результат" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "ОпиÑ" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ñ‰Ð¾Ð´Ð¾ ÑиÑтеми" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "Результати перевірки" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "Файли журналів" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "" #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "непідтримуваний тип" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "має бути одним з {}" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "не може бути порожнім" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "КОÐТРОЛЬÐÐ_СУМÐ" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "ÐÐЗВÐ=ЗÐÐЧЕÐÐЯ" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "" #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "такого каталогу немає" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr "" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "" #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "" #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "" #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "" #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "ключ {!r}" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "об'єкт" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "не вÑтановлено" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ Ð²ÑтановленнÑ" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit " "manage.py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "назва: {}" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "опиÑ: {}" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "верÑÑ–Ñ: {}" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "позиційні аргументи" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "показати це довідкове Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ– завершити роботу" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "нерозпізнані аргументи: %s" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "не можна викориÑтовувати з аргументом %s" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "потрібен аргумент %s" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "потрібен один з аргументів %s" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "мало бути вказано один аргумент" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "мало бути не більше одного аргументу" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "мало бути вказано принаймні один аргумент" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "" plainbox-0.5.3/po/es.po0000664000175000017500000023253412320461715014702 0ustar zygazyga00000000000000# Plainbox translations # # Copyright (C) 2014 Canonical # This file is distributed under the same license as the plainbox package. # Daniel Manrique , 2014 # msgid "" msgstr "" "Project-Id-Version: plainbox 0.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: 2014-03-19 09:43+0000\n" "Last-Translator: Daniel Manrique \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2014-04-05 04:34+0000\n" "X-Generator: Launchpad (build 16976)\n" "Language: \n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "modo de empleo: " #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "Ningún proveedor tiene una lista de inclusión llamada '{}'" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "Variables de ambiente para guiones y trabajos" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "" "Texto de bienvenida a mostrar antes de la selección y ejecución de pruebas" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "Nombre del proveedor a utilizar por omisión" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "se analizó el espacio de nombres inicial: %s" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "se analizó el espacio de nombres completo: %s" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "bitácoras y depuración" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "dar más detalles (equivale a --log-level=INFO)" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "activar mensajes de depuracion en la bitácora principal" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "Mostrar mensajes de depuración en la consola" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "BITÃCORA" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" "activar mensajes de depuración en la bitácora especificada (puede utilizarse " "varias veces)" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "Iniciar pdb (depurador de python) cuando un comando se pasma" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "generar un pasmo al recibir SIGINT/KeyboardInterrupt, útil con --pdb" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "my pocos argumentos" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "SystemExit atrapado, saliendo" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "%r atrapado, decidiendo siguiente acción" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "acción para la excepción %r es %s" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "Ejecutable %r invocado con %r se ha pasmado" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "excepción no atrapada: %r" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "iniciando depurador..." #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "Imposible encontrar alguno de los ejecutables {}" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "[Lista de trabajos deseada]" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "[Lista de ejecución]" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "[Ejecutando trabajos locales]" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "Lista de problemas" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "[Estadísticas Generales]" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "Trabajos conocidos: {}" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "Trabajos seleccionados: {}" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "[Reporte de dependencias]" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "No hay problemas de dependencias en los trabajos seleccionados" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "[Reporte de Interactividad]" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "automático" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "interactivo" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "desconocido" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "[Reporte de Duración Estimada]" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "Duración de pruebas estimada:" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "pruebas automatizadas: {}" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "imposible estimar" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "pruebas manuales: {}" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "total: {}" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "[Reporte de Validación]" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "Trabajo definido en {}" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "No se encontraron problemas" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "[Reporte de Requerimientos]" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "analiza cómo se ejecutarían los trabajos seleccionados" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "Ficheros de configuración:" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr " - {0} (no encontrado)" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "Variables:" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "Secciones:" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "Problemas:" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr " - variable {0}: {1}" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "No se encontraron problemas de validación" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "Verifica y muestra la configuración de plainbox" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "opciones para selección de trabajos" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "PATRÓN" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "excluir los trabajos reconocidos por la expresión regular dada" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "LISTA DE INCLUSIÓN" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "cargar una lista de inclusión con patrones de ejecución" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "generando un pasmo, como se solicitó" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "pasmar la aplicación" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "comandos de desarrollo" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "listar y describir diversos objetos" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "listar objetos del grupo especificado" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "un mensaje de depuración" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "un mensaje informativo" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "un mensaje de advertencia" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "un mensaje de error" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "un mensaje crítico" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "mensajes de bitácora en diversos niveles" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "Imposible decodificar datos de entrada, debería ser UTF-8 válido" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "Los siguientes analizadores están disponibles" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "analizar entrada estándar con el analizador especificado" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "Ejemplo " #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "NOMBRE-ANALIZADOR" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "Nombre del analizador a utilizar" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "?" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "Formatos de salida disponibles: {}" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "Cada formato puede soportar un conjunto de opciones distinto" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "Transportes disponibles: {}" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "¿Desea continuar la sesión anterior?" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "¿Qué desea hacer con ese trabajo?" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "saltar" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "fallado" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "ejecutar" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "La sesión anterior intentó ejecutar: {}" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "Saltado tras continuar la ejecución" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "Fallado tras continuar la ejecución" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "[ Analizando Trabajos ]" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "La base de datos de trabajos es incorrecta" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "Al menos dos trabajos en conflicto por el identificador {0}" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "El primer trabajo está definido en: {0}" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "El segundo trabajo está definido en: {0}" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "[ Autenticación ]" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "[ Resultados ]" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "Salvando resultados en {}" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "Seleccione un resultado o acción: " #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "comentarios" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "probar" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "Las respuestas permitidas son: {}" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "Por favor escriba sus comentarios:\n" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "[ Advertencia ]" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "Los trabajos seleccionados tuvieron problemas" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "Los trabajos con problemas no serán considerados" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "La duración estimada es {:.2f} para los trabajos automatizados." #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "" "La duración estimada no pudo ser determinada para los trabajos automatizados." #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "La duración estimada es {:.2f} para los trabajos manuales." #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "" "La duración estimada no pudo ser determinada para los trabajos manuales." #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "[ Ejecutando todos los trabajos ]" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "Id de trabajo: %s" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "Tipo de trabajo: %s" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "Dependencias directas: %s" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "Dependencias de recursos: %s" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "Programa de recursos: %r" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "Comando: %r" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "Puede ejecutarse: %s" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "Listo: %s" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "Ejecutando... (salida en {}.*)" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "Resultado: {}" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "Comentarios: {}" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "ejecutar un trabajo de prueba" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "opciones de interfaz de usuario" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "saltar pruebas que requieran interactividad" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "opciones de salida" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "FORMATO" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "" "Salvar resultados de pruebas en el FORMATO especificado (use ? para ver una " "lista de opciones)" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "OPCIONES" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" "lista separada por comas de opciones para el mecanismo de exportación (use ? " "para ver una lista de opciones)" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "FICHERO" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "" "Salvar los resultados de pruebas en el FICHERO especificado (o salida " "estándar si FICHERO es -)" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "TRANSPORTE" #: .././plainbox/impl/commands/run.py:411 msgid "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" "utilizar TRANSPORTE para transmitir los resultados a algún lado (use ? para " "ver una lista de opciones)" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "DONDE" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "a dónde transmitir los datos con el transporte seleccionado" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "El trabajo {!a} no existe" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "Use `plainbox special --list-jobs` para ver una lista de opciones" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "El trabajo seleccionado no tiene comando" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "Archivo sobrante detectado: {!a}:" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "El trabajo {} regresó {}" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "comando:" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "ejecutar el comando de un trabajo" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "ID-TRABAJO" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "Identificador del trabajo a ejecutar" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "ejecutar pruebas unitarias y de integración" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "" "ejecutar las pruebas de integración (verifica los trabajos de checkbox)" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "" "ejecutar las pruebas unitarias (únicamente verifica el núcleo de plainbox)" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "abortar la prueba al primer fallo" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "ejecutar las pruebas silenciosamente" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "ejecutar las pruebas con nivel de detalle normal (por omisión)" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "" "ejecutar las pruebas dando detalles y mostrando el nombre de cada caso de " "prueba" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "comandos especiales/internos" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "evitando sobreescribir {!a}" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" "\n" " crear un nuevo proveedor (directorio)\n" "\n" " Crea un nuevo proveedor a partir de una plantilla predeterminada.\n" "\n" " @EPILOG@\n" "\n" " El nombre del proveedor debe respetar la forma " "``YYYY.example.org:nombre``\n" " donde ``YYYY`` es un año con cuatro dígitos en el cual el autor del " "proveedor era propietario\n" " del dominio(por ejemplo ``example.org``) y ``nombre`` es un " "identificador arbitrario\n" " administrado por el dueño de dicho dominio. El identificador debe " "limitarse a\n" " caracteres ASCII, dígitos y guión.\n" "\n" " Esta nomenclatura permite a cualquier propietario de un dominio generar\n" " identificadores de provedor sin conflictos. Los identificadores se " "utilizan como\n" " parte de los nombres calificados en distintos objectos.\n" "\n" " Este comando crea el esqueleto de un nuevo proveedor de pruebas para " "PlainBox.\n" " El contenido generado deberá editarse para cada propósito particular.\n" " " #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "nombre" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "nombre del provedor, ej. AAAA.example.org:un-nombre" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "Almacenando registro de recurso %r: %s" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "procesando salida del trabajo: %r" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "guión local %s regresó datos RFC822 inválidos: %s" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "Agregando el ejecutable %s al nido %s" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "trabajo[%s] ejecutando %r con ambiente %r" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "Liga simbólica del nido para ejecutables: %s" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "se detectó un ciclo de dependencias: {}" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "" #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "" #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr "" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "" #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "" #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "" #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "" #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit " "manage.py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "" plainbox-0.5.3/po/ja.po0000664000175000017500000021673112320461715014666 0ustar zygazyga00000000000000# Japanese translation for checkbox # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the checkbox package. # FIRST AUTHOR , 2014. # msgid "" msgstr "" "Project-Id-Version: checkbox\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: 2014-02-27 09:48+0000\n" "Last-Translator: Po-Hsu Lin \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2014-04-05 04:34+0000\n" "X-Generator: Launchpad (build 16976)\n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "ä½¿ã„æ–¹: " #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "" #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr "" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "セクション:" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "å•題:" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr "" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "" #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "?" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "スキップ" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "" #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "コメント" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "テスト" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "" #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "" #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "プラグイン: %s" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "コマンド: %r" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "コメント: {}" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "オプション" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "ファイル" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "" #: .././plainbox/impl/commands/run.py:411 msgid "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "コマンド:" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "BIOS" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "プロセッサ" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "ãƒãƒƒãƒ—セット" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "メモリ" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "ビデオメモリ" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "オーディオ" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "ワイヤレス" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "インストールã•れãŸãƒ‘ッケージ" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "失敗" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "スキップ" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "失敗" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "çµæžœ" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "システム情報" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "ログファイル" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "" #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "%s ã‹ã‚‰è¨­å®šã‚’読ã¿è¾¼ã‚“ã§ã„ã¾ã™" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "" #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "???" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr "" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "" #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "" #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "" #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "" #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit " "manage.py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³: {}" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "固定引数" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "ヘルプメッセージを表示ã—ã¦çµ‚了ã™ã‚‹" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "最低ã§ã‚‚一ã¤ä»¥ä¸ŠãŠã®å¼•æ•°ãŒå¿…è¦ã§ã™" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "" plainbox-0.5.3/po/pt.po0000664000175000017500000021565412320461715014722 0ustar zygazyga00000000000000# Portuguese translation for plainbox # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the plainbox package. # FIRST AUTHOR , 2014. # msgid "" msgstr "" "Project-Id-Version: plainbox\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: 2014-03-29 10:06+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2014-04-05 04:34+0000\n" "X-Generator: Launchpad (build 16976)\n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "" #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "" #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr "" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr "" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "" #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "" #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "" #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "" #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "" #: .././plainbox/impl/commands/run.py:411 msgid "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "" #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "" #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr "" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "" #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "" #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "" #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "" #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit " "manage.py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "" plainbox-0.5.3/po/de.po0000664000175000017500000021636412320461715014666 0ustar zygazyga00000000000000# German translation for plainbox # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the plainbox package. # FIRST AUTHOR , 2014. # msgid "" msgstr "" "Project-Id-Version: plainbox\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: 2014-03-30 11:34+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2014-04-05 04:34+0000\n" "X-Generator: Launchpad (build 16976)\n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "" #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "Zu wenige Parameter" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "" #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "Liste der Probleme" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "automatisch" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "unbekannt" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "Keine Probleme gefunden" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr "" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "Variablen:" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "Bereiche:" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "Probleme:" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr "" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "MUSTER" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "Beispiel: " #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "?" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "Überspringen" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "fehlschlagen" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "" #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "Kommentare" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "Test" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "" #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "" #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "FORMAT" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "OPTIONEN" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "DATEI" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "" #: .././plainbox/impl/commands/run.py:411 msgid "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "WO" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "Name" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "BIOS" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "Speicher" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "Audio" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "Drahtlos" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "Bluetooth" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "Name" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "Version:" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "Überspringen" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "Zusammenfassung" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "nicht unterstützt" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "Ergebnis" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "Beschreibung" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "Systeminformationen" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "Protokolldateien" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "" #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "" #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr "" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "" #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "" #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "" #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "" #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit " "manage.py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "" plainbox-0.5.3/po/pl.po0000664000175000017500000030012112320461715014672 0ustar zygazyga00000000000000# PlainBox translations # Copyright (C) 2014 Canonical # This file is distributed under the same license as the palinbox package. # Zygmunt , 2014. # msgid "" msgstr "" "Project-Id-Version: plainbox 0.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: 2014-04-05 13:51+0000\n" "Last-Translator: Zygmunt Krynicki \n" "Language-Team: polski <>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2014-04-06 05:46+0000\n" "X-Generator: Launchpad (build 16976)\n" "Language: Polish\n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "użycie: " #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "Å»aden z dostawców nie posiada planu testów '{}'" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "Zmienne Å›rodowiska dla skryptów i zadaÅ„" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "Tekst powitalny wyÅ›wietlany przed wyborem/wykonaniem testów" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "Nazwa domyÅ›lnego dostawcy do wykorzystania" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "przeparsowano wczesnÄ… przestrzeń nazw: %s" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "przeparsowano peÅ‚ną przestrzeÅ„ nazw: %s" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "pokaż numer wersji programu i wyjdź" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "dziennik i odpluskwianie oprogramowania" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "bÄ…dź bardziej wymowny (tak samo jak --log-level=INFO)" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "włącz wiadomoÅ›ci DEBUG w głównym strumieniu dziennika" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "wyÅ›wietlaj wiadomoÅ›ci DEBUG w konsoli" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "STRUMIEŃ-DZIENNIKA" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" "zezwalaj na wiadomoÅ›ci typu DEBUG w okreÅ›lonym strumieniu dziennika (ta " "opcja może być użyta wielokrotnie)" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "wskocz do pdb (debuggera pythona) gdy polecenie ulegnie awarii" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "ulegnij awarii na SIGINT/KeyboardInterrupt, przydatne razem z --pdb" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "za maÅ‚o argumentów" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "zÅ‚apano SystemExit, wychodzenie" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "zÅ‚apano %r, podejmowanie decyzji co dalej" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "akcja dla wyjÄ…tku %r to %s" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "Plik wykonywalny %r uruchomiony z %r ulegÅ‚ awarii" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "zÅ‚apano nieobsÅ‚użony wyjÄ…tek: %r" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "uruchamianie debuggera..." #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "Nie można znaleźć żadnego z plików wykonywalnych {}" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "lista dostawców i rozwój oprogramowania" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "których dostawców zaÅ‚adować" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "[Pożądana lista zadaÅ„]" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "[Lista wykonania]" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "[Wykonywanie lokalnych zadaÅ„]" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "Lista problemów" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "[Ogólne statystyki]" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "Znane zadania: {}" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "Wybrane zadania: {}" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "[Raport zależnoÅ›ci]" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "Wybrane zadania nie majÄ… problemów zależnoÅ›ci" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "[Raport interaktywnoÅ›ci]" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "automatyczne" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "interaktywne" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "nieznane" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "[Raport o oczacowanym czasie trwania]" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "Szacowany czas trwania testu:" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "testy zautomatyzowane: {}" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "nie można oszacować" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "testy rÄ™czne: {}" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "w sumie: {}" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "[Raport weryfikacji]" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "Zadanie zdefiniowane w {}" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "Nie znaleziono problemów" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "[Raport zależnoÅ›ci zasobów]" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "zanalizuj jak wybrane zadania byÅ‚yby wykonane" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "" "wykonaj wybrane zadania typu 'local', wymagane aby zobaczyć prawdziwe dane" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "nie uruchamiaj zadaÅ„ typu 'local'" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "wyÅ›wietl ogólne statystyki zadaÅ„" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "wyÅ›wietl raport o zależnoÅ›ciach" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "wyÅ›wietl raport o interaktywnoÅ›ci" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "wyÅ›wietl raport o szacowanym czasie trwania" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "wyÅ›wietl raport weryfikacji" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "wyÅ›wietl raport o zależnoÅ›ciach pomiÄ™dzy zasobami" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "w połączeniu z -v wyÅ›wietla tylko problematyczne zadania" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "wyÅ›wietl pożądanÄ… listÄ™ zadaÅ„" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "wyÅ›wietl listÄ™ wykonania" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "Pliki konfiguracyjne:" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr " - {0} (brak)" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "Zmienne:" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "Sekcje:" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "Problemy:" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr " - zmienna {0}: {1}" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "Nie znaleziono problemów weryfikacji" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "sprawdź i wyÅ›wietl konfiguracjÄ™ plainboxa" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "Używanie planu testów %r uzyskanego z dostawcy %r" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "Nie można wczytać planu testów %r: %s" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "NiewÅ‚aÅ›ciwy wzorzec %r: %s" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "opcje definicji zadaÅ„" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "WZORZEC" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "wybierz zadania dopasowane do podanego wrażenia regularnego" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "pomiÅ„ zadania dopasowane do podanego wrażenia regularnego" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "PLAN-TESTÓW" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "zaÅ‚aduj plan testów zawierajÄ…cy wzorce do wykonania" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "wywalanie siÄ™, tak jak zażądano" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "wywal aplikacjÄ™" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "zgÅ‚oś wyjÄ…tek" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "zawieÅ› aplikacje w zajÄ™tej pÄ™tli" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "polecenia dla programistów" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "dzieci" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "wymieÅ„ i opisz różne obiekty" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "pokaż atrybuty obiektów" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "wymień obiekty należące do okreÅ›lonej grupy" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "wiadomość do debugowania" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "informacja" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "ostrzeżenie" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "błąd" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "krytyczny błąd" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "wpisy dziennika na różnych poziomach" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "Nie można zdekodować strumienia wejÅ›ciowego, musi być poprawne UTF-8" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "DostÄ™pne sÄ… nastÄ™pujÄ…ce parsery:" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "przeparsuj standardowe wejÅ›cie okreÅ›lonym parserem" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" "\n" " To polecenie może być wykorzystane do uruchomienia parserów\n" " udostÄ™pnionych przez punkt wejÅ›cia `plainbox.parsers`,\n" " przeparsowania strumienia standardowe wejÅ›cia i wyprodukowania\n" " zrzutu wyjÅ›ciowej struktury danych w formie dokumentu JSON.\n" "\n" " PamiÄ™taj, ze wiÄ™kszość parserów jest przystosowania do tekstu\n" " przygotowanego w lokale 'C'. Możesz musieć nadpisać zmiennÄ…\n" " Å›rodowiska LANG na C.\n" " " #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "Na przykÅ‚ad: " #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "NAZWA-PARSERA" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "Nazwa parsera który zostanie użyty" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "?" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "DostÄ™pne formaty wyjÅ›ciowe: {}" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "Każdy format może wspierać inny zestaw opcji" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "DostÄ™pne mechanizmy transportu: {}" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "Czy chcesz wznowić poprzedniÄ… sesjÄ™?" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "Co chcesz zrobić z tym zadaniem testowym?" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "pomiÅ„" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "niepowodzenie" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "uruchom" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "Poprzednia sesja próbowaÅ‚a wykonać: {}" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "OminiÄ™to po wznowieniu sesji" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "Oznaczono jako nieudany po wznowieniu sesji" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "[ Analizowanie zadaÅ„ ]" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "" "Baza danych zawierajÄ…ca zadania testowe której teraz używasz jest popsuta" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "Co najmniej dwa zdania testowe konkurują o identyfikator {0}" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "Pierwsze zadanie zdefiniowano w: {0}" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "Drugie zadanie zdefiniowano w: {0}" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "[ Autentykacja ]" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "[ Wyniki ]" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "Zapisywanie wyników do {}" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "ProszÄ™ wybrać " #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "komentarz" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "testuj" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "Dozwolone odpowiedzi to: {}" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "ProszÄ™ podać komentarz:\n" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "[ Ostrzeżenie ]" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "WystÄ…piÅ‚y problemy z wybranymi zadaniami" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "Problematyczne zadania nie zostaną wziÄ™te pod uwagÄ™" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "Oszacowany czas trwania zadaÅ„ zautomatyzowanych to {:.2f}." #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "Nie można oszacować czasu trwania zadań zautomatyzowanych." #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "Oszacowany czas trwania zadaÅ„ rÄ™cznych to {:.2f}." #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "Nie można oszacować czasu trwania zadaÅ„ rÄ™cznych." #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "[ Wykonywanie wszystkich zadaÅ„ ]" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "Identyfikator zadania: %s" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "Wtyczka: %s" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "BezpoÅ›rednie zależnoÅ›ci: %s" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "ZależnoÅ›ci od zasobów: %s" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "Program zasobu: %r" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "Polecenie: %r" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "Może być uruchomiony: %s" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "Gotowość: %s" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "Wykonywanie... (wyjÅ›cie w {}.*)" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "Wynik: {}" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "Komentarze: {}" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "uruchom zadania testowe" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "opcje interfejsu użytkownika" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "pomiÅ„ testy wymagajÄ…ce interaktywnoÅ›ci" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "tak na prawdÄ™ nie uruchamiaj wiÄ™kszoÅ›ci zadaÅ„" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "opcje wyjÅ›ciowe" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "FORMAT" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "zapisz wyniki w wybranym FORMACIE (? wyÅ›wietla listÄ™ możliwoÅ›ci)" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "OPCJE" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" "lista opcji, po przecinku, do mechanizmu eksportowania wyników (? wyÅ›wietla " "listÄ™ możliwoÅ›ci)" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "PLIK" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "" "zapisz wyniki testów do wybranego PLIKU (lub na standardowe wyjÅ›cie, jeÅ›li " "PLIK to -)" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "TRANSPORT" #: .././plainbox/impl/commands/run.py:411 msgid "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" "użyj TRANSPORTU do wysÅ‚ania wyników w jakieÅ› miejsce (? wyÅ›wietla " "listę możliwoÅ›ci)" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "GDZIE" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "gdzie wysÅ‚ać wyniki za pomocą wybranego mechanizmu transportowego" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" "lista opcji klucz-wartość (k=w), po przecinku, do przekazania do mechanizmu " "transportowego" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "Nie ma zadania o nazwie {!a}" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "Aby wyÅ›wietlić możliwe wybory uruchom `plainbox special --list-jobs`" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "Wybrane zadanie nie posiada polecenia" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "Wykryto pozostaÅ‚y plik: {!a}:" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "zadanie {} zwróciÅ‚o {}" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "polecenie:" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "uruchom polecenie z zadania" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "ID-ZADANIA" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "Identyfikator zadania do wykonania" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "uruchom testy jednostkowe i testy integracji" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "" "uruchom testy integracji (to weryfikuje definicje zadaÅ„ z checkbox'a)" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "uruchom testy jednostkowe (to weryfikuje jedynie jÄ…dro plainbox'a)" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "przerwij testy po pierwszym problemie" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "uruchom testy po cichu" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "uruchom testy z normalnÄ… gÅ‚oÅ›noÅ›ciÄ… (domyÅ›lnie)" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "uruchom testy gÅ‚oÅ›no, wypisujÄ…c nazwÄ™ każdego testu" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "polecenia specjalne i wewnÄ™trzne" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "wypisz listÄ™ zadaÅ„ zamiast je wykonać" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "" "wypisz listÄ™ zadaÅ„ wraz z sumami kontrolnymi zamiast cokolwiek uruchamiać" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "wypisz listÄ™ wszystkich unikalnych wyrażeÅ„ zasobów" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "wypisz graf zadaÅ„ zamiast cokolwiek urchamiać" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "pokazuj zależnoÅ›ci od zasobów (dla --dot)" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "odmowa nadpisania {!a}" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" "\n" " utwórz nowego dostawcÄ™ testów (katalog)\n" "\n" " Tworzy nowego dostawcÄ™ z wbudowanego szkieletu.\n" "\n" " @EPILOG@\n" "\n" " Nazwa dostawcy musi pasować do wzorca ``RRRR.example.org:nazwa``\n" " gdzie ``RRRR`` jest czterocyfrowym kodem roku gdy autor dostawcy\n" " byÅ‚ wÅ‚aÅ›cicielem domeny (tutaj,``example.org``) a ``nazwa`` to\n" " dowolny identyfikator zarzÄ…dzany przez wÅ‚aÅ›ciciela tej domeny.\n" " Identyfikator powinien być ograniczny do liter z ASCII, cyfr\n" " i myÅ›lnika (-).\n" "\n" " Ten sposób nazywania dostawców pozwala komukolwiek kto kiedykolwiek\n" " byÅ‚ wÅ‚aÅ›cicielem domeny utworzyć niekolidujÄ…cy z innymi\n" " identyfikator dostawcy. Identyfikatory dostawców są używane do\n" " tworzenia w peÅ‚ni okreÅ›lonych nazw różnych obiektów.\n" "\n" " To polecenie tworzy szkielet nowego dostawcy testow dla PlainBox'a.\n" " Wygenerowana treść powinna być zmodyfikowana tak, aby sÅ‚użyÅ‚a do\n" " konkretnego celu.\n" " " #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "nazwa" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "nazwa dostawcy, np: RRRR.example.org:jakaÅ›-nazwa" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "Zachowywanie rekordu zasobu %r: %s" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" "Zadanie typu 'local' %s wyprodukowaÅ‚o zadanie %r które koliduje z " "istniejÄ…cym zadaniem %s (z %s), nowe zadanie zostaÅ‚o odrzucone" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "przetwarzanie wyjÅ›cia z zadania: %r" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "skrypt typu local %s zwróciÅ‚ niewÅ‚aÅ›ciwe dane RFC822: %s" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "Dodawanie pliku wykonywalnego %s do gniazda %s" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "zadanie[%s] wykonywanie %r w Å›rodowisku %r" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "DowiÄ…zanie symboliczne dla pliku wykonywalnego: %s" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "wykryto cykl zależnoÅ›ci: {}" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "brakujÄ…ca zależność: {!r} ({})" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "powtarzajÄ…cy siÄ™ identyfikator zadania: {!r}" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "Rozpoczynanie rozwiÄ…zywania" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "RozwiÄ…zywanie zakoÅ„czone" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "Odwiedzanie zadania %s (kolor %s)" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "Odwiedzanie zależnoÅ›ci: %r" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "Dodawanie %r to rozwiÄ…zania" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "Nie można wczytać %s: %s" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "Nie można zaimportować %s: %s" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "Nie można wczytać zasobu %s, nie wklejam w miejscu" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "Zasób rodzaju %s jest nieznany" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "NieobsÅ‚ugiwana opcja: {}" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "Nazwa platformy" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "BIOS" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "Procesory" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "Chipset" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "Pamięć" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "Karta wideo (wbudowana)" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "Karta wideo (dedykowana)" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "Pamięć wideo" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "DźwiÄ™k" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "Sieć" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "Sieć bezprzewodowa" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "Bluetooth" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "Zainstalowane pakiety" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "Nazwa" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "Wersja" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "Podsumowanie niepowodzeÅ„" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "{} Test zakoÅ„czony sukcesem" msgstr[1] "{} Testy zakoÅ„czone sukcesem" msgstr[2] "{} Testów zakoÅ„czonych sukcesem" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "Odsetek sukcesów {:.2f}% ({}/{})" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "{} Test zakoÅ„czony niepowodzeniem" msgstr[1] "{} Testy zakoÅ„czone niepowodzeniem" msgstr[2] "{} Testów zakoÅ„czonych niepowodzeniem" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "Odsetek niepowodzeÅ„: {:.2f}% {{}/{})" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "{} Test pominiÄ™ty" msgstr[1] "{} Testy pominiÄ™te" msgstr[2] "{} Testów pominiÄ™tych" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "Odsetek pominięć: {:.2f}% ({}/{})" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "Niepowodzenie" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "PominiÄ™ty" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "Sukces" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "Podsumowanie" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "Opisy testów" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "SUKCES" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "PORAÅ»KA" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "nieobsÅ‚ugiwane" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "Wykonane testy" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "Wynik" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "Dziennik We/Wy" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "Opis" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "Informacje o systemie" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "Wyniki testów" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "Pliki dziennika" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "Raport Testowania Systemu" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "Problem z polem {}: {}" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "" "NiewÅ‚aÅ›ciwa wartość pola 'estimated_duration' w zadaniu %s przeczytanym z %s" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "record.origin musi być JobOutputTextSource" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "record.origin.source.job musi być tym zadaniem" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "Nie można stworzyć katalogu dziennika: %s" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "Powód: %s. Wszystkie wpisy dziennika pójdÄ… na konsole." #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "Uruchomiono %r na głównym strumieniu dziennika" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "Uruchomiono debugowanie na strumieniu dziennika %r" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "Nie można dokonać analizy skÅ‚adniowej wejÅ›cia" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "StubBox (atrapa z danymi do rozwoju oprogramowania)" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "wyrażenie {!r} obliczone do wyniku nie bÄ™dÄ…cego prawdÄ…" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "wyrażenie {!r} potrzebuje niedostÄ™pnego zasobu {!r}" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "ten rodzaj kodu pythona nie jest dozwolony: {}" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "wyrażenie nie odniosÅ‚o siÄ™ do żadnych zasobów" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "wyrażenie odniosÅ‚o siÄ™ do wielu zasobów" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "WyjÄ…tek w wyrażeniu zapotrzebowania %r (z %s=%r): %r" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "Kosztowna wÅ‚aÅ›ciwość DiskJobResult.io_log użyta z %s:%d" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "Zakodowano %r jako napis %r" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "wpis we/wy wygenerowany %r" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "Uruchamianie %r" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "Ten rodzaj zadania testowego nie jest wspierany" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "zÅ‚a wartość pola plugin" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "Zadanie testowe zostaÅ‚o pominiÄ™te w trybie dziaÅ‚ania na sucho" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "zadanie[%s] delegat extcmd: %r" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "zadanie[%s] uruchamianie polecenia: %s" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "zadanie[%s] kod zakoÅ„czenia polecenia: %r" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "Å»aden kontroler wykonania nie wspiera zadania {}" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "Wybrano kontroler wykonania %s (punkty %d) dla zadania %r" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "nieustawiony" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "nieobsÅ‚ugiwany rodzaj" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "Wczytywanie konfiguracji z %s" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "oczekiwano wartoÅ›ci boolowskiej" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "oczekiwano liczby caÅ‚kowitej" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "oczekiwano liczby zmiennoprzecinkowej" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "oczekiwano napisu" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "nie pasuje do wzorca: {!r}" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "musi być jednym z {}" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "musi być ustawione na jakąś wartość" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "nie może być puste" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "Nie można odnaleźć zadania testowego z sumÄ… kontrolnÄ… {}" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "Błąd skÅ‚adniowy w zadaniu wygenerowanym z %s: %s" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "" "natychmiast zakoÅ„cz dziaÅ‚anie, użyteczne tylko w połączeniu z pkexec(1)" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "SUMA-KONTROLNA" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "uruchom zadanie z tą sumÄ… kontrolnÄ…" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "specyfikacja zadania docelowego" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "NAZWA=WARTOŚĆ" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "Å›rodowisko przekazane do zadania docelowego" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "specyfikacja zadania generujÄ…cego" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "" "uruchom również zadanie z tÄ… sumÄ… kontrolnÄ… (zakÅ‚adajÄ…c, że jest to zadanie " "typu 'local')" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "Å›rodowisko przekazane do generatora zadaÅ„" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "Nie można przygotować wtyczki %s: %s" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "Nie można zaimportować %s" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "Nie można wczytać %r: %s" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "Nie można wczytać planu testów {!r}: {}" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "Wczytywanie definicji zadań z %r..." #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "Nie można wczytać definicji zadaÅ„ testowych z {!r}: {}" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "Nie można zdefiniować zadania z rekordu {!r}: {}" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "Problem w definicji zadania, pole {}: {}" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "Wczytano %r" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "musi wyglÄ…dać jak IQN z RFC3720" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "musi być sekwencjÄ… cyfr oddzielonÄ… kropkami" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "nie ma takiego katalogu" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "nie może być wzglÄ™dny" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "Bazowy katalog z danymi dostawcy" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "Nazwa dostawcy" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "Wersja dostawcy" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "Opis dostawcy" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "Nazwa domeny gettext dla tÅ‚umaczeÅ„" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "Åšcieżka do katalogu z definicjami zadaÅ„" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "Åšcieżka do katalogu z planami testów" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "Åšcieżka do katalogu z danymi dostawcy" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "Åšcieżka do katalogu z plikami wykonywalnymi dostawcy" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "Åšcieżka do katalogu z plikami tÅ‚umaczeÅ„ dostawcy" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "Problem w definicji dostawcy, pole {!a}: {}" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "???" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "Zatwierdzono klucz/wartość %r=%r" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "Patrzenie na liniÄ™ %d:%r" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "yieldowanie rekordu: %r" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "Nieoczekiwana wartość wielowierszowa" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "" "Zadanie posiada duplikowany klucz {!r} ze starÄ… wartoÅ›ciÄ… {!r} i nowÄ… " "wartoÅ›ciÄ… {!r}" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "Nieoczekiwane nie-pusta linia: {!r}" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "nieobsÅ‚ugiwany wartość przyczyny" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "relative_job nie może być None gdy cause to {}" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "related_expression nie może być None gdy cause jest {}" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "niepożądane" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "wymagana zależność {!r} jeszcze nie zostaÅ‚a uruchomiona" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "wymagana zależność {!r} odniosÅ‚a porażkÄ™" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" "nie można wykonać wyrażenia zasobu {!r} ponieważ zasób od którego ono zależy " "nie zostaÅ‚ jeszcze uruchomiony" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "wyrażenie zasobu {!r} obliczone do faÅ‚szu" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "zadanie nie może zostać rozpoczÄ™te: {}" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr "dostÄ™p do .manager" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "Sesja nie jest gotowa, czy wywoÅ‚aÅ‚eÅ› funkcjÄ™ open()?" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "zakoÅ„czono _commit_resume()" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "Stworzono SessionManager z state:%r i storage:%r" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "Zapisywanie %d bajtu danych migawki do %r" msgstr[1] "Zapisywanie %d bajtów danych migawki do %r" msgstr[2] "Zapisywanie %d bajtów danych migawki do %r" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "Nie można dekompresować danych sesji" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "Nie można zdekodować tekstu sesji" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "Nie można zinterpretować danych JSON sesji" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "Wznawianie z json... (patrz niżej)" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "NieobsÅ‚ugiwana wersja {}" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "Skonstruowano nową sesjÄ™ dla wznowienia %r" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "WywoÅ‚ywanie wczesnego callback'a %r" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "Używanie innej sesji dla wznowienia: %r" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "Rozpoczynanie wznawiania zadaÅ„ i wyników do %r..." #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "Rozpoczynanie wznawiania metadanych..." #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "Rozpoczynanie wznawiania listy pożądanych zadaÅ„..." #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "Rozpoczynanie wznawiania listy zadaÅ„..." #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "Wznawianie zakoÅ„czone!" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "PozostaÅ‚y nieznane zadania: {}" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "Definicja zadania {!r} ulegÅ‚a zmianie" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "woÅ‚anie update_job_result(%r, %r)" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "Każda flaga musi być napisem" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "wznowiono metadane %r" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "Identyfikator każdego zadania musi być napisem" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "woÅ‚anie update_desired_job_list(%r)" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "'desired_job_list' odnosi siÄ™ do nieznanego zadania {!r}" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "delay nie może być ujemne" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "dane rekordu {!r} nie są ASCII" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "dane rekordu {!r} nie są poprawnym base64" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "klucz {!r}" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "Brakuję wartości klucza {!r}" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "obiekt" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "Wartość {} nie może być None" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "Wartość {} jest niewłaściwego typu {}" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "Wartość {} nie jest w dozwolonym zbiorze {!r}" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "app_blob nie jest ASCII" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "Nie można zdekodować app_blob jako base64" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "app_blob musi być None lub bytes" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "app_id musi być None lub bytes" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "Wynik zadania %r zmieniony na %r" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "Zdefiniowano nowe zadanie: %r" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "Zadanie usunięte: %r" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "nie można usunąć zadań które są na liście do wykonania: {}" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "Wyliczanie sesji w %s" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "Odnaleziono potencjalną sesję w %r" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "Stworzono nowe miejsce do zapisu w %r" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "" "%r nie jest dowiązaniem symbolicznym, repozytorium %r musi być popsute" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "Nie można odczytać celu dowiązania symbolicznego %r: %r" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "Usuwanie miejsca do zapisu skojarzonego z sesją %r" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "Usuwanie dowiązania symbolicznego skojarzonego z ostatnią sesją: %r" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "Dowiązywanie miejsca do zapisu %r do ostatniej sesji" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "Nie można dowiązać %r do %r: %r" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "Usuwanie miejsca do zapisu dla sesji z %r" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "Siłowe usuwanie pliku 'next': %r" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "Otwarto katalog sesji %r jako deskryptor %d" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "Otwarto plik stanu sesji %r jako deskryptor %d" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "Stat'owano plik stanu sesji: %s" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "Odczytywanie %d bajtu danych stanu sesji" msgstr[1] "Odczytywanie %d bajtów danych stanu sesji" msgstr[2] "Odczytywanie %d bajtów danych stanu sesji" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "Odczytano %d bajt stanu sesji" msgstr[1] "Odczytano %d bajty stanu sesji" msgstr[2] "Odczytano %d batów stanu sesji" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "częściowy odczyt?" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "Zamknięto deskryptor %d" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "Zapisywanie %d bajtu (UNIX, python 3.2 lub starszy)" msgstr[1] "Zapisywanie %d bajtów (UNIX, python 3.2 lub starszy)" msgstr[2] "Zapisywanie %d bajtów (UNIX, python 3.2 lub starszy)" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "Otwarto %r jako deskryptor %d" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "Otwarto plik następnej sesji %s jako deskryptor %d" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "Zapisano %d bajt danych do deskryptora %d" msgstr[1] "Zapisano %d bajty danych do deskryptora %d" msgstr[2] "Zapisano %d bajtów danych do deskryptora %d" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "częściowy odczyt?" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "Usuwanie %r" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "Wołanie funkcji fsync() z deskryptorem %d" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "Zamykanie deskryptora %d" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "Zmienianie nazwy %r na %r" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "Zapisywanie %d bajtu danych (UNIX, python 3.3 lub nowszy)" msgstr[1] "Zapisywanie %d bajtów (UNIX, python 3.3 lub nowszy)" msgstr[2] "Zapisywanie %d bajtów (UNIX, python 3.3 lub nowszy)" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "łączenie %r z %r" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "rozłączanie %r od %r" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "W napisie opcji nie znaleziono poprawnych opcji" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "Nie można zaimportować {}: {}" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" "\n" " instaluj tego dostawce w systemie\n" "\n" " To polecenie instaluje dostawce do podanego przedrostku.\n" "\n" " @EPILOG@\n" "\n" " Układy instalacji\n" " =================\n" "\n" " Istnieją dwa możliwe układy instalacji: płaski (flat), doskonały\n" " do przechowywania wszystkich danych w jednym katalogu oraz unix\n" " który jest przystosowany do paczkowania i respektuje hierarchię\n" " systemu plików.\n" "\n" " W obu przypadkach generowany jest plik w sztywnej lokalizacji:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " Ten plik jest kluczowy do tego aby plainbox mógł wykryć dostawcę.\n" " Zawiera on meta-dane zebrane z wywołania setup() z pliku manage.py.\n" "\n" " Paczkowanie\n" " -----------\n" "\n" " Instalacje dla całego systemu powinny używać `--prefix=/usr` wraz z\n" " `--layout=unix`. Dla paczkowania wygodnie też użyć argumentu\n" " `--root=` tak aby umieścić wszystkie wygenerowane pliki w katalogu\n" " tymczasowym systemu paczkowania. Ten argument nie wpływa na\n" " wygenerowaną treść, która podlega tylko argumentowi `--prefix`.\n" "\n" " Układ UNIXowy\n" " -------------\n" "\n" " W układzie uniksowym stosowane są następujące transformacje:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Płaski układ\n" " ------------\n" "\n" " @LAYOUT[flat]@\n" " " #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "nie będzie instalowany" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "przedrostek instalacji" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "układ katalogów instalacji (domyślnie %(default)s)" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "" "instaluje wszystko względnie podanego alternatywnego katalogu głównego" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "kopiowanie: %s => %s" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" "\n" " utwórz tarball'a ze źródłami\n" "\n" " To polecenie tworzy dystrybucję źródłową (tarballa) wszystkich\n" " istotnych plików dostawcy. To polecenie nie pobiera żadnych\n" " argumentów i umieszcza wynikowe archiwum w katalogu dist/\n" " względem skryptu ``manage.py``.\n" " Nazwa archiwum pochodzi od nazwy i wersji dostawcy.\n" "\n" " @EPILOG@\n" "\n" " Tarball zawiera następujące elementy:\n" "\n" " - skrypt manage.py\n" " - plik README.md\n" " - katalog jobs oraz wszystko wewnątrz\n" " - katalog whitelists oraz wszystko wewnątrz\n" " - katalog bin oraz wszystko wewnątrz\n" " - katalog src oraz wszystko wewnątrz\n" " - katalog data oraz wszystko wewnątrz\n" " - katalog po oraz wszystko wewnątrz\n" "\n" " Brakujące rzeczy są po cichu ignorowane.\n" " " #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" "\n" " instaluj/usuń tego dostwacę, tylko dla programistów\n" "\n" " To polecenie tworzy lub usuwa plik ``.provider`` opisujący tego\n" " dostawcę skojarzonego z tym skryptem ``manage.py``. W odróżnieniu\n" " od ``manage.py install`` dostwaca jest instalowany bez kopiowania\n" " jakichkolwiek plików do atalogów wpływających na cały system\n" " a polecenie to nie musi być wykonane ponownie po jakiejkolwiek\n" " zmianie.\n" "\n" " Wygenerowany plik może być usunięty za pomocą opcji ``--uninstall|-u``.\n" "\n" " @EPILOG@\n" "\n" " Domyślnie plik .provider jest utworzony w katalogu\n" " ``$XDG_DATA_HOME/plainbox-providers-1/``.\n" " Nazwa pliku pochodzi tylko od nazwy dostawcy.\n" " (wersja nie jest brana pod uwagę.)\n" "\n" " Zauważ, że wygenerowany plik zawiera pełną ścieżka do katalogu ze\n" " źródłami dostawcy. Jeśli przeniesiesz ten katalog będziesz\n" " musiała/musiał ponownie uruchomić polecenie develop.\n" " " #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "usuwa wygenerowany plik .provider" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "nadpisywanie istniejącego pliku dostawcy" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "Usuwanie pliku dostawcy: %s" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "Plik dostawcy już istnieje: {}" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "Tworzenie pliku dostawcy: %s" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit " "manage.py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" "\n" " buduj pliki wykonywalne specyficzne dla dostawcy\n" "\n" " To polecenie buduje pliki wykonywalne specyficzne dla tego dostawcy\n" " z plików źródłowych.\n" "\n" " Polecenie które to faktycznie robi jest dostarczane przez autora\n" " dostawcy, w skrypcie manage.py, w wywołaniu funkcji setup() poprzez\n" " argument build_cmd\n" "\n" " @EPILOG@\n" "\n" " PlainBox posiada rozszerzalny system robienia Tego Co Trzeba,\n" " w większości przypadków nie trzeba robić zupełnie nic. Jeśli katalog\n" " src/ zawiera plik Makefile lub źródła w języku go to wszystko powinno\n" " działać automatycznie.\n" "\n" " Jeśli domyślne polecenia są jakkolwiek niewłaściwe należy edytować plik\n" " manage.py i bezpośrednio przekazać właściwe polecenie.\n" "\n" " WAŻNE: polecenie budowania powinno tworzyć pliki wykonywalne w bieżącym\n" " katalogu. To polecenie jest wykonywane w podkatalogu 'build/bin' (który\n" " jest tworzony w razie potrzeby). Względna ścieżka do katalogu src/ jest\n" " dostępna w zmiennej środowiskowej $PLAINBOX_SRC_DIR\n" ".\n" " " #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" "\n" " wyczyść wyniki budowania\n" "\n" " To polecenie dopełnia polecenie build i ma za zadanie wyczyszczenie\n" " systemu plików po procesie budowania.\n" "\n" " Konkretne polecenia opisujące jak to zrobić są dostarczane przez\n" " autorów dostawcy w wywołaniu funkcji setup() z pliku manage.py,\n" " jako argument clean_cmd\n" " @EPILOG@\n" "\n" " WAŻNE: polecenie czyszczenia jest wykonywane z katalogu w którym\n" " znajduje się skrypt 'manage.py'. Względna ścieżka do katalogu src/ jest\n" " dostępna w zmiennej środowiskowej $PLAINBOX_SRC_DIR\n" "\n" " W praktycznie każdym przypadku poniższy przykład powinien być " "wystarczający\n" " aby usunąć efekty uboczne procesu budowania. Jest to jednocześnie " "domyślna\n" " wartość więc nie trzeba jej bezpośrednio przekazywać\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" "\n" " wyświetl podstawowe informacje o dostawcy\n" "\n" " To polecenie wyświetla przeróżne istotne informacje o dostawcy\n" " skojarzonego z tym skryptem ``manage.py``. Wyświetlane informacje\n" " zawierają nazwę i inne meta-dane, listę wszystkich zadań oraz planów\n" " testowych oraz ich szczegółową lokalizację.\n" " " #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "[Metadane dostawcy]" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "nazwa: {}" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "przestrzeń nazw: {} (pochodzi od nazwy)" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "opis: {}" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "wersja: {}" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "domena gettext: {}" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "[Definicje Zadań]" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "{0!a}, z {1}" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "Niektóre zadania nie mogły być przeparsowane" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "Proszę uruchomić `manage.py validate` aby zobaczyć szczegóły" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "[Plany Testów]" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "Błędy uniemożliwiają wyświetlenie listy zadań" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "[Programy]" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" "\n" " wykonaj weryfikację i analizę statyczną kodu dostawcy\n" "\n" " To polecenie analizuje wszystkie definicje zadań dostawcy skojarzonego\n" " z tym skryptem ``manage.py``. Polecenie wykrywa problemy składniowe jak\n" " i pewne problemy znaczeniowe. Wszystkie zgłoszone błędy prawdopodobnie\n" " uniemożliwią poprawne działanie dostawcy w normalnych warunkach.\n" "\n" " @EPILOG@\n" "\n" " Zwróć się do dokumentacji plainboxa aby zrozumieć jak wyglądaja\n" " poprawne definicje zadań i jak rozwiązywać problemy zgłaszane przez\n" " polecenie ``verify``.\n" "\n" " Kod wyjścia programu może być wykorzystywany do określenia czy wykryto\n" " jakiekolwiek problemy. Jeśli twoje środowisko korzysta z systemu " "ciągłej\n" " integracji warto dodać do niego ``manage.py validate``.\n" " " #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "" "UWAGA: późniejsze zadania z problematycznych plików zostały pominięte" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "brakująca definicja wymaganego pola" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "dostarczona wartość jest niepoprawna" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "bezużyteczna wartość pola w tym kontekście" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "wykorzystanie przestarzałego pola" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "{0}: zadanie {1!a}, pole {2!a}: {3}" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "dozwolone wartości to: {0}" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "Wszystkie zadania wydają się być poprawne" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" "\n" " aktualizuj, łącz i buduj katalogi tłumaczeń\n" "\n" " To polecenie udostępnia narzędzia do aktualizacji, łączenia\n" " oraz budowania katalogów tłumaczeń.\n" " " #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "nic nie rób" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "akcje do wykonania" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "nie aktualizuj szablonu tłumaczeń" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "nie łącz plików tłumaczeń z szablonem" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "nie buduj binarnych katalogów tłumaczeń" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "manage.py [--help] [--version] [opcje]" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "{}: zła wartość {!r}, {}" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr ".__call__() nie jest zdefiniowane" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "nieznany parser %(parser_name)r (możliwe wybory %(choices)s)" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "argument \"-\" w trybie %r" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "nie można otworzyć '%s': %s" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "nie można scalić akcji - dwie grupy są nazwane %r" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "'required' jest niewłaściwym argumentem dla argumentów pozycyjnych" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" "niewłaściwa opcja %(option)r: musi zaczynać się od znaku %(prefix_chars)s" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "dest= jest wymagane dla opcji takich jak %r" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "niewłaściwa wartość dla conflict_resolution: %r" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "konfliktujące opcja: %s" msgstr[1] "konfliktujące opcje: %s" msgstr[2] "konfliktujące opcje: %s" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "wzajemnie wykluczające argumenty muszą być opcjonalne" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "argumenty pozycyjne" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "argumenty opcjonalne" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "wyświetl tę wiadomość pomocy i wyjdź" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "nie można mieć wielu podrzędnych parserów argumentów" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "nierozpoznane argumenty: %s" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "niedozwolony wraz z argumentem: %s" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "zignorowano wyraźny argument %r" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "wymagany %s jest wymagany" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "wymagany jest jeden z argumentów %s" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "oczekiwano jednego argumentu" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "oczekiwano co najwyżej jednego argumentu" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "oczekiwano co najmniej jednego argumentu" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "oczekiwano %s argumentu" msgstr[1] "oczekiwano %s argumentów" msgstr[2] "oczekiwano %s argumentów" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "niejasna opcja: %(option)s może pasować do %(matches)s" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "nieoczekiwana opcja: %s" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "nie można wywołać %r" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "niewłaściwa wartość %(type)s: %(value)r" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "niewłaściwy wybór: %(value)r (wybierz z %(choices)s)" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "%(prog)s: błąd: %(message)s\n" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "wymagane są następujące argumenty: %s" plainbox-0.5.3/po/en_GB.po0000664000175000017500000026201012320461715015235 0ustar zygazyga00000000000000# English (United Kingdom) translation for plainbox # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the plainbox package. # FIRST AUTHOR , 2014. # msgid "" msgstr "" "Project-Id-Version: plainbox\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: 2014-03-30 20:41+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2014-04-05 04:34+0000\n" "X-Generator: Launchpad (build 16976)\n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "usage: " #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "None of the providers had a whitelist named '{}'" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "Environment variables for scripts and jobs" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "Welcome text to display prior to test selection/execution" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "Name of the default provider to use" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "parsed early namespace: %s" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "parsed full namespace: %s" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "show program's version number and exit" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "logging and debugging" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "be more verbose (same as --log-level=INFO)" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "enable DEBUG messages on the root logger" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "display DEBUG messages in the console" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "LOGGER" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" "enable DEBUG messages on the specified logger (can be used multiple times)" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "jump into pdb (python debugger) when a command crashes" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "crash on SIGINT/KeyboardInterrupt, useful with --pdb" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "too few arguments" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "caught SystemExit, exiting" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "caught %r, deciding on what to do next" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "action for exception %r is %s" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "Executable %r invoked with %r has crashed" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "caught runaway exception: %r" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "starting debugger..." #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "Unable to find any of the executables {}" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "provider list and development" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "which providers to load" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "[Desired Job List]" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "[Run List]" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "[Running Local Jobs]" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "Problem list" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "[General Statistics]" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "Known jobs: {}" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "Selected jobs: {}" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "[Dependency Report]" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "Selected jobs have no dependency problems" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "[Interactivity Report]" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "automatic" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "interactive" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "unknown" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "[Estimated Duration Report]" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "Estimated test duration:" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "automated tests: {}" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "cannot estimate" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "manual tests: {}" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "total: {}" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "[Validation Report]" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "Job defined in {}" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "No problems found" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "[Requirement Report]" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "analyse how selected jobs would be executed" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "run all selected local jobs, required to see true data" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "do not run local jobs" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "print general job statistics" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "print dependency report" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "print interactivity report" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "print estimated duration report" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "print validation report" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "print requirement report" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "when coupled with -v, only problematic jobs will be listed" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "print desired job list" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "print run list" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "Configuration files:" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr " - {0} (not present)" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "Variables:" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "Sections:" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "Problems:" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr " - variable {0}: {1}" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "No validation problems found" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "check and display plainbox configuration" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "Using whitelist %r obtained from provider %r" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "Unable to load whitelist %r: %s" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "Incorrect pattern %r: %s" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "job definition options" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "PATTERN" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "include jobs matching the given regular expression" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "exclude jobs matching the given regular expression" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "WHITELIST" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "load whitelist containing run patterns" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "crashing as requested" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "crash the application" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "raise an exception" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "hang the application with a busy loop" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "development commands" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "children" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "list and describe various objects" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "show object attributes" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "list objects from the specified group" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "a debug message" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "an info message" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "a warning message" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "an error message" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "a critical message" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "log messages at various levels" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "Unable to decode input stream, must be valid UTF-8" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "The following parsers are available:" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "parse stdin with the specified parser" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "Example: " #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "PARSER-NAME" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "Name of the parser to use" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "?" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "Available output formats: {}" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "Each format may support a different set of options" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "Available transports: {}" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "Do you want to resume the previous session?" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "What do you want to do with that job?" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "skip" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "fail" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "run" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "Previous session run tried to execute: {}" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "Skipped after resuming execution" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "Failed after resuming execution" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "[ Analysing Jobs ]" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "The job database you are currently using is broken" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "At least two jobs contend for the id {0}" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "First job defined in: {0}" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "Second job defined in: {0}" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "[ Authentication ]" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "[ Results ]" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "Saving results to {}" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "Select an outcome or an action: " #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "comments" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "test" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "Allowed answers are: {}" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "Please enter your comments:\n" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "[ Warning ]" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "There were some problems with the selected jobs" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "Problematic jobs will not be considered" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "Estimated duration is {:.2f} for automated jobs." #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "Estimated duration cannot be determined for automated jobs." #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "Estimated duration is {:.2f} for manual jobs." #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "Estimated duration cannot be determined for manual jobs." #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "[ Running All Jobs ]" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "Job id: %s" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "Plugin: %s" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "Direct dependencies: %s" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "Resource dependencies: %s" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "Resource program: %r" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "Command: %r" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "Can start: %s" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "Readiness: %s" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "Running... (output in {}.*)" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "Outcome: {}" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "Comments: {}" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "run a test job" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "user interface options" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "skip tests that require interactivity" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "don't really run most jobs" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "output options" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "FORMAT" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "" "save test results in the specified FORMAT (pass ? for a list of choices)" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "OPTIONS" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "FILE" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "save test results to the specified FILE (or to stdout if FILE is -)" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "TRANSPORT" #: .././plainbox/impl/commands/run.py:411 msgid "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "WHERE" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "where to send data using the selected transport" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "There is no job called {!a}" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "See `plainbox special --list-jobs` for a list of choices" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "Selected job does not have a command" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "Leftover file detected: {!a}:" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "job {} returned {}" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "command:" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "run a command from a job" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "JOB-ID" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "Id of the job to run" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "run unit and integration tests" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "run integration test suite (this verifies checkbox jobs)" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "run unit tests (this only verifies plainbox core)" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "abort the test on first failure" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "run tests quietly" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "run tests with normal verbosity (default)" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "run tests verbosely, printing each test case name" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "special/internal commands" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "list jobs instead of running them" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "list jobs with cheksums instead of running them" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "list all unique resource expressions" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "print a graph of jobs instead of running them" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "show resource relationships (for --dot)" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "refusing to overwrite {!a}" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "name" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "provider name, eg: YYYY.example.org:some-name" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "Storing resource record %r: %s" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "processing output from a job: %r" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "local script %s returned invalid RFC822 data: %s" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "Adding executable %s to nest %s" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "job[%s] executing %r with env %r" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "Symlink nest for executables: %s" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "dependency cycle detected: {}" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "missing dependency: {!r} ({})" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "duplicate job id: {!r}" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "Starting solve" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "Done solving" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "Visiting job %s (colour %s)" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "Visiting dependency: %r" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "Appending %r to solution" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "Unable to load %s: %s" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "Unable to import %s: %s" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "Unable to load resource %s, not inlining" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "Resource of type %s unknown" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "Unsupported option: {}" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "Platform Name" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "BIOS" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "Processors" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "Chipset" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "Memory" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "Video (on board)" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "Video (add-on)" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "Video memory" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "Audio" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "NIC" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "Wireless" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "Bluetooth" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "Packages Installed" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "Name" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "Version" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "Summary of Failures" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "{} Test passed" msgstr[1] "{} Tests passed" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "Success Rate: {:.2f}% ({}/{})" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "{} Test failed" msgstr[1] "{} Tests failed" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "Failure Rate: {:.2f}% ({}/{})" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "{} Test skipped" msgstr[1] "{} Tests skipped" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "Skip Rate: {:.2f}% ({}/{})" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "Fail" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "Skip" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "Pass" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "Summary" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "Test Descriptions" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "PASS" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "FAIL" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "not supported" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "Tests Performed" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "Result" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "I/O Log" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "Description" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "System Info" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "Test Results" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "Log Files" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "System Testing Report" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "Problem with field {}: {}" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "Incorrect value of 'estimated_duration' in job %s read from %s" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "record.origin must be a JobOutputTextSource" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "record.origin.source.job must be this job" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "" #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "Enabled %r on root logger" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "Enabled debugging on logger %r" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "Cannot parse input" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "StubBox (dummy data for development)" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "expression {!r} evaluated to a non-true result" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "expression {!r} needs unavailable resource {!r}" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "this kind of python code is not allowed: {}" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "expression did not reference any resources" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "expression referenced multiple resources" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "Exception in requirement expression %r (with %s=%r): %r" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "Expensive DiskJobResult.io_log property access from %s:%d" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "Encoded %r into string %r" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "io log generated %r" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "Running %r" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "This type of job is not supported" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "bad job plugin value" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "Job skipped in dry-run mode" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "job[%s] extcmd delegate: %r" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "job[%s] starting command: %s" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "job[%s] command return code: %r" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "No exec controller supports job {}" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "Selected execution controller %s (score %d) for job %r" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "unset" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "unsupported kind" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "Loading configuration from %s" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "expected a boolean" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "expected an integer" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "expected a floating point number" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "expected a string" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "does not match pattern: {!r}" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "must be one of {}" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "must be set to something" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "cannot be empty" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "Cannot find job with checksum {}" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "Syntax error in job generated from %s: %s" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "return immediately, only useful when used with pkexec(1)" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "CHECKSUM" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "run a job with this checksum" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "target job specification" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "NAME=VALUE" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "environment passed to the target job" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "generator job specification" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "also run a job with this checksum (assuming it is a local job)" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "environment passed to the generator job" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "Unable to prepare plugin %s: %s" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "Unable to import %s" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "Unable to load %r: %s" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "Cannot load whitelist {!r}: {}" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "Loading jobs definitions from %r..." #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "Cannot load job definitions from {!r}: {}" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "Cannot define job from record {!r}: {}" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "Loaded %r" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "must look like RFC3720 IQN" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "must be a sequence of digits separated by dots" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "no such directory" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "cannot be relative" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "Base directory with provider data" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "Name of the provider" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "Version of the provider" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "Description of the provider" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "Name of the gettext domain for translations" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "Pathname of the directory with job definitions" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "Pathname of the directory with whitelists definitions" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "Pathname of the directory with provider data" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "Pathname of the directory with provider executables" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "Pathname of the directory with locale data" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "Problem in provider definition, field {!a}: {}" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "???" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "Committed key/value %r=%r" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "Looking at line %d:%r" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "yielding record: %r" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "Unexpected multi-line value" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "Job has a duplicate key {!r} with old value {!r} and new value {!r}" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "Unexpected non-empty line: {!r}" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "unsupported value for cause" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "related_job must not be None when cause is {}" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "related_expression must not be None when cause is {}" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "undesired" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "required dependency {!r} did not run yet" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "required dependency {!r} has failed" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "resource expression {!r} evaluates to false" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "job cannot be started: {}" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr ".manager accessed" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "Session not ready, did you call open()?" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "_commit_resume() finished" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "Created SessionManager with state:%r and storage:%r" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "Saving %d byte of checkpoint data to %r" msgstr[1] "Saving %d bytes of checkpoint data to %r" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "Cannot decompress session data" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "Cannot decode session text" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "Cannot interpret session JSON" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "Resuming from json... (see below)" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "Unsupported version {}" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "Constructed new session for resume %r" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "Invoking early callback %r" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "Using different session for resume: %r" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "Starting to restore jobs and results to %r..." #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "Starting to restore metadata..." #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "Starting to restore desired job list..." #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "Starting to restore job list..." #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "Resume complete!" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "Unknown jobs remaining: {}" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "Definition of job {!r} has changed" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "calling update_job_result(%r, %r)" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "Each flag must be a string" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "restored metadata %r" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "Each job id must be a string" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "calling update_desired_job_list(%r)" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "'desired_job_list' refers to unknown job {!r}" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "delay cannot be negative" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "record data {!r} is not ASCII" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "record data {!r} is not correct base64" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "key {!r}" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "Missing value for key {!r}" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "object" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "Value of {} cannot be None" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "Value of {} is of incorrect type {}" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "Value for {} not in allowed set {!r}" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "app_blob is not ASCII" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "Cannot base64 decode app_blob" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "app_blob must be either None or bytes" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "app_id must be either None or str" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "Job %s result changed to %r" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "New job defined: %r" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "Job removed: %r" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "cannot remove jobs that are on the run list: {}" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "Enumerating sessions in %s" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "Found possible session in %r" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "Created new storage in %r" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "%r is not a symlink, repository %r must be corrupted" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "Unable to read symlink target from %r: %r" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "Removing storage associated with last session %r" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "Removing symlink associated with last session: %r" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "Linking storage %r to last session" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "Cannot link %r as %r: %r" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "Removing session storage from %r" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "Forcibly unlinking 'next' file %r" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "Opened session directory %r as descriptor %d" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "Opened session state file %r as descriptor %d" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "Stat'ed session state file: %s" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "Reading %d byte of session state" msgstr[1] "Reading %d bytes of session state" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "Read %d byte of session state" msgstr[1] "Read %d bytes of session state" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "partial read?" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "Closed descriptor %d" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "Saving %d byte of data (UNIX, python 3.2 or older)" msgstr[1] "Saving %d bytes of data (UNIX, python 3.2 or older)" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "Opened %r as descriptor %d" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "Opened next session file %s as descriptor %d" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "Wrote %d byte of data to descriptor %d" msgstr[1] "Wrote %d bytes of data to descriptor %d" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "partial write?" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "Unlinking %r" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "Calling fsync() on descriptor %d" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "Closing descriptor %d" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "Renaming %r to %r" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "Saving %d byte of data (UNIX, python 3.3 or newer)" msgstr[1] "Saving %d bytes of data (UNIX, python 3.3 or newer)" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "connect %r to %r" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "disconnect %r from %r" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "No valid options in option string" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "Unable to import {}: {}" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimised for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "not installed" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "installation prefix" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "installation directory layout (default: %(default)s)" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "install everything relative to this alternate root directory" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "copying: %s => %s" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "remove the generated .provider file" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "overwrite existing provider files" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "Removing provider file: %s" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "Provider file already exists: {}" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "Creating provider file: %s" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit " "manage.py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "[Provider MetaData]" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "name: {}" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "namespace: {} (derived from name)" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "description: {}" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "version: {}" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "gettext domain: {}" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "[Job Definitions]" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "{0!a}, from {1}" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "Some jobs could not be parsed correctly" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "Please run `manage.py validate` for details" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "[Whitelists]" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "Errors prevent whitelists from being displayed" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "NOTE: subsequent jobs from problematic files are ignored" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "missing definition of required field" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "incorrect value supplied" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "useless field in this context" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "{0}: job {1!a}, field {2!a}: {3}" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "allowed values are: {0}" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "All jobs seem to be valid" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogues.\n" " " #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "don't actually do anything" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "actions to perform" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "do not update the translation template" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "do not merge translation files with the template" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "do not build binary translation files" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "manage.py [--help] [--version] [options]" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "{}: bad value of {!r}, {}" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr ".__call__() not defined" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "unknown parser %(parser_name)r (choices: %(choices)s)" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "argument \"-\" with mode %r" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "can't open '%s': %s" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "cannot merge actions - two groups are named %r" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "'required' is an invalid argument for positionals" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "dest= is required for options like %r" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "invalid conflict_resolution value: %r" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "conflicting option string: %s" msgstr[1] "conflicting option strings: %s" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "mutually exclusive arguments must be optional" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "positional arguments" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "optional arguments" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "show this help message and exit" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "cannot have multiple subparser arguments" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "unrecognised arguments: %s" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "not allowed with argument %s" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "ignored explicit argument %r" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "argument %s is required" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "one of the arguments %s is required" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "expected one argument" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "expected at most one argument" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "expected at least one argument" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "expected %s argument" msgstr[1] "expected %s arguments" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "ambiguous option: %(option)s could match %(matches)s" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "unexpected option string: %s" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "%r is not callable" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "invalid %(type)s value: %(value)r" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "invalid choice: %(value)r (choose from %(choices)s)" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "%(prog)s: error: %(message)s\n" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "the following arguments are required: %s" plainbox-0.5.3/po/en_AU.po0000664000175000017500000021572012320461715015260 0ustar zygazyga00000000000000# English (Australia) translation for plainbox # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the plainbox package. # FIRST AUTHOR , 2014. # msgid "" msgstr "" "Project-Id-Version: plainbox\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-04-04 18:17+0200\n" "PO-Revision-Date: 2014-03-31 18:03+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: English (Australia) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2014-04-05 04:34+0000\n" "X-Generator: Launchpad (build 16976)\n" #: .././plainbox/impl/_argparse.py:139 #: .././plainbox/vendor/argparse/py32-argparse.py:298 #: .././plainbox/vendor/argparse/py33-argparse.py:300 #: .././plainbox/vendor/argparse/py34-argparse.py:300 msgid "usage: " msgstr "" #: .././plainbox/impl/applogic.py:60 msgid "None of the providers had a whitelist named '{}'" msgstr "" #: .././plainbox/impl/applogic.py:102 msgid "Environment variables for scripts and jobs" msgstr "" #: .././plainbox/impl/applogic.py:106 msgid "Welcome text to display prior to test selection/execution" msgstr "" #: .././plainbox/impl/applogic.py:111 msgid "Name of the default provider to use" msgstr "" #: .././plainbox/impl/clitools.py:281 #, python-format msgid "parsed early namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:286 #, python-format msgid "parsed full namespace: %s" msgstr "" #: .././plainbox/impl/clitools.py:416 .././plainbox/provider_manager.py:1142 #: .././plainbox/vendor/argparse/py32-argparse.py:1625 msgid "show program's version number and exit" msgstr "" #: .././plainbox/impl/clitools.py:437 msgid "logging and debugging" msgstr "" #. TRANSLATORS: please keep --log-level=INFO untranslated #: .././plainbox/impl/clitools.py:452 msgid "be more verbose (same as --log-level=INFO)" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:460 msgid "enable DEBUG messages on the root logger" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:466 msgid "display DEBUG messages in the console" msgstr "" #: .././plainbox/impl/clitools.py:470 msgid "LOGGER" msgstr "" #. TRANSLATORS: please keep DEBUG untranslated #: .././plainbox/impl/clitools.py:474 msgid "" "enable DEBUG messages on the specified logger (can be used multiple times)" msgstr "" #. TRANSLATORS: please keep pdb untranslated #: .././plainbox/impl/clitools.py:482 msgid "jump into pdb (python debugger) when a command crashes" msgstr "" #. TRANSLATORS: please keep SIGINT/KeyboardInterrupt and --pdb #. untranslated #: .././plainbox/impl/clitools.py:490 msgid "crash on SIGINT/KeyboardInterrupt, useful with --pdb" msgstr "" #: .././plainbox/impl/clitools.py:507 #: .././plainbox/vendor/argparse/py32-argparse.py:1956 msgid "too few arguments" msgstr "" #. Don't let SystemExit be caught in the logic below, we really #. just want to exit when that gets thrown. #. TRANSLATORS: please keep SystemExit untranslated #: .././plainbox/impl/clitools.py:519 msgid "caught SystemExit, exiting" msgstr "" #: .././plainbox/impl/clitools.py:524 #, python-format msgid "caught %r, deciding on what to do next" msgstr "" #: .././plainbox/impl/clitools.py:544 #, python-format msgid "action for exception %r is %s" msgstr "" #: .././plainbox/impl/clitools.py:549 #, python-format msgid "Executable %r invoked with %r has crashed" msgstr "" #: .././plainbox/impl/clitools.py:553 #, python-format msgid "caught runaway exception: %r" msgstr "" #: .././plainbox/impl/clitools.py:554 msgid "starting debugger..." msgstr "" #: .././plainbox/impl/clitools.py:651 msgid "Unable to find any of the executables {}" msgstr "" #: .././plainbox/impl/commands/__init__.py:150 msgid "provider list and development" msgstr "" #: .././plainbox/impl/commands/__init__.py:157 msgid "which providers to load" msgstr "" #: .././plainbox/impl/commands/analyze.py:84 msgid "[Desired Job List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:89 msgid "[Run List]" msgstr "" #: .././plainbox/impl/commands/analyze.py:94 msgid "[Running Local Jobs]" msgstr "" #: .././plainbox/impl/commands/analyze.py:129 msgid "Problem list" msgstr "" #: .././plainbox/impl/commands/analyze.py:133 msgid "[General Statistics]" msgstr "" #: .././plainbox/impl/commands/analyze.py:134 msgid "Known jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:135 msgid "Selected jobs: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:138 msgid "[Dependency Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:143 msgid "Selected jobs have no dependency problems" msgstr "" #: .././plainbox/impl/commands/analyze.py:146 msgid "[Interactivity Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "automatic" msgstr "" #: .././plainbox/impl/commands/analyze.py:157 msgid "interactive" msgstr "" #: .././plainbox/impl/commands/analyze.py:163 msgid "unknown" msgstr "" #: .././plainbox/impl/commands/analyze.py:168 msgid "[Estimated Duration Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:169 msgid "Estimated test duration:" msgstr "" #: .././plainbox/impl/commands/analyze.py:171 msgid "automated tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:173 #: .././plainbox/impl/commands/analyze.py:176 #: .././plainbox/impl/commands/analyze.py:180 msgid "cannot estimate" msgstr "" #: .././plainbox/impl/commands/analyze.py:174 msgid "manual tests: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:177 msgid "total: {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:183 msgid "[Validation Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:200 msgid "Job defined in {}" msgstr "" #: .././plainbox/impl/commands/analyze.py:202 msgid "No problems found" msgstr "" #: .././plainbox/impl/commands/analyze.py:205 msgid "[Requirement Report]" msgstr "" #: .././plainbox/impl/commands/analyze.py:239 msgid "analyze how selected jobs would be executed" msgstr "" #: .././plainbox/impl/commands/analyze.py:244 msgid "run all selected local jobs, required to see true data" msgstr "" #. TRANSLATORS: please keep the word 'local' untranslated. #. It designates special type of jobs, not their location. #: .././plainbox/impl/commands/analyze.py:250 msgid "do not run local jobs" msgstr "" #: .././plainbox/impl/commands/analyze.py:254 msgid "print general job statistics" msgstr "" #: .././plainbox/impl/commands/analyze.py:257 msgid "print dependency report" msgstr "" #: .././plainbox/impl/commands/analyze.py:260 msgid "print interactivity report" msgstr "" #: .././plainbox/impl/commands/analyze.py:263 msgid "print estimated duration report" msgstr "" #: .././plainbox/impl/commands/analyze.py:266 msgid "print validation report" msgstr "" #: .././plainbox/impl/commands/analyze.py:269 msgid "print requirement report" msgstr "" #: .././plainbox/impl/commands/analyze.py:273 msgid "when coupled with -v, only problematic jobs will be listed" msgstr "" #: .././plainbox/impl/commands/analyze.py:276 msgid "print desired job list" msgstr "" #: .././plainbox/impl/commands/analyze.py:279 msgid "print run list" msgstr "" #: .././plainbox/impl/commands/check_config.py:50 msgid "Configuration files:" msgstr "" #: .././plainbox/impl/commands/check_config.py:55 #, python-brace-format msgid " - {0} (not present)" msgstr "" #: .././plainbox/impl/commands/check_config.py:56 msgid "Variables:" msgstr "" #: .././plainbox/impl/commands/check_config.py:61 msgid "Sections:" msgstr "" #: .././plainbox/impl/commands/check_config.py:67 msgid "Problems:" msgstr "" #: .././plainbox/impl/commands/check_config.py:70 #, python-brace-format msgid " - variable {0}: {1}" msgstr "" #: .././plainbox/impl/commands/check_config.py:75 msgid "No validation problems found" msgstr "" #: .././plainbox/impl/commands/check_config.py:92 msgid "check and display plainbox configuration" msgstr "" #: .././plainbox/impl/commands/checkbox.py:89 #, python-format msgid "Using whitelist %r obtained from provider %r" msgstr "" #: .././plainbox/impl/commands/checkbox.py:100 #, python-format msgid "Unable to load whitelist %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:118 #: .././plainbox/impl/commands/checkbox.py:128 #, python-format msgid "Incorrect pattern %r: %s" msgstr "" #: .././plainbox/impl/commands/checkbox.py:145 msgid "job definition options" msgstr "" #: .././plainbox/impl/commands/checkbox.py:148 #: .././plainbox/impl/commands/checkbox.py:153 msgid "PATTERN" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:150 msgid "include jobs matching the given regular expression" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:155 msgid "exclude jobs matching the given regular expression" msgstr "" #: .././plainbox/impl/commands/checkbox.py:160 msgid "WHITELIST" msgstr "" #. TRANSLATORS: this is in imperative form #: .././plainbox/impl/commands/checkbox.py:164 msgid "load whitelist containing run patterns" msgstr "" #: .././plainbox/impl/commands/crash.py:45 msgid "crashing as requested" msgstr "" #: .././plainbox/impl/commands/crash.py:61 msgid "crash the application" msgstr "" #: .././plainbox/impl/commands/crash.py:68 msgid "raise an exception" msgstr "" #: .././plainbox/impl/commands/crash.py:74 msgid "hang the application with a busy loop" msgstr "" #: .././plainbox/impl/commands/dev.py:59 msgid "development commands" msgstr "" #: .././plainbox/impl/commands/list.py:60 msgid "children" msgstr "" #: .././plainbox/impl/commands/list.py:80 msgid "list and describe various objects" msgstr "" #: .././plainbox/impl/commands/list.py:83 msgid "show object attributes" msgstr "" #: .././plainbox/impl/commands/list.py:86 msgid "list objects from the specified group" msgstr "" #: .././plainbox/impl/commands/logtest.py:40 msgid "a debug message" msgstr "" #: .././plainbox/impl/commands/logtest.py:41 msgid "a info message" msgstr "an info message" #: .././plainbox/impl/commands/logtest.py:42 msgid "a warning message" msgstr "" #: .././plainbox/impl/commands/logtest.py:43 msgid "an error message" msgstr "" #: .././plainbox/impl/commands/logtest.py:44 msgid "a critical message" msgstr "" #: .././plainbox/impl/commands/logtest.py:58 msgid "log messages at various levels" msgstr "" #: .././plainbox/impl/commands/parse.py:77 msgid "Unable to decode input stream, must be valid UTF-8" msgstr "" #: .././plainbox/impl/commands/parse.py:99 msgid "The following parsers are available:" msgstr "" #: .././plainbox/impl/commands/parse.py:106 msgid "parse stdin with the specified parser" msgstr "" #. TRANSLATORS: please keep plainbox.parsers untranslated. #: .././plainbox/impl/commands/parse.py:108 msgid "" "\n" " This command can be used to invoke any of the parsers exposed\n" " to the `plainbox.parsers` entry point, parse standard input and\n" " produce a JSON dump of the resulting data structure on stdout.\n" "\n" " Keep in mind that most parsers were designed with the 'C' locale " "in\n" " mind. You may have to override the environment variable LANG to\n" " \"C\".\n" " " msgstr "" #: .././plainbox/impl/commands/parse.py:117 msgid "Example: " msgstr "" #: .././plainbox/impl/commands/parse.py:122 msgid "PARSER-NAME" msgstr "" #: .././plainbox/impl/commands/parse.py:124 msgid "Name of the parser to use" msgstr "" #: .././plainbox/impl/commands/run.py:73 .././plainbox/impl/commands/run.py:76 #: .././plainbox/impl/commands/run.py:79 #: .././plainbox/impl/commands/run.py:393 #: .././plainbox/impl/commands/run.py:409 msgid "?" msgstr "" #: .././plainbox/impl/commands/run.py:89 msgid "Available output formats: {}" msgstr "" #: .././plainbox/impl/commands/run.py:93 msgid "Each format may support a different set of options" msgstr "" #: .././plainbox/impl/commands/run.py:99 msgid "Available transports: {}" msgstr "" #: .././plainbox/impl/commands/run.py:126 msgid "Do you want to resume the previous session?" msgstr "" #: .././plainbox/impl/commands/run.py:131 msgid "What do you want to do with that job?" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:146 #: .././plainbox/impl/exporter/xlsx.py:465 msgid "skip" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:151 msgid "fail" msgstr "" #: .././plainbox/impl/commands/run.py:132 #: .././plainbox/impl/commands/run.py:156 msgid "run" msgstr "" #: .././plainbox/impl/commands/run.py:144 msgid "Previous session run tried to execute: {}" msgstr "" #: .././plainbox/impl/commands/run.py:149 msgid "Skipped after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:154 msgid "Failed after resuming execution" msgstr "" #: .././plainbox/impl/commands/run.py:168 msgid "[ Analyzing Jobs ]" msgstr "" #. Handle possible DependencyDuplicateError that can happen if #. someone is using plainbox for job development. #: .././plainbox/impl/commands/run.py:175 msgid "The job database you are currently using is broken" msgstr "" #: .././plainbox/impl/commands/run.py:176 #, python-brace-format msgid "At least two jobs contend for the id {0}" msgstr "" #: .././plainbox/impl/commands/run.py:178 #, python-brace-format msgid "First job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:179 #, python-brace-format msgid "Second job defined in: {0}" msgstr "" #: .././plainbox/impl/commands/run.py:195 msgid "[ Authentication ]" msgstr "" #: .././plainbox/impl/commands/run.py:239 msgid "[ Results ]" msgstr "" #: .././plainbox/impl/commands/run.py:246 msgid "Saving results to {}" msgstr "" #: .././plainbox/impl/commands/run.py:255 msgid "Select an outcome or an action: " msgstr "" #: .././plainbox/impl/commands/run.py:260 #: .././plainbox/impl/commands/run.py:274 msgid "comments" msgstr "" #: .././plainbox/impl/commands/run.py:262 #: .././plainbox/impl/commands/run.py:271 msgid "test" msgstr "" #: .././plainbox/impl/commands/run.py:265 msgid "Allowed answers are: {}" msgstr "" #: .././plainbox/impl/commands/run.py:275 msgid "Please enter your comments:\n" msgstr "" #: .././plainbox/impl/commands/run.py:281 msgid "[ Warning ]" msgstr "" #: .././plainbox/impl/commands/run.py:282 msgid "There were some problems with the selected jobs" msgstr "" #: .././plainbox/impl/commands/run.py:285 msgid "Problematic jobs will not be considered" msgstr "" #: .././plainbox/impl/commands/run.py:289 msgid "Estimated duration is {:.2f} for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:293 msgid "Estimated duration cannot be determined for automated jobs." msgstr "" #: .././plainbox/impl/commands/run.py:295 msgid "Estimated duration is {:.2f} for manual jobs." msgstr "" #: .././plainbox/impl/commands/run.py:299 msgid "Estimated duration cannot be determined for manual jobs." msgstr "" #. TODO: run all resource jobs concurrently with multiprocessing #. TODO: make local job discovery nicer, it would be best if #. desired_jobs could be managed entirely internally by SesionState. In #. such case the list of jobs to run would be changed during iteration #. but would be otherwise okay). #: .././plainbox/impl/commands/run.py:307 msgid "[ Running All Jobs ]" msgstr "" #: .././plainbox/impl/commands/run.py:336 #, python-format msgid "Job id: %s" msgstr "" #: .././plainbox/impl/commands/run.py:337 #, python-format msgid "Plugin: %s" msgstr "" #: .././plainbox/impl/commands/run.py:338 #, python-format msgid "Direct dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:340 #, python-format msgid "Resource dependencies: %s" msgstr "" #: .././plainbox/impl/commands/run.py:342 #, python-format msgid "Resource program: %r" msgstr "" #: .././plainbox/impl/commands/run.py:343 #, python-format msgid "Command: %r" msgstr "" #: .././plainbox/impl/commands/run.py:344 #, python-format msgid "Can start: %s" msgstr "" #: .././plainbox/impl/commands/run.py:345 #, python-format msgid "Readiness: %s" msgstr "" #: .././plainbox/impl/commands/run.py:347 msgid "Running... (output in {}.*)" msgstr "" #: .././plainbox/impl/commands/run.py:359 msgid "Outcome: {}" msgstr "" #: .././plainbox/impl/commands/run.py:360 msgid "Comments: {}" msgstr "" #: .././plainbox/impl/commands/run.py:380 msgid "run a test job" msgstr "" #: .././plainbox/impl/commands/run.py:382 msgid "user interface options" msgstr "" #: .././plainbox/impl/commands/run.py:385 msgid "skip tests that require interactivity" msgstr "" #: .././plainbox/impl/commands/run.py:388 msgid "don't really run most jobs" msgstr "" #: .././plainbox/impl/commands/run.py:389 msgid "output options" msgstr "" #: .././plainbox/impl/commands/run.py:393 msgid "FORMAT" msgstr "" #: .././plainbox/impl/commands/run.py:395 msgid "" "save test results in the specified FORMAT (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:399 #: .././plainbox/impl/commands/run.py:419 msgid "OPTIONS" msgstr "" #: .././plainbox/impl/commands/run.py:400 msgid "" "comma-separated list of options for the export mechanism (pass ? for a list " "of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:404 msgid "FILE" msgstr "" #: .././plainbox/impl/commands/run.py:405 msgid "save test results to the specified FILE (or to stdout if FILE is -)" msgstr "" #: .././plainbox/impl/commands/run.py:409 msgid "TRANSPORT" msgstr "" #: .././plainbox/impl/commands/run.py:411 msgid "" "use TRANSPORT to send results somewhere (pass ? for a list of choices)" msgstr "" #: .././plainbox/impl/commands/run.py:415 msgid "WHERE" msgstr "" #: .././plainbox/impl/commands/run.py:416 msgid "where to send data using the selected transport" msgstr "" #: .././plainbox/impl/commands/run.py:420 msgid "" "comma-separated list of key-value options (k=v) to be passed to the transport" msgstr "" #: .././plainbox/impl/commands/script.py:59 msgid "There is no job called {!a}" msgstr "" #: .././plainbox/impl/commands/script.py:61 msgid "See `plainbox special --list-jobs` for a list of choices" msgstr "" #: .././plainbox/impl/commands/script.py:64 msgid "Selected job does not have a command" msgstr "" #: .././plainbox/impl/commands/script.py:79 msgid "Leftover file detected: {!a}:" msgstr "" #: .././plainbox/impl/commands/script.py:92 msgid "job {} returned {}" msgstr "" #: .././plainbox/impl/commands/script.py:93 msgid "command:" msgstr "" #: .././plainbox/impl/commands/script.py:122 msgid "run a command from a job" msgstr "" #: .././plainbox/impl/commands/script.py:125 msgid "JOB-ID" msgstr "" #: .././plainbox/impl/commands/script.py:126 msgid "Id of the job to run" msgstr "" #: .././plainbox/impl/commands/selftest.py:69 msgid "run unit and integration tests" msgstr "" #: .././plainbox/impl/commands/selftest.py:78 msgid "run integration test suite (this verifies checkbox jobs)" msgstr "" #: .././plainbox/impl/commands/selftest.py:84 msgid "run unit tests (this only verifies plainbox core)" msgstr "" #: .././plainbox/impl/commands/selftest.py:89 msgid "abort the test on first failure" msgstr "" #: .././plainbox/impl/commands/selftest.py:94 msgid "run tests quietly" msgstr "" #: .././plainbox/impl/commands/selftest.py:97 msgid "run tests with normal verbosity (default)" msgstr "" #: .././plainbox/impl/commands/selftest.py:100 msgid "run tests verbosely, printing each test case name" msgstr "" #: .././plainbox/impl/commands/special.py:137 msgid "special/internal commands" msgstr "" #: .././plainbox/impl/commands/special.py:142 msgid "list jobs instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:146 msgid "list jobs with cheksums instead of running them" msgstr "" #: .././plainbox/impl/commands/special.py:150 msgid "list all unique resource expressions" msgstr "" #: .././plainbox/impl/commands/special.py:154 msgid "print a graph of jobs instead of running them" msgstr "" #. TRANSLATORS: please keep --dot untranslated #: .././plainbox/impl/commands/special.py:159 msgid "show resource relationships (for --dot)" msgstr "" #: .././plainbox/impl/commands/startprovider.py:62 msgid "refusing to overwrite {!a}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/impl/commands/startprovider.py:495 msgid "" "\n" " create a new provider (directory)\n" "\n" " Creates a new provider from a built-in skeleton.\n" "\n" " @EPILOG@\n" "\n" " The name of the provider must follow the pattern " "``YYYY.example.org:name``\n" " where ``YYYY`` is a four-digit year when the author of the provider " "owned\n" " the domain (here, ``example.org``) and ``name`` is arbitrary identifier\n" " that is managed by the owner of that domain. The identifier should be\n" " constrained to ASCII, digits and the dash character.\n" "\n" " This naming scheme allows anyone that ever owned a domain name to come " "up\n" " with non-clashing provider identifiers. Those identifiers are going to " "be\n" " used in fully qualified names of various objects.\n" "\n" " This command creates a new skeleton test provider for PlainBox. The\n" " generated content should be edited to fit a particular purpose.\n" " " msgstr "" #: .././plainbox/impl/commands/startprovider.py:524 msgid "name" msgstr "" #. TRANSLATORS: please keep the YYYY.example... text unchanged or at #. the very least translate only YYYY and some-name. In either case #. some-name must be a reasonably-ASCII string (should be safe for a #. portable directory name) #: .././plainbox/impl/commands/startprovider.py:530 msgid "provider name, eg: YYYY.example.org:some-name" msgstr "" #: .././plainbox/impl/ctrl.py:251 #, python-format msgid "Storing resource record %r: %s" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:280 #, python-format msgid "" "Local job %s produced job %r that collides with an existing job %s (from " "%s), the new job was discarded" msgstr "" #: .././plainbox/impl/ctrl.py:297 #, python-format msgid "processing output from a job: %r" msgstr "" #. TRANSLATORS: keep the word "local" untranslated. It is a #. special type of job that needs to be distinguished. #: .././plainbox/impl/ctrl.py:316 #, python-format msgid "local script %s returned invalid RFC822 data: %s" msgstr "" #: .././plainbox/impl/ctrl.py:346 #, python-format msgid "Adding executable %s to nest %s" msgstr "" #. run the command #: .././plainbox/impl/ctrl.py:405 #, python-format msgid "job[%s] executing %r with env %r" msgstr "" #: .././plainbox/impl/ctrl.py:429 .././plainbox/impl/ctrl.py:435 #, python-format msgid "Symlink nest for executables: %s" msgstr "" #: .././plainbox/impl/depmgr.py:100 msgid "dependency cycle detected: {}" msgstr "" #: .././plainbox/impl/depmgr.py:139 msgid "missing dependency: {!r} ({})" msgstr "" #: .././plainbox/impl/depmgr.py:173 msgid "duplicate job id: {!r}" msgstr "" #. Visit the visit list #: .././plainbox/impl/depmgr.py:243 msgid "Starting solve" msgstr "" #: .././plainbox/impl/depmgr.py:248 msgid "Done solving" msgstr "" #: .././plainbox/impl/depmgr.py:262 #, python-format msgid "Visiting job %s (color %s)" msgstr "" #. For each dependency that we visit let's reuse the trail #. to give proper error messages if a dependency loop exists #: .././plainbox/impl/depmgr.py:281 #, python-format msgid "Visiting dependency: %r" msgstr "" #. We've visited (recursively) all dependencies of this node, #. let's color it black and append it to the solution list. #: .././plainbox/impl/depmgr.py:288 #, python-format msgid "Appending %r to solution" msgstr "" #: .././plainbox/impl/exporter/__init__.py:342 #, python-format msgid "Unable to load %s: %s" msgstr "" #: .././plainbox/impl/exporter/__init__.py:344 #, python-format msgid "Unable to import %s: %s" msgstr "" #: .././plainbox/impl/exporter/html.py:56 #, python-format msgid "Unable to load resource %s, not inlining" msgstr "" #: .././plainbox/impl/exporter/html.py:69 #, python-format msgid "Resource of type %s unknown" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:85 msgid "Unsupported option: {}" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:244 msgid "Platform Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:246 msgid "BIOS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:248 msgid "Processors" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:250 msgid "Chipset" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:252 msgid "Memory" msgstr "" #. TRANSLATORS: on board as in 'built in card' #: .././plainbox/impl/exporter/xlsx.py:255 msgid "Video (on board)" msgstr "" #. TRANSLATORS: add-on as in dedicated graphics card #: .././plainbox/impl/exporter/xlsx.py:258 msgid "Video (add-on)" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:260 msgid "Video memory" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:262 msgid "Audio" msgstr "" #. TRANSLATORS: NIC is network interface card #: .././plainbox/impl/exporter/xlsx.py:265 msgid "NIC" msgstr "" #. TRANSLTORS: Wireless as in wireless network cards #: .././plainbox/impl/exporter/xlsx.py:268 msgid "Wireless" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:270 msgid "Bluetooth" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:274 msgid "Packages Installed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 #: .././plainbox/impl/exporter/xlsx.py:522 #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Name" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:276 msgid "Version" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:299 msgid "Failures summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:303 msgid "{} Test passed" msgid_plural "{} Tests passed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:306 msgid "Success Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:313 msgid "{} Test failed" msgid_plural "{} Tests failed" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:315 msgid "Failure Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:322 msgid "{} Test skipped" msgid_plural "{} Tests skipped" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/exporter/xlsx.py:325 msgid "Skip Rate: {:.2f}% ({}/{})" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Fail" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Skip" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:330 msgid "Pass" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:343 #: .././plainbox/impl/exporter/xlsx.py:344 #: .././plainbox/impl/exporter/xlsx.py:580 msgid "Summary" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:442 #: .././plainbox/impl/exporter/xlsx.py:525 #: .././plainbox/impl/exporter/xlsx.py:577 msgid "Test Descriptions" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:453 msgid "PASS" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:459 msgid "FAIL" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:473 msgid "not supported" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:513 msgid "Tests Performed" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "Result" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:522 msgid "I/O Log" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:533 msgid "Description" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:572 msgid "System Info" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:574 msgid "Test Results" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:583 msgid "Log Files" msgstr "" #: .././plainbox/impl/exporter/xlsx.py:589 msgid "System Testing Report" msgstr "" #: .././plainbox/impl/job.py:66 msgid "Problem with field {}: {}" msgstr "" #: .././plainbox/impl/job.py:322 #, python-format msgid "Incorrect value of 'estimated_duration' in job %s read from %s" msgstr "" #. TRANSLATORS: don't translate record.origin or JobOutputTextSource #: .././plainbox/impl/job.py:535 msgid "record.origin must be a JobOutputTextSource" msgstr "" #. TRANSLATORS: don't translate record.origin.source.job #: .././plainbox/impl/job.py:538 msgid "record.origin.source.job must be this job" msgstr "" #: .././plainbox/impl/logging.py:98 #, python-format msgid "Unable to create log directory: %s" msgstr "" #: .././plainbox/impl/logging.py:99 #, python-format msgid "Reason: %s. All logs will go to console instead." msgstr "" #: .././plainbox/impl/logging.py:110 #, python-format msgid "Enabled %r on root logger" msgstr "" #: .././plainbox/impl/logging.py:116 #, python-format msgid "Enabled debugging on logger %r" msgstr "" #. TODO: portable parser error would be nice, to know where it #. fails. This is difficult at this stage. #: .././plainbox/impl/parsers.py:141 msgid "Cannot parse input" msgstr "" #: .././plainbox/impl/providers/special.py:47 msgid "StubBox (dummy data for development)" msgstr "" #: .././plainbox/impl/resource.py:52 msgid "expression {!r} evaluated to a non-true result" msgstr "" #: .././plainbox/impl/resource.py:71 msgid "expression {!r} needs unavailable resource {!r}" msgstr "" #: .././plainbox/impl/resource.py:219 msgid "this kind of python code is not allowed: {}" msgstr "" #: .././plainbox/impl/resource.py:414 msgid "expression did not reference any resources" msgstr "" #: .././plainbox/impl/resource.py:423 msgid "expression referenced multiple resources" msgstr "" #: .././plainbox/impl/resource.py:509 #, python-format msgid "Exception in requirement expression %r (with %s=%r): %r" msgstr "" #. TRANSLATORS: please keep DiskJobResult.io_log untranslated #: .././plainbox/impl/result.py:220 #, python-format msgid "Expensive DiskJobResult.io_log property access from %s:%d" msgstr "" #: .././plainbox/impl/result.py:245 #, python-format msgid "Encoded %r into string %r" msgstr "" #. TRANSLATORS: io means input-output #: .././plainbox/impl/runner.py:115 #, python-format msgid "io log generated %r" msgstr "" #. TRANSLATORS: %r is the name of the job #: .././plainbox/impl/runner.py:264 #, python-format msgid "Running %r" msgstr "" #: .././plainbox/impl/runner.py:271 msgid "This type of job is not supported" msgstr "" #. TRANSLATORS: please keep 'plugin' untranslated #: .././plainbox/impl/runner.py:300 .././plainbox/impl/runner.py:325 #: .././plainbox/impl/runner.py:351 .././plainbox/impl/runner.py:377 #: .././plainbox/impl/runner.py:403 .././plainbox/impl/runner.py:444 #: .././plainbox/impl/runner.py:488 .././plainbox/impl/runner.py:537 msgid "bad job plugin value" msgstr "" #: .././plainbox/impl/runner.py:553 msgid "Job skipped in dry-run mode" msgstr "" #: .././plainbox/impl/runner.py:616 #, python-format msgid "job[%s] extcmd delegate: %r" msgstr "" #: .././plainbox/impl/runner.py:652 #, python-format msgid "job[%s] starting command: %s" msgstr "" #: .././plainbox/impl/runner.py:656 #, python-format msgid "job[%s] command return code: %r" msgstr "" #: .././plainbox/impl/runner.py:671 msgid "No exec controller supports job {}" msgstr "" #: .././plainbox/impl/runner.py:673 #, python-format msgid "Selected execution controller %s (score %d) for job %r" msgstr "" #: .././plainbox/impl/secure/config.py:87 msgid "unset" msgstr "" #: .././plainbox/impl/secure/config.py:124 msgid "unsupported kind" msgstr "" #: .././plainbox/impl/secure/config.py:568 #, python-format msgid "Loading configuration from %s" msgstr "" #: .././plainbox/impl/secure/config.py:692 msgid "expected a boolean" msgstr "" #: .././plainbox/impl/secure/config.py:693 msgid "expected an integer" msgstr "" #: .././plainbox/impl/secure/config.py:694 msgid "expected a floating point number" msgstr "" #: .././plainbox/impl/secure/config.py:695 msgid "expected a string" msgstr "" #: .././plainbox/impl/secure/config.py:710 msgid "does not match pattern: {!r}" msgstr "" #: .././plainbox/impl/secure/config.py:729 msgid "must be one of {}" msgstr "" #: .././plainbox/impl/secure/config.py:753 msgid "must be set to something" msgstr "" #: .././plainbox/impl/secure/config.py:774 msgid "cannot be empty" msgstr "" #: .././plainbox/impl/secure/launcher1.py:61 msgid "Cannot find job with checksum {}" msgstr "" #: .././plainbox/impl/secure/launcher1.py:119 #, python-format msgid "Syntax error in job generated from %s: %s" msgstr "" #. TRANSLATORS: don't translate pkexec(1) #: .././plainbox/impl/secure/launcher1.py:208 msgid "return immediately, only useful when used with pkexec(1)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:211 #: .././plainbox/impl/secure/launcher1.py:223 msgid "CHECKSUM" msgstr "" #: .././plainbox/impl/secure/launcher1.py:212 msgid "run a job with this checksum" msgstr "" #: .././plainbox/impl/secure/launcher1.py:213 msgid "target job specification" msgstr "" #: .././plainbox/impl/secure/launcher1.py:215 #: .././plainbox/impl/secure/launcher1.py:232 msgid "NAME=VALUE" msgstr "" #: .././plainbox/impl/secure/launcher1.py:219 msgid "environment passed to the target job" msgstr "" #: .././plainbox/impl/secure/launcher1.py:220 msgid "generator job specification" msgstr "" #. TRANSLATORS: don't translate 'local' in the sentence below. It #. denotes a special type of job, not its location. #: .././plainbox/impl/secure/launcher1.py:226 msgid "also run a job with this checksum (assuming it is a local job)" msgstr "" #: .././plainbox/impl/secure/launcher1.py:234 msgid "environment passed to the generator job" msgstr "" #: .././plainbox/impl/secure/plugins.py:323 #, python-format msgid "Unable to prepare plugin %s: %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:377 #, python-format msgid "Unable to import %s" msgstr "" #: .././plainbox/impl/secure/plugins.py:445 #, python-format msgid "Unable to load %r: %s" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:68 msgid "Cannot load whitelist {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:115 #, python-format msgid "Loading jobs definitions from %r..." msgstr "" #: .././plainbox/impl/secure/providers/v1.py:121 msgid "Cannot load job definitions from {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:128 msgid "Cannot define job from record {!r}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:136 msgid "Problem in job definition, field {}: {}" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:139 #, python-format msgid "Loaded %r" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:625 msgid "must look like RFC3720 IQN" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:642 msgid "must be a sequence of digits separated by dots" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:652 msgid "no such directory" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:662 msgid "cannot be relative" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:681 msgid "Base directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:691 msgid "Name of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:704 msgid "Version of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:713 msgid "Description of the provider" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:717 msgid "Name of the gettext domain for translations" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:736 msgid "Pathname of the directory with job definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:772 msgid "Pathname of the directory with whitelists definitions" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:809 msgid "Pathname of the directory with provider data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:845 msgid "Pathname of the directory with provider executables" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:881 msgid "Pathname of the directory with locale data" msgstr "" #: .././plainbox/impl/secure/providers/v1.py:948 msgid "Problem in provider definition, field {!a}: {}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:58 msgid "???" msgstr "" #: .././plainbox/impl/secure/rfc822.py:471 #, python-format msgid "Committed key/value %r=%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:496 #, python-format msgid "Looking at line %d:%r" msgstr "" #: .././plainbox/impl/secure/rfc822.py:508 #: .././plainbox/impl/secure/rfc822.py:567 #, python-format msgid "yielding record: %r" msgstr "" #. If we have not seen any keys yet then this is a syntax error #: .././plainbox/impl/secure/rfc822.py:517 msgid "Unexpected multi-line value" msgstr "" #: .././plainbox/impl/secure/rfc822.py:545 msgid "Job has a duplicate key {!r} with old value {!r} and new value {!r}" msgstr "" #: .././plainbox/impl/secure/rfc822.py:562 msgid "Unexpected non-empty line: {!r}" msgstr "" #: .././plainbox/impl/session/jobs.py:115 msgid "unsupported value for cause" msgstr "" #. TRANSLATORS: please don't translate related_job, None and #. cause #: .././plainbox/impl/session/jobs.py:120 msgid "related_job must not be None when cause is {}" msgstr "" #. TRANSLATORS: please don't translate related_expression, None #. and cause. #: .././plainbox/impl/session/jobs.py:127 msgid "related_expression must not be None when cause is {}" msgstr "" #. TRANSLATORS: as in undesired job #: .././plainbox/impl/session/jobs.py:157 msgid "undesired" msgstr "" #: .././plainbox/impl/session/jobs.py:159 msgid "required dependency {!r} did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:162 msgid "required dependency {!r} has failed" msgstr "" #: .././plainbox/impl/session/jobs.py:166 msgid "" "resource expression {!r} could not be evaluated because the resource it " "depends on did not run yet" msgstr "" #: .././plainbox/impl/session/jobs.py:171 msgid "resource expression {!r} evaluates to false" msgstr "" #: .././plainbox/impl/session/jobs.py:282 msgid "job cannot be started: {}" msgstr "" #: .././plainbox/impl/session/legacy.py:182 msgid ".manager accessed" msgstr "" #: .././plainbox/impl/session/legacy.py:186 msgid "Session not ready, did you call open()?" msgstr "" #: .././plainbox/impl/session/legacy.py:235 msgid "_commit_resume() finished" msgstr "" #. TRANSLATORS: please don't translate 'SessionManager' 'state' and #. 'storage' #: .././plainbox/impl/session/manager.py:116 #, python-format msgid "Created SessionManager with state:%r and storage:%r" msgstr "" #: .././plainbox/impl/session/manager.py:269 #, python-format msgid "Saving %d byte of checkpoint data to %r" msgid_plural "Saving %d bytes of checkpoint data to %r" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/resume.py:145 msgid "Cannot decompress session data" msgstr "" #: .././plainbox/impl/session/resume.py:149 msgid "Cannot decode session text" msgstr "" #: .././plainbox/impl/session/resume.py:153 msgid "Cannot interpret session JSON" msgstr "" #: .././plainbox/impl/session/resume.py:164 msgid "Resuming from json... (see below)" msgstr "" #: .././plainbox/impl/session/resume.py:179 msgid "Unsupported version {}" msgstr "" #: .././plainbox/impl/session/resume.py:243 #, python-format msgid "Constructed new session for resume %r" msgstr "" #: .././plainbox/impl/session/resume.py:249 #, python-format msgid "Invoking early callback %r" msgstr "" #: .././plainbox/impl/session/resume.py:253 #, python-format msgid "Using different session for resume: %r" msgstr "" #: .././plainbox/impl/session/resume.py:257 #, python-format msgid "Starting to restore jobs and results to %r..." msgstr "" #: .././plainbox/impl/session/resume.py:259 msgid "Starting to restore metadata..." msgstr "" #: .././plainbox/impl/session/resume.py:261 msgid "Starting to restore desired job list..." msgstr "" #: .././plainbox/impl/session/resume.py:263 msgid "Starting to restore job list..." msgstr "" #. Return whatever we've got #: .././plainbox/impl/session/resume.py:266 msgid "Resume complete!" msgstr "" #: .././plainbox/impl/session/resume.py:322 msgid "Unknown jobs remaining: {}" msgstr "" #: .././plainbox/impl/session/resume.py:357 msgid "Definition of job {!r} has changed" msgstr "" #: .././plainbox/impl/session/resume.py:371 #, python-format msgid "calling update_job_result(%r, %r)" msgstr "" #: .././plainbox/impl/session/resume.py:389 #: .././plainbox/impl/session/resume.py:594 #: .././plainbox/impl/session/resume.py:651 msgid "Each flag must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:395 #: .././plainbox/impl/session/resume.py:615 #: .././plainbox/impl/session/resume.py:675 #, python-format msgid "restored metadata %r" msgstr "" #: .././plainbox/impl/session/resume.py:411 msgid "Each job id must be a string" msgstr "" #: .././plainbox/impl/session/resume.py:416 #, python-format msgid "calling update_desired_job_list(%r)" msgstr "" #: .././plainbox/impl/session/resume.py:423 msgid "'desired_job_list' refers to unknown job {!r}" msgstr "" #. TRANSLATORS: please keep delay untranslated #: .././plainbox/impl/session/resume.py:494 msgid "delay cannot be negative" msgstr "" #: .././plainbox/impl/session/resume.py:506 msgid "record data {!r} is not ASCII" msgstr "" #: .././plainbox/impl/session/resume.py:511 msgid "record data {!r} is not correct base64" msgstr "" #: .././plainbox/impl/session/resume.py:522 msgid "key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:528 msgid "Missing value for key {!r}" msgstr "" #: .././plainbox/impl/session/resume.py:532 msgid "object" msgstr "" #: .././plainbox/impl/session/resume.py:538 msgid "Value of {} cannot be None" msgstr "" #: .././plainbox/impl/session/resume.py:546 msgid "Value of {} is of incorrect type {}" msgstr "" #: .././plainbox/impl/session/resume.py:555 msgid "Value for {} not in allowed set {!r}" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:608 #: .././plainbox/impl/session/resume.py:665 msgid "app_blob is not ASCII" msgstr "" #. TRANSLATORS: please don't translate app_blob #: .././plainbox/impl/session/resume.py:613 #: .././plainbox/impl/session/resume.py:670 msgid "Cannot base64 decode app_blob" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:146 msgid "app_blob must be either None or bytes" msgstr "" #. TRANSLATORS: please don't translate app_blob, None and bytes #: .././plainbox/impl/session/state.py:163 msgid "app_id must be either None or str" msgstr "" #: .././plainbox/impl/session/state.py:263 #, python-format msgid "Job %s result changed to %r" msgstr "" #: .././plainbox/impl/session/state.py:272 #, python-format msgid "New job defined: %r" msgstr "" #: .././plainbox/impl/session/state.py:281 #, python-format msgid "Job removed: %r" msgstr "" #: .././plainbox/impl/session/state.py:369 msgid "cannot remove jobs that are on the run list: {}" msgstr "" #: .././plainbox/impl/session/storage.py:115 #, python-format msgid "Enumerating sessions in %s" msgstr "" #: .././plainbox/impl/session/storage.py:134 #, python-format msgid "Found possible session in %r" msgstr "" #: .././plainbox/impl/session/storage.py:247 #, python-format msgid "Created new storage in %r" msgstr "" #: .././plainbox/impl/session/storage.py:271 #, python-format msgid "%r is not a symlink, repository %r must be corrupted" msgstr "" #: .././plainbox/impl/session/storage.py:275 #, python-format msgid "Unable to read symlink target from %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:279 #, python-format msgid "Removing storage associated with last session %r" msgstr "" #: .././plainbox/impl/session/storage.py:286 #, python-format msgid "Removing symlink associated with last session: %r" msgstr "" #: .././plainbox/impl/session/storage.py:292 #, python-format msgid "Linking storage %r to last session" msgstr "" #: .././plainbox/impl/session/storage.py:297 #, python-format msgid "Cannot link %r as %r: %r" msgstr "" #: .././plainbox/impl/session/storage.py:304 #, python-format msgid "Removing session storage from %r" msgstr "" #. TRANSLATORS: unlinking as in deleting a file #. Please keep the 'next' string untranslated #: .././plainbox/impl/session/storage.py:370 #, python-format msgid "Forcibly unlinking 'next' file %r" msgstr "" #: .././plainbox/impl/session/storage.py:378 #, python-format msgid "Opened session directory %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:384 #, python-format msgid "Opened session state file %r as descriptor %d" msgstr "" #. TRANSLATORS: stat is a system call name, don't translate it #: .././plainbox/impl/session/storage.py:390 #, python-format msgid "Stat'ed session state file: %s" msgstr "" #: .././plainbox/impl/session/storage.py:394 #, python-format msgid "Reading %d byte of session state" msgid_plural "Reading %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:399 #, python-format msgid "Read %d byte of session state" msgid_plural "Read %d bytes of session state" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:402 #: .././plainbox/impl/session/storage.py:426 msgid "partial read?" msgstr "" #. Close the session file #. Close the location directory #: .././plainbox/impl/session/storage.py:405 #: .././plainbox/impl/session/storage.py:409 #, python-format msgid "Closed descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:450 #, python-format msgid "Saving %d byte of data (UNIX, python 3.2 or older)" msgid_plural "Saving %d bytes of data (UNIX, python 3.2 or older)" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:461 #: .././plainbox/impl/session/storage.py:557 #, python-format msgid "Opened %r as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:484 #: .././plainbox/impl/session/storage.py:582 #, python-format msgid "Opened next session file %s as descriptor %d" msgstr "" #: .././plainbox/impl/session/storage.py:495 #: .././plainbox/impl/session/storage.py:593 #, python-format msgid "Wrote %d byte of data to descriptor %d" msgid_plural "Wrote %d bytes of data to descriptor %d" msgstr[0] "" msgstr[1] "" #: .././plainbox/impl/session/storage.py:499 #: .././plainbox/impl/session/storage.py:597 msgid "partial write?" msgstr "" #. If anything goes wrong we should unlink the next file. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #. If anything goes wrong we should unlink the next file. As #. with the open() call above we use unlinkat to prevent race #. conditions. #. TRANSLATORS: unlinking as in deleting a file #. Same as above, if we fail we need to unlink the next file #. otherwise any other attempts will not be able to open() it #. with O_EXCL flag. #. TRANSLATORS: unlinking as in deleting a file #: .././plainbox/impl/session/storage.py:504 #: .././plainbox/impl/session/storage.py:530 #: .././plainbox/impl/session/storage.py:604 #: .././plainbox/impl/session/storage.py:635 #, python-format msgid "Unlinking %r" msgstr "" #. TRANSLATORS: please don't translate fsync() #. Flush kernel buffers on the directory. #. #. This should ensure the rename operation is really on disk by now. #. As noted above, this is essential for being able to survive #. system crash immediately after exiting this method. #. TRANSLATORS: please don't translate fsync() #: .././plainbox/impl/session/storage.py:513 #: .././plainbox/impl/session/storage.py:539 #: .././plainbox/impl/session/storage.py:613 #: .././plainbox/impl/session/storage.py:644 #, python-format msgid "Calling fsync() on descriptor %d" msgstr "" #. Close the new session file #. Close the location directory #. Close the new session file #. Close the location directory #: .././plainbox/impl/session/storage.py:517 #: .././plainbox/impl/session/storage.py:543 #: .././plainbox/impl/session/storage.py:617 #: .././plainbox/impl/session/storage.py:648 #, python-format msgid "Closing descriptor %d" msgstr "" #. Rename FILE_NEXT over FILE. #: .././plainbox/impl/session/storage.py:520 #: .././plainbox/impl/session/storage.py:624 #, python-format msgid "Renaming %r to %r" msgstr "" #: .././plainbox/impl/session/storage.py:550 #, python-format msgid "Saving %d byte of data (UNIX, python 3.3 or newer)" msgid_plural "Saving %d bytes of data (UNIX, python 3.3 or newer)" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:63 #, python-format msgid "connect %r to %r" msgstr "" #. TRANSLATORS: this is a indicative statement #: .././plainbox/impl/signal.py:80 #, python-format msgid "disconnect %r from %r" msgstr "" #: .././plainbox/impl/transport.py:78 msgid "No valid options in option string" msgstr "" #: .././plainbox/impl/transport.py:93 msgid "Unable to import {}: {}" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@, @UNIX_LAYOUT@ and @FLAT_LAYOUT@ strings. The first line #. of the translation is special and is used as the help message. Please #. keep the pseudo-statement form and don't finish the sentence with a dot. #. Pay extra attention to whitespace. It must be correctly preserved or the #. result won't work. In particular the leading whitespace *must* be #. preserved and *must* have the same length on each line. #: .././plainbox/provider_manager.py:105 #, python-brace-format msgid "" "\n" " install this provider in the system\n" "\n" " This command installs the provider to the specified prefix.\n" "\n" " @EPILOG@\n" "\n" " Installation Layouts\n" " ====================\n" "\n" " There are two possible installation layouts: flat, perfect for keeping " "the\n" " whole provider in one directory, and unix, which is optimized for\n" " packaging and respecting the filesystem hierarchy.\n" "\n" " In both cases, a generated file is created at a fixed location:\n" "\n" " {prefix}/share/plainbox-providers-1/{provider.name}.provider\n" "\n" " This file is essential for plainbox to discover providers. It contains\n" " meta-data collected from the manage.py setup() call.\n" "\n" " For Packaging\n" " -------------\n" "\n" " System-wide installations should typically use `--prefix=/usr` coupled\n" " with `--layout=unix`. For packaging you will want to use the `--root=`\n" " argument to place all of the copied and generated files into your " "packaging\n" " system staging area. This will not affect generated content, which only\n" " respects the prefix argument.\n" "\n" " UNIX Layout\n" " -----------\n" "\n" " In the unix layout, following transformation is applied:\n" "\n" " @LAYOUT[unix]@\n" "\n" " Flat Layout\n" " -----------\n" "\n" " @LAYOUT[flat]@\n" " " msgstr "" #. TRANSLATORS: not installed as in 'will not be installed' #: .././plainbox/provider_manager.py:206 msgid "not installed" msgstr "" #: .././plainbox/provider_manager.py:230 msgid "installation prefix" msgstr "" #. TRANSLATORS: don't translate %(defaults)s #: .././plainbox/provider_manager.py:236 #, python-format msgid "installation directory layout (default: %(default)s)" msgstr "" #: .././plainbox/provider_manager.py:239 msgid "install everything relative to this alternate root directory" msgstr "" #: .././plainbox/provider_manager.py:295 #, python-format msgid "copying: %s => %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:357 msgid "" "\n" " create a source tarball\n" "\n" " This commands creates a source distribution (tarball) of all of the\n" " essential provider files. This command takes no arguments and places " "the\n" " resulting tarball in the dist/ directory, relative to the ``manage.py``\n" " file. The tarball name is derived from provider name and version.\n" "\n" " @EPILOG@\n" "\n" " The items included in the tarball are:\n" "\n" " - the manage.py script itself\n" " - the README.md file\n" " - the jobs directory, and everything in it\n" " - the whitelists directory, and everything in it\n" " - the bin directory, and everything in it\n" " - the src directory, and everything in it\n" " - the data directory, and everything in it\n" " - the po directory, and everything in it\n" "\n" " Any of the missing items are silently ignored.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:449 msgid "" "\n" " install/remove this provider, only for development\n" "\n" " This commands creates or removes the ``.provider`` file describing the\n" " provider associated with this ``manage.py`` script. Unlike ``manage.py\n" " install`` the provider is installed without copying anything to a\n" " system-wide location and does not need to be re-executed after every\n" " change.\n" "\n" " The generated file removed by passing the ``--uninstall| -u`` option.\n" "\n" " @EPILOG@\n" "\n" " By default the .provider file is created in\n" " ``$XDG_DATA_HOME/plainbox-providers-1/`` directory. The filename is " "derived\n" " from the name of the provider (version is not included in the " "filename).\n" "\n" " Note that the full path of the source directory is placed in the " "generated\n" " file so you will need to re-run develop if you move this directory " "around.\n" " " msgstr "" #. TRANSLATORS: don't translate the extension name #: .././plainbox/provider_manager.py:487 msgid "remove the generated .provider file" msgstr "" #: .././plainbox/provider_manager.py:490 msgid "overwrite existing provider files" msgstr "" #: .././plainbox/provider_manager.py:498 #, python-format msgid "Removing provider file: %s" msgstr "" #: .././plainbox/provider_manager.py:502 msgid "Provider file already exists: {}" msgstr "" #: .././plainbox/provider_manager.py:505 #, python-format msgid "Creating provider file: %s" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:520 msgid "" "\n" " build provider specific executables from source\n" "\n" " This command builds provider specific executables from source code.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the build_cmd\n" " keyword argument.\n" "\n" " @EPILOG@\n" "\n" " PlainBox comes with a pluggable system for doing the right thing so,\n" " hopefully, in most cases, you don't need to do anything. If your src/\n" " directory has a Makefile or .go source files you should be good to go.\n" "\n" " If the automatic defaults are somehow unsuitable you need to edit " "manage.py\n" " so that it specifies the build command.\n" "\n" " IMPORTANT: It is expected that the build command will create binary " "files\n" " in the current directory. The build command is executed from within the\n" " 'build/bin' subdirectory (which is created automatically). The relative\n" " path of the 'src/' directory is available as the $PLAINBOX_SRC_DIR\n" " environment variable.\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:667 msgid "" "\n" " clean build results\n" "\n" " This command complements the build command and is intended to clean-up\n" " after the build process.\n" "\n" " The actual logic on how that is done is supplied by provider authors as " "a\n" " part of setup() call inside this manage.py script, as the clean_cmd\n" " keyword argument\n" "\n" " @EPILOG@\n" "\n" " IMPORTANT: the clean command is executed from the directory with the\n" " 'manage.py' script. The relative path of the src/ directory is " "available\n" " as the $PLAINBOX_SRC_DIR environment variable.\n" "\n" " For virtually every case, the following command should be sufficient to\n" " clean up all build artifacts. It is also the default command so you " "don't\n" " need to specify it explicitly.\n" "\n" " setup(\n" " clean_cmd='rm -rf build/bin'\n" " )\n" " " msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:768 msgid "" "\n" " display basic information about this provider\n" "\n" " This command displays various essential facts about the provider " "associated\n" " with the ``manage.py`` script. Displayed data includes provider name " "and\n" " other meta-data, all of the jobs and whitelist, with their precise\n" " locations.\n" " " msgstr "" #: .././plainbox/provider_manager.py:794 msgid "[Provider MetaData]" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:796 msgid "name: {}" msgstr "" #. TRANSLATORS: {} is the namenamespace of the test provider #: .././plainbox/provider_manager.py:798 msgid "namespace: {} (derived from name)" msgstr "" #. TRANSLATORS: {} is the name of the test provider #: .././plainbox/provider_manager.py:801 msgid "description: {}" msgstr "" #. TRANSLATORS: {} is the version of the test provider #: .././plainbox/provider_manager.py:803 msgid "version: {}" msgstr "" #. TRANSLATORS: {} is the gettext translation domain of the provider #: .././plainbox/provider_manager.py:805 msgid "gettext domain: {}" msgstr "" #: .././plainbox/provider_manager.py:806 msgid "[Job Definitions]" msgstr "" #. TRANSLATORS: the fields are as follows: #. 0: job id #. 1: pathname of the file the job is defined in #. TRANSLATORS: the fields are as follows: #. 0: whitelist name #. 1: pathname of the file the whitelist is defined in #: .././plainbox/provider_manager.py:812 .././plainbox/provider_manager.py:832 msgid "{0!a}, from {1}" msgstr "" #: .././plainbox/provider_manager.py:816 msgid "Some jobs could not be parsed correctly" msgstr "" #. TRANSLATORS: please don't translate `manage.py validate` #: .././plainbox/provider_manager.py:818 msgid "Please run `manage.py validate` for details" msgstr "" #: .././plainbox/provider_manager.py:819 msgid "[White Lists]" msgstr "" #: .././plainbox/provider_manager.py:826 msgid "Errors prevent whitelists from being displayed" msgstr "" #: .././plainbox/provider_manager.py:835 msgid "[Executables]" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:850 msgid "" "\n" " perform various static analysis and validation\n" "\n" " This command inspects all of the jobs defined in the provider " "associated\n" " with the ``manage.py`` script. It checks for both syntax issues and\n" " semantic issues. Anything reported as incorrect will likely result in a\n" " run-time failure.\n" "\n" " @EPILOG@\n" "\n" " Refer to the online documentation for plainbox to understand how " "correct\n" " job definitions look like and how to resolve problems reported by\n" " ``verify``.\n" "\n" " The exit code can be used to determine if there were any failures. If " "you\n" " have any, ``manage.py validate`` is something that could run in a CI " "loop.\n" " " msgstr "" #: .././plainbox/provider_manager.py:893 msgid "NOTE: subsequent jobs from problematic files are ignored" msgstr "" #: .././plainbox/provider_manager.py:911 msgid "missing definition of required field" msgstr "" #: .././plainbox/provider_manager.py:912 msgid "incorrect value supplied" msgstr "" #: .././plainbox/provider_manager.py:913 msgid "useless field in this context" msgstr "" #: .././plainbox/provider_manager.py:914 msgid "usage of deprecated field" msgstr "" #. TRANSLATORS: fields are as follows: #. 0: filename with job definition #. 1: job id #. 2: field name #. 3: explanation of the problem #: .././plainbox/provider_manager.py:923 msgid "{0}: job {1!a}, field {2!a}: {3}" msgstr "" #: .././plainbox/provider_manager.py:934 #, python-brace-format msgid "allowed values are: {0}" msgstr "" #: .././plainbox/provider_manager.py:941 msgid "All jobs seem to be valid" msgstr "" #. TRANSLATORS: please leave various options (both long and short forms), #. environment variables and paths in their original form. Also keep the #. special @EPILOG@ string. The first line of the translation is special and #. is used as the help message. Please keep the pseudo-statement form and #. don't finish the sentence with a dot. Pay extra attention to whitespace. #. It must be correctly preserved or the result won't work. In particular #. the leading whitespace *must* be preserved and *must* have the same #. length on each line. #: .././plainbox/provider_manager.py:964 msgid "" "\n" " update, merge and build translation catalogs\n" "\n" " This command exposes facilities for updating, merging and building\n" " message translation catalogs.\n" " " msgstr "" #: .././plainbox/provider_manager.py:987 msgid "don't actually do anything" msgstr "" #: .././plainbox/provider_manager.py:988 msgid "actions to perform" msgstr "" #: .././plainbox/provider_manager.py:991 msgid "do not update the translation template" msgstr "" #: .././plainbox/provider_manager.py:994 msgid "do not merge translation files with the template" msgstr "" #: .././plainbox/provider_manager.py:997 msgid "do not build binary translation files" msgstr "" #. TRANSLATORS: please keep 'manage.py', '--help', '--version' #. untranslated. Translate only '[options]' #: .././plainbox/provider_manager.py:1139 msgid "manage.py [--help] [--version] [options]" msgstr "" #: .././plainbox/provider_manager.py:1219 msgid "{}: bad value of {!r}, {}" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:806 #: .././plainbox/vendor/argparse/py33-argparse.py:832 #: .././plainbox/vendor/argparse/py34-argparse.py:831 msgid ".__call__() not defined" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1102 #: .././plainbox/vendor/argparse/py33-argparse.py:1128 #: .././plainbox/vendor/argparse/py34-argparse.py:1128 #, python-format msgid "unknown parser %(parser_name)r (choices: %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1143 #: .././plainbox/vendor/argparse/py33-argparse.py:1169 #: .././plainbox/vendor/argparse/py34-argparse.py:1175 #, python-format msgid "argument \"-\" with mode %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1150 #: .././plainbox/vendor/argparse/py33-argparse.py:1176 #: .././plainbox/vendor/argparse/py34-argparse.py:1183 #, python-format msgid "can't open '%s': %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1352 #: .././plainbox/vendor/argparse/py33-argparse.py:1378 #: .././plainbox/vendor/argparse/py34-argparse.py:1388 #, python-format msgid "cannot merge actions - two groups are named %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1390 #: .././plainbox/vendor/argparse/py33-argparse.py:1416 #: .././plainbox/vendor/argparse/py34-argparse.py:1426 msgid "'required' is an invalid argument for positionals" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1412 #: .././plainbox/vendor/argparse/py33-argparse.py:1438 #: .././plainbox/vendor/argparse/py34-argparse.py:1448 #, python-format msgid "" "invalid option string %(option)r: must start with a character " "%(prefix_chars)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1432 #: .././plainbox/vendor/argparse/py33-argparse.py:1458 #: .././plainbox/vendor/argparse/py34-argparse.py:1468 #, python-format msgid "dest= is required for options like %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1449 #: .././plainbox/vendor/argparse/py33-argparse.py:1475 #: .././plainbox/vendor/argparse/py34-argparse.py:1485 #, python-format msgid "invalid conflict_resolution value: %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1467 #: .././plainbox/vendor/argparse/py33-argparse.py:1493 #: .././plainbox/vendor/argparse/py34-argparse.py:1503 #, python-format msgid "conflicting option string: %s" msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:1533 #: .././plainbox/vendor/argparse/py33-argparse.py:1559 #: .././plainbox/vendor/argparse/py34-argparse.py:1569 msgid "mutually exclusive arguments must be optional" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1603 #: .././plainbox/vendor/argparse/py33-argparse.py:1619 #: .././plainbox/vendor/argparse/py34-argparse.py:1629 msgid "positional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1604 #: .././plainbox/vendor/argparse/py33-argparse.py:1620 #: .././plainbox/vendor/argparse/py34-argparse.py:1630 msgid "optional arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1619 #: .././plainbox/vendor/argparse/py33-argparse.py:1635 #: .././plainbox/vendor/argparse/py34-argparse.py:1645 msgid "show this help message and exit" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1657 #: .././plainbox/vendor/argparse/py33-argparse.py:1666 #: .././plainbox/vendor/argparse/py34-argparse.py:1676 msgid "cannot have multiple subparser arguments" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1709 #: .././plainbox/vendor/argparse/py33-argparse.py:1718 #: .././plainbox/vendor/argparse/py34-argparse.py:1728 #, python-format msgid "unrecognized arguments: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1806 #: .././plainbox/vendor/argparse/py33-argparse.py:1815 #: .././plainbox/vendor/argparse/py34-argparse.py:1825 #, python-format msgid "not allowed with argument %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1852 #: .././plainbox/vendor/argparse/py32-argparse.py:1866 #: .././plainbox/vendor/argparse/py33-argparse.py:1861 #: .././plainbox/vendor/argparse/py33-argparse.py:1875 #: .././plainbox/vendor/argparse/py34-argparse.py:1871 #: .././plainbox/vendor/argparse/py34-argparse.py:1885 #, python-format msgid "ignored explicit argument %r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1963 #, python-format msgid "argument %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:1977 #: .././plainbox/vendor/argparse/py33-argparse.py:1997 #: .././plainbox/vendor/argparse/py34-argparse.py:2007 #, python-format msgid "one of the arguments %s is required" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2023 #: .././plainbox/vendor/argparse/py33-argparse.py:2043 #: .././plainbox/vendor/argparse/py34-argparse.py:2050 msgid "expected one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2024 #: .././plainbox/vendor/argparse/py33-argparse.py:2044 #: .././plainbox/vendor/argparse/py34-argparse.py:2051 msgid "expected at most one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2025 #: .././plainbox/vendor/argparse/py33-argparse.py:2045 #: .././plainbox/vendor/argparse/py34-argparse.py:2052 msgid "expected at least one argument" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2027 #: .././plainbox/vendor/argparse/py33-argparse.py:2047 #: .././plainbox/vendor/argparse/py34-argparse.py:2054 #, python-format msgid "expected %s argument" msgid_plural "expected %s arguments" msgstr[0] "" msgstr[1] "" #: .././plainbox/vendor/argparse/py32-argparse.py:2086 #: .././plainbox/vendor/argparse/py33-argparse.py:2106 #: .././plainbox/vendor/argparse/py34-argparse.py:2113 #, python-format msgid "ambiguous option: %(option)s could match %(matches)s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2149 #: .././plainbox/vendor/argparse/py33-argparse.py:2169 #: .././plainbox/vendor/argparse/py34-argparse.py:2176 #, python-format msgid "unexpected option string: %s" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2250 #: .././plainbox/vendor/argparse/py33-argparse.py:2273 #: .././plainbox/vendor/argparse/py34-argparse.py:2280 #, python-format msgid "%r is not callable" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2267 #: .././plainbox/vendor/argparse/py33-argparse.py:2290 #: .././plainbox/vendor/argparse/py34-argparse.py:2297 #, python-format msgid "invalid %(type)s value: %(value)r" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2278 #: .././plainbox/vendor/argparse/py33-argparse.py:2301 #: .././plainbox/vendor/argparse/py34-argparse.py:2308 #, python-format msgid "invalid choice: %(value)r (choose from %(choices)s)" msgstr "" #: .././plainbox/vendor/argparse/py32-argparse.py:2372 #: .././plainbox/vendor/argparse/py33-argparse.py:2377 #: .././plainbox/vendor/argparse/py34-argparse.py:2384 #, python-format msgid "%(prog)s: error: %(message)s\n" msgstr "" #: .././plainbox/vendor/argparse/py33-argparse.py:1982 #: .././plainbox/vendor/argparse/py34-argparse.py:1992 #, python-format msgid "the following arguments are required: %s" msgstr "" plainbox-0.5.3/plainbox/0000775000175000017500000000000012320462103015110 5ustar zygazyga00000000000000plainbox-0.5.3/plainbox/tests.py0000664000175000017500000000343112320461715016635 0ustar zygazyga00000000000000# This file is part of Checkbox. # # Copyright 2012 Canonical Ltd. # Written by: # Zygmunt Krynicki # # Checkbox is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, # as published by the Free Software Foundation. # # Checkbox 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 Checkbox. If not, see . """ :mod:`plainbox.tests` -- auxiliary test loaders for plainbox ============================================================ """ from unittest.loader import defaultTestLoader from plainbox.impl import get_plainbox_dir def load_unit_tests(): """ Load all unit tests and return a TestSuite object """ # Discover all unit tests. By simple convention those are kept in # python modules that start with the word 'test_' . return defaultTestLoader.discover(get_plainbox_dir()) def load_integration_tests(): """ Load all integration tests and return a TestSuite object """ # Discover all integration tests. By simple convention those are kept in # python modules that start with the word 'integration_' . return defaultTestLoader.discover( get_plainbox_dir(), pattern="integration_*.py") def test_suite(): """ Test suite function used by setuptools test loader. Uses unittest test discovery system to get a list of test cases defined inside plainbox. See setup.py setup(test_suite=...) for a matching entry """ return load_unit_tests() plainbox-0.5.3/plainbox/test-data/0000775000175000017500000000000012320462103016776 5ustar zygazyga00000000000000plainbox-0.5.3/plainbox/test-data/integration-tests/0000775000175000017500000000000012320462103022461 5ustar zygazyga00000000000000plainbox-0.5.3/plainbox/test-data/integration-tests/stub/0000775000175000017500000000000012320462103023436 5ustar zygazyga00000000000000plainbox-0.5.3/plainbox/test-data/integration-tests/stub/true.json0000664000175000017500000000037012320461715025320 0ustar zygazyga00000000000000{ "profile": "default", "job_name": "2013.com.canonical.plainbox::stub/true", "result": { "result_map": { "2013.com.canonical.plainbox::stub/true": { "outcome": "pass" } } } } plainbox-0.5.3/plainbox/test-data/xml-exporter/0000775000175000017500000000000012320462103021444 5ustar zygazyga00000000000000plainbox-0.5.3/plainbox/test-data/xml-exporter/test_dump_with_binary_attachment.json0000664000175000017500000000030412320461715031157 0ustar zygazyga00000000000000{ "resource_map": {}, "attachment_map": { "A": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAAxJREFUCNdj+M/AAAADAQEAGN2NsAAAAABJRU5ErkJggg==" }, "result_map": {} } plainbox-0.5.3/plainbox/test-data/xml-exporter/example-data.xml0000664000175000017500000350021112320461715024542 0ustar zygazyga00000000000000 5066 3145728 2 Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz 6 10 23 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida dtherm tpr_shadow vnmi flexpriority x86_64 2534 GenuineIntel 5066 3145728 2 Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz 6 10 23 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida dtherm tpr_shadow vnmi flexpriority x86_64 2534 GenuineIntel fail none pass fail skip webcam is broken on this system pass none pass fail skip ID 1d6b:0002 Linux Foundation 2.0 root hub ID 1d6b:0002 Linux Foundation 2.0 root hub ID 1d6b:0001 Linux Foundation 1.1 root hub ID 1d6b:0001 Linux Foundation 1.1 root hub skip none pass fail skip job cannot be started: resource expression "environment.ROUTERS == 'multiple'" evaluates to false 12.04 precise Ubuntu Ubuntu 12.04.1 LTS Installed Install 0.6.15-2ubuntu9.4 query and manipulate user account information Installed Install 2.2.51-5ubuntu1 Access control list utilities Installed Install 1.6-1 displays information on ACPI devices Installed Install 0.140 scripts for handling many ACPI events Installed Install 1:2.0.10-1ubuntu3 Advanced Configuration and Power Interface event daemon Installed Install 20100513-3ubuntu1 utilities to dump system's ACPI tables to an ASCII file Installed Install 0.5.1-3 command line ACPI client Installed Install 0.9.4-0ubuntu3.2 blacklist configuration for Zeitgeist (assets) Installed Install 0.9.4-0ubuntu3.2 blacklist configuration for Zeitgeist (control center integration) Installed Install 3.113ubuntu2 add and remove users and groups Installed Install 0.3.2-0ubuntu1 Adium message style for Ubuntu Installed Install 1:3.2.3.2-0ubuntu1 Solitaire card games Installed Install 0.13.2-2ubuntu4 easy GNOME menu editing tool Installed Install 1.0.25+dfsg-0ubuntu1 ALSA driver configuration files Installed Install 1.0.25-1ubuntu5 Utilities for configuring and using ALSA Installed Install 2.3-14ubuntu1 cron-like program that doesn't go by time Installed Install 2.2.3.dfsg.1-2 Automated Password Generator - Standalone version Installed Install 0.12.04.4 Ubuntu applications (data files) Installed Install 12.12.04.1 Application Installer (data files for partner applications/repositories) Installed Install 2.7.102-0ubuntu3.7 User-space parser utility for AppArmor Installed Install 0.3.92-0ubuntu1.1 Export GTK menus over DBus Installed Install 0.3.92-0ubuntu1.1 Export GTK menus over DBus Installed Install 0.2.6-0ubuntu1 appmenu support for Qt Installed Install 2.0.1-0ubuntu17.1 automatically generate crash reports for debugging Installed Install 2.0.1-0ubuntu17.1 GTK+ frontend for the apport crash report system Installed Install 0.16.1 symptom scripts for apport Installed Install 0.8.16~exp12ubuntu10.7 commandline package manager Installed Install 2.5.0ubuntu1 search for files within Debian packages (command-line interface) Installed Install 0.8.16~exp12ubuntu10.7 https download transport for APT Installed Install 0.8.16~exp12ubuntu10.7 package managment related utility programs Installed Install 0.44ubuntu5 maintenance and search tools for a Xapian index of Debian packages Installed Install 0.43+bzr805-0ubuntu7 transaction based package management service Installed Install 0.43+bzr805-0ubuntu7 data files for clients Installed Install 0.5.1ubuntu3 install packages using the apt protocol - GTK+ frontend Installed Install 0.5.1ubuntu3 install packages using the apt protocol - common data Installed Install 0.1.4-1 Simple visual front end for XRandR Installed Install 0.60.7~20110707-1 GNU Aspell spell-checker Installed Install 6.0-0-6ubuntu2 English dictionary for GNU Aspell Installed Install 3.1.13-1ubuntu1 Delayed job execution and batch processing Installed Install 2.4.2-0ubuntu0.1 Assistive Technology Service Provider Interface (dbus core) Installed Install 2.0.0-1ubuntu0.1 fast, cross-platform audio editor Installed Install 2.0.0-1ubuntu0.1 fast, cross-platform audio editor (data) Installed Install 2.68-1ubuntu2 automatic configure script builder Installed Install 1:1.11.3-1ubuntu2 Tool for generating GNU Standards-compliant Makefiles Installed Install 20120210.1ubuntu1 Update infrastructure for config.{guess,sub} files Installed Install 0.6.30-5ubuntu2 Avahi IPv4LL network address configuration daemon Installed Install 0.6.30-5ubuntu2 Avahi mDNS/DNS-SD daemon Installed Install 0.6.30-5ubuntu2 Avahi browsing, publishing and discovery utilities Installed Install 0.2.124.2-0ubuntu1 Window matching library - daemon Installed Install 3.4.1-0ubuntu1 GNOME disk usage analyzer Installed Install 6.5ubuntu6.4 Debian base system miscellaneous files Installed Install 3.5.24 Debian base system master password and group files Installed Install 4.2-2ubuntu2 GNU Bourne Again SHell Installed Install 1:1.3-1ubuntu8 programmable completion for the bash shell Installed Install 1.06.95-2 The GNU bc arbitrary precision calculator language Installed Install 1:9.8.1.dfsg.P1-4ubuntu0.5 Version of 'host' bundled with BIND 9.X Installed Install 2.22-6ubuntu1 GNU assembler, linker and binary utilities Installed Install 1.23-0ubuntu2.1 A Graphical bluetooth manager Installed Install 4.98-2ubuntu7 Bluetooth tools and daemons Installed Install 4.98-2ubuntu7 Bluetooth ALSA support Installed Install 4.98-2ubuntu7 Bluetooth ALSA support Installed Install 4.98-2ubuntu7 Bluetooth printer driver for CUPS Installed Install 4.98-2ubuntu7 Bluetooth GStreamer support Installed Install 1.96 Hard drive benchmark suite. Installed Install 0.90.2-8ubuntu1 boot sequence auditing Installed Install 0.7 Replacement artwork with Ubuntu branding Installed Install 3.4.1-0ubuntu1.1 CD/DVD burning application for GNOME Installed Install 3.4.1-0ubuntu1.1 cdrkit extensions for the Brasero burning application Installed Install 3.4.1-0ubuntu1.1 Common files for the Brasero CD burning application and library Installed Install 1.5-2ubuntu7 Utilities for configuring the Linux Ethernet bridge Installed Install 4.3-1ubuntu5 Access software for a blind person using a braille display Installed Install 8.2.3ubuntu1 collection of more utilities from FreeBSD Installed Install 1:2.20.1-1ubuntu3 Basic utilities from 4.4BSD-Lite Installed Install 11.5ubuntu2.1 Informational list of build-essential packages Installed Install 1:1.18.5-1ubuntu4.1 Standalone shell setup for initramfs Installed Install 1:1.18.5-1ubuntu4.1 Standalone rescue shell with tons of builtin utilities Installed Install 5.17-0ubuntu1 powerful, text based window manager and shell multiplexer Installed Install 1.0.6-1 high-quality block-sorting file compressor - utilities Installed Install 2.5.1-0ubuntu2 easy to use distributed version control system Installed Install 2.8.4 bzr plugin for Debian package management Installed Install 0.7.2-0ubuntu1 construct a bzr branch from a recipe Installed Install 1.2.2-1 GUI application for using Bazaar Installed Install 0.13.0-1 Fast-import/fast-export plugin for Bazaar Installed Install 20111211 Common CA certificates Installed Install 20110912ubuntu6 Common CA certificates (JKS keystore) Installed Install 0.4.100ubuntu2 common build system for Debian packages Installed Install 1.1.2 Light-weight package to set up cgroups at system boot Installed Install 0.3+bzr167-3~precise1 tools for maintaining Juju charms Installed Install 0.15.1+bzr1894+201301181105~precise1 System testing application Installed Install 0.15+bzr563+201301171917~precise1 Checkbox Certification Tests Installed Install 0.15+bzr563+201301171917~precise1 Client Certification Installed Install 0.15+bzr563+201301171917~precise1 Checkbox Certification Tools Installed Install 0.15.1+bzr1894+201301181105~precise1 Command line interface for checkbox Installed Install 0.10-0precise1~rev150 Checkbox Editor Installed Install 0.2-0precise1~rev19 Checkbox editor template for OEM projects Installed Install 0.15.1+bzr1894+201301181105~precise1 GTK interface for checkbox Installed Install 0.2 Canonical hardware testing suite. Installed Install 0.2 Canonical hardware testing suite - cli version. Installed Install 0.2 Canonical hardware testing suite - qt version. Installed Install 0.45-0-precise1~rev614 Checkbox OEM Tests Installed Install 1.0-2-precise1~rev4 Checkbox OEM bug Installed Install 0.45-0-precise1~rev614 Checkbox OEM GTK Interface Installed Install 0.45-0-precise1~rev614 Checkbox OEM Qt Interface Installed Install 0.1-1precise1~rev18ubuntu1 stella System Testing Installed Install 0.1-1precise1~rev18ubuntu1 Checkbox stella GTK Interface Installed Install 0.15.1+bzr1894+201301181105~precise1 QT4 interface for checkbox Installed Install 3.4.1-0ubuntu2.1 tool to take pictures and videos from your webcam Installed Install 3.4.1-0ubuntu2.1 Common files for the Cheese tool to take pictures and videos Installed Install 0.25-0ubuntu5 cloud image management utilities Installed Install 0+20090930-2 CMaps for Adobe-Japan2 Installed Install 0.1.16-2ubuntu0.1 system service to manage device colour profiles -- system daemon Installed Install 0.2.46ubuntu6 Suggest installation of packages in interactive bash sessions Installed Install 0.2.46ubuntu6 Set of data files for command-not-found. Installed Install 1:0.9.7.12-0ubuntu1 OpenGL window and compositing manager Installed Install 1:0.9.7.12-0ubuntu1 OpenGL window and compositing manager Installed Install 1:0.9.7.12-0ubuntu1 OpenGL window and compositing manager - GNOME window decorator Installed Install 1:0.9.7.12-0ubuntu1 OpenGL window and compositing manager - plugins Installed Install 1:0.9.7.12-0ubuntu1 OpenGL window and compositing manager - default plugins Installed Install 1:0.9.7.0~bzr19-0ubuntu10 Compiz plugins - main collection Installed Install 1:0.9.7.0~bzr19-0ubuntu10 Compiz plugins - main default collection Installed Install 0.9.5.92-0ubuntu5 Compiz Fusion configuration system - gconf backend Installed Install 0.9.5.92-0ubuntu3 Compiz configuration settings manager Installed Install 1.70ubuntu5 console font and keymap setup program Installed Install 0.4.5-2 framework for defining and tracking users, sessions and seats Installed Install 8.13-3ubuntu3.2 GNU core utilities Installed Install 2.11-7ubuntu3 GNU cpio -- a program to manage archives of files Installed Install 4:4.6.3-1ubuntu5 GNU C preprocessor (cpp) Installed Install 4.6.3-1ubuntu5 GNU C preprocessor Installed Install 0.7-0ubuntu1 tools to help evaluate certain CPU (or BIOS) features Installed Install 1.1.2-1ubuntu1 wireless Central Regulatory Domain Agent Installed Install 3.0pl1-120ubuntu4 process scheduling daemon Installed Install 2:1.4.1-2ubuntu4 disk encryption support - command line tools Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - server Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - BSD commands Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - client programs (SysV) Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - common files Installed Install 1.0.18-0ubuntu0.1 OpenPrinting CUPS Filters Installed Install 0.2.1.2-1ubuntu0.1 PolicyKit helper to configure cups with fine-grained privileges Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - PPD manipulation utilities Installed Install 7.22.0-3ubuntu4 Get a file from an HTTP, HTTPS or FTP server Installed Install 2:1.12.13+real-8 Concurrent Versions System Installed Install 0.15.1-1ubuntu1 C-Extensions for Python Installed Install 0.5.7-2ubuntu2 POSIX-compliant shell Installed Install 1.4.18-1ubuntu1.3 simple interprocess messaging system (daemon and utilities) Installed Install 1.4.18-1ubuntu1.3 simple interprocess messaging system (X11 deps) Installed Install 1.06.95-2 The GNU dc arbitrary precision reverse-polish calculator Installed Install 0.12.0-0ubuntu1.1 simple configuration storage system - GSettings back-end Installed Install 0.12.0-0ubuntu1.1 simple configuration storage system - D-Bus service Installed Install 0.12.0-0ubuntu1.1 simple configuration storage system - utilities Installed Install 2.18ubuntu1 Command-line tools to process Debian package information Installed Install 1.5.42ubuntu1 Debian configuration management system Installed Install 1.5.42ubuntu1 full internationalization support for debconf Installed Install 9.20120115ubuntu3 helper programs for debian/rules Installed Install 2010.08.28 GnuPG archive keys of the Debian archive Installed Install 2012.02.22 GnuPG keys of Debian Developers Installed Install 4.2.1ubuntu2 Miscellaneous utilities specific to Debian Installed Install 1.0.39ubuntu0.2 Bootstrap a basic Debian system Installed Install 22.0-0ubuntu2 Back up your files Installed Install 0.20-0ubuntu3 Utilities for .desktop files Installed Install 3.4.1-0ubuntu1 GNOME developers help program Installed Install 3.4.1-0ubuntu1 Common files for devhelp and its library Installed Install 2.11.6ubuntu1.4 scripts to make the life of a Debian Package maintainer easier Installed Install 2.7.102-0ubuntu3.7 AppArmor debhelper routines Installed Install 0.59ubuntu1 tool that converts source archives into Debian package source Installed Install 116 debhelper extension for translation support Installed Install 0.97.2-5 Diagram editor (common files) Installed Install 0.97.2-5 Diagram editor (GNOME version) Installed Install 0.97.2-5 Diagram editor (library files) Installed Install 1.12.1ubuntu2 Common utilities for spelling dictionary tools Installed Install 1.54-1 produces graph of changes introduced by a diff file Installed Install 1:3.2-1ubuntu1 File comparison utilities Installed Install 0.8.2 provides information about the distributions' releases Installed Install 0.8ubuntu0.2 information about the distributions' releases (data files) Installed Install 2.2.0.3-1ubuntu3.1 Dynamic Kernel Module Support Framework Installed Install 2.11-4 SMBIOS/DMI table decoder Installed Install 2:1.02.48-4ubuntu7.1 The Linux Kernel Device Mapper userspace library Installed Install 0.4.3 Style neutral, scalable cursor theme Installed Install 2.59-4 Small caching DNS proxy and DHCP/TFTP server Installed Install 1:9.8.1.dfsg.P1-4ubuntu0.5 Clients provided with BIND Installed Install 0.10.3 utilities to manage online documentation Installed Install 4.5-7ubuntu1 standard XML documentation system for software and systems Installed Install 1.76.1+dfsg-1ubuntu1 stylesheets for processing DocBook XML to various output formats Installed Install 0.12-0ubuntu1~rev479~precise1 Automation Tool Installed Install 3.0.12-1ubuntu1 utilities for making and checking MS-DOS FAT filesystems Installed Install 1.16.1.2ubuntu7.1 Debian package management system Installed Install 1.16.1.2ubuntu7.1 Debian package development tools Installed Install 0.9.6.2ubuntu1 Debian package upload tool Installed Install 0.6.1+repack-1 manage data robotics storage units (drobos) Installed Install 0.6.18-0ubuntu3.1 encrypted bandwidth-efficient backup Installed Install 7.1-10 DVD+-RW/R tools Installed Install 1.42-1ubuntu2 ext2/ext3/ext4 file system libraries Installed Install 1.42-1ubuntu2 ext2/ext3/ext4 file system utilities Installed Install 2.0.9.2-2ubuntu2 Ethernet bridge frame table administration Installed Install 1.5-3 classic UNIX line editor Installed Install 2.1.5+deb1+cvs20081104-9 ejects CDs and operates CD-Changers under Linux Installed Install 3.4.2.3-0ubuntu1 GNOME multi-protocol chat and call client Installed Install 3.4.2.3-0ubuntu1 GNOME multi-protocol chat and call client (common files) Installed Install 1.6.0-7 Wrapper for various spell checker engines (binary programs) Installed Install 2:1.4.6-0ubuntu0.12.04.1 GPG support for Thunderbird and Debian Icedove Installed Install 3.4.2-0ubuntu1.1 Eye of GNOME graphics viewer program Installed Install 0.2.41-10build3 Enlightened Sound Daemon - Common files Installed Install 1.46.02-0ubuntu1 Multi-lingual software speech synthesizer Installed Install 1.46.02-0ubuntu1 Multi-lingual software speech synthesizer: speech data files Installed Install 1:3.1-1 display or change Ethernet device settings Installed Install 2.0.0~bzr516-0ubuntu3.1 managing cloud instances for Eucalyptus Installed Install 3.4.0-0ubuntu1.4 Document (PostScript, PDF) viewer Installed Install 3.4.0-0ubuntu1.4 Document (PostScript, PDF) viewer - common files Installed Install 2.0.2 Evolus Pencil Installed Install 3.2.3-0ubuntu7 evolution database backend server Installed Install 3.2.3-0ubuntu7 architecture independent files for Evolution Data Server Installed Install 46 Ubuntu example content Installed Install 1.3.2-5 Simple Pythonic remote deployment tool Installed Install 1.18.2-1 tool for simulating superuser privileges Installed Install 4:0.8.4-0ubuntu0.12.04.1 Multimedia player, server, encoder and transcoder (transitional package) Installed Install 5.09-2 Determines file type using "magic" numbers Installed Install 3.4.1-0ubuntu1 archive manager for GNOME Installed Install 4.4.2-4ubuntu1 utilities for finding files--find, xargs Installed Install 18.0.1+build1-0ubuntu0.12.04.1 Safe and easy web browser from Mozilla Installed Install 18.0.1+build1-0ubuntu0.12.04.1 Unity appmenu integration for Firefox Installed Install 18.0.1+build1-0ubuntu0.12.04.1 Safe and easy web browser from Mozilla - GNOME support Installed Install 0.4 Launchpad firefox integration Installed Install 18.0.1+build1-0ubuntu0.12.04.1 English language pack for Firefox Installed Install 11.2.202.261ubuntu0.12.04.1 Adobe Flash Player plugin installer Installed Install 2.5.35-10ubuntu3 A fast lexical analyzer generator. Installed Install 0.6.8-2 library to aggregates people into metacontacts (common files) Installed Install 2.8.0-3ubuntu9.1 generic font configuration library - support binaries Installed Install 2.8.0-3ubuntu9.1 generic font configuration library - configuration Installed Install 2.01+mry-3 KACST free TrueType Arabic fonts Installed Install 5.0+svn11846-2 TrueType font designed for Arabic language Installed Install 5.0-5ubuntu1 KhmerOS Unicode fonts for the Khmer language of Cambodia Installed Install 0.0.20060226-8 TrueType font for Lao language Installed Install 1.07.0-2ubuntu0.1 Fonts with the same metrics as Times, Arial and Courier Installed Install 3.010-2 Nanum Korean fonts Installed Install 2:102.2+LibO3.5.4-0ubuntu1.1 OpenSymbol TrueType font Installed Install 003.02.01-5ubuntu1 Japanese TrueType font set, Takao P Gothic Fonts Installed Install 1:0.4.17-1ubuntu1 Thai fonts maintained by TLWG (meta package) Installed Install 1:0.4.17-1ubuntu1 Thai Garuda font Installed Install 1:0.4.17-1ubuntu1 Thai Kinnari font Installed Install 1:0.4.17-1ubuntu1 Thai Loma font Installed Install 1:0.4.17-1ubuntu1 Thai TlwgMono font Installed Install 1:0.4.17-1ubuntu1 Thai Norasi font Installed Install 1:0.4.17-1ubuntu1 Thai Purisa font Installed Install 1:0.4.17-1ubuntu1 Thai Sawasdee font Installed Install 1:0.4.17-1ubuntu1 Thai TlwgTypewriter font Installed Install 1:0.4.17-1ubuntu1 Thai TlwgTypist font Installed Install 1:0.4.17-1ubuntu1 Thai TlwgTypo font Installed Install 1:0.4.17-1ubuntu1 Thai Umpush font Installed Install 1:0.4.17-1ubuntu1 Thai Waree font Installed Install 20120322-0ubuntu1 OpenPrinting printer support - Compressed PPDs derived from the database Installed Install 4.0.8-2ubuntu1 OpenPrinting printer support - programs Installed Install 4.0.16-0ubuntu0.2 OpenPrinting printer support - filters Installed Install 2.6.0-1ubuntu3 OpenGL Utility Toolkit Installed Install 2.6.0-1ubuntu3 OpenGL Utility Toolkit development files Installed Install 20060219-1 Free patch set for MIDI audio synthesis Installed Install 0.2.25 Make recovery more user-friendly Installed Install 20101118-2 Tiny and flexible webcam program Installed Install 0.17-25 classical file transfer client Installed Install 2.8.6-2ubuntu2 Filesystem in Userspace Installed Install 0.25.06precise1 FirmWare Test Suite Installed Install 4:4.6.3-1ubuntu5 GNU C++ compiler Installed Install 4.6.3-1ubuntu5 GNU C++ compiler Installed Install 1:3.1.8+dfsg-0.1ubuntu1 GNU awk, a pattern scanning and processing language Installed Install 6.4.1.1-0ubuntu3 GNOME desktop calculator Installed Install 4:4.6.3-1ubuntu5 GNU C compiler Installed Install 4.6.3-1ubuntu5 GNU C compiler Installed Install 4.6.3-1ubuntu5 GCC, the GNU Compiler Collection (base package) Installed Install 4.6.3-1ubuntu5 GCC, the GNU Compiler Collection (base package) Installed Install 3.2.5-0ubuntu2 GNOME configuration database system (system defaults service) Installed Install 3.0.1-1ubuntu2 editor for the GConf configuration system Installed Install 3.2.5-0ubuntu2 GNOME configuration database system (D-Bus service) Installed Install 3.2.5-0ubuntu2 GNOME configuration database system (D-Bus service) Installed Install 3.2.5-0ubuntu2 GNOME configuration database system (support tools) Installed Install 3.2.5-0ubuntu2 GNOME configuration database system (common files) Installed Install 7.4-2012.04-0ubuntu2.1 The GNU Debugger Installed Install 0.8.5build1 simple tool to install deb files - GNOME GUI Installed Install 0.8.5build1 simple tool to install deb files Installed Install 0.21.dfsg-1ubuntu4 fast and lightweight IDE Installed Install 0.21.dfsg-1ubuntu4 fast and lightweight IDE -- common files Installed Install 0.21.1.dfsg-2 tree browser plugin for Geany Installed Install 0.21.1.dfsg-2 set of plugins for Geany (translations) Installed Install 3.4.1-0ubuntu1 official text editor of the GNOME desktop environment Installed Install 3.4.1-0ubuntu1 official text editor of the GNOME desktop environment (support files) Installed Install 9:1.1.11-2ubuntu2 Creates ISO-9660 CD-ROM filesystem images Installed Install 0.12.0-1ubuntu12 Geographic information framework Installed Install 0.0.2-0ubuntu6 Provide positioning for GeoClue via Ubuntu GeoIP services Installed Install 20111220-1 IP lookup command line tools that use the GeoIP library (country database) Installed Install 0.18.1.1-5ubuntu3 GNU Internationalization utilities Installed Install 0.18.1.1-5ubuntu3 GNU Internationalization utilities for the base system Installed Install 9.05~dfsg-0ubuntu4.2 interpreter for the PostScript language and for PDF Installed Install 9.05~dfsg-0ubuntu4.2 interpreter for the PostScript language and for PDF - CUPS filters Installed Install 9.05~dfsg-0ubuntu4.2 interpreter for the PostScript language and for PDF - X11 support Installed Install 2.6.12-1ubuntu1.2 The GNU Image Manipulation Program Installed Install 2.6.12-1ubuntu1.2 Data files for GIMP Installed Install 0.2.4.1-0ubuntu1 Gesture Injector: No-GEIS, No-Toolkits Installed Install 0.6.15-2ubuntu9.4 GObject introspection data for AccountService Installed Install 0.4.92-0ubuntu1 Typelib files for libappindicator3-1. Installed Install 2.4.0-0ubuntu1 ATK accessibility toolkit (GObject introspection) Installed Install 2.4.2-0ubuntu0.1 Assistive Technology Service Provider (GObject introspection) Installed Install 0.4.2-1ubuntu1 GObject introspection for the Caribou library Installed Install 1.10.6-1~precise1 GObject introspection data for the Clutter 1.0 library Installed Install 1.10.0-0ubuntu2 GObject introspection data for the Cogl 1.0 library Installed Install 1.10.0-0ubuntu2 GObject introspection data for the CoglPango 1.0 library Installed Install 0.6.2-0ubuntu0.1 typelib file for libdbusmenu-glib4 Installed Install 0.6.2-0ubuntu0.1 typelib file for libdbusmenu-gtk4 Installed Install 1.0.10-0ubuntu1 GObject introspection data for the Dee library Installed Install 0.6.8-2 library to aggregates people into metacontacts - GObject-Introspection Installed Install 1.32.0-1 Introspection data for some FreeDesktop components Installed Install 3.2.5-0ubuntu2 GNOME configuration database system (GObject-Introspection) Installed Install 3.4.1-0ubuntu1 GObject introspection for GSettings desktop-wide schemas Installed Install 2.26.1-1 GDK Pixbuf library - GObject-Introspection Installed Install 0.6.4-1 GLib Telepathy connection manager library (GObject-Introspection) Installed Install 1.32.0-1ubuntu1 GObject introspection data for GJS Installed Install 3.4.0.2-1 GObject introspection data for the GnomeKbd library Installed Install 1.32.0-1 Introspection data for GLib, GObject, Gio and GModule Installed Install 3.4.0-0ubuntu1 GObject introspection data for the GNOME menu library Installed Install 3.2.2-0ubuntu5 Introspection data for GnomeBluetooth Installed Install 3.2.2-2 GNOME keyring services library - introspection data Installed Install 0.10.36-1ubuntu0.1 Description: GObject introspection data for the GStreamer Plugins Base library Installed Install 0.10.36-1ubuntu1 Description: GObject introspection data for the GStreamer library Installed Install 2.24.10-0ubuntu6 GTK+ graphical user interface library -- gir bindings Installed Install 3.4.2-0ubuntu0.5 GTK+ graphical user interface library -- gir bindings Installed Install 3.4.2-0ubuntu1 gir files for the GTK+ syntax highlighting widget Installed Install 175-0ubuntu9.2 libgudev-1.0 introspection data Installed Install 0.6.92-0ubuntu1 Typelib file for libindicate5 Installed Install 1.8.3-0ubuntu0.12.04.1 GObject introspection data for the GTK+-based JavaScriptCore library Installed Install 1.8.3-0ubuntu0.12.04.1 GObject introspection data for the GTK+-based JavaScriptCore library Installed Install 0.14.2-1 GLib JSON manipulation library (introspection data) Installed Install 0.1.56.1 library for launchpad integration (gir files) Installed Install 3.4.1-0ubuntu1 GObject introspection data for Mutter Installed Install 0.9.4.0-0ubuntu4.2 GObject introspection data for NetworkManager Installed Install 0.7.5-1 sends desktop notifications to a notification daemon (Introspection files) Installed Install 1:3.4.1-0ubuntu1.1 GObject introspection for the GNOME Panel Applet library Installed Install 1.30.0-0ubuntu3.1 Layout and rendering of internationalized text - gir bindings Installed Install 1.2.0-1ubuntu1 Application plugin library (introspection files) Installed Install 0.104-1ubuntu1 GObject introspection data for PolicyKit Installed Install 2.96-0ubuntu4.2 GObject introspection data for the rhythmbox music player Installed Install 2.38.1-1 GObject introspection data for the libsoup HTTP library Installed Install 0.18.0-1ubuntu1 GLib Telepathy connection manager library (GObject-Introspection) Installed Install 0.4.0-0ubuntu1 Telepathy logger service - introspection Installed Install 3.0.1-0ubuntu21.1 GObject introspection data for Totem media player Installed Install 3.4.1-1 GObject introspection data for the Totem Playlist Parser library Installed Install 3.0.1-0ubuntu1 Ubuntu One widget library Installed Install 3.0.2-1 GObject introspection data for the Unique library Installed Install 5.12.0-0ubuntu1.1 GObject introspection data for the Unity library Installed Install 0.9.15-3git1 GObject introspection data for upower Installed Install 1:0.32.1-0ubuntu1 GObject introspection data for the VTE library Installed Install 1.8.3-0ubuntu0.12.04.1 GObject introspection data for the WebKit library Installed Install 1.8.3-0ubuntu0.12.04.1 GObject introspection data for the WebKit library Installed Install 3.4.0-0ubuntu1 GObject introspection data for the WNCK library Installed Install 5.2.1-1ubuntu1 X Keyboard Extension high-level API - introspection data Installed Install 1:1.7.9.5-1 fast, scalable, distributed revision control system Installed Install 1:1.7.9.5-1 fast, scalable, distributed revision control system (obsolete) Installed Install 1:1.7.9.5-1 fast, scalable, distributed revision control system (email add-on) Installed Install 1:1.7.9.5-1 fast, scalable, distributed revision control system (GUI) Installed Install 1:1.7.9.5-1 fast, scalable, distributed revision control system (manual pages) Installed Install 1:1.7.9.5-1 fast, scalable, distributed revision control system (revision tree visualizer) Installed Install 1.32.0-1ubuntu1 Mozilla-based javascript bindings for the GNOME platform Installed Install 2.0.2-6ubuntu1 graphical frontend to su Installed Install 3.12.1-0ubuntu1 GTK+ User Interface Builder Installed Install 3.8.0-0ubuntu4 GTK+ 2 User Interface Builder Installed Install 2.32.1-1ubuntu2 network-related giomodules for GLib Installed Install 2.32.1-1ubuntu2 network-related giomodules for GLib Installed Install 2.32.1-1ubuntu2 network-related giomodules for GLib - data files Installed Install 2.32.1-1ubuntu2 network-related giomodules for GLib - D-Bus services Installed Install 2011.09-0ubuntu1 OpenGL (ES) 2.0 benchmark Installed Install 2011.09-0ubuntu1 data files for the glmark2 OpenGL (ES) 2.0 benchmark Installed Install 2011.09-0ubuntu1 OpenGL (ES) 2.0 benchmark Installed Install 3.4.1-0ubuntu1.2 accessibility themes for the GNOME desktop Installed Install 3.4.1-0ubuntu1 Various applets for the GNOME panel - binary files Installed Install 3.4.1-0ubuntu1 Various applets for the GNOME panel - data files Installed Install 3.2.2-0ubuntu5 GNOME Bluetooth tools Installed Install 3.4.0-1 Contacts manager for GNOME Installed Install 1:3.4.2-0ubuntu0.8 utilities to configure the GNOME desktop Installed Install 1:3.4.2-0ubuntu0.8 configuration applets for GNOME - data files Installed Install 3.4.2-0ubuntu0.1 Common files for GNOME desktop apps Installed Install 3.0.2-2ubuntu7 manage and configure disk drives and media Installed Install 3.4.0-1 font viewer for GNOME Installed Install 1:3.4.1-0ubuntu2.2 data files for the GNOME games Installed Install 3.4.0-0ubuntu1.1 GNOME Desktop icon theme (small subset) Installed Install 3.4.0-0ubuntu1.1 GNOME Desktop icon theme Installed Install 3.4.0-1 GNOME desktop icon theme (symbolic icons) Installed Install 3.2.2-2ubuntu4 GNOME keyring services (daemon and tools) Installed Install 3.4.0-0ubuntu3.1 GNOME media utilities Installed Install 3.4.0-0ubuntu1 GNOME implementation of the freedesktop menu specification Installed Install 1.0.5-1 A GTK+ interface for MPlayer Installed Install 3.2.0-0ubuntu1 network information tool for GNOME Installed Install 3.4.0-0ubuntu1 GNOME Online Accounts Installed Install 3.4.2-0ubuntu0.1 Scriptable screen reader Installed Install 1:3.4.1-0ubuntu1.1 launcher and docking facility for GNOME Installed Install 1:3.4.1-0ubuntu1.1 common files for the GNOME Panel Installed Install 3.4.0-0ubuntu1.1 power management tool for the GNOME desktop Installed Install 3.4.1-0ubuntu1 GNOME screen saver and locker Installed Install 3.4.1-0ubuntu1 screenshot application for GNOME Installed Install 3.2.1-0ubuntu8 GNOME Session Manager - GNOME 3 session Installed Install 3.2.1-0ubuntu8 GNOME Session Manager - Minimal runtime Installed Install 0.28-3ubuntu3 GNOME session log in and log out sound events Installed Install 3.2.1-0ubuntu8 GNOME Session Manager - common files Installed Install 3.2.1-0ubuntu8 GNOME Session Manager - GNOME fallback session Installed Install 3.4.2-0ubuntu0.6 daemon handling the GNOME session settings Installed Install 3.4.1-0ubuntu2 graphical shell for the GNOME desktop Installed Install 3.4.1-0ubuntu2 common files for the GNOME graphical shell Installed Install 1:3.4.1-0ubuntu2.2 Sudoku puzzle game for GNOME Installed Install 3.4.1-0ubuntu1 system log viewer for GNOME Installed Install 3.4.1-0ubuntu1 Process viewer and system resource monitor for GNOME Installed Install 3.0.0-2ubuntu1 Cross-platform configuration utilities for GNOME Installed Install 3.4.1.1-0ubuntu1 GNOME terminal emulator application Installed Install 3.4.1.1-0ubuntu1 Data files for the GNOME terminal emulator Installed Install 3.4.1-0ubuntu1.2 Standard gnome themes Installed Install 3.3.4-0ubuntu1 tool to adjust advanced configuration settings for GNOME Installed Install 3.4.1-1 GNOME user's guide Installed Install 3.0.2-0ubuntu1 User level public file sharing via WebDAV or ObexFTP Installed Install 0.4.0-1 GNOME Video Effects Installed Install 1:3.4.1-0ubuntu2.2 popular minesweeper puzzle game for GNOME Installed Install 1.4.11-3ubuntu2.2 GNU privacy guard - a free PGP replacement Installed Install 2.0.17-2ubuntu2.12.04.2 GNU privacy guard - password agent Installed Install 3.10.2.0-1 Google Talk Plugin Installed Install 1.4.11-3ubuntu2.2 GNU privacy guard - signature verification tool Installed Install 3.4.0-1~precise0 podcast client and feed aggregator Installed Install 2.26.3-10ubuntu1 rich set of graph drawing tools Installed Install 2.10-1 GNU grep, egrep and fgrep Installed Install 1.21-7 GNU troff text-formatting system (base system components) Installed Install 7.1-10 DVD+-RW/R recorder Installed Install 1.99-21ubuntu3.7 GRand Unified Bootloader (common files) Installed Install 0.6 GRUB gfxpayload blacklist Installed Install 1.99-21ubuntu3.7 GRand Unified Bootloader, version 2 (PC/BIOS version) Installed Install 1.99-21ubuntu3.7 GRand Unified Bootloader, version 2 (PC/BIOS binaries) Installed Install 1.99-21ubuntu3.7 GRand Unified Bootloader (common files for version 2) Installed Install 1.20100103-3 Resource files for gs-cjk, ghostscript CJK-TrueType extension Installed Install 3.4.1-0ubuntu1 GSettings deskop-wide schemas Installed Install 1:8.11+urwcyr1.0.7~pre44-4.2ubuntu1 Fonts for the Ghostscript interpreter(s) Installed Install 0.22 Make Ghostscript fonts available to X11 Installed Install 0.10.36-1ubuntu1 Tools for use with GStreamer Installed Install 0.10.36-1ubuntu0.1 GStreamer plugin for ALSA Installed Install 0.10.13-1 FFmpeg plugin for GStreamer Installed Install 0.10.31-1ubuntu1 GStreamer plugin for getting the sink/source information from GConf Installed Install 0.10.17-2 non-linear editing module for GStreamer Installed Install 0.1.1-2ubuntu1 ICE library (GStreamer plugin) Installed Install 0.10.22.3-2ubuntu2.1 GStreamer plugins from the "bad" set Installed Install 0.10.36-1ubuntu0.1 GStreamer plugins from the "base" set Installed Install 0.10.36-1ubuntu0.1 GStreamer plugins from the "base" set Installed Install 0.10.36-1ubuntu0.1 GStreamer helper programs from the "base" set Installed Install 0.10.31-1ubuntu1 GStreamer plugins from the "good" set Installed Install 0.10.31-1ubuntu1 GStreamer plugins from the "good" set Installed Install 0.10.18.3-1ubuntu1 GStreamer plugins from the "ugly" set Installed Install 0.10.31-1ubuntu1 GStreamer plugin for PulseAudio Installed Install 0.10.36-1ubuntu1 Tools for use with GStreamer Installed Install 0.10.36-1ubuntu0.1 GStreamer plugins for X11 and Pango Installed Install 0.10.36-1ubuntu0.1 GStreamer plugins for X11 and Pango Installed Install 0.3.8-4.1ubuntu1 Graphical frontend for recordMyDesktop screencast tool Installed Install 1:2.20.2-1ubuntu1 theme engines for GTK+ 2.x Installed Install 1:2.20.2-1ubuntu1 theme engines for GTK+ 2.x Installed Install 0.98.2-0ubuntu1 cairo-based gtk+-2.0 theme engine Installed Install 0.98.2-0ubuntu1 cairo-based gtk+-2.0 theme engine Installed Install 1.2.2-0ubuntu1.1 Oxygen widget theme for GTK+-based applications Installed Install 2.24.10-0ubuntu6 pixbuf-based theme for GTK+ 2.x Installed Install 1.0.2-0ubuntu1 Unico Gtk+ 3 theme engine Installed Install 0.40+ds-2 GTK+ performance benchmark Installed Install 1:3.4.1.1-0ubuntu1 Unicode character picker and font browser Installed Install 1.8.8+1-6ubuntu2 Core Guile libraries Installed Install 1.12.1-0ubuntu1.1 userspace virtual filesystem - GIO module Installed Install 1.12.1-0ubuntu1.1 userspace virtual filesystem - GIO module Installed Install 1.12.1-0ubuntu1.1 userspace virtual filesystem - backends Installed Install 1.12.1-0ubuntu1.1 userspace virtual filesystem - binaries Installed Install 1.12.1-0ubuntu1.1 userspace virtual filesystem - common data files Installed Install 1.12.1-0ubuntu1.1 userspace virtual filesystem - servers Installed Install 1.12.1-0ubuntu1.1 userspace virtual filesystem - fuse server Installed Install 1.12.1-0ubuntu1.1 userspace virtual filesystem - private libraries Installed Install 1.12.1-0ubuntu1.1 userspace virtual filesystem - private libraries Installed Install 3.4.2-0ubuntu2.1 Open source social networking client for GNOME Installed Install 3.4.2-0ubuntu2.1 Open source social networking client for GNOME Installed Install 3.4.2-0ubuntu2.1 Facebook plugin for Gwibber Installed Install 3.4.2-0ubuntu2.1 Identi.ca plugin for Gwibber Installed Install 3.4.2-0ubuntu2.1 Twitter plugin for Gwibber Installed Install 1.4-1ubuntu2 GNU compression utilities Installed Install 5194svnppa1~precise1 versatile DVD ripper and video transcoder - GTK GUI Installed Install 0.3-beta15-51 hard drive temperature monitoring utility Installed Install 9.37-0ubuntu3.1 tune hard disk parameters for high performance Installed Install 12.5-1build1 feature-rich BSD mail(1) Installed Install 1.40.4ubuntu1 Automatic manpage generator Installed Install 1.2.12-4 view and edit files in hexadecimal or in ASCII Installed Install 0.12-1ubuntu2 default fallback theme for FreeDesktop.org icon themes Installed Install 3.06ubuntu1 utility to set/show the host name or domain name Installed Install 3.12.2-1ubuntu3.1 HP Linux Printing and Imaging System (HPLIP) Installed Install 3.12.2-1ubuntu3.1 HP Linux Printing and Imaging - data files Installed Install 1.3.2a-15 advanced HTML to text converter Installed Install 1.0.1-1 interactive processes viewer Installed Install 0.5.3.11 Humanity Icon theme Installed Install 20070829-4ubuntu3 English_american dictionary for hunspell Installed Install 0.233-1ubuntu1 hardware identification / configuration data Installed Install 2.8.3-1 US English hyphenation patterns for LibreOffice/OpenOffice.org Installed Install 20090808ubuntu36 ia32 shared libraries - transitional package Installed Install 20090808ubuntu36 Multi-arch versions of former ia32-libraries Installed Install 1.4.1-3ubuntu1 Intelligent Input Bus - core Installed Install 1.4.1-3ubuntu1 Intelligent Input Bus - GTK+2 support Installed Install 1.4.1-3ubuntu1 Intelligent Input Bus - GTK+2 support Installed Install 1.4.1-3ubuntu1 Intelligent Input Bus - GTK+3 support Installed Install 1.4.0-1 Pinyin engine for IBus Installed Install 1.4.0-1 Pinyin engine for IBus - Android database Installed Install 1.3.9.20110827-1ubuntu1 table engine for IBus Installed Install 1.3-4 lightweight stream download utility Installed Install 7u9-2.3.4-0ubuntu1.12.04.1 Alternative JVM for OpenJDK, using JamVM Installed Install 1.2-2ubuntu1.3 web browser plugin based on OpenJDK and IcedTea to execute Java applets Installed Install 1.2-2ubuntu1.3 NetX - implementation of the Java Network Launching Protocol (JNLP) Installed Install 1.2-2ubuntu1.3 NetX - implementation of the Java Network Launching Protocol (JNLP) Installed Install 0.7~beta2ubuntu8 high level tools to configure network interfaces Installed Install 1.20ubuntu5.1 Input method switch framework Installed Install 8:6.6.9.7-5ubuntu3.2 image manipulation programs Installed Install 8:6.6.9.7-5ubuntu3.2 image manipulation programs -- infrastructure Installed Install 2.2.11-1 C language source code formatting program Installed Install 0.5.0-0ubuntu1 Clone of the GNOME panel indicator applet Installed Install 0.5.0-0ubuntu1 Application Indicators Installed Install 0.3.97-0ubuntu1 Indicator for application menus. Installed Install 0.3.94-0ubuntu2 Simple clock Installed Install 0.6.0-0ubuntu2 indicator that collects messages that need a response Installed Install 2.0-0ubuntu1 Indicator showing power state. Installed Install 0.1.6-0ubuntu1 indicator showing active print jobs Installed Install 0.3.96-0ubuntu1 indicator showing session management, status and user switching Installed Install 0.8.5.0-0ubuntu2.1 System sound indicator. Installed Install 0.6.0-0ubuntu2 indicator-messages status provider for telepathy mission-control-5 Installed Install 0.6.0-0ubuntu2 indicator-messages status provider for pidgin Installed Install 11.11.28-0ubuntu1.2 indicator that displays weather information Installed Install 4.13a.dfsg.1-8ubuntu2 Standalone GNU Info documentation browser Installed Install 0.99ubuntu13 tools for generating an initramfs Installed Install 0.99ubuntu13 binaries used by initramfs-tools Installed Install 2.88dsf-13.10ubuntu11.1 scripts for initializing and shutting down the system Installed Install 0.48.3.1-1ubuntu1 vector-based drawing program Installed Install 0.0.20110106-0ubuntu1 utilities for the input layer of the Linux kernel Installed Install 1:1.4.2-1 utility to connect serial-attached peripherals to the input subsystem Installed Install 1.14.0-2.1ubuntu2 Tool to organize boot sequence using LSB init.d script dependencies Installed Install 4.13a.dfsg.1-8ubuntu2 Manage installed documentation in info format Installed Install 1.2-1 tools for debugging the Intel graphics driver Installed Install 0.50.2-2 Utility scripts for internationalizing XML Installed Install 0.35.0+20060710.1 Help i18n of RFC822 compliant config files Installed Install 397-2 Filesystem and Disk Benchmarking Tool Installed Install 2.0.5-2.1 Internet Protocol bandwidth measuring tool Installed Install 20111117-1ubuntu2 networking and traffic control tools Installed Install 1.4.12-1ubuntu4 administration tools for packet filtering and NAT Installed Install 3:20101006-1ubuntu1 Tool to send ICMP echo requests to an ARP address Installed Install 3:20101006-1ubuntu1 Tools to test the reachability of network hosts Installed Install 3:20101006-1ubuntu1 Tools to trace the network path to a remote host Installed Install 0.12.1+dfsg-0ubuntu1 enhanced interactive Python shell Installed Install 0.56-1ubuntu4 Daemon to balance interrupts for SMP systems Installed Install 4.1.ESV-R4-0ubuntu5.5 ISC DHCP client Installed Install 4.1.ESV-R4-0ubuntu5.5 common files used by all the isc-dhcp* packages Installed Install 3.31-1 ISO language, territory, currency, script codes and their translations Installed Install 3.2-1 tool for configuring Linux wireless devices Installed Install 0.43ubuntu2 Base of all Java packages Installed Install 0.9.7-0ubuntu7.4 user interface and desktop integration for driver management Installed Install 0.9.7-0ubuntu7.4 GNOME user interface and desktop integration for driver management Installed Install 1.1.1-4ubuntu1 Remove hot spots from JPEG images with minimal quality loss Installed Install 0.6.0.1+bzr608-0juju2~precise1 next generation service orchestration system Installed Install 1.15.2-3ubuntu4 Linux console font and keytable utilities Installed Install 0.12+git20090217-1ubuntu19 kernel oops tracker Installed Install 1.70ubuntu5 system-wide keyboard preferences Installed Install 1.5.25-1ubuntu2 small utilities built with klibc for early boot Installed Install 1.10+dfsg~beta1-2ubuntu0.3 Internationalization support for MIT Kerberos Installed Install 1.0.0+git-3.55f6c88-0ubuntu1 PXE ROM's for KVM Installed Install 12.05-0ubuntu1.12.04 The Landscape administration system client - UI installer Installed Install 1:12.04+20120801 translation updates for language English Installed Install 1:12.04+20120801 translations for language English Installed Install 1:12.04+20120801 GNOME translation updates for language English Installed Install 1:12.04+20120801 GNOME translations for language English Installed Install 0.79 Language selector for Ubuntu Installed Install 0.79 Language selector for Ubuntu Installed Install 0.13.7ubuntu2 attempt to detect a laptop Installed Install 0.1.56.1 launchpad integration Installed Install 2.3.1-0ubuntu1 GNU/Linux Desktop Testing Project (GNU/LDTP) Installed Install 444-1ubuntu1 pager program similar to more Installed Install 1:0.95.2-1 OSF/Motif 2.1 implementation released under LGPL Installed Install 0.7.4-16build1 library for decoding ATSC A/52 streams Installed Install 1.4p5-39ubuntu1 ASCII art library Installed Install 1.4p5-39ubuntu1 ASCII art library Installed Install 0.3.0-4 free-and-libre implementation of AACS Installed Install 0.6.15-2ubuntu9.4 query and manipulate user account information - shared libraries Installed Install 2.2.51-5ubuntu1 Access control list shared library Installed Install 2.2.51-5ubuntu1 Access control list shared library Installed Install 0.3.109-2ubuntu1 Linux kernel AIO access library - shared library Installed Install 0.3.109-2ubuntu1 Linux kernel AIO access library - shared library Installed Install 1.19.02-2 module to find differences between files Installed Install 0.04-2build2 module to find differences between files (XS accelerated) Installed Install 0.08-2 Perl module for three-way merge of textual data Installed Install 1:3.4.0-2ubuntu3 approximate minimum degree ordering library for sparse matrices Installed Install 1.1.0-1ubuntu2 Cross Platform Audio Output Library (Common files) Installed Install 1.1.0-1ubuntu2 Cross Platform Audio Output Library Installed Install 2.7.102-0ubuntu3.7 changehat AppArmor library Installed Install 0.4.92-0ubuntu1 Application Indicators Installed Install 0.4.92-0ubuntu1 Application Indicators Installed Install 0.8.16~exp12ubuntu10.7 deb package format runtime library Installed Install 0.1.25build2 Perl interface to libapt-pkg Installed Install 0.8.16~exp12ubuntu10.7 package managment runtime library Installed Install 3.0.3-6ubuntu1 Multi-format archive and compression library (shared library) Installed Install 2.3.21-1ubuntu0.1 Library of functions for 2D graphics - runtime files Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - ASN.1 library Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - ASN.1 library Installed Install 1.0.25-1ubuntu10.1 shared library for ALSA applications Installed Install 1.0.25-1ubuntu10.1 shared library for ALSA applications Installed Install 1.0.25-1ubuntu1 ALSA library additional plugins Installed Install 1.0.25-1ubuntu1 ALSA library additional plugins Installed Install 0.60.7~20110707-1 GNU Aspell spell-checker runtime library Installed Install 0.10.0-3 library for SSA/ASS subtitles rendering Installed Install 2.0.2-1ubuntu1 IPC library for the GnuPG components Installed Install 0.8-4 Asynchronous name service query library Installed Install 0.8-4 Asynchronous name service query library Installed Install 0.18-3 ATA S.M.A.R.T. reading and parsing library Installed Install 2.4.0-1ubuntu2 at-spi2-atk Installed Install 2.4.0-1ubuntu2 at-spi2-atk GSettings schemas Installed Install 0.30.4-0ubuntu2 An ATK implementation for Java using JNI Installed Install 0.30.4-0ubuntu2 An ATK implementation for Java using JNI (jni bindings) Installed Install 2.4.0-0ubuntu1 ATK accessibility toolkit Installed Install 2.4.0-0ubuntu1 ATK accessibility toolkit Installed Install 2.4.0-0ubuntu1 Common files for the ATK accessibility toolkit Installed Install 2.4.0-0ubuntu1 Development files for the ATK accessibility toolkit Installed Install 2.4.0-0ubuntu1 Documentation files for the ATK toolkit Installed Install 2.22.6-1ubuntu1 C++ wrappers for ATK accessibility toolkit (shared libraries) Installed Install 2.4.2-0ubuntu0.1 Assistive Technology Service Provider Interface - shared library Installed Install 1:2.4.46-5ubuntu1 Extended attribute shared library Installed Install 1:2.4.46-5ubuntu1 Extended attribute shared library Installed Install 1.9.3-4 Network Audio System - shared libraries Installed Install 1.9.3-4 Network Audio System - shared libraries Installed Install 0.3.3-2 Open-source version of SGI's audiofile library Installed Install 0.3.3-2 Open-source version of SGI's audiofile library Installed Install 2.1500-1 Authen::SASL - SASL Authentication framework Installed Install 4:0.8.4-0ubuntu0.12.04.1 Multimedia player, server, encoder and transcoder Installed Install 0.6.30-5ubuntu2 Avahi client library Installed Install 0.6.30-5ubuntu2 Avahi client library Installed Install 0.6.30-5ubuntu2 Avahi common data files Installed Install 0.6.30-5ubuntu2 Avahi common data files Installed Install 0.6.30-5ubuntu2 Avahi common library Installed Install 0.6.30-5ubuntu2 Avahi common library Installed Install 0.6.30-5ubuntu2 Avahi's embeddable mDNS/DNS-SD library Installed Install 0.6.30-5ubuntu2 Avahi glib integration library Installed Install 0.6.30-5ubuntu2 Avahi GObject library Installed Install 0.6.30-5ubuntu2 Avahi GTK+ User interface library for GTK3 Installed Install 0.5.3-1ubuntu2 control IEEE 1394 audio/video devices Installed Install 0.5.3-1ubuntu2 control IEEE 1394 audio/video devices Installed Install 4:0.8.4-0ubuntu0.12.04.1 Libav codec library Installed Install 4:0.8.4-0ubuntu0.12.04.1 Libav device handling library Installed Install 4:0.8.4-0ubuntu0.12.04.1 Libav video filtering library Installed Install 4:0.8.4-0ubuntu0.12.04.1 Libav file format library Installed Install 4:0.8.4-0ubuntu0.12.04.1 Libav utility library Installed Install 0.0.22-1.1 Dynamic, any to any, pixel format conversion library Installed Install 0.2.124.2-0ubuntu1 Window matching library - shared library Installed Install 0.2.124.2-0ubuntu1 Window matching library - shared library Installed Install 0.23-1build3 bfb protocol library Installed Install 1:9.8.1.dfsg.P1-4ubuntu0.5 BIND9 Shared Library used by BIND Installed Install 7.1-1build2 Perl module for bit vectors and more Installed Install 1.2.20110419-2ubuntu1 Basic Linear Algebra Reference implementations, shared library Installed Install 2.20.1-1ubuntu3 block device id library Installed Install 4.98-2ubuntu7 Library to use the BlueZ Linux Bluetooth stack Installed Install 1:0.2.1+git20111208.63e308d-3 Blu-ray disc playback support library (shared library) Installed Install 2.32.1-0ubuntu1.1 Bonobo CORBA interfaces library Installed Install 2.32.1-0ubuntu1.1 Bonobo CORBA interfaces library -- support files Installed Install 2.24.5-0ubuntu1.1 The Bonobo UI library Installed Install 2.24.5-0ubuntu1.1 The Bonobo UI library -- common files Installed Install 1.46.1-7ubuntu3 serialization library for C++ Installed Install 3.4.1-0ubuntu1.1 CD/DVD burning library for GNOME - runtime Installed Install 4.3-1ubuntu5 braille display access via BRLTTY - shared library Installed Install 0.3.0-2 utility functions from BSD systems - shared library Installed Install 1.1.8-1 library to provide CD/DVD writing functions Installed Install 1.0.6-1 high-quality block-sorting file compressor library - runtime Installed Install 1.0.6-1 high-quality block-sorting file compressor library - runtime Installed Install 2.15-0ubuntu10.3 Embedded GNU C Library: Binaries Installed Install 2.15-0ubuntu10.3 Embedded GNU C Library: Development binaries Installed Install 2.15-0ubuntu10.3 Embedded GNU C Library: Shared libraries Installed Install 2.15-0ubuntu10.3 Embedded GNU C Library: Shared libraries Installed Install 2.15-0ubuntu10.3 Embedded GNU C Library: Development Libraries and Header Files Installed Install 0.99.beta17-2.1ubuntu2 colour ASCII art library Installed Install 0.99.beta17-2.1ubuntu2 colour ASCII art library Installed Install 1.10.2-6.1ubuntu3 The Cairo 2D vector graphics library (GObject library) Installed Install 1.10.2-6.1ubuntu3 The Cairo 2D vector graphics library (GObject library) Installed Install 1.081-1build2 Perl interface to the Cairo graphics library Installed Install 1.10.2-6.1ubuntu3 The Cairo 2D vector graphics library (script interpreter) Installed Install 1.10.2-6.1ubuntu3 The Cairo 2D vector graphics library Installed Install 1.10.2-6.1ubuntu3 The Cairo 2D vector graphics library Installed Install 1.10.2-6.1ubuntu3 Development files for the Cairo 2D graphics library Installed Install 1.10.0-1ubuntu1 C++ wrappers for Cairo (shared libraries) Installed Install 3.2.3-0ubuntu7 Evolution MIME message handling library Installed Install 0.28-3ubuntu3 translates GTK+ widgets signals to event sounds Installed Install 0.28-3ubuntu3 translates GTK+ widgets signals to event sounds Installed Install 0.28-3ubuntu3 GTK+ helper for playing widget event sounds with libcanberra Installed Install 0.28-3ubuntu3 GTK+ helper for playing widget event sounds with libcanberra Installed Install 0.28-3ubuntu3 GTK+ 3.0 helper for playing widget event sounds with libcanberra Installed Install 0.28-3ubuntu3 translates GTK3 widgets signals to event sounds Installed Install 0.28-3ubuntu3 PulseAudio backend for libcanberra Installed Install 0.28-3ubuntu3 simple abstract interface for playing event sounds Installed Install 0.28-3ubuntu3 simple abstract interface for playing event sounds Installed Install 0.6.6-1ubuntu1 An alternate POSIX capabilities library Installed Install 1:2.22-1ubuntu3 support for getting/setting POSIX.1e capabilities Installed Install 1:2.22-1ubuntu3 support for getting/setting POSIX.1e capabilities Installed Install 1:2.22-1ubuntu3 basic utility programs for using capabilities Installed Install 1:3.12.20071127-0ubuntu11 libraries for CAPI support Installed Install 0.4.2-1ubuntu1 Configurable on screen keyboard with scanning mode - common files Installed Install 0.4.2-1ubuntu1 Configurable on screen keyboard with scanning mode - library Installed Install 6.04-1 Perl enhancement to Carp error logging facilities Installed Install 0.99.12p2-10build1 library for controlling a CD-ROM when playing audio CDs Installed Install 1.3.2-3fakesync1 library to access CDDB data - runtime files Installed Install 0.83-1 library to read and control digital audio CDs Installed Install 0.83-1 library to read digital audio CDs with error correction Installed Install 0.83-1 library to read and control CD-ROM Installed Install 3.10.2+debian-10ubuntu1 audio extraction tool for sampling CDs (library) Installed Install 3.10.2+debian-10ubuntu1 audio extraction tool for sampling CDs (library) Installed Install 2.26.3-10ubuntu1 rich set of graph drawing tools - cdt library Installed Install 0.7.1-1 The CELT codec runtime library Installed Install 2.26.3-10ubuntu1 rich set of graph drawing tools - cgraph library Installed Install 3.4.1-0ubuntu2.1 tool to take pictures and videos from your webcam - widgets Installed Install 3.4.1-0ubuntu2.1 tool to take pictures and videos from your webcam - base library Installed Install 0.4.5-2 ConsoleKit libraries Installed Install 0.34-1 Perl module that automatically generates accessors Installed Install 0.36-3 report the search path for a class's ISA tree Installed Install 0.31-1build3 recursively copy Perl datatypes Installed Install 1.10.6-1~precise1 Open GL based interactive canvas library Installed Install 1.10.6-1~precise1 Open GL based interactive canvas library (common files) Installed Install 1.5.4-0ubuntu2 Open GL based interactive canvas library GStreamer elements Installed Install 1.2.0-0ubuntu1 Open GL based interactive canvas library GTK+ widget Installed Install 0.1.4-2build1 Open GL based interactive canvas library IMContext framework Installed Install 0.0.2.1-2ubuntu3 Open GL based interactive canvas library Gesture framework Installed Install 0.1.0-1 CMIS protocol client library Installed Install 1.10.0-0ubuntu2 Object oriented GL/GLES Abstraction/Utility Layer (common files) Installed Install 1.10.0-0ubuntu2 Object oriented GL/GLES Abstraction/Utility Layer Installed Install 1.10.0-0ubuntu2 Object oriented GL/GLES Abstraction/Utility Layer Installed Install 0.1.16-2ubuntu0.1 system service to manage device colour profiles -- runtime Installed Install 1.42-1ubuntu2 common error description library Installed Install 1.42-1ubuntu2 common error description library Installed Install 3.4-1 module that implements some sane defaults for Perl programs Installed Install 0.9.7.0~bzr428-0ubuntu6 Settings library for plugins - OpenCompositing Project Installed Install 1.50-2 Parses simple configuration files Installed Install 0.6.5-1 Cascading Style Sheet (CSS) parsing and manipulation toolkit Installed Install 0.6.5-1 Cascading Style Sheet (CSS) parsing and manipulation toolkit Installed Install 1.3-10 interoperable MD5-based crypt() for perl Installed Install 0.57-2ubuntu1 Support for https protocol in LWP Installed Install 2:1.4.1-2ubuntu4 disk encryption support - shared library Installed Install 1:0.0~git20110715.fdd2f19-4.1 Crystal HD Video Decoder (shared library) Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - Core library Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - Core library Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - CGI library Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - Driver library Installed Install 1.0.18-0ubuntu0.1 OpenPrinting CUPS Filters - Shared library Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - Raster image library Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - Raster image library Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - MIME library Installed Install 1.5.3-0ubuntu6 Common UNIX Printing System(tm) - PPD manipulation library Installed Install 7.22.0-3ubuntu4 Multi-protocol file transfer library (OpenSSL) Installed Install 7.22.0-3ubuntu4 Multi-protocol file transfer library (OpenSSL) Installed Install 7.22.0-3ubuntu4 Multi-protocol file transfer library (GnuTLS) Installed Install 7.22.0-3ubuntu4 Multi-protocol file transfer library (NSS) Installed Install 0.14-2 lightweight C library for daemons - runtime library Installed Install 6.3-1 Perl library for accessing dates Installed Install 6.2-1build1 Perl library for accessing dates Installed Install 6.25-1 module for manipulating dates Installed Install 0.2.5-3 Double-array trie library Installed Install 0.2.5-3 Double-array trie library Installed Install 5.1.25-11build1 Berkeley v5.1 Database Libraries [runtime] Installed Install 5.1.25-11build1 Berkeley v5.1 Database Libraries [runtime] Installed Install 1.4.18-1ubuntu1.3 simple interprocess messaging system (library) Installed Install 1.4.18-1ubuntu1.3 simple interprocess messaging system (library) Installed Install 0.98-1ubuntu1 simple interprocess messaging system (GLib-based shared library) Installed Install 0.98-1ubuntu1 simple interprocess messaging system (GLib-based shared library) Installed Install 0.6.2-0ubuntu0.1 library for passing menus over DBus Installed Install 0.6.2-0ubuntu0.1 library for passing menus over DBus - GTK+ version Installed Install 0.6.2-0ubuntu0.1 library for passing menus over DBus - GTK+ version Installed Install 0.9.2-0ubuntu1 Qt implementation of the DBusMenu protocol Installed Install 2.2.0-2 high level programming interface for IEEE1394 digital camera Installed Install 0.0.5-5 decoding library for DTS Coherent Acoustics streams Installed Install 0.12.0-0ubuntu1.1 simple configuration storage system - D-Bus library Installed Install 0.0.0.110722-0ubuntu4 dconf Qt bindings (library) Installed Install 0.12.0-0ubuntu1.1 simple configuration storage system - runtime library Installed Install 1:0.9.7.12-0ubuntu1 Compiz window decoration library Installed Install 1.0.10-0ubuntu1 model to synchronize mutiple instances over DBus - shared lib Installed Install 3.4.1-0ubuntu1 Library providing documentation browser functionality Installed Install 2:1.02.48-4ubuntu7.1 The Linux Kernel Device Mapper userspace library Installed Install 2:1.02.48-4ubuntu7.1 The Linux Kernel Device Mapper userspace library Installed Install 1.03+dfsg-1 module for creating standard message integrity checks Installed Install 1.0.2-4build1 open and royalty free high quality codec - encoder library Installed Install 1.2.10.0-4.3ubuntu1 direct frame buffer graphics - shared libraries Installed Install 0.2.2-3 Library for creating MusicBrainz DiscIDs Installed Install 3.5.24-9 Linguistic support files for libdjvulibre Installed Install 3.5.24-9 Runtime support for the DjVu image format Installed Install 2.9.14-1 DMAP client and server library - runtime Installed Install 1:9.8.1.dfsg.P1-4ubuntu0.5 DNS Shared Library used by BIND Installed Install 1.0.13-3 Configuration file parser library - runtime files Installed Install 1.16.1.2ubuntu7.1 Dpkg perl modules Installed Install 2.4.32-1ubuntu1 Userspace interface to kernel DRM services -- development files Installed Install 2.4.32-1ubuntu1 Userspace interface to intel-specific kernel DRM services -- runtime Installed Install 2.4.32-1ubuntu1 Userspace interface to intel-specific kernel DRM services -- runtime Installed Install 2.4.32-1ubuntu1 Userspace interface to nouveau-specific kernel DRM services -- runtime Installed Install 2.4.32-1ubuntu1 Userspace interface to nouveau-specific kernel DRM services -- runtime Installed Install 2.4.32-1ubuntu1 Userspace interface to radeon-specific kernel DRM services -- runtime Installed Install 2.4.32-1ubuntu1 Userspace interface to radeon-specific kernel DRM services -- runtime Installed Install 2.4.32-1ubuntu1 Userspace interface to kernel DRM services -- runtime Installed Install 2.4.32-1ubuntu1 Userspace interface to kernel DRM services -- runtime Installed Install 1.0.0-3ubuntu1 software library for DV format digital video (runtime lib) Installed Install 1.0.0-3ubuntu1 software library for DV format digital video (runtime lib) Installed Install 0.2.2-1 library for MPEG TS and DVB PSI tables decoding and generating Installed Install 1.2.12-0.0medibuntu1 Simple foundation for reading DVDs - runtime libraries Installed Install 4.2.0-1 DVD navigation library Installed Install 4.2.0-1ubuntu3 library for reading DVDs Installed Install 3.2.3-0ubuntu7 Utility library for evolution data servers Installed Install 1.2.2-2 access library for the EBML format (shared library) Installed Install 3.2.3-0ubuntu7 Client library for evolution address books Installed Install 3.2.3-0ubuntu7 Client library for evolution calendars Installed Install 3.2.3-0ubuntu7 Backend library for evolution address books Installed Install 3.2.3-0ubuntu7 Backend library for evolution calendars Installed Install 3.2.3-0ubuntu7 Utility library for evolution data servers Installed Install 3.2.3-0ubuntu7 GUI utility library for evolution data servers Installed Install 2.11-20080614-3ubuntu2 BSD editline and history libraries Installed Install 8.0.4-0ubuntu0.3 free implementation of the EGL API -- runtime Installed Install 8.0.4-0ubuntu0.3 free implementation of the EGL API -- development files Installed Install 8.0.4-0ubuntu0.3 free implementation of the EGL API -- hardware drivers Installed Install 0.152-1ubuntu3 library to read and write ELF files Installed Install 0.152-1ubuntu3 library to read and write ELF files Installed Install 0.185-1 Perl module for checking the validity of Internet email addresses Installed Install 1.13-4 Extremely Naive Charset Analyser - shared library files Installed Install 1.6.0-7 Wrapper library for various spell checker engines (runtime libs) Installed Install 1.02-2 utility to determine the locale encoding Installed Install 1.0.6~exp1ubuntu1 High-level library for managing Debian package information Installed Install 0.17-1 Perl module for error/exception handling in an OO-ish way Installed Install 0.2.41-10build3 Enlightened Sound Daemon - Shared libraries Installed Install 0.2.41-10build3 Enlightened Sound Daemon - Shared libraries Installed Install 1.46.02-0ubuntu1 Multi-lingual software speech synthesizer: shared library Installed Install 2.0.16-stable-1 Asynchronous event notification library Installed Install 3.4.0-0ubuntu1.4 Document (PostScript, PDF) rendering library Installed Install 2.2.0-1 library to parse XMP metadata (Library) Installed Install 0.6.20-2ubuntu0.1 library to parse EXIF files Installed Install 0.6.20-2ubuntu0.1 library to parse EXIF files Installed Install 0.22-2 EXIF/IPTC metadata manipulation library Installed Install 2.0.1-7.2ubuntu1.1 XML parsing C library - runtime library Installed Install 2.0.1-7.2ubuntu1.1 XML parsing C library - runtime library Installed Install 2.0.1-7.2ubuntu1.1 XML parsing C library - development kit Installed Install 0.51.D001-1 library of syscall-specific strerror replacements Installed Install 0.02-2 lightweight subset of Exporter Installed Install 3.2.0-1ubuntu1 Language detection library - data files Installed Install 3.2.0-1ubuntu1 Language detection library Installed Install 0.304-1 Perl module for building extensions that depend on other extensions Installed Install 1.12-1 simplistic perl interface to pkg-config Installed Install 2.7-7 freeware Advanced Audio Decoder - runtime files Installed Install 0.1.2-0ubuntu1 Audio/Video communications framework: core library Installed Install 3.0.11~rc1-5 Foreign Function Interface library (development files) Installed Install 3.0.11~rc1-5 Foreign Function Interface library runtime Installed Install 3.0.11~rc1-5 Foreign Function Interface library runtime Installed Install 3.3-1ubuntu1 library for computing Fast Fourier Transforms Installed Install 0.03-1fakesync1 Perl module to use the freedesktop basedir specification Installed Install 0.38-1 Perl extension for recursively copying files and directories Installed Install 0.04-3 Perl module to handle freedesktop .desktop files Installed Install 6.03-1 module to parse directory listings Installed Install 0.15-2 Perl module to determine file types Installed Install 1.08-1 Perl module for searching paths for executable programs Installed Install 2.5.35-10ubuntu3 static library for flex (a fast lexical analyzer generator). Installed Install 1.2.1-6 Free Lossless Audio Codec - C++ runtime library Installed Install 1.2.1-6 Free Lossless Audio Codec - runtime C library Installed Install 1.2.1-6 Free Lossless Audio Codec - runtime C library Installed Install 1.4-release-4 Small run-time speech synthesis engine - shared libraries Installed Install 0.6.8-2 Evolution-data-server backend for libfolks Installed Install 0.6.8-2 Telepathy backend for libfolks Installed Install 0.6.8-2 library to aggregates people into metacontacts Installed Install 1.20-1 Font::AFM - Interface to Adobe Font Metrics files Installed Install 2.8.0-3ubuntu9.1 generic font configuration library - runtime Installed Install 2.8.0-3ubuntu9.1 generic font configuration library - runtime Installed Install 2.8.0-3ubuntu9.1 generic font configuration library - development Installed Install 1:1.1.0-1 X11 font encoding library Installed Install 2.2.4-0ubuntu0.12.04.1 Touch Frame Library Installed Install 3.15.1-1 Support library for graphics image formats (development files) Installed Install 3.15.1-1 Support library for graphics image formats (library) Installed Install 1.0.1-1ubuntu2.2 RDP client for Windows Terminal Services (plugins) Installed Install 1.0.1-1ubuntu2.2 RDP client for Windows Terminal Services (library) Installed Install 2.4.8-1ubuntu2.1 FreeType 2 font engine, shared library files Installed Install 2.4.8-1ubuntu2.1 FreeType 2 font engine, shared library files Installed Install 2.4.8-1ubuntu2.1 FreeType 2 font engine, development files Installed Install 0.19.2-1 Free Implementation of the Unicode BiDi algorithm Installed Install 2:1.0.3-1 X11 Font Services library Installed Install 2.8.6-2ubuntu2 Filesystem in Userspace (library) Installed Install 0.25.06precise1 FirmWare Test Suite core support library Installed Install 0.25.06precise1 FirmWare Test Suite ACPICA core built for acpiexec functionality Installed Install 0.25.06precise1 FirmWare Test Suite ACPICA core built for iasl functionality Installed Install 3.4.2-0ubuntu0.5 GNOME Accessibility Implementation Library -- shared libraries Installed Install 2.24.10-0ubuntu6 GNOME Accessibility Implementation Library -- common modules Installed Install 2.24.10-0ubuntu6 GNOME Accessibility Implementation Library -- common modules Installed Install 2.24.10-0ubuntu6 GNOME Accessibility Implementation Library -- shared libraries Installed Install 2.24.10-0ubuntu6 GNOME Accessibility Implementation Library -- shared libraries Installed Install 8.0.4-0ubuntu0.3 generic buffer management API -- runtime Installed Install 1:7.1-8ubuntu0.12.04.1 conservative garbage collector for C and C++ Installed Install 1:4.6.3-1ubuntu5 GCC support library Installed Install 1:4.6.3-1ubuntu5 GCC support library Installed Install 3.2.2-2ubuntu4 Glib wrapper library for PKCS#11 - runtime Installed Install 3.2.5-0ubuntu2 GNOME configuration database system (shared libraries) Installed Install 3.2.5-0ubuntu2 GNOME configuration database system (shared libraries) Installed Install 3.2.5-0ubuntu2 GNOME configuration database system (dummy package) Installed Install 3.2.2-2ubuntu4 Library for Crypto UI related task - runtime Installed Install 3.2.2-2ubuntu4 Library for Crypto UI related task - common files Installed Install 1.5.0-3ubuntu0.1 LGPL Crypto library - runtime library Installed Install 1.5.0-3ubuntu0.1 LGPL Crypto library - runtime library Installed Install 2.0.36~rc1~dfsg-6ubuntu2 GD Graphics Library version 2 Installed Install 2.0.36~rc1~dfsg-6ubuntu2 GD Graphics Library version 2 Installed Install 0.12.0-1 Library for accessing GData webservices - common data files Installed Install 0.12.0-1 Library for accessing GData webservices - shared libraries Installed Install 1.8.3-10 GNU dbm database routines (runtime version) Installed Install 1.8.3-10 GNU dbm database routines (runtime version) Installed Install 2.26.1-1 GDK Pixbuf library Installed Install 2.26.1-1 GDK Pixbuf library Installed Install 2.26.1-1 GDK Pixbuf library - data files Installed Install 2.26.1-1 GDK Pixbuf library (development files) Installed Install 3.0.2-2ubuntu7 GTK+ standard dialog library for libgdu Installed Install 3.0.2-2ubuntu7 GObject based Disk Utility Library Installed Install 0.6.4-1 GObject based collection library Installed Install 0.0.22-2ubuntu3 Generic Graphics Library Installed Install 2.2.9.2-0ubuntu1 Gesture engine interface support Installed Install 0.12.0-1ubuntu12 C API for GeoClue Installed Install 1.4.8+dfsg-2 non-DNS IP-to-country resolver library Installed Install 0.18.1.1-5ubuntu3 GNU Internationalization library Installed Install 0.18.1.1-5ubuntu3 GNU Internationalization library Installed Install 0.4.1-1build1 GObject-based wrapper around the Exiv2 library Installed Install 4.6.3-1ubuntu5 Runtime library for GNU Fortran applications Installed Install 4.1.6-9ubuntu1 library for GIF images (library) Installed Install 2.6.12-1ubuntu1.2 Libraries for the GNU Image Manipulation Program Installed Install 1.32.0-1 Library for handling GObject introspection data (runtime library) Installed Install 1.32.0-1ubuntu1 Mozilla-based javascript bindings for the GNOME platform Installed Install 2.0.13~pre1-5ubuntu2 library providing su and sudo functionality Installed Install 8.0.4-0ubuntu0.3 free implementation of the OpenGL API -- GLX development files Installed Install 8.0.4-0ubuntu0.3 free implementation of the OpenGL API -- DRI modules Installed Install 8.0.4-0ubuntu0.3 free implementation of the OpenGL API -- DRI modules Installed Install 8.0.4-0ubuntu0.3 free implementation of the OpenGL API -- GLX runtime Installed Install 8.0.4-0ubuntu0.3 free implementation of the OpenGL API -- GLX runtime Installed Install 1:2.6.4-1ubuntu1.1 library to load .glade files at runtime Installed Install 1:2.6.4-1ubuntu1.1 development files for libglade Installed Install 3.8.0-0ubuntu4 GTK+ User Interface Build core library Installed Install 3.12.1-0ubuntu1 GTK+ User Interface Build core library Installed Install 3.12.1-0ubuntu1 GTK+ User Interface Build core library (common files) Installed Install 8.0.4-0ubuntu0.3 free implementation of the GL API -- shared library Installed Install 8.0.4-0ubuntu0.3 free implementation of the GL API -- shared library Installed Install 8.0.4-0ubuntu0.3 free implementation of the OpenGL|ES 2.x API -- runtime Installed Install 8.0.4-0ubuntu0.3 free implementation of the OpenGL|ES 2.x API -- development files Installed Install 1.5.7.is.1.5.2-1ubuntu4 The OpenGL Extension Wrangler - runtime environment Installed Install 1.5.7.is.1.5.2-1ubuntu4 The OpenGL Extension Wrangler - development environment Installed Install 1.6.0-4 OpenGL Extension Wrangler - runtime environment Installed Install 1.6.0-4 OpenGL Extension Wrangler - runtime environment Installed Install 2:1.241-1 interface to the GLib and GObject libraries Installed Install 2.32.3-0ubuntu1 GLib library of C routines Installed Install 2.32.3-0ubuntu1 GLib library of C routines Installed Install 2.32.3-0ubuntu1 Programs for the GLib library Installed Install 2.32.3-0ubuntu1 Common files for GLib library Installed Install 2.32.3-0ubuntu1 Development files for the GLib library Installed Install 2.32.3-0ubuntu1 Documentation files for the GLib library Installed Install 2.32.0-0ubuntu1 C++ wrapper for the GLib toolkit (shared libraries) Installed Install 8.0.4-0ubuntu0.3 Mesa OpenGL utility library (GLU) Installed Install 8.0.4-0ubuntu0.3 Mesa OpenGL utility library (GLU) Installed Install 8.0.4-0ubuntu0.3 Mesa OpenGL utility library -- development files Installed Install 0.5.5-2 Playback library for video game music files - shared library Installed Install 2.6.7-1 MIME message parser and creator library - runtime Installed Install 1.0.5-1 gnome-mplayer library (shared library) Installed Install 2:5.0.2+dfsg-2ubuntu1 Multiprecision arithmetic library Installed Install 1.0.5-1 gnome-mplayer toolkit (shared library) Installed Install 1.0.5-1 gnome-mplayer toolkit (common files) Installed Install 3.2.2-0ubuntu5 GNOME Bluetooth tools - support library Installed Install 1:3.4.2-0ubuntu0.8 utilities to configure the GNOME desktop Installed Install 3.4.2-0ubuntu0.1 Utility library for loading .desktop files - runtime files Installed Install 3.2.2-2 GNOME keyring services library - data files Installed Install 3.2.2-2 GNOME keyring services library Installed Install 3.2.2-2 GNOME keyring services library Installed Install 3.0.0-1 GNOME Media Profiles library Installed Install 3.4.0-0ubuntu1 GNOME implementation of the freedesktop menu specification Installed Install 3.0.1-0ubuntu7 GNOME implementation of the freedesktop menu specification Installed Install 2.32.1-2ubuntu1.1 The GNOME library - runtime files Installed Install 2.32.1-2ubuntu1.1 The GNOME library - binary files Installed Install 1.002-2build3 Perl interface to the GNOME canvas library Installed Install 2.32.1-2ubuntu1.1 The GNOME library - common files Installed Install 1.044-4 Perl interface to the GNOME GConf library Installed Install 1.042-2build3 Perl interface to the GNOME libraries Installed Install 1.081-3build1 Perl interface to the 2.x series of the GNOME VFS library Installed Install 0.16-2build2 Perl interface to the Window Navigator Construction Kit Installed Install 2.30.3-1ubuntu1.1 powerful object-oriented display engine - runtime files Installed Install 2.30.3-1ubuntu1.1 powerful object-oriented display engine - common files Installed Install 3.4.0.2-1 GNOME library to manage keyboard configuration - common files Installed Install 3.4.0.2-1 GNOME library to manage keyboard configuration - shared library Installed Install 2.24.5-2ubuntu2 GNOME user interface library - runtime files Installed Install 2.24.5-2ubuntu2 GNOME user interface library - common files Installed Install 1:2.24.4-1ubuntu2.1 GNOME Virtual File System (runtime libraries) Installed Install 1:2.24.4-1ubuntu2.1 GNOME Virtual File System (common files) Installed Install 1:2.24.4-1ubuntu2.1 GNOME Virtual File System (extra modules) Installed Install 2.12.14-5ubuntu3.1 GNU TLS library - runtime library Installed Install 2.12.14-5ubuntu3.1 GNU TLS library - runtime library Installed Install 3.4.0-0ubuntu1 library for GNOME Online Accounts Installed Install 3.4.0-0ubuntu1 library for GNOME Online Accounts - common files Installed Install 4.6.3-1ubuntu5 GCC OpenMP (GOMP) support library Installed Install 4.6.3-1ubuntu5 GCC OpenMP (GOMP) support library Installed Install 0.06-1build2 Perl interface to the GooCanvas Installed Install 0.15-1 translations for goocanvas Installed Install 0.15-1 canvas widget for GTK+ that uses the cairo 2D library Installed Install 1.10-2ubuntu1 library for common error values and messages in GnuPG components Installed Install 1.10-2ubuntu1 library for common error values and messages in GnuPG components Installed Install 1.2.0-1.4ubuntu2 GPGME - GnuPG Made Easy Installed Install 2.4.13-1ubuntu1.2 gphoto2 digital camera library Installed Install 2.4.13-1ubuntu1.2 gphoto2 digital camera library Installed Install 2.4.13-1ubuntu1.2 gphoto2 digital camera library - localized messages Installed Install 2.4.13-1ubuntu1.2 gphoto2 digital camera port library Installed Install 2.4.13-1ubuntu1.2 gphoto2 digital camera port library Installed Install 1.20.4-4 General Purpose Mouse - shared library Installed Install 1.20.4-4 General Purpose Mouse - shared library Installed Install 0.8.2-4 common files for libgpod Installed Install 0.8.2-4 library to read and write songs and artwork to an iPod Installed Install 3.0.6-0ubuntu0.12.04.01 Gesture Recognition And Instantiation Library Installed Install 2.26.3-10ubuntu1 rich set of graph drawing tools - graph library Installed Install 0.3.5-0ubuntu1~12.04.1 provides multitouch gestures to GTK+ apps Installed Install 9.05~dfsg-0ubuntu4.2 interpreter for the PostScript language and for PDF - Library Installed Install 9.05~dfsg-0ubuntu4.2 interpreter for the PostScript language and for PDF - common files Installed Install 1.15+dfsg-1build1 GNU Scientific Library (GSL) -- library package Installed Install 1.0.13-3 Shared libraries for GSM speech compressor Installed Install 2.8.4-2 Runtime libraries for gSOAP Installed Install 1.10+dfsg~beta1-2ubuntu0.3 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism Installed Install 1.10+dfsg~beta1-2ubuntu0.3 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - GSSAPI support library Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - GSSAPI support library Installed Install 0.12.1-2 GObject-based library for SSDP Installed Install 0.10.22.3-2ubuntu2.1 GStreamer shared libraries from the "bad" set Installed Install 0.10.36-1ubuntu0.1 GStreamer libraries from the "base" set Installed Install 0.10.36-1ubuntu0.1 GStreamer libraries from the "base" set Installed Install 0.10.36-1ubuntu1 Core GStreamer libraries and elements Installed Install 0.10.36-1ubuntu1 Core GStreamer libraries and elements Installed Install 3.4.2-0ubuntu0.5 GTK+ graphical user interface library Installed Install 3.4.2-0ubuntu0.5 programs for the GTK+ graphical user interface library Installed Install 3.4.2-0ubuntu0.5 common files for the GTK+ graphical user interface library Installed Install 3.4.2-0ubuntu0.5 development files for the GTK+ library Installed Install 3.4.2-0ubuntu0.5 documentation for the GTK+ graphical user interface library Installed Install 0.5.0-1ubuntu1 VNC viewer widget for GTK+3 (runtime libraries) Installed Install 0.05-1build2 Perl bindings for the GtkImageView image viewer widget Installed Install 2:1.223-1build3 Perl interface to the 2.x series of the Gimp Toolkit library Installed Install 0.05-1build2 module for single instance applications Installed Install 2.24.10-0ubuntu6 GTK+ graphical user interface library Installed Install 2.24.10-0ubuntu6 GTK+ graphical user interface library Installed Install 2.24.10-0ubuntu6 programs for the GTK+ graphical user interface library Installed Install 2.24.10-0ubuntu6 common files for the GTK+ graphical user interface library Installed Install 2.24.10-0ubuntu6 development files for the GTK+ library Installed Install 1.6.4-1 image viewer widget for GTK+ Installed Install 1:2.24.2-1ubuntu1 C++ wrappers for GTK+ (shared libraries) Installed Install 3.4.0-0ubuntu1 C++ wrappers for GTK+ (shared libraries) Installed Install 3.4.2-0ubuntu1 shared libraries for the GTK+ syntax highlighting widget Installed Install 3.4.2-0ubuntu1 common files for the GTK+ syntax highlighting widget Installed Install 2.10.5-0ubuntu3 shared libraries for the GTK+ syntax highlighting widget Installed Install 2.10.5-0ubuntu3 common files for the GTK+ syntax highlighting widget Installed Install 3.0.0~hg20110814-1 spell-checking addon for GTK's TextView widget Installed Install 2.0.16-1ubuntu5 a spell-checking addon for GTK's TextView widget Installed Install 2.28.4-2 gtop system monitoring library (shared) Installed Install 2.28.4-2 gtop system monitoring library (common) Installed Install 1:3.4.1.1-0ubuntu1 Unicode browser widget library (shared library) Installed Install 1:175-0ubuntu9.2 GObject-based wrapper library for libudev Installed Install 1:175-0ubuntu9.2 GObject-based wrapper library for libudev Installed Install 0.18.1-2 GObject-based library for UPnP Installed Install 0.2.1-2 library to handle UPnP IGD port mapping Installed Install 5.2.8~pre1-0ubuntu2.1 runtime for the Gutenprint printer driver library Installed Install 2.26.3-10ubuntu1 rich set of graph drawing tools - gvc library Installed Install 0.5.0-1ubuntu1 VNC gobject wrapper (runtime libraries) Installed Install 2.26.3-10ubuntu1 rich set of graph drawing tools - gvpr library Installed Install 3.4.1-0ubuntu1 GWeather shared library Installed Install 3.4.1-0ubuntu1 GWeather common files Installed Install 3.4.2-0ubuntu2.1 Gwibber GTK Widgets Installed Install 3.4.2-0ubuntu2.1 Gwibber - shared library Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - crypto library Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - crypto library Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - Base library Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - Base library Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - NTLM support library Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - NTLM support library Installed Install 3.12.2-1ubuntu3.1 HP Multi-Point Transport Driver (hpmud) run-time libraries Installed Install 6.00-1 module that represents an HTML form element Installed Install 2.10-1 module for transforming HTML into various formats Installed Install 3.69-1build1 collection of modules that parse HTML text documents Installed Install 3.20-2 Data tables pertaining to HTML Installed Install 4.2-1 Perl module to represent and create HTML syntax trees Installed Install 6.00-2 HTTP cookie jars Installed Install 6.00-1 simple http server class Installed Install 6.00-1 module of date conversion routines Installed Install 6.01-1 perl interface to HTTP style messages Installed Install 6.00-2 implementation of content negotiation Installed Install 0.44-1 simple stand-alone HTTP server Installed Install 1.3.2-4 spell checker and morphological analyzer (shared library) Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - X509 support library Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - X509 support library Installed Install 2.8.3-1 ALTLinux hyphenation library - shared library Installed Install 1.4.1-3ubuntu1 Intelligent Input Bus - shared library Installed Install 1.4.1-3ubuntu1 Intelligent Input Bus - shared library Installed Install 0.48-1ubuntu3 iCalendar library implementation in C (runtime) Installed Install 2:1.0.7-2build1 X11 Inter-Client Exchange library (development headers) Installed Install 2:1.0.7-2build1 X11 Inter-Client Exchange library Installed Install 2:1.0.7-2build1 X11 Inter-Client Exchange library Installed Install 4.8.1.1-3 International Components for Unicode Installed Install 0.15.1b-10build2 ID3 tag reading library from the MAD project Installed Install 0.8.14-0.2ubuntu2 library for parsing CORBA IDL files (common files) Installed Install 0.8.14-0.2ubuntu2 library for parsing CORBA IDL files Installed Install 1.23-2 GNU Libidn library, implementation of IETF IDN specifications Installed Install 1.23-2 GNU Libidn library, implementation of IETF IDN specifications Installed Install 0.3.4-0ubuntu1 Shared library providing extra gtk menu items for display in Installed Install 1.2.0-0.1ubuntu1 an partial implementation of IEC 61883 Installed Install 1.2.0-0.1ubuntu1 an partial implementation of IEC 61883 Installed Install 0.2.11-10build1 cross-platform library for parallel port access Installed Install 0.2.11-10build1 cross-platform library for parallel port access Installed Install 0.35-8 IJS raster image transport protocol: shared library Installed Install 1.0.1-3build2 several utility libraries from ILM used by OpenEXR Installed Install 1.1.1-4 Library for communicating with the iPhone and iPod Touch Installed Install 0.6.92-0ubuntu1 library for raising indicators via DBus - GTK+ bindings Installed Install 0.6.92-0ubuntu1 library for raising indicators via DBus Installed Install 0.6.0-0ubuntu2 indicator status provider - shared library Installed Install 0.5.0-0ubuntu1 panel indicator applet - shared library Installed Install 0.5.0-0ubuntu1 panel indicator applet - shared library Installed Install 1:1.08-1build2 Perl module for pseudo tty IO Installed Install 2.69-2 object interface for AF_INET6 domain sockets Installed Install 1.53-1 Perl module implementing object oriented interface to SSL sockets Installed Install 1.08-2 Emulate IO::File interface for in-core strings Installed Install 2.110-5 Perl modules for IO from scalars and arrays Installed Install 0.90-1 Perl module for running processes Installed Install 1:9.8.1.dfsg.P1-4ubuntu0.5 ISC Shared Library used by BIND Installed Install 1:9.8.1.dfsg.P1-4ubuntu0.5 Command Channel Library used by BIND Installed Install 1:9.8.1.dfsg.P1-4ubuntu0.5 Config File Handling Library used by BIND Installed Install 0.83-1 library to work with ISO9660 filesystems Installed Install 1.1.6-1ubuntu1 library to create ISO9660 images Installed Install 30~pre9-5ubuntu2 Wireless tools - library Installed Install 1.9.8~dfsg.1-1ubuntu1 JACK Audio Connection Kit (libraries) Installed Install 1.9.8~dfsg.1-1ubuntu1 JACK Audio Connection Kit (libraries) Installed Install 1.900.1-13 JasPer JPEG-2000 runtime library Installed Install 1.900.1-13 JasPer JPEG-2000 runtime library Installed Install 1.8.3-0ubuntu0.12.04.1 Javascript engine library for GTK+ Installed Install 1.8.3-0ubuntu0.12.04.1 Javascript engine library for GTK+ Installed Install 0.11-1ubuntu1 JBIG2 decoder library - shared libraries Installed Install 1.1.90+svn733-0ubuntu4.1 IJG JPEG compliant runtime library. Installed Install 1.1.90+svn733-0ubuntu4.1 IJG JPEG compliant runtime library. Installed Install 8c-2ubuntu7 Independent JPEG Group's JPEG runtime library (dependency package) Installed Install 8c-2ubuntu7 Independent JPEG Group's JPEG runtime library (dependency package) Installed Install 1.7.1-1ubuntu1 JavaScript library for dynamic web applications Installed Install 1.1.6-1ubuntu2 JavaScript's functional programming helper library Installed Install 0.14.2-1 GLib JSON manipulation library Installed Install 2.53-1 module for manipulating JSON-formatted data Installed Install 2.320-1build1 module for manipulating JSON-formatted data (C/XS-accelerated) Installed Install 0.9-1ubuntu1 JSON manipulation library - shared library Installed Install 0.9-1ubuntu1 JSON manipulation library - shared library Installed Install 1.19-1 Jigdo Template Export - runtime library Installed Install 1.10+dfsg~beta1-2ubuntu0.3 MIT Kerberos runtime libraries - Crypto Library Installed Install 1.10+dfsg~beta1-2ubuntu0.3 MIT Kerberos runtime libraries - Crypto Library Installed Install 0.4.1-1 Kate is a codec for karaoke and text encapsulation Installed Install 1.5.2-2 Linux Key Management Utilities (library) Installed Install 1.5.2-2 Linux Key Management Utilities (library) Installed Install 1.5.25-1ubuntu2 minimal libc subset for use with initramfs Installed Install 2.4.32-1ubuntu1 Userspace interface to kernel DRM buffer management Installed Install 2009-11ubuntu2 TeX Live: path search library for TeX (runtime part) Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - libraries Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - libraries Installed Install 1.10+dfsg~beta1-2ubuntu0.3 MIT Kerberos runtime libraries Installed Install 1.10+dfsg~beta1-2ubuntu0.3 MIT Kerberos runtime libraries Installed Install 1.10+dfsg~beta1-2ubuntu0.3 MIT Kerberos runtime libraries - Support library Installed Install 1.10+dfsg~beta1-2ubuntu0.3 MIT Kerberos runtime libraries - Support library Installed Install 3.3.1-1 library of linear algebra routines 3 - shared version Installed Install 0.1.56.1 library for launchpad integration Installed Install 0.1.56.1 library for launchpad integration common data Installed Install 0.1.56.1 library for launchpad integration Installed Install 1.19.dfsg-1ubuntu3 Little CMS color management library Installed Install 1.19.dfsg-1ubuntu3 Little CMS color management library Installed Install 2.2+git20110628-2ubuntu3 Little CMS 2 color management library Installed Install 2.4.28-1.1ubuntu4.2 OpenLDAP libraries Installed Install 2.4.28-1.1ubuntu4.2 OpenLDAP libraries Installed Install 1.2.1-0ubuntu1.1 LightDM GObject client library Installed Install 0.9.0-0ubuntu1 infra-red remote control support - client library Installed Install 0.33-1build1 Perl module with additional list functions not found in List::Util Installed Install 3.0-4ubuntu1 Low-Level Virtual Machine (LLVM), runtime library Installed Install 3.0-4ubuntu1 Low-Level Virtual Machine (LLVM), runtime library Installed Install 1.05-7build1 module using libc functions for internationalization in Perl Installed Install 1.09-3 support binaries for and cli utilities based on liblockfile Installed Install 1.09-3 NFS-safe locking library Installed Install 2.3.0-3 Braille translation library - data Installed Install 2.3.0-3 Braille translation library - shared libs Installed Install 0.4.1-1.1 converts plain array images into multi-size representation Installed Install 2.4.2-1ubuntu1 A system independent dlopen wrapper for GNU libtool Installed Install 2.4.2-1ubuntu1 A system independent dlopen wrapper for GNU libtool Installed Install 5.1.4-12ubuntu1 Shared library for the Lua interpreter version 5.1 Installed Install 2.02.66-4ubuntu7.1 LVM2 application library Installed Install 6.01-1 module to guess media type for a file or a URL Installed Install 6.02-1 https driver for LWP::UserAgent Installed Install 1:9.8.1.dfsg.P1-4ubuntu0.5 Lightweight Resolver Library used by BIND Installed Install 5.1.1alpha+20110809-3 XZ-format compression library Installed Install 2.06-1 data compression library Installed Install 0.15.1b-7ubuntu1 MPEG audio decoder library Installed Install 0.15.1b-7ubuntu1 MPEG audio decoder library Installed Install 5.09-2 File type determination library using "magic" numbers Installed Install 8:6.6.9.7-5ubuntu3.2 object-oriented C++ interface to ImageMagick Installed Install 8:6.6.9.7-5ubuntu3.2 low-level image manipulation library Installed Install 8:6.6.9.7-5ubuntu3.2 low-level image manipulation library - extra codecs Installed Install 8:6.6.9.7-5ubuntu3.2 image manipulation library Installed Install 0.79.16-1 Send email from a perl script Installed Install 2.08-1 Manipulate email in perl programs Installed Install 1.3.0-1 extensible open standard audio/video container format (shared library) Installed Install 1.0.2-4ubuntu1 open implementation of the Lotus Sametime Community Client protocol Installed Install 1:2.34.1-1ubuntu11 library for the Metacity window manager Installed Install 0.9.9.9-1 Library for cryptographic hashing and message authentication Installed Install 3.1.12-2 Portable sound library Installed Install 3.1.12-2 Portable sound library Installed Install 1.0.4-2.1build1 A video codec for Mimic V2.x content Installed Install 1.6-3ubuntu1 UPnP IGD client lightweight library Installed Install 1:5.12.0-0ubuntu2.1 management daemon for Telepathy (library for plugins) Installed Install 0.6.2-2 MMS stream protocol library - shared library Installed Install 1.0.10-3 Multiple-image Network Graphics library Installed Install 1.0.10-3 Multiple-image Network Graphics library Installed Install 1:0.8.8.4-1 shared libraries for mod music based on ModPlug Installed Install 2.20.1-1ubuntu3 block device id library Installed Install 1.8.5-1.0.0-0ubuntu8 Spidermonkey javascript engine Installed Install 3.99.3+repack1-1 MP3 encoding library Installed Install 0.9-4 multiple precision complex floating-point library Installed Install 2:0.1~r459-1ubuntu1 MusePack decoder - library Installed Install 0.4.1-3 MPEG1 and MPEG2 video decoder library Installed Install 3.1.0-3ubuntu2 multiple precision floating-point computation Installed Install 1.12.1-3.2ubuntu1 MPEG layer 1/2/3 audio decoder -- runtime library Installed Install 1.1.0-2ubuntu1 Multitouch Protocol Translation Library - shared library Installed Install 1.1.3-1ubuntu0.1 Media Transfer Protocol (MTP) common files Installed Install 1.1.3-1ubuntu0.1 Media Transfer Protocol (MTP) runtime tools Installed Install 1.1.3-1ubuntu0.1 Media Transfer Protocol (MTP) library Installed Install 0.23-1build3 multi-protocol cable OBEX library Installed Install 3.0.2-2.1 library to access the MusicBrainz.org database Installed Install 4.0.3-0ubuntu0.1 Library to access the MusicBrainz.org database Installed Install 3.4.1-0ubuntu1 window manager library from the Mutter window manager Installed Install 1.4.3-0ubuntu1 toolkit for the Moblin user experience Installed Install 5.5.29-0ubuntu0.12.04.1 MySQL database client library Installed Install 2:1.2.2-1 simple thesaurus library Installed Install 1:3.4.2-0ubuntu6 libraries for nautilus components - runtime version Installed Install 5.9-4 shared libraries for terminal handling Installed Install 5.9-4 shared libraries for terminal handling Installed Install 5.9-4 shared libraries for terminal handling (wide character support) Installed Install 5.9-4 shared libraries for terminal handling (wide character support) Installed Install 0.29.6-1 HTTP and WebDAV client library (GnuTLS enabled) Installed Install 1.0.0-1build1 Extension for the DBus bindings Installed Install 0.66-2ubuntu3 Perform DNS queries from a Perl script Installed Install 1.69-1 Perl module for retrieving a list of currently available TLDs Installed Install 6.02-1 module providing low-level HTTP connection client Installed Install 1.25-3 Perl extension for manipulating IPv4/IPv6 addresses Installed Install 1.01-3 Perl module providing SSL support to Net::SMTP Installed Install 1.42-1build1 Perl module for Secure Sockets Layer (SSL) Installed Install 0.9.1-1ubuntu1 Netfilter netlink-conntrack library Installed Install 2:10.0-15 Graphics conversion tools shared libraries Installed Install 2.4-1 low level cryptographic library (symmetric and one-way cryptos) Installed Install 0.52.11-2ubuntu10 Not Erik's Windowing Toolkit - text mode windowing with slang Installed Install 1.0.0-1 Netfilter netlink library Installed Install 0.1.1-2ubuntu1 ICE library (shared library) Installed Install 1.0.3-4ubuntu9 NIH D-Bus Bindings Library Installed Install 1.0.3-4ubuntu9 NIH Utility Library Installed Install 3.2.3-2ubuntu2 library for dealing with netlink sockets Installed Install 3.2.3-2ubuntu2 library for dealing with netlink sockets - generic netlink Installed Install 3.2.3-2ubuntu2 library for dealing with netlink sockets - route interface Installed Install 0.9.4.0-0ubuntu4.2 network management framework (GLib VPN shared library) Installed Install 0.9.4.0-0ubuntu4.2 network management framework (GLib shared library) Installed Install 0.9.4.1-0ubuntu2 network management framework (common files for wifi and mobile) Installed Install 0.9.4.1-0ubuntu2 network management framework (GNOME dialogs for wifi and mobile) Installed Install 0.9.4.0-0ubuntu4.2 network management framework (shared library) Installed Install 0.7.5-1 sends desktop notifications to a notification daemon (Utilities) Installed Install 0.7.5-1 sends desktop notifications to a notification daemon Installed Install 4.9.4-0ubuntu0.12.04.1 NetScape Portable Runtime Library Installed Install 4.9.4-0ubuntu0.12.04.1 NetScape Portable Runtime Library Installed Install 4.9.4-0ubuntu0.12.04.1 NetScape Portable Runtime Library Installed Install 0.10-3.2 NSS module for Multicast DNS name resolution Installed Install 3.14.1-0ckbi1.93ubuntu.0.12.04.1 Network Security Service libraries Installed Install 3.14.1-0ckbi1.93ubuntu.0.12.04.1 Network Security Service libraries Installed Install 3.14.1-0ckbi1.93ubuntu.0.12.04.1 Network Security Service libraries Installed Install 2.0.8~rc3-1 Libraries for controlling NUMA policy Installed Install 2.14.1-0ubuntu1 Visual rendering toolkit for real-time applications - shared lib Installed Install 2.14.1-0ubuntu1 Visual rendering toolkit for real-time applications - common files Installed Install 0.9.4-3 C library for implementing OAuth 1.0 Installed Install 0.23-1build3 object exchange file transfer library Installed Install 2.2.14p2-5ubuntu3 ODBC library for Unix Installed Install 0.9.3-4 Library for acoustic fingerprinting Installed Install 1.2.2~dfsg-1ubuntu1 Ogg bitstream library Installed Install 1.2.2~dfsg-1ubuntu1 Ogg bitstream library Installed Install 0.19-1 simple class for OLE document interface Installed Install 3.0.0-1 GObject based interface to system-tools-backends - shared library Installed Install 1:1.13-4ubuntu3 Software implementation of the OpenAL API (data files) Installed Install 1:1.13-4ubuntu3 Software implementation of the OpenAL API (shared library) Installed Install 1:1.13-4ubuntu3 Software implementation of the OpenAL API (shared library) Installed Install 0.3.0-1 simplified-traditional chinese conversion library - runtime Installed Install 0.1.2-1 Adaptive Multi Rate speech codec - shared library Installed Install 0.1.2-1 Adaptive Multi-Rate - Wideband speech codec - shared library Installed Install 2.3.1-7 computer vision Camera Calibration library Installed Install 2.3.1-7 computer vision core library Installed Install 2.3.1-7 computer vision Feature Detection and Descriptor Extraction library Installed Install 2.3.1-7 computer vision Clustering and Search in Multi-Dimensional spaces library Installed Install 2.3.1-7 computer vision High-level GUI and Media I/O library Installed Install 2.3.1-7 computer vision Image Processing library Installed Install 2.3.1-7 computer vision legacy library Installed Install 2.3.1-7 computer vision Machine Learning library Installed Install 2.3.1-7 computer vision Object Detection library Installed Install 2.3.1-7 computer vision Video analysis library Installed Install 1.6.1-4.1 runtime files for the OpenEXR image library Installed Install 1.3+dfsg-4 JPEG 2000 image compression/decompression library Installed Install 1.5-2build1 OBEX protocol library Installed Install 8.0.4-0ubuntu0.3 free implementation of the OpenVG API -- runtime Installed Install 1:2.14.19-0.1ubuntu1 libraries for ORBit2 - a CORBA ORB Installed Install 1:0.4.16-1ubuntu2 Library of Optimized Inner Loops Runtime Compiler Installed Install 1:0.4.16-1ubuntu2 Library of Optimized Inner Loops Runtime Compiler Installed Install 0.2.16-0ubuntu1.1 Scrollbar overlayed widget - shared lib Installed Install 0.2.16-0ubuntu1.1 Scrollbar overlayed widget - shared lib Installed Install 0.12-2ubuntu1 Library for loading and coordinating access to PKCS#11 modules - runtime Installed Install 0.12-2ubuntu1 Library for loading and coordinating access to PKCS#11 modules - runtime Installed Install 0.7.2-4ubuntu3 Library for accessing PackageKit using GLib Installed Install 1:2.22-1ubuntu3 PAM module for implementing capabilities Installed Install 0.4.5-2 ConsoleKit PAM module Installed Install 3.2.2-2ubuntu4 PAM module to unlock the GNOME keyring upon login Installed Install 1.1.3-7ubuntu2 Pluggable Authentication Modules for PAM Installed Install 1.1.3-7ubuntu2 Pluggable Authentication Modules for PAM - helper binaries Installed Install 1.1.3-7ubuntu2 Runtime support for the PAM library Installed Install 1.1.3-7ubuntu2 Pluggable Authentication Modules library Installed Install 1:3.4.1-0ubuntu1.1 library for GNOME Panel applets Installed Install 1.222-1build1 Perl module to layout and render international text Installed Install 1.30.0-0ubuntu3.1 Layout and rendering of internationalized text Installed Install 1.30.0-0ubuntu3.1 Layout and rendering of internationalized text Installed Install 1.30.0-0ubuntu3.1 Development files for the Pango Installed Install 1.30.0-0ubuntu3.1 Documentation files for the Pango Installed Install 2.28.4-1ubuntu1 C++ Wrapper for pango (shared libraries) Installed Install 1.1.24+nmu1build1 library for handling paper characteristics (utilities) Installed Install 1.1.24+nmu1build1 library for handling paper characteristics Installed Install 2.005-3 parser for debian control-like files Installed Install 1.2.0-1ubuntu1 parse Debian changelogs and output them in other formats Installed Install 1.965001+dfsg-1 Perl module to create and use recursive-descent parsers Installed Install 2.3-8ubuntu5.1 disk partition manipulator - shared library Installed Install 0.24-1 module for cross-platform path specification manipulation Installed Install 2.26.3-10ubuntu1 rich set of graph drawing tools - pathplan library Installed Install 1.1.1-10 system interface for user-level packet capture Installed Install 1:3.1.8-2ubuntu5 Linux PCI Utilities (shared library) Installed Install 0.12.902-1 Generic PCI access library for X Installed Install 0.12.902-1 Generic PCI access library for X Installed Install 8.12-4 Perl 5 Compatible Regular Expression Library - runtime files Installed Install 8.12-4 Perl 5 Compatible Regular Expression Library - runtime files Installed Install 8.12-4 Perl 5 Compatible Regular Expression Library - development files Installed Install 8.12-4 Perl 5 Compatible Regular Expression Library - C++ runtime files Installed Install 1.7.4-2ubuntu2 Middleware to access a smart card using PC/SC (library) Installed Install 1.2.0-1ubuntu1 Application plugin library Installed Install 1.2.0-1ubuntu1 Application plugin library (common files) Installed Install 5.14.2-6ubuntu2.2 shared Perl library Installed Install 4:4.7.0really4.6.0-0ubuntu1 multimedia framework from KDE - core library Installed Install 1.2.1-1 pipeline manipulation library Installed Install 0.24.4-1 pixel-manipulation library for X and cairo Installed Install 0.24.4-1 pixel-manipulation library for X and cairo Installed Install 0.24.4-1 pixel-manipulation library for X and cairo (development files) Installed Install 1.09-1 library that simplifies the interaction with PKCS#11 Installed Install 1.8-1 Library for handling Apple binary and XML property lists Installed Install 0.8.2-2ubuntu30 graphical boot animation and logger - shared libraries Installed Install 1.2.46-3ubuntu4 PNG library - runtime Installed Install 1.2.46-3ubuntu4 PNG library - runtime Installed Install 1.2.46-3ubuntu4 PNG library - development Installed Install 0.104-1ubuntu1 PolicyKit Authentication Agent API Installed Install 0.104-1ubuntu1 PolicyKit backend API Installed Install 0.104-1ubuntu1 PolicyKit Authorization API Installed Install 0.18.4-1ubuntu3 PDF rendering library (GLib-based shared library) Installed Install 0.18.4-1ubuntu3 PDF rendering library Installed Install 1.16-3ubuntu1 lib for parsing cmdline parameters Installed Install 19+svn20111121-1 Portable audio I/O - shared library Installed Install 1:200-0ubuntu1 library for real-time MIDI input/output Installed Install 0.1~svn20101010-3 Portable Standard Midi File Library Installed Install 4:0.8.4-0ubuntu0.12.04.1 Libav video postprocessing library Installed Install 0.45-3 Perl library for accessing process table information Installed Install 1.30-1 Perl interface to launch and control background processes Installed Install 2.4.1-1ubuntu2 protocol buffers C++ library Installed Install 2.4.1-1ubuntu2 protocol buffers compiler library Installed Install 0.4.7-0ubuntu4.1 automatic proxy configuration management library (shared) Installed Install 0.4.7-0ubuntu4.1 automatic proxy configuration management library (shared) Installed Install 0.4.7-0ubuntu4.1 automatic proxy configuration management library (GSettings plugin) Installed Install 0.4.7-0ubuntu4.1 automatic proxy configuration management library (Network Manager plugin) Installed Install 2.0.7-16ubuntu3 The GNU Portable Threads Installed Install 0.3-3 pthread stubs not provided by native libc Installed Install 0.3-3 pthread stubs not provided by native libc, development files Installed Install 1:1.1-0ubuntu15.2 PulseAudio client libraries (glib support) Installed Install 1:1.1-0ubuntu15.2 PulseAudio client libraries (glib support) Installed Install 1:1.1-0ubuntu15.2 PulseAudio client libraries Installed Install 1:1.1-0ubuntu15.2 PulseAudio client libraries Installed Install 1:1.1-0ubuntu15.2 PulseAudio OSS pre-load library Installed Install 1:1.1-0ubuntu15.2 PulseAudio OSS pre-load library Installed Install 1:2.10.3-0ubuntu1.1 multi-protocol instant messaging library - extra utilities Installed Install 1:2.10.3-0ubuntu1.1 multi-protocol instant messaging library Installed Install 1.1.0-1 Python3 bindings for Qt 4 (base files) Installed Install 1.1.0-1 Python bindings for Qt 4 (base files) Installed Install 2.7.3-0ubuntu3.1 Shared Python runtime library (version 2.7) Installed Install 3.2.3-0ubuntu3.2 Shared Python runtime library (version 3.2) Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 D-Bus module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 D-Bus module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 Declarative module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 Declarative module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 gestures QML plugin Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 particles QML plugin Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 designer module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 designer module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 development files Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 help module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 network module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 network module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 OpenGL module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 OpenGL module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 OpenGL library development files Installed Install 4:4.8.1-0ubuntu4.3 Qt 3 compatibility library for Qt 4 Installed Install 4:4.8.1-0ubuntu4.3 Qt 3 compatibility library for Qt 4 Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 script module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 script module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 script tools module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 script tools module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 SQL module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 SQL module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 MySQL database driver Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 SQLite 3 database driver Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 SVG module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 SVG module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 test module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 test module Installed Install 4:4.8.1-0ubuntu4.3 transitional package for Qt 4 WebKit module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 XML module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 XML module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 XML patterns module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 XML patterns module Installed Install 4.6.3-3ubuntu2 Qt Assistant client library (runtime) Installed Install 0.2.4-0ubuntu1 Qt binding and QML plugin for bamf - shared library Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 core module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 core module Installed Install 0.2.4-0ubuntu1 Qt binding and QML plugin for Dee - shared library Installed Install 0.1-0ubuntu5 Qt binding and QML plugin for GConf - shared library Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 GUI module Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 GUI module Installed Install 2.2.1-1ubuntu4 Web content engine library for Qt - development files Installed Install 2.2.1-1ubuntu4 Qt WebKit QML plugin Installed Install 2.2.1-1ubuntu4 Web content engine library for Qt Installed Install 2.2.1-1ubuntu4 Web content engine library for Qt Installed Install 4.6.3-1ubuntu5 GCC Quad-Precision Math Library Installed Install 0.4.2-1 library for parsing video download links (Lua scripts) Installed Install 0.4.0-1 library for parsing video download links (runtime libraries) Installed Install 0.41-1ubuntu2.1 RADOS distributed object store client library Installed Install 2.0.6-1 Raptor 2 RDF syntax library Installed Install 0.8.1-5 Documentation meta-data library (library package) Installed Install 0.9.28-1 Rasqal RDF query library Installed Install 2.0.7-1ubuntu1 library for direct access to IEEE 1394 bus (aka FireWire) Installed Install 2.0.7-1ubuntu1 library for direct access to IEEE 1394 bus (aka FireWire) Installed Install 0.14.4-0ubuntu2 raw image decoder library Installed Install 0.41-1ubuntu2.1 RADOS block device client library Installed Install 1.0.14-1 Redland Resource Description Framework (RDF) library Installed Install 6.2-8 GNU readline and history libraries, run-time libraries Installed Install 0.35-2 Assemble multiple Regular Expressions into a single RE Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- shared library Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- spreadsheet Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- arch-independent files Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- arch-dependent files Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- drawing Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- email mail merge Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- GNOME integration Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- GTK+ integration Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- English_american help Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- presentation Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- equation editor Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- Human symbol style Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- Tango symbol style Installed Install 1:3.5.4-0ubuntu1.1 office productivity suite -- word processor Installed Install 2.1.1-12 SID chip emulation class based on resid Installed Install 0.7.12-1ubuntu2 REST service access library Installed Install 2.96-0ubuntu4.2 support library for the rhythmbox music player Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - roken support library Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - roken support library Installed Install 2.36.1-0ubuntu1 SAX-based renderer library for SVG files (runtime) Installed Install 2.36.1-0ubuntu1 SAX-based renderer library for SVG files (runtime) Installed Install 2.36.1-0ubuntu1 command-line and graphical viewers for SVG files Installed Install 2.36.1-0ubuntu1 SAX-based renderer library for SVG files (extra runtime) Installed Install 2.36.1-0ubuntu1 SAX-based renderer library for SVG files (extra runtime) Installed Install 0.9.7-8build1 rsync remote-delta algorithm library Installed Install 2.4~20110711.gitc28f1bab-1 toolkit for RTMP streams (shared library) Installed Install 2.4~20110711.gitc28f1bab-1 toolkit for RTMP streams (shared library) Installed Install 0.1.8-4 Audio sample rate conversion library Installed Install 0.1.8-4 Audio sample rate conversion library Installed Install 1.0.22-7ubuntu1 API library for scanners Installed Install 1.0.22-7ubuntu1 API library for scanners Installed Install 1.0.22-7ubuntu1 API library for scanners -- documentation and support files Installed Install 3.12.2-1ubuntu3.1 HP SANE backend for multi-function peripherals Installed Install 2.1.25.dfsg1-3ubuntu0.1 Cyrus SASL - authentication abstraction library Installed Install 2.1.25.dfsg1-3ubuntu0.1 Cyrus SASL - authentication abstraction library Installed Install 2.1.25.dfsg1-3ubuntu0.1 Cyrus SASL - pluggable authentication modules Installed Install 2.1.25.dfsg1-3ubuntu0.1 Cyrus SASL - pluggable authentication modules Installed Install 1.0.11-1 library for encoding/decoding of Dirac video streams Installed Install 1.2.10-3 image loading library for Simple DirectMedia Layer 1.2 Installed Install 1.2.10-3 image loading library for Simple DirectMedia Layer 1.2 Installed Install 1.2.11-7 Mixer library for Simple DirectMedia Layer 1.2, libraries Installed Install 1.2.11-7 Mixer library for Simple DirectMedia Layer 1.2, libraries Installed Install 1.2.7-5 Network library for Simple DirectMedia Layer 1.2, libraries Installed Install 2.0.9-1.1ubuntu1 ttf library for Simple DirectMedia Layer with FreeType 2 support Installed Install 2.0.9-1.1ubuntu1 ttf library for Simple DirectMedia Layer with FreeType 2 support Installed Install 1.2.14-6.4ubuntu3 Simple DirectMedia Layer Installed Install 1.2.14-6.4ubuntu3 Simple DirectMedia Layer Installed Install 2.1.0-4.1ubuntu1 SELinux runtime shared libraries Installed Install 2.1.0-4.1ubuntu1 SELinux runtime shared libraries Installed Install 1:3.3.1-2ubuntu1 library to read temperature/voltage/fan sensors Installed Install 1.33-1 utilities for devices using the SCSI command set (shared libraries) Installed Install 1.1.0-2 CPython3 bindings generator for C++ libraries - shared library Installed Install 1.1.0-2 CPython bindings generator for C++ libraries - shared library Installed Install 2.2.2-7ubuntu1 MP3/Ogg Vorbis broadcast streaming library Installed Install 2.2.2-7ubuntu1 MP3/Ogg Vorbis broadcast streaming library Installed Install 1.36.59-5 SID (MOS 6581) emulation library Installed Install 2.1.1-12 SID (MOS 6581) emulation library Installed Install 2.2.10-0ubuntu2 type-safe Signal Framework for C++ - runtime Installed Install 2.9-4ubuntu2 Library for handling page faults in a portable way Installed Install 2.2.4-3ubuntu1 S-Lang programming library - runtime version Installed Install 2.2.4-3ubuntu1 S-Lang programming library - runtime version Installed Install 1.2.1-7.8ubuntu1 OpenSLP libraries Installed Install 0.6.6+dfsg1-1 library for simple use of LV2 plugins Installed Install 2:1.2.0-2build1 X11 Session Management library (development headers) Installed Install 2:1.2.0-2build1 X11 Session Management library Installed Install 2:1.2.0-2build1 X11 Session Management library Installed Install 2:3.6.3-2ubuntu2.3 shared library for communication with SMB/CIFS servers Installed Install 0.4.5+cvs20030824-4 SDL MPEG Player Library - shared libraries Installed Install 1.0.25-4 Library for reading/writing audio files Installed Install 1.0.25-4 Library for reading/writing audio files Installed Install 5.4.3~dfsg-2.4ubuntu1.1 SNMP (Simple Network Management Protocol) MIBs and documentation Installed Install 5.4.3~dfsg-2.4ubuntu1.1 SNMP (Simple Network Management Protocol) library Installed Install 0.23-1build2 Perl extensions for IPv6 Installed Install 0.1.17-1.1 Simple library to speed up or slow down speech Installed Install 1.02-1 Sort naturally - sort lexically except for numerical parts Installed Install 1.6.0-2build1 Sound stretching library Installed Install 2.38.1-1 HTTP library implementation in C -- GNOME support library Installed Install 2.38.1-1 HTTP library implementation in C -- GNOME support library Installed Install 2.38.1-1 HTTP library implementation in C -- Shared library Installed Install 2.38.1-1 HTTP library implementation in C -- Shared library Installed Install 14.3.2-3 SoX alsa format I/O library Installed Install 14.3.2-3 Minimal set of SoX format libraries Installed Install 14.3.2-3 SoX library of audio effects and processing Installed Install 0.0.6~pre18-2build1 Telephony signal processing library Installed Install 0.2.6-1build1 Library for rendering PostScript documents Installed Install 0.7.1-6ubuntu3 Speech Dispatcher: Shared libraries Installed Install 1.2~rc1-3ubuntu2 The Speex codec runtime library Installed Install 1.2~rc1-3ubuntu2 The Speex codec runtime library Installed Install 1.2~rc1-3ubuntu2 The Speex extended runtime library Installed Install 1.2~rc1-3ubuntu2 The Speex extended runtime library Installed Install 2.37-1 module to create Excel spreadsheets Installed Install 2.8.17-7fakesync1build1 SQLite shared library Installed Install 3.7.9-2ubuntu1.1 SQLite 3 shared library Installed Install 3.7.9-2ubuntu1.1 SQLite 3 shared library Installed Install 1.42-1ubuntu2 command-line interface parsing library Installed Install 0.5.2-1ubuntu0.12.04.1 tiny C SSH library Installed Install 1.0.1-4ubuntu5.5 SSL development libraries, header files and documentation Installed Install 1.0.1-4ubuntu5.5 SSL development documentation documentation Installed Install 0.9.8o-7ubuntu3.1 SSL shared libraries Installed Install 1.0.1-4ubuntu5.5 SSL shared libraries Installed Install 1.0.1-4ubuntu5.5 SSL shared libraries Installed Install 0.12-1ubuntu1 library for program launch feedback (shared library) Installed Install 1:3.3.6-25ubuntu1 The GNU Standard C++ Library v3 Installed Install 4.6.3-1ubuntu5 GNU Standard C++ Library v3 Installed Install 4.6.3-1ubuntu5 GNU Standard C++ Library v3 Installed Install 4.6.3-1ubuntu5 GNU Standard C++ Library v3 (development files) Installed Install 0.05-1build2 module for assigning a new name to referenced sub Installed Install 1:1.4.3-31 console SVGA display libraries Installed Install 2.16-2 switch statement for Perl Installed Install 4:0.8.4-0ubuntu0.12.04.1 Libav video scaling library Installed Install 3.0.2-0ubuntu1 Ubuntu One synchronization daemon library Installed Install 1.4-2 Figure out the long (fully-qualified) hostname Installed Install 2.1.0+repack-1 interface library to sysfs Installed Install 5.1.2-3.4ubuntu1 Type 1 font rasterizer library - runtime Installed Install 1.7-1ubuntu5 audio meta-data library - vanilla flavour Installed Install 1.7-1ubuntu5 audio meta-data library - vanilla flavour Installed Install 1.7-1ubuntu5 audio meta-data library Installed Install 1.7-1ubuntu5 audio meta-data library Installed Install 2.0.7-3 hierarchical pool based memory allocator Installed Install 1.2.11-8 C library for manipulating tar archives Installed Install 2.10-1ubuntu1.1 Manage ASN.1 structures (runtime) Installed Install 2.10-1ubuntu1.1 Manage ASN.1 structures (runtime) Installed Install 1.2.9-4 Trivial Database - shared library Installed Install 1.2.9-4 Trivial Database - shared library Installed Install 0.4.0-0ubuntu1 Glue library between telepathy and farstream Installed Install 0.18.0-1ubuntu1 Telepathy framework - GLib library Installed Install 0.4.0-0ubuntu1 Telepathy logger service - utility library Installed Install 0.04-7build1 get display widths of characters on the terminal Installed Install 1.7-5 converts between character sets in Perl Installed Install 0.06-7 internationalized substitute of Text::Wrap Installed Install 0.1.16-3 Data files for Thai language support library Installed Install 0.1.16-3 Thai language support library Installed Install 0.1.16-3 Thai language support library Installed Install 1.1.1+dfsg.1-3ubuntu2 The Theora Video Compression Codec Installed Install 1.1.1+dfsg.1-3ubuntu2 The Theora Video Compression Codec Installed Install 20091223cvs-1ubuntu2 HTML syntax checker and reformatter - library Installed Install 1.21-2 ordered associative arrays for Perl Installed Install 3.9.5-2ubuntu1.4 Tag Image File Format (TIFF) library Installed Install 3.9.5-2ubuntu1.4 Tag Image File Format (TIFF) library Installed Install 1.2000-1 collection of modules to manipulate date/time information Installed Install 0.3.2 GTK+3 timezone map widget Installed Install 5.9-4 shared low-level terminfo library for terminal handling Installed Install 5.9-4 shared low-level terminfo library for terminal handling Installed Install 3.4.1-1 Totem Playlist Parser library - runtime files Installed Install 3.0.1-0ubuntu21.1 Main library for the Totem media player Installed Install 1.0-10 touch screen library Installed Install 0.3.13-1build1 MPEG Audio Layer 2 encoding library Installed Install 3.0.1-0ubuntu1 Ubuntu One widget library Installed Install 175-0ubuntu9.2 udev library Installed Install 175-0ubuntu9.2 udev library Installed Install 1:3.4.0-2ubuntu3 sparse LU factorization library Installed Install 1.1.6-4 Library for writing single instance applications - shared libraries Installed Install 3.0.2-1 Library for writing single instance applications - shared libraries Installed Install 0.9.3-5 Unicode string library for C Installed Install 0.9.3-5 Unicode string library for C Installed Install 5.12.0-0ubuntu1.2 Unity 2D shared library Installed Install 5.18.0-0ubuntu1 Core library for the Unity interface. Installed Install 4.0.4-0ubuntu2 Miscellaneous functions for Unity - shared library Installed Install 5.12.0-0ubuntu1.1 binding to get places into the launcher - shared library Installed Install 1:1.6.6-5.1 Portable SDK for UPnP Devices, version 1.6 (shared libraries) Installed Install 0.9.15-3git1 abstraction for power management - shared library Installed Install 1.59-1 module to manipulate and access URI strings Installed Install 2:0.1.12-20 userspace USB programming library Installed Install 2:0.1.12-20 userspace USB programming library Installed Install 2:1.0.9~rc3-2ubuntu1 userspace USB programming library Installed Install 1.0.7-2 USB multiplexor daemon for iPhone and iPod Touch devices - library Installed Install 1.1.5-4 A privileged helper for utmp/wtmp updates (runtime) Installed Install 1.0.9-0ubuntu1 KernelInput Event Device Emulation Library Installed Install 2.2.3-0ubuntu1 Touch Frame Library Installed Install 2.2.9-0ubuntu3 Gesture engine interface support Installed Install 3.0.5-0ubuntu1 Gesture Recognition And Instantiation Library Installed Install 0.02-4ubuntu1 Perl extension for using UUID interfaces as defined in e2fsprogs Installed Install 2.20.1-1ubuntu3 Universally Unique ID library Installed Install 2.20.1-1ubuntu3 Universally Unique ID library Installed Install 0.8.6-1ubuntu2 Collection of video4linux support libraries Installed Install 0.8.6-1ubuntu2 Collection of video4linux support libraries Installed Install 0.8.6-1ubuntu2 Video4linux frame format conversion library Installed Install 0.8.6-1ubuntu2 Video4linux frame format conversion library Installed Install 1.0.15-4 Video Acceleration (VA) API for Linux -- X11 runtime Installed Install 1.0.15-4 Video Acceleration (VA) API for Linux -- runtime Installed Install 2.1-1 helper library for Vamp hosts written in C++ Installed Install 0.7.23-4.1ubuntu1 library to extract information from VideoCD Installed Install 0.4.1-3ubuntu1.1 Video Decode and Presentation API for Unix (libraries) Installed Install 0.9.8-2ubuntu17.5 programs for the libvirt library Installed Install 0.9.8-2ubuntu17.5 library for interfacing with different virtualization systems Installed Install 0.4.0-4 Audio visualization framework Installed Install 0.4.0-4 Audio visualization framework Installed Install 0.4.0.dfsg.1-7 Audio visualization framework plugins Installed Install 0.4.0.dfsg.1-7 Audio visualization framework plugins Installed Install 2.0.5-0ubuntu0.12.04.1 multimedia player and streamer library Installed Install 2.0.5-0ubuntu0.12.04.1 base library for VLC and its modules Installed Install 0.9.8.2-2ubuntu1 API to write one's own vnc server Installed Install 0.1.1-2 VisualOn AAC encoder library Installed Install 0.1.1-2 VisualOn AMR-WB encoder library Installed Install 1.3.2-1ubuntu3 The Vorbis General Audio Compression Codec (Decoder library) Installed Install 1.3.2-1ubuntu3 The Vorbis General Audio Compression Codec (Decoder library) Installed Install 1.3.2-1ubuntu3 The Vorbis General Audio Compression Codec (Encoder library) Installed Install 1.3.2-1ubuntu3 The Vorbis General Audio Compression Codec (Encoder library) Installed Install 1.3.2-1ubuntu3 The Vorbis General Audio Compression Codec (High Level API) Installed Install 1.3.2-1ubuntu3 The Vorbis General Audio Compression Codec (High Level API) Installed Install 1.0.0-1 VP8 video codec (shared library) Installed Install 1:0.32.1-0ubuntu1 Terminal emulator widget for GTK+ 3.0 - runtime files Installed Install 1:0.32.1-0ubuntu1 Terminal emulator widget for GTK+ 3.0 - common files Installed Install 1:0.28.2-3ubuntu2 Terminal emulator widget for GTK+ 2.x - common files Installed Install 1:0.28.2-3ubuntu2 Terminal emulator widget for GTK+ 2.0 - runtime files Installed Install 0.4-1ubuntu1 Wacom model feature query library (common files) Installed Install 0.4-1ubuntu1 Wacom model feature query library Installed Install 4.60.1-2 audio codec (lossy and lossless) - library Installed Install 4.60.1-2 audio codec (lossy and lossless) - library Installed Install 0.95.2+git~20120903-1ubuntu5 wayland compositor infrastructure - shared libraries Installed Install 2:3.6.3-2ubuntu2.3 Samba winbind client library Installed Install 1.8.3-0ubuntu0.12.04.1 Web content engine library for GTK+ Installed Install 1.8.3-0ubuntu0.12.04.1 Web content engine library for GTK+ - data files Installed Install 1.8.3-0ubuntu0.12.04.1 Web content engine library for GTK+ Installed Install 1.8.3-0ubuntu0.12.04.1 Web content engine library for GTK+ - data files Installed Install 0.2.3.4-2.1 software MIDI player configuration Installed Install 0.2.3.4-2.1 software MIDI player library Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - stringprep implementation Installed Install 1.6~git20120311.dfsg.1-2 Heimdal Kerberos - stringprep implementation Installed Install 0.2.8.4-10ubuntu1 Windows metafile conversion tools Installed Install 0.2.8.4-10ubuntu1 Windows metafile conversion library Installed Install 0.2.8.4-10ubuntu1 Windows metafile conversion library Installed Install 3.4.0-0ubuntu1 Window Navigator Construction Kit - runtime files Installed Install 3.4.0-0ubuntu1 Window Navigator Construction Kit - common files Installed Install 1:2.30.7-0ubuntu1 Window Navigator Construction Kit - common files Installed Install 1:2.30.7-0ubuntu1 Window Navigator Construction Kit - runtime files Installed Install 0.9.4-1 Library for handling WordPerfect documents (shared library) Installed Install 0.2.1-1 WordPerfect graphics import/convert library (shared library) Installed Install 0.2.4-1 Works text file format import filter library (shared library) Installed Install 7.6.q-21 Wietse Venema's TCP wrappers library Installed Install 7.6.q-21 Wietse Venema's TCP wrappers library Installed Install 1.71-1 module to automate interaction with websites Installed Install 6.03-1 simple and consistent interface to the world-wide web Installed Install 6.01-1 database of robots.txt-derived permissions Installed Install 2.8.12.1-6ubuntu2 wxBase library (runtime) - non-GUI support classes of wxWidgets toolkit Installed Install 2.8.12.1-6ubuntu2 wxWidgets Cross-platform C++ GUI toolkit (GTK+ runtime) Installed Install 2:1.4.99.1-0ubuntu2 X11 client-side library Installed Install 2:1.4.99.1-0ubuntu2 X11 client-side library Installed Install 2:1.4.99.1-0ubuntu2 X11 client-side library Installed Install 2:1.4.99.1-0ubuntu2 X11 client-side library (development headers) Installed Install 2:1.4.99.1-0ubuntu2 X11 client-side library (development documentation) Installed Install 0.56-2 Perl module for the X Window System Protocol, version 11 Installed Install 2:1.4.99.1-0ubuntu2 Xlib/XCB interface library (development headers) Installed Install 2:1.4.99.1-0ubuntu2 Xlib/XCB interface library Installed Install 2:1.4.99.1-0ubuntu2 Xlib/XCB interface library Installed Install 2:0.120.2151+gita3f4407-2 x264 video coding library Installed Install 1.1+ds1-7ubuntu1 x86 real-mode library Installed Install 1.2.8-1 Search engine library Installed Install 8.0.4-0ubuntu0.3 X acceleration library -- runtime Installed Install 1:1.0.6-4 X11 authorisation library (development headers) Installed Install 1:1.0.6-4 X11 authorisation library Installed Install 1:1.0.6-4 X11 authorisation library Installed Install 2:1.0.9-3ubuntu1 X11 Athena Widget library Installed Install 2:1.0.9-3ubuntu1 X11 Athena Widget library Installed Install 1.8.1-1ubuntu0.1 X C Binding, composite extension Installed Install 1.8.1-1ubuntu0.1 X C Binding, dri2 extension Installed Install 1.8.1-1ubuntu0.1 X C Binding, glx extension Installed Install 1.8.1-1ubuntu0.1 X C Binding, glx extension Installed Install 1.8.1-1ubuntu0.1 X C Binding, glx extension, development files Installed Install 0.3.8-1build1 utility libraries for X C Binding -- icccm Installed Install 0.3.8-1build1 utility libraries for X C Binding -- image Installed Install 0.3.8-1build1 utility libraries for X C Binding -- keysyms Installed Install 1.8.1-1ubuntu0.1 X C Binding, randr extension Installed Install 0.3.8-1 utility libraries for X C Binding -- render-util Installed Install 1.8.1-1ubuntu0.1 X C Binding, render extension Installed Install 1.8.1-1ubuntu0.1 X C Binding, render extension Installed Install 1.8.1-1ubuntu0.1 X C Binding, render extension, development files Installed Install 1.8.1-1ubuntu0.1 X C Binding, shape extension Installed Install 1.8.1-1ubuntu0.1 X C Binding, shm extension Installed Install 1.8.1-1ubuntu0.1 X C Binding, shm extension Installed Install 1.8.1-1ubuntu0.1 X C Binding, shm extension, development files Installed Install 1.8.1-1ubuntu0.1 X C Binding, sync extension Installed Install 0.3.8-2 utility libraries for X C Binding -- atom, aux and event Installed Install 1.8.1-1ubuntu0.1 X C Binding, xfixes extension Installed Install 1.8.1-1ubuntu0.1 X C Binding, xv extension Installed Install 1.8.1-1ubuntu0.1 X C Binding Installed Install 1.8.1-1ubuntu0.1 X C Binding Installed Install 1.8.1-1ubuntu0.1 X C Binding, development files Installed Install 1:0.4.3-2build1 X11 Composite extension library (development headers) Installed Install 1:0.4.3-2build1 X11 Composite extension library Installed Install 1:0.4.3-2build1 X11 Composite extension library Installed Install 1:1.1.12-1 X cursor management library (development files) Installed Install 1:1.1.12-1 X cursor management library Installed Install 1:1.1.12-1 X cursor management library Installed Install 1:1.1.3-2build1 X11 damaged region extension library (development headers) Installed Install 1:1.1.3-2build1 X11 damaged region extension library Installed Install 1:1.1.3-2build1 X11 damaged region extension library Installed Install 1.1.3-9build1 Xdelta runtime library Installed Install 1:1.1.0-4 X11 authorisation library (development headers) Installed Install 1:1.1.0-4 X11 Display Manager Control Protocol library Installed Install 1:1.1.0-4 X11 Display Manager Control Protocol library Installed Install 4.1.2-2ubuntu2.5 Xenstore communications library for Xen Installed Install 2:1.3.0-3build1 X11 miscellaneous extensions library (development headers) Installed Install 2:1.3.0-3build1 X11 miscellaneous extension library Installed Install 2:1.3.0-3build1 X11 miscellaneous extension library Installed Install 1:5.0-4ubuntu4 X11 miscellaneous 'fixes' extension library (development headers) Installed Install 1:5.0-4ubuntu4 X11 miscellaneous 'fixes' extension library Installed Install 1:5.0-4ubuntu4 X11 miscellaneous 'fixes' extension library Installed Install 1:1.4.4-1 X11 font rasterisation library Installed Install 2.2.0-3ubuntu2 FreeType-based font drawing library for X (development files) Installed Install 2.2.0-3ubuntu2 FreeType-based font drawing library for X Installed Install 2.2.0-3ubuntu2 FreeType-based font drawing library for X Installed Install 2:1.6.0-0ubuntu2 X11 Input extension library (development headers) Installed Install 2:1.6.0-0ubuntu2 X11 Input extension library Installed Install 2:1.6.0-0ubuntu2 X11 Input extension library Installed Install 2:1.1.1-3build1 X11 Xinerama extension library (development headers) Installed Install 2:1.1.1-3build1 X11 Xinerama extension library Installed Install 2:1.1.1-3build1 X11 Xinerama extension library Installed Install 1:1.0.7-1ubuntu0.1 X11 keyboard file manipulation library Installed Install 5.2.1-1ubuntu1 X Keyboard Extension high-level API Installed Install 1.09-3 Perl module for supporting simple generic namespaces Installed Install 2.41-1build1 Perl module for parsing XML files Installed Install 1.07-1 base class for SAX drivers and filters Installed Install 0.40-2 Perl module for a SAX2 driver for Expat (XML::Parser) Installed Install 0.99+dfsg-1ubuntu0.1 Perl module for using and building Perl SAX2 XML processors Installed Install 2.18-3 Perl module for reading and writing XML Installed Install 1:3.39-1ubuntu1 Perl module for processing huge XML documents in tree mode Installed Install 1.13-7 Perl module for processing XPath Installed Install 2.7.8.dfsg-5.1ubuntu4.3 GNOME XML library Installed Install 2.7.8.dfsg-5.1ubuntu4.3 GNOME XML library Installed Install 2.7.8.dfsg-5.1ubuntu4.3 Development files for the GNOME XML library Installed Install 2.7.8.dfsg-5.1ubuntu4.3 XML utilities Installed Install 2:1.1.0-3 X11 miscellaneous utility library Installed Install 2:1.1.0-3 X11 miscellaneous utility library Installed Install 2:1.1.0-3 X11 miscellaneous micro-utility library Installed Install 1:1.0.1-2 X Printing Extension (Xprint) client library Installed Install 1:1.0.1-2 X Printing Extension (Xprint) client library Installed Install 1:3.5.9-4 X11 pixmap library Installed Install 1:3.5.9-4 X11 pixmap library Installed Install 2:1.3.2-2 X11 RandR extension library (development headers) Installed Install 2:1.3.2-2 X11 RandR extension library Installed Install 2:1.3.2-2 X11 RandR extension library Installed Install 1:0.9.6-2build1 X Rendering Extension client library (development files) Installed Install 1:0.9.6-2build1 X Rendering Extension client library Installed Install 1:0.9.6-2build1 X Rendering Extension client library Installed Install 2:1.0.5-1 X11 Resource extension library Installed Install 1.1.26-8ubuntu1.2 XSLT 1.0 processing library - runtime library Installed Install 1.1.26-8ubuntu1.2 XSLT 1.0 processing library - runtime library Installed Install 1:1.2.1-2 X11 Screen Saver extension library Installed Install 1:1.2.1-2 X11 Screen Saver extension library Installed Install 1:1.1.1-2build1 X11 toolkit intrinsics library (development headers) Installed Install 1:1.1.1-2build1 X11 toolkit intrinsics library Installed Install 1:1.1.1-2build1 X11 toolkit intrinsics library Installed Install 2:1.2.0-4 X11 Testing -- Record extension library Installed Install 2:1.2.0-4 X11 Testing -- Record extension library Installed Install 2:1.0.6-2build1 X11 Video extension library Installed Install 2:1.0.6-2build1 X11 Video extension library Installed Install 2:1.3.2-6 Open source MPEG-4 video codec (library) Installed Install 2:1.0.6-1ubuntu2 X11 Video extension library Installed Install 2:1.1.2-1 X11 Direct Graphics Access extension library Installed Install 1:1.1.1-2build1 X11 XFree86 video mode extension library (development headers) Installed Install 1:1.1.1-2build1 X11 XFree86 video mode extension library Installed Install 1:1.1.1-2build1 X11 XFree86 video mode extension library Installed Install 1.0.12-2 Yet Another JSON Library Installed Install 0.1.4-2 Fast YAML 1.1 parser and emitter library Installed Install 1.19-1 Perl module providing a fast, lightweight YAML loader and dumper Installed Install 1.50-1 Perl module for reading and writing YAML files Installed Install 3.4.1-0ubuntu1 Library for the GNOME help browser Installed Install 0.10+doc-7build2 bar code scanner and decoder (library) Installed Install 0.3.18-1ubuntu1 library to access Zeitgeist - shared library Installed Install 3.0.1-1 Project Athena's notification service - non-Kerberos libraries Installed Install 3.3.5+dfsg1-1ubuntu1 Multi threaded C bindings for zookeeper Installed Install 0.2.33-4 Vertical Blanking Interval decoder (VBI) - common files Installed Install 0.2.33-4 Vertical Blanking Interval decoder (VBI) - runtime files Installed Install 0.1.9.1-0ubuntu1.2 Light Themes (Ambiance and Radiance) Installed Install 1.2.1-0ubuntu1.1 Display Manager Installed Install 1.2.2 A lightweight news reader. Installed Install 2.5.6ubuntu0.1 Debian package checker Installed Install 1.79.1 Firmware for Linux kernel drivers Installed Install 3.2.0.36.43 Complete Generic Linux kernel Installed Install 3.2.0-23.36 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-23.36 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-24.39 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-24.39 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-25.40 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-25.40 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-26.41 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-26.41 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-27.43 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-27.43 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-29.46 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-29.46 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-30.48 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-30.48 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-31.50 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-31.50 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-32.51 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-32.51 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-33.52 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-33.52 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-34.53 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-34.53 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-35.55 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-35.55 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-36.57 Header files related to Linux kernel version 3.2.0 Installed Install 3.2.0-36.57 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0.36.43 Generic Linux kernel headers Installed Install 3.2.0-24.39 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-25.40 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-26.41 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-27.43 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-29.46 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-30.48 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-31.50 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-32.51 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-33.52 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-34.53 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-35.55 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-36.57 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0-36.57 Linux kernel image for version 3.2.0 on 64 bit x86 SMP Installed Install 3.2.0.36.43 Generic Linux kernel image Installed Install 3.2.0-36.57 Linux Kernel Headers for development Installed Install 1.0.25+dfsg-0ubuntu1 base package for ALSA and OSS sound systems Installed Install 2.13+git20120306-3 common files for locale support Installed Install 0.1.16 Programs for locking and unlocking files and mailboxes Installed Install 1:4.1.4.2+svn3283-3ubuntu5.1 system login tools Installed Install 3.7.8-6ubuntu5 Log rotation utility Installed Install 4.0-0ubuntu20.2 Linux Standard Base 4.0 init script functionality Installed Install 4.0-0ubuntu20.2 Linux Standard Base version reporting utility Installed Install 02.15-2 information about hardware configuration Installed Install 4.81.dfsg.1-1build1 List open files Installed Install 0.5.3-2.1ubuntu2 Tracks runtime library calls in dynamically linked programs Installed Install 1:0.2.6-5 USB Video Class grabber Installed Install 2.8.8dev.9-2ubuntu0.12.04.1 Text-mode WWW Browser with NLS support (development version) Installed Install 1.4.16-2ubuntu1 a macro processing language Installed Install 1:3.4.1-0ubuntu2.2 classic Eastern tile game for GNOME Installed Install 3.81-8.1ubuntu1.1 An utility for Directing compilation. Installed Install 2.3.1-89ubuntu2 creates device files in /dev Installed Install 2.6.1-2ubuntu1 on-line manual pager Installed Install 3.35-0.1ubuntu1 Manual pages about using a GNU/Linux system Installed Install 3.35-0.1ubuntu1 Manual pages about using GNU/Linux for development Installed Install 1.3.3-17 a pattern scanning and text processing language Installed Install 16-1 Media player identification files Installed Install 1.5.3-1ubuntu1 graphical tool to diff and merge files Installed Install 4.20-1.1ubuntu1 thorough real-mode memory tester Installed Install 8.0.4-0ubuntu0.3 Developer documentation for Mesa Installed Install 8.0.1+git20110129+d8f7d6b-0ubuntu2 Miscellaneous Mesa GL utilities Installed Install 1:2.34.1-1ubuntu11 lightweight GTK+ window manager Installed Install 1:2.34.1-1ubuntu11 shared files for the Metacity window manager Installed Install 3.51-1ubuntu1 MIME files 'mime.types' & 'mailcap', and support programs Installed Install 0.9.5.1-1.1 fast and simple GTK+ image viewer Installed Install 1.10.1-1-ppa1~precise1 Digital DJ interface Installed Install 0.23.1-1ubuntu2 quickly find files on the filesystem based on their name Installed Install 20120410-0ubuntu1 database of mobile broadband service providers Installed Install 0.5.2.0-0ubuntu2 D-Bus service for managing modems Installed Install 3.16-1ubuntu2 tools for managing Linux kernel modules Installed Install 2.20.1-1ubuntu3 Tools for mounting and manipulating filesystems Installed Install 2.36.3 filesystem mounting tool Installed Install 3.4.1-0ubuntu1 mouse accessibility enhancements for the GNOME desktop Installed Install 2:1.0~rc4.dfsg1+svn34540-1 movie player for Unix-like systems Installed Install 1.10 Multiple Repository management tool Installed Install 0.3-3.1 Microsoft "compress.exe/expand.exe" compatible (de)compressor Installed Install 1.2-3 Utilities for modifying MSRs from userspace Installed Install 1.1.0-2ubuntu1 Multitouch Protocol Translation Library - test tools Installed Install 4.0.12-1 Tools for manipulating MSDOS files Installed Install 0.80-1ubuntu1 Full screen ncurses traceroute tool Installed Install 2.15-0ubuntu10.3 Transitional package to ensure multiarch compatibility Installed Install 3.4.1-0ubuntu1 shared files for the Mutter window manager Installed Install 2.1-5.3ubuntu1 English_australian dictionary for myspell Installed Install 1:3.3.0-2ubuntu3 English_british dictionary for myspell Installed Install 1:3.3.0-2ubuntu3 English_southafrican dictionary for myspell Installed Install 5.5.29-0ubuntu0.12.04.1 MySQL database common files, e.g. /etc/mysql/my.cnf Installed Install 1:3.3.0-2ubuntu3 English Thesaurus for LibreOffice/OpenOffice.org Installed Install 2.2.6-1 small, friendly text editor inspired by Pico Installed Install 1:3.4.2-0ubuntu6 file manager and graphical shell for GNOME Installed Install 1:3.4.2-0ubuntu6 data files for nautilus Installed Install 0.19-2build1 nautilus plugin for opening terminals in arbitrary paths Installed Install 3.0.1-2ubuntu2 integrates Evolution and Pidgin into the Nautilus file manager Installed Install 3.4.2.3-0ubuntu1 GNOME multi-protocol chat and call client (nautilus-sendto plugin) Installed Install 0.7.3-1ubuntu2 Nautilus extension to share folder using Samba Installed Install 5.9-4 basic terminal type definitions Installed Install 5.9-4 terminal-related programs and man pages Installed Install 1.60-24.1ubuntu2 The NET-3 networking toolkit Installed Install 4.47ubuntu1 Basic TCP/IP networking system Installed Install 1.89-4ubuntu1 TCP/IP swiss army knife Installed Install 2:10.0-15 Graphics conversion tools between image formats Installed Install 0.9.4.0-0ubuntu4.2 network management framework (daemon and userspace tools) Installed Install 0.9.4.1-0ubuntu2 network management framework (GNOME frontend) Installed Install 0.9.4.0-0ubuntu1 network management framework (OpenVPN plugin core) Installed Install 0.9.4.0-0ubuntu1 network management framework (OpenVPN plugin GNOME GUI) Installed Install 0.9.4.0-0ubuntu1 network management framework (PPTP plugin core) Installed Install 0.9.4.0-0ubuntu1 network management framework (PPTP plugin GNOME GUI) Installed Install 1.5-0ubuntu1 Get stuff done with Nitro. Installed Install 5.21-1.1ubuntu1 The Network Mapper Installed Install 0.1+bzr57-0ubuntu1 Demos for Qt Components for Ubuntu Installed Install 0.9.34-0ubuntu2 daemon that displays passive pop-up notifications Installed Install 0.7 Notify-OSD icons Installed Install 1:2012.1.15AR.1-1ubuntu1.2 read/write NTFS driver for FUSE Installed Install 1:4.2.6.p3+dfsg-1ubuntu3.1 client for setting system time from NTP servers Installed Install 2.14.1-0ubuntu1 Visual rendering toolkit for real-time applications - tools Installed Install 1:0.2.44.2 Find obsolete NVIDIA drivers Installed Install 310.14-0ubuntu0.1 Experimental NVIDIA binary Xorg driver, kernel module and VDPAU library Installed Install 310.14-0ubuntu0.1 Tool for configuring the NVIDIA graphics driver Installed Install 0.4.6-0ubuntu1 D-Bus service for OBEX client and server side functionality Installed Install 0.44-0ubuntu1 D-Bus OBEX client Installed Install 0.23-1build3 file transfer utility for devices that use the OBEX protocol Installed Install 2.2.14p2-5ubuntu3 Helper program for accessing odbc ini files Installed Install 2.2.14p2-5ubuntu3 Support library for accessing odbc ini files Installed Install 2.2.14p2-5ubuntu3 Support library for accessing odbc ini files Installed Install 0.3-0precise1 OEM QA Benchmark Installed Install 0.3-0precise1 OEM QA Benchmark Cachebench Installed Install 0.3-0precise1 OEM QA Benchmark Encode MP3 Installed Install 0.3-0precise1 OEM QA Benchmark Unigine Sanctuary Installed Install 0.3-0precise1 OEM QA Benchmark X264 Installed Install 0.97.0-0ubuntu4 Simple On-screen Keyboard Installed Install 0.2.8.1 synchronize your configuration data over the network Installed Install 7u9-2.3.4-0ubuntu1.12.04.1 OpenJDK Java runtime, using Hotspot JIT Installed Install 7u9-2.3.4-0ubuntu1.12.04.1 OpenJDK Java runtime, using Hotspot JIT (headless) Installed Install 7u9-2.3.4-0ubuntu1.12.04.1 OpenJDK Java runtime (architecture independent libraries) Installed Install 0.6 Hyphenation patterns for OpenOffice.org Installed Install 20120322-0ubuntu1 OpenPrinting printer support - PostScript PPD files Installed Install 1:5.9p1-5ubuntu1 secure shell (SSH) client, for secure access to remote machines Installed Install 1.0.1-4ubuntu5.5 Secure Socket Layer (SSL) binary and related cryptographic tools Installed Install 2.2.1-8ubuntu1 virtual private network daemon Installed Install 1.51ubuntu3 utility to detect other OSes on a set of drives Installed Install 1 Open Sound System (OSS) compatibility package Installed Install 0.2.16-0ubuntu1.1 Scrollbar overlayed widget Installed Install 0.2-0precise1~rev64 Package uploader Installed Install 2.3-8ubuntu5.1 disk partition manipulator Installed Install 1:4.1.4.2+svn3283-3ubuntu5.1 change and administer password and group data Installed Install 2.6.1-3 Apply a diff file to an original Installed Install 0.3.2-1.1 Utilities to work with patches Installed Install 0.99.2-1build1 PulseAudio Volume Control Installed Install 0.208ubuntu1 personal package builder for Debian packages Installed Install 1.1.6-1 parallel bzip2 implementation Installed Install 1:3.1.8-2ubuntu5 Linux PCI Utilities Installed Install 018-6 PCMCIA utilities for Linux 2.6 Installed Install 0.6.1-2ubuntu2 Python PEP 8 code style checker Installed Install 5.14.2-6ubuntu2.2 Larry Wall's Practical Extraction and Report Language Installed Install 5.14.2-6ubuntu2.2 minimal Perl system Installed Install 5.14.2-6ubuntu2.2 Core Perl modules Installed Install 8:6.6.9.7-5ubuntu3.2 Perl interface to the ImageMagick graphics routines Installed Install 4:4.7.0really4.6.0-0ubuntu1 multimedia framework from KDE - metapackage Installed Install 4:4.7.0really4.6.2-0ubuntu0.1 Phonon GStreamer 0.10.x backend Installed Install 3.6.1-1 comprehensive testing and benchmarking platform Installed Install 5.3.10-1ubuntu3.5 command-line interpreter for the php5 scripting language Installed Install 5.3.10-1ubuntu3.5 Common files for packages built from the php5 source Installed Install 5.3.10-1ubuntu3.5 GD module for php5 Installed Install 3.102-3 movie player for xawtw Installed Install 1:2.10.3-0ubuntu1.1 graphical multi-protocol instant messaging client for X Installed Install 1:2.10.3-0ubuntu1.1 multi-protocol instant messaging client - data files Installed Install 0.14-4ubuntu10 display notification bubbles in pidgin Installed Install 1.0+git201212190624-1~precise1 OpenGL driver testing framework Installed Install 0.8.1-1ubuntu1 GTK+-2-based PIN or pass-phrase entry dialog for GnuPG Installed Install 0.15.2-0ubuntu0.1 non-linear audio/video editor using GStreamer Installed Install 0.26-1ubuntu1 manage compile and link flags for libraries Installed Install 0.8.2-2ubuntu30 graphical boot animation and logger - main package Installed Install 0.8.2-2ubuntu30 graphical boot animation and logger - label control Installed Install 0.8.2-2ubuntu30 graphical boot animation and logger - ubuntu-logo theme Installed Install 0.8.2-2ubuntu30 graphical boot animation and logger - ubuntu-logo theme Installed Install 1.4.1-9 utilities and scripts for power management Installed Install 1.0.16+nmu2ubuntu1 tool for managing templates file translations with gettext Installed Install 0.104-1ubuntu1 framework for managing administrative policies and privileges Installed Install 0.105-1ubuntu3.1 GNOME authentication agent for PolicyKit-1 Installed Install 0.10 run common desktop actions without password Installed Install 0.4.5-2 Encoding data for the poppler PDF rendering library Installed Install 0.18.4-1ubuntu3 PDF utilities (based on Poppler) Installed Install 1.53ubuntu1 Vote for your favourite packages automatically Installed Install 1.31 Common utils and configs for power management Installed Install 2.4.5-5ubuntu1 Point-to-Point Protocol (PPP) - daemon Installed Install 2.3.18+nmu3ubuntu1 A text menu based utility for configuring ppp Installed Install 1.20ubuntu1 configures PPPoE/ADSL connections Installed Install 1.7.2-6 Point-to-Point Tunneling Protocol (PPTP) Client Installed Install 23-1 printer driver for Kodak ESP AiO color inkjet Series Installed Install 20111202dfsg0-1ubuntu1 printer driver for ZjStream-based printers Installed Install 5.2.8~pre1-0ubuntu2.1 printer drivers for CUPS Installed Install 3.12.2-1ubuntu3.1 HP Linux Printing and Imaging - CUPS Raster driver (hpcups) Installed Install 3.12.2-1ubuntu3.1 HP Linux Printing and Imaging - gs IJS driver (hpijs) Installed Install 0.0.9-6ubuntu1 printer driver for KonicaMinolta PagePro 1[234]xxW Installed Install 1.13+nondbs-0ubuntu1 printer driver for HP-GDI printers Installed Install 3.12.2-1ubuntu3.1 HP Printers PostScript Descriptions Installed Install 1.3-3ubuntu0.1 printer driver Brother P-touch label printers Installed Install 1.3+repack0-2 printer driver for HP Color LaserJet 35xx/36xx Installed Install 0.1-3 printer driver for Ricoh Aficio SP 1000s/SP 1100s Installed Install 2.0.0+svn300-1.1ubuntu2 Driver for Samsung and Xerox SPL2 and SPLc laser printers Installed Install 1.20 regenerate pristine tarballs Installed Install 1:3.2.8-11ubuntu6 /proc file system utilities Installed Install 2.4.1-1ubuntu2 compiler for protocol buffer definition files Installed Install 0.6.2.16-1ubuntu4.1 display graphs for monitoring hardware temperature Installed Install 0.6.2.16-1ubuntu4.1 common files for Psensor and Psensor server Installed Install 22.15-2ubuntu1.1 utilities that use the proc file system Installed Install 1:1.1-0ubuntu15.2 PulseAudio sound server Installed Install 1:1.1-0ubuntu15.2 Bluetooth module for PulseAudio sound server Installed Install 1:1.1-0ubuntu15.2 GConf module for PulseAudio sound server Installed Install 1:1.1-0ubuntu15.2 X11 module for PulseAudio sound server Installed Install 1:1.1-0ubuntu15.2 Command line tools for the PulseAudio sound server Installed Install 0+r141-0ubuntu3 boot sequence visualisation Installed Install 0.5.0-1ubuntu1 passive checker of Python programs Installed Install 2.7.3-0ubuntu2 interactive high-level object-oriented language (default version) Installed Install 2.7.3-0ubuntu2 package depending on all supported Python runtime versions Installed Install 0.4.92-0ubuntu1 Python bindings for libappindicator Installed Install 2.0.1-0ubuntu17.1 apport crash report handling library Installed Install 0.8.3ubuntu7 Python interface to libapt-pkg Installed Install 0.8.3ubuntu7 Python interface to libapt-pkg (locales) Installed Install 0.43+bzr805-0ubuntu7 Python module for the server and client of aptdaemon Installed Install 0.43+bzr805-0ubuntu7 Python GTK+ 3 widgets to run an aptdaemon client Installed Install 0.43+bzr805-0ubuntu7 PackageKit compatibilty for AptDaemon Installed Install 3.2.0-2build1 error-tolerant HTML parser for Python Installed Install 2.2.2-0ubuntu2 Python interface to Amazon's Web Services Installed Install 4.3-1ubuntu5 Python bindings for BrlAPI Installed Install 2.5.1-0ubuntu2 distributed version control system - python library Installed Install 1.8.8-1ubuntu3 Python bindings for the Cairo vector graphics library Installed Install 0.6.17ubuntu2 register and build utility for Python packages Installed Install 2.0.1-2build1 universal character encoding detector Installed Install 2.4.4-2ubuntu3 text-based template engine and Python code generator Installed Install 0.9.5.94-0ubuntu4 Compizconfig bindings for python Installed Install 1.0-1build1 Glues together optparse.OptionParser and ConfigParser.ConfigParser Installed Install 4.7.2+ds-3build1 simple but powerful config file reader and writer for Python Installed Install 3.4-1ubuntu1 code coverage tool for Python Installed Install 2.4.1-1ubuntu0.1 cryptographic algorithms and protocols for Python Installed Install 0.9.8-1ubuntu2 CSS Cascading Style Sheets parser and builder Installed Install 1.9.61-0ubuntu2 Python bindings for CUPS Installed Install 1.3.8+20120201-0ubuntu8.1 Python modules for printer configuration with CUPS Installed Install 1.5-1 powerful extensions to the standard datetime module Installed Install 1.0.0-1ubuntu1 simple interprocess messaging system (Python interface) Installed Install 1.0.0-1ubuntu1 main loop integration development files for python-dbus Installed Install 0.1.21ubuntu1 Python modules to work with Debian-related data formats Installed Install 1.10build1 Python interface to Debian's Bug Tracking System Installed Install 1.9+git20120320-0ubuntu1 Match debtags hardware:: tags against the actual hardware Installed Install 3.3.2-1 simplify usage of Python decorators by programmers Installed Install 1.0.2+bzr481-1 Small framework for asynchronous programming Installed Install 2.7.3-0ubuntu2 header files and a static library for Python (default) Installed Install 3.0.0-0ubuntu1 Python User Folders Specification Library Installed Install 0.8.2 information about distributions' releases (Python module) Installed Install 2.34-0ubuntu0.1 enhancements to the Python build system Installed Install 2.3.6-1 DNS client module for Python Installed Install 3.2.1-1ubuntu1 date and time handling routines for Python Installed Install 3.2.1-1ubuntu1 collection of additional builtins for Python Installed Install 1.6.5-2build1 spellchecking library for Python Installed Install 0.9.0-3.1build1 Fastimport file format parser and generator library Installed Install 5.1.2-1ubuntu1~precise0 Universal Feed Parser for Python Installed Install 1.2.4-2ubuntu2 validation and form generation Python package Installed Install 0.7.2-4 Utilities for handling IEEE 754 floating point special values Installed Install 2.28.1+dfsg-1 Python bindings for the GConf configuration database system Installed Install 2.7.3-1ubuntu1 GNU dbm database support for Python Installed Install 0.6-2 Python XML-based template engine Installed Install 0.13.6-1ubuntu1 gevent is a coroutine-based Python networking library Installed Install 3.2.2-1~precise Python 2.x bindings for gobject-introspection libraries Installed Install 3.2.2-1~precise Python Cairo bindings for the GObject library Installed Install 2.24.0-3 GTK+ bindings: Glade support Installed Install 3.0.1-0ubuntu7 GNOME implementation of the freedesktop menu specification Installed Install 2.28.1+dfsg-1 Python bindings for the GNOME desktop environment Installed Install 2.32.0+dfsg-1 Python bindings for the GNOME keyring library Installed Install 0.3.2-9.1ubuntu3 Python interface to GnuPG (GPG) Installed Install 3.2.2-1~precise Python 2.x bindings for GObject - transitional package Installed Install 2.28.6-10ubuntu1 deprecated static Python bindings for the GObject library Installed Install 2.28.6-10ubuntu1 development headers for the static GObject Python bindings Installed Install 0.8.2-4 Python bindings for libgpod Installed Install 0.3.1-1ubuntu5.1 Lightweight in-process concurrent programming Installed Install 0.10.22-3ubuntu0.1 generic media-playing framework (Python bindings) Installed Install 2.24.0-3 Python bindings for the GTK+ widget set Installed Install 2.24.0-3 GTK+ bindings: devel files Installed Install 2.24.0-3 Python bindings for the GTK+ widget set - documentation Installed Install 2.10.1-2build1 Python bindings for the GtkSourceView widget Installed Install 0.7.2-1ubuntu2 comprehensive HTTP client library written for Python Installed Install 1.4.1-3ubuntu1 Intelligent Input Bus - Python support Installed Install 1.1.7-4 Python Imaging Library Installed Install 2.6-1 small but fast and easy to use stand-alone template engine Installed Install 0.9.2-0ubuntu0.12.04.2 store and access your passwords safely Installed Install 0.1.56.1 library for launchpad integration Installed Install 1.9.12-1 Launchpad web services client library Installed Install 0.12.0-1ubuntu1 client for lazr.restful-based web services Installed Install 1.0.3-1 library for parsing, manipulating, and generating URIs Installed Install 2.3.1-0ubuntu1 Python bindings for ldtp Installed Install 0.4.7-0ubuntu4.1 automatic proxy configuration management library (python) Installed Install 2.7.8.dfsg-5.1ubuntu4.3 Python bindings for the GNOME XML library Installed Install 2.3.0-3 Python bindings for liblouis Installed Install 2.3.2-1 pythonic binding for the libxml2 and libxslt libraries Installed Install 0.21.1-2ubuntu2 a crypto and SSL toolkit for Python Installed Install 5.09-2 File type determination library using "magic" numbers (Python bindings) Installed Install 0.5.0-1 fast and lightweight templating for the Python platform Installed Install 0.15-1 XML/HTML/XHTML Markup safe string for Python Installed Install 2.7.3-0ubuntu2 minimal subset of the Python language (default version) Installed Install 1.20-1ubuntu1 audio metadata editing library Installed Install 1.4-1build1 Client library for the my.gpodder.org web service Installed Install 0.52.11-2ubuntu10 A NEWT module for Python Installed Install 1.1.2-3 test discovery and running of Python's unittest Installed Install 0.1.1-3 Python bindings for libnotify Installed Install 1:1.6.1-6ubuntu1 Numerical Python adds a fast array facility to the Python language Installed Install 1.0.1-3build1 Python library implementing of the OAuth protocol Installed Install 2.3.1-7 Python bindings for the computer vision library Installed Install 3.0.1~b2-1 Python bindings to OpenGL Installed Install 2.2.5-3ubuntu1 OpenID support for servers and consumers Installed Install 1.5.6-1 module to read/write OpenXML xlsx/xlsm files Installed Install 0.12-1ubuntu2 Python wrapper around the OpenSSL library Installed Install 0.7.2-4ubuntu3 PackageKit Python bindings Installed Install 0.4.2-12.2ubuntu4 A Python interface to the PAM library Installed Install 1.7.7.1-2 Make ssh v2 connections with Python Installed Install 1.7.5.1-4ubuntu2 tools for using a Web Server Gateway Interface stack Installed Install 1.5.0-2build1 load, configure, and compose WSGI applications and servers Installed Install 1.7.5-1 serving web applications, creating file layouts for Python packages Installed Install 2.3-1ubuntu2 Python module for automating interactive applications Installed Install 1.0-1build1 alternative Python package installer Installed Install 0.7.2+bzr57-0ubuntu1 library for writing clients for Django's Piston REST APIs Installed Install 0.6.24-1ubuntu1 Package Discovery and Resource Access using pkg_resources Installed Install 0.5.30-0ubuntu1 composite linter and style checker Installed Install 2.0.1-0ubuntu17.1 Python library to handle problem reports Installed Install 2.4.1-1ubuntu2 Python bindings for protocol buffers Installed Install 0.0.11a-1ubuntu1 ASN.1 library for Python Installed Install 2.4.0+dfsg-0ubuntu3 Assistive Technology Service Provider Interface - Python bindings Installed Install 7.19.0-4ubuntu3 Python bindings to libcurl Installed Install 1.0.2-1 Python interface to Graphviz's dot Installed Install 1.9.1release+dfsg-5 SDL bindings for games development in Python Installed Install 1.4+dfsg-2 syntax highlighting package written in Python Installed Install 0.14.1-1ubuntu6 GooCanvas Python bindings Installed Install 0.9.2-1 simple Linux inotify Python bindings Installed Install 0.5.1-0ubuntu3 Python multi-touch library Installed Install 0.0.4-4 Pythonic binding to LibMTP to interact with MTP devices Installed Install 2.24.0-6ubuntu2 A Python language binding for the ORBit2 CORBA implementation Installed Install 1.5.2-2ubuntu1 Python parsing module Installed Install 1.1.0-1 Python bindings for Qt4 (big metapackage) Installed Install 1.1.0-1 Qt 4 Phonon module - Python bindings Installed Install 1.1.0-1 Qt 4 core module - Python bindings Installed Install 1.1.0-1 Qt 4 Declarative module - Python bindings Installed Install 1.1.0-1 Qt 4 GUI module - Python bindings Installed Install 1.1.0-1 Qt 4 help module - Python bindings Installed Install 1.1.0-1 Qt 4 network module - Python bindings Installed Install 1.1.0-1 Qt 4 OpenGL module - Python bindings Installed Install 1.1.0-1 Qt 4 script module - Python bindings Installed Install 1.1.0-1 Qt 4 SQL module - Python bindings Installed Install 1.1.0-1 Qt 4 SVG module - Python bindings Installed Install 1.1.0-1 Qt 4 test module - Python bindings Installed Install 1.1.0-1 Qt 4 UI tools module - Python bindings Installed Install 1.1.0-1 Qt 4 WebKit module - Python bindings Installed Install 1.1.0-1 Qt 4 XML module - Python bindings Installed Install 0.2.2-1 Python wrapper around different weather APIs Installed Install 4.9.1-2ubuntu1 Python bindings for Qt4 Installed Install 4.9.1-2ubuntu1 DBus Support for PyQt4 Installed Install 12.04-0ubuntu4 build new apps quickly Installed Install 12.04-0ubuntu4 build new apps quickly Installed Install 2.5-1.1build1 python low level render interface Installed Install 6.3.1ubuntu1 Python modules for interacting with bug tracking systems Installed Install 2.5-1.1build1 ReportLab library to create PDF documents using Python Installed Install 2.5-1.1build1 C coded extension accelerator for the ReportLab Toolkit Installed Install 0.8.2-1 elegant and simple HTTP library for Python, built for human beings Installed Install 1.13-1ubuntu1 Server-side implementation of the SCGI protocol Installed Install 0.9.0+dfsg1-1ubuntu2 scientific tools for Python Installed Install 0.26-3 SVG scrubber and optimizer Installed Install 2.5-2.1build1 pyserial - module encapsulating access for the serial port Installed Install 0.6.24-1ubuntu1 Python Distutils Enhancements (setuptools compatibility) Installed Install 1.3-3 SimpleCV, The opensource framework for computer vision Installed Install 0.7-1build1 Simple generic functions for Python Installed Install 2.3.2-1 simple, fast, extensible JSON encoder/decoder for Python Installed Install 4.13.2-1 Python/C++ bindings generator runtime library Installed Install 1.0.13-0ubuntu1 Python bindings for Samba clients (libsmbclient) Installed Install 0.12.0-4 SOAP Support for Python Installed Install 0.82.7.3 manage the repositories that you install software from Installed Install 0.7.1-6ubuntu3 Python interface to Speech Dispatcher Installed Install 0.6.0+20100620-2build1 Python to Debian source package conversion utility Installed Install 1.0.14ubuntu2 automated rebuilding support for Python modules Installed Install 11.1.0-1ubuntu2 Event-based framework for internet applications (dependency package) Installed Install 11.1.0-1ubuntu2 Event-based framework for internet applications Installed Install 1:11.1.0-1 Twisted SSH Implementation Installed Install 11.1.0-1ubuntu2 Event-based framework for internet applications Installed Install 11.1.0-1 Documentation generator with HTML and LaTeX support Installed Install 11.1.0-1 SMTP, IMAP and POP protocol implementation Installed Install 11.1.0-1 DNS protocol implementation with client and server Installed Install 11.1.0-1 NNTP protocol implementation with client and server Installed Install 11.1.0-1 Process management, including an inetd server Installed Install 11.1.0-1 HTTP protocol implementation together with clients and servers Installed Install 11.1.0-1 Chat and Instant Messaging Installed Install 0.2-0ubuntu10 Twisted-based Asynchronous Libraries for Amazon Web Services Installed Install 0.9.7-1~ubuntu12.04.1~ppa1 Twisted-based Asynchronous Libraries for Apache Zookeeper. Installed Install 3.0.2-0ubuntu3 Ubuntu Single Sign-On client - Python library Installed Install 3.0.2-0ubuntu1 Ubuntu One client Python libraries Installed Install 3.0.1-0ubuntu1 Ubuntu One Control Panel - Python Libraries Installed Install 3.0.2-0ubuntu1 Python library for Ubuntu One file storage and sharing service Installed Install 1.1.4-1ubuntu1 Universal vector graphics translator Installed Install 1:3.5.4-0ubuntu1.1 Python-UNO bridge Installed Install 0.2-8build1 Python wrapper for TidyLib Installed Install 0.60.0-0ubuntu5 Library to emulate keyboard keypresses. Installed Install 1.7.1.2-1 Python virtual environment creator Installed Install 1.3.0-2 Python library for navigating WADL files Installed Install 1.1.8-2ubuntu2 WebKit/Gtk Python bindings Installed Install 2.8.12.1-6ubuntu2 wxWidgets Cross-platform C++ GUI toolkit (wxPython binding) Installed Install 2.8.12.1-6ubuntu2 wxWidgets Cross-platform C++ GUI toolkit (wxPython version selector) Installed Install 1.2.8-1 Xapian search engine interface for Python Installed Install 0.19-3ubuntu2 Python library to access freedesktop.org standards Installed Install 0.4.2.3build1 library for the manipulation of the xorg.conf Installed Install 0.14+20091101-1 Interface for Python to the X11 Protocol Installed Install 3.10-2 YAML parser and emitter for Python Installed Install 0.9.0-1ubuntu1 event logging framework - Python bindings Installed Install 3.3.5+dfsg1-1ubuntu1 Python bindings for zookeeper Installed Install 3.6.1-1ubuntu3 Interfaces for Python Installed Install 2.7.3-0ubuntu3.1 Interactive high-level object-oriented language (version 2.7) Installed Install 2.7.3-0ubuntu3.1 Header files and a static library for Python (v2.7) Installed Install 2.7.3-0ubuntu3.1 Minimal subset of the Python language (version 2.7) Installed Install 3.2.3-0ubuntu1 interactive high-level object-oriented language (default python3 version) Installed Install 0.8.3ubuntu7 Python 3 interface to libapt-pkg Installed Install 1.10.0+dfsg-1 Python 3 bindings for the Cairo vector graphics library Installed Install 1.0.0-1ubuntu1 simple interprocess messaging system (Python 3 interface) Installed Install 3.2.3-0ubuntu1 header files and a static library for Python (default) Installed Install 2.34-0ubuntu0.1 enhancements to the Python3 build system Installed Install 3.2.2-1~precise Python 3 bindings for gobject-introspection libraries Installed Install 3.2.2-1~precise Python 3 Cairo bindings for the GObject library Installed Install 2.6-1 small but fast and easy to use stand-alone template engine Installed Install 2.3.2-1 pythonic binding for the libxml2 and libxslt libraries Installed Install 0.15-1 XML/HTML/XHTML Markup safe string for Python3 Installed Install 3.2.3-0ubuntu1 minimal subset of the Python language (default python3 version) Installed Install 0.6.24-1ubuntu1 Package Discovery and Resource Access using pkg_resources Installed Install 4.9.1-2ubuntu1 Python3 bindings for Qt4 Installed Install 1.1.0-1 Python3 bindings for Qt4 (big metapackage) Installed Install 1.1.0-1 Qt 4 Phonon module - Python3 bindings Installed Install 1.1.0-1 Qt 4 core module - Python3 bindings Installed Install 1.1.0-1 Qt 4 Declarative module - Python3 bindings Installed Install 1.1.0-1 Qt 4 GUI module - Python3 bindings Installed Install 1.1.0-1 Qt 4 help module - Python3 bindings Installed Install 1.1.0-1 Qt 4 network module - Python3 bindings Installed Install 1.1.0-1 Qt 4 OpenGL module - Python3 bindings Installed Install 1.1.0-1 Qt 4 script module - Python3 bindings Installed Install 1.1.0-1 Qt 4 SQL module - Python3 bindings Installed Install 1.1.0-1 Qt 4 SVG module - Python3 bindings Installed Install 1.1.0-1 Qt 4 test module - Python3 bindings Installed Install 1.1.0-1 Qt 4 UI tools module - Python3 bindings Installed Install 1.1.0-1 Qt 4 WebKit module - Python3 bindings Installed Install 1.1.0-1 Qt 4 XML module - Python3 bindings Installed Install 0.6.24-1ubuntu1 Python3 Distutils Enhancements (setuptools compatibility) Installed Install 4.13.2-1 Python 3/C++ bindings generator runtime library Installed Install 1.0.1-2 curses-based UI/widget library for Python 3 Installed Install 3.2.3-0ubuntu3.2 Interactive high-level object-oriented language (version 3.2) Installed Install 3.2.3-0ubuntu3.2 Header files and a static library for Python (v3.2) Installed Install 3.2.3-0ubuntu3.2 Minimal subset of the Python language (version 3.2) Installed Install 0.22.2-1 Graphical interface for Bazaar using the Qt toolkit Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 D-Bus tool Installed Install 1.0+noroms-0ubuntu14.7 qemu common functionality (bios, documentation, etc) Installed Install 1.0+noroms-0ubuntu14.7 Full virtualization on i386 and amd64 hardware Installed Install 1.0+noroms-0ubuntu14.7 qemu utilities Installed Install 0~20080822-0precise4 Simple Qt graphics benchmark Installed Install 5.0-release~beta+20120904-1ubuntu12 Qt parser generator Installed Install 0.2.0+git20120411-0ubuntu1 accessibility plugin for Qt Installed Install 0.2~git20120611-1-0fn Qt Quick components desktop runtime libraries Installed Install 0.2~git20120611-1-0fn Qt Quick components development files Installed Install 0.2~git20120611-1-0fn Qt Quick components examples Installed Install 0.1.25-0ubuntu2 Qt Components for Ubuntu Installed Install 0.1.25-0ubuntu2 Qt Components for Ubuntu - demos Installed Install 0.1.25-0ubuntu2 Qt Components for Ubuntu - documentation Installed Install 0.1.25-0ubuntu2 Qt Components for Ubuntu - examples Installed Install 5.0-release~beta+20120901-1ubuntu5 Qt Quick module for scripting 3D applications in QML Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 examples and demos Installed Install 4:4.8.1-0ubuntu4.3 graphical designer for Qt 4 applications Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 development tools Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 API documentation Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 Linguist tools Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 qmake Makefile generator tool Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 QML viewer Installed Install 4:4.8.1-0ubuntu4.3 Qt 4 configuration tool Installed Install 5.0-release~beta+20120908-1ubuntu2 The full stack of Qt5 Beta1 release Installed Install 5.0-release~beta+20120831-1ubuntu56 Qt Base modules. Installed Install 5.0-release~beta+20120831-1ubuntu7 Qt 5 connectivity module Installed Install 2.4.1-0ubuntu2 lightweight integrated development environment (IDE) for Qt Installed Install 2.4.1-0ubuntu2 documentation for Qt Creator IDE Installed Install 5.0-release~beta+20120831-1ubuntu28 Qt5 Declarative module Installed Install 5.0-release~beta+20120831-1ubuntu8 QtDoc module Installed Install 5.0-release~beta+20120904-1ubuntu7 Qt5 Documentation gallery Installed Install 5.0-release~beta+20120904-1ubuntu9 The Qt Feedback module Installed Install 5.0-release~beta+20120831-1ubuntu9 Qt 5 graphicaleffects module Installed Install 5.0-release~beta+20120901-1ubuntu7 Qt 5 Image format plugins Installed Install 5.0-release~beta+20120831-1ubuntu17 Qt V8 Javascript backend used by Qt Declarative. Installed Install 5.0-release~beta+20120831-1ubuntu7 Qt 5 Location module Installed Install 5.0-release~beta+20120831-1ubuntu11 Qt 5 Image format plugins Installed Install 5.0-release~beta+20120904-1ubuntu9 Qt5 Phonon module Installed Install 5.0-release~beta+20120904-1ubuntu9 Qt PIM module Installed Install 5.0-release~beta+20120831-1ubuntu7 Qt Quick 1 compatibility library Installed Install 5.0-release~beta+20120831-1ubuntu9 The QtScript module Installed Install 5.0-release~git+20130115-1ubuntu3 Qt5 Sensor module Installed Install 5.0-release~beta+20120831-1ubuntu7 Qt 5 SVG module Installed Install 5.0-release~beta+20120831-1ubuntu9 Qt 5 Systems module Installed Install 5.0-release~beta+20120831-1ubuntu7 Qt5 tools module Installed Install 5.0-release~beta+20120901-1ubuntu35 Qt support for the Wayland windowing system Installed Install 2:5.0-1ubuntu31 WebKit open source browser engine. Installed Install 5.0-release~beta+20120904-1ubuntu2 Examples and demos for Qt5 Webkit Installed Install 5.0-release~beta+20120831-1ubuntu7 The QtXmlPatterns module Installed Install 12.04-0ubuntu4 build new apps quickly Installed Install 12.04-0ubuntu4 quickly ubuntu application template Installed Install 0.50-2 Tool to work with series of patches Installed Install 1.6.2-1.1 utility to control ATI Radeon backlight functions on laptops Installed Install 0.8.1-5 Documentation meta-data library (compatibility tools) Installed Install 2.0.0-3.1 hardware information-gathering tool for VESA PnP monitors Installed Install 6.2-8 GNU readline and history libraries, common files Installed Install 0.3.8.1+svn602-1ubuntu3 Captures audio-video data of a Linux desktop session Installed Install 1.0.0-1ubuntu6.1 remote desktop client for GNOME desktop environment Installed Install 1.0.0-1ubuntu6.1 common files for remmina remote desktop client Installed Install 1.0.0-1ubuntu6.1 RDP plugin for remmina remote desktop client Installed Install 1.0.0-1ubuntu6.1 VNC plugin for remmina remote desktop client Installed Install 6.3.1ubuntu1 reports bugs in the Debian distribution Installed Install 1.63ubuntu16 name server information handler Installed Install 0.4-1ubuntu2 tool for enabling and disabling wireless devices Installed Install 2.96-0ubuntu4.2 music player and organizer for GNOME Installed Install 2.96-0ubuntu4.2 data files for rhythmbox Installed Install 2.96-0ubuntu4.2 Rhythmbox Mozilla plugin Installed Install 2.96-0ubuntu4.2 burning plugin for rhythmbox music player Installed Install 2.96-0ubuntu4.2 Magnatune plugin for rhythmbox music player Installed Install 2.96-0ubuntu4.2 zeitgeist plugin for rhythmbox music player Installed Install 2.96-0ubuntu4.2 plugins for rhythmbox music player Installed Install 3.0.0-0ubuntu1 Ubuntu One Rhythmbox plugin Installed Install 3.0.9-1ubuntu1 fast, versatile, remote (and local) file-copying tool Installed Install 5.8.6-1ubuntu8 reliable system and kernel logging daemon Installed Install 0.10-2 Realtime Policy and Watchdog Daemon Installed Install 2:3.6.3-2ubuntu2.3 common files used by both the Samba server and client Installed Install 2:3.6.3-2ubuntu2.3 common files used by both the Samba server and client Installed Install 1.0.22-7ubuntu1 API library for scanners -- utilities Installed Install 3.102-3 television channel-scanner Installed Install 4.0.3-14ubuntu8 terminal multiplexor with VT100/ANSI terminal emulation Installed Install 0.14ubuntu2 Extension for the GNOME screen resolution applet Installed Install 0.6.2-0ubuntu2.1 legacy BIOS implementation which can be used as a coreboot payload Installed Install 3.2.2-0ubuntu2.1 GNOME front end for GnuPG Installed Install 4.2.1-9 The GNU sed stream editor Installed Install 0.0.6ubuntu2 Utilities for sensible alternative selection Installed Install 0.20+bzr128-0ubuntu1.2 APT based installer using PackageKit's session DBus API Installed Install 1.33-1 utilities for devices using the SCSI command set Installed Install 1.26+nmu1ubuntu1 SGML infrastructure and SGML catalog file support Installed Install 2.0.6 common SGML and XML data Installed Install 1.0-0ubuntu4.1 FreeDesktop.org shared MIME database and spec Installed Install 0.12.3-0ubuntu0.1 digital photo organizer Installed Install 0.88.1-1 feature-rich screenshot program Installed Install 2.70-1build1 HTTP regression testing and benchmarking utility Installed Install 3.4.1-0ubuntu1.1 Simple Scanning Utility Installed Install 5.41+svn3365-1 control and monitor storage systems using S.M.A.R.T. Installed Install 2:3.6.3-2ubuntu2.3 command-line SMB/CIFS clients for Unix Installed Install 0.2.5-0ubuntu3 indicator support for Qt Installed Install 5.2.7 Utility for browsing, installing, and removing software Installed Install 0.1.2 The aptdaemon plugins for software-center Installed Install 0.82.7.3 manage the repositories that you install software from (common) Installed Install 0.82.7.3 manage the repositories that you install software from (gtk) Installed Install 3.4.0-1ubuntu1 GNOME CD Ripper Installed Install 0.7.pristine-2 freedesktop.org sound theme Installed Install 14.3.2-3 Swiss army knife of sound processing Installed Install 0.7.1-6ubuntu3 Common interface to speech synthesizers Installed Install 1:5.9p1-5ubuntu1 interactive X program to prompt users for a passphrase for ssh-add Installed Install 1.0.28ubuntu0.1 simple debconf wrapper for OpenSSL Installed Install 0.1precise4~rev6 Measure application startup time Installed Install 4.5.20-2.3ubuntu1 A system call tracer Installed Install 1.64.6-1 download online streams into audio files Installed Install 1.0.1-1build1 A tool to impose load on and stress test a computer system Installed Install 1.0.3-2ubuntu2 stress test application for simulating high load situations Installed Install 1.8.3p1-1ubuntu3.3 Provide limited super user privileges to specific users Installed Install 0.75.9ubuntu1 Graphical package manager Installed Install 2:4.05+dfsg-2 collection of boot loaders Installed Install 2:4.05+dfsg-2 collection of boot loaders (common files) Installed Install 2:3.63+dfsg-2ubuntu5 Bootloader for Linux/i386 using MS-DOS floppies Installed Install 10.0.3-1 system performance tools for Linux Installed Install 1.3.8+20120201-0ubuntu8.1 Printer configuration GUI Installed Install 1.3.8+20120201-0ubuntu8.1 Printer configuration GUI Installed Install 1.3.8+20120201-0ubuntu8.1 Printer auto-configuration facility based on udev Installed Install 2.10.2-1ubuntu1 System Tools to manage computer configuration -- scripts Installed Install 2.88dsf-13.10ubuntu11.1 System-V-like runlevel change mechanism Installed Install 2.88dsf-13.10ubuntu11.1 System-V-like utilities Installed Install 0.8.90-5 Tango icon theme Installed Install 1.26-4ubuntu1 GNU version of the tar archiving utility Installed Install 8.5.0-2 The Tool Command Language (default version) - run-time files Installed Install 8.5.11-1ubuntu1 Tcl (the Tool Command Language) v8.5 - run-time files Installed Install 7.6.q-21 Wietse Venema's TCP wrapper utilities Installed Install 4.2.1-1ubuntu2 command-line network traffic analyzer Installed Install 0.16.0-0ubuntu2 Jabber/XMPP connection manager Installed Install 0.6.0-0ubuntu1 Telepathy connection manager that uses libpurple Installed Install 0.1.11-2 IRC connection manager for Telepathy Installed Install 0.2.1-0ubuntu1 Desktop service to integrate Telepathy with the messaging menu. Installed Install 0.4.0-0ubuntu1 Telepathy logger service - Daemon Installed Install 1:5.12.0-0ubuntu2.1 management daemon for Telepathy real-time communication framework Installed Install 0.8.0-0ubuntu1 Link-local XMPP connection manager for the Telepathy framework Installed Install 0.17-36build1 The telnet client Installed Install 17.0.2+build1-0ubuntu0.12.04.1 Email, RSS and newsgroup client with integrated spam filter Installed Install 17.0.2+build1-0ubuntu0.12.04.1 Unity appmenu integration for Thunderbird Installed Install 17.0.2+build1-0ubuntu0.12.04.1 Email, RSS and newsgroup client - GNOME support Installed Install 1:17.0.2+build1-0ubuntu0.12.04.1 English language pack for Thunderbird Installed Install 1:17.0.2+build1-0ubuntu0.12.04.1 Transitional English language pack for Thunderbird Installed Install 1.7-23.1 The GNU time program for measuring cpu resource usage Installed Install 8.5.0-2 The Tk toolkit for Tcl and X11 (default version) - run-time files Installed Install 8.5.11-1 Tk toolkit for Tcl and X11, v8.5 - run-time files Installed Install 1.6-1ubuntu1 terminal multiplexer Installed Install 1.76-2 Access much of the Toshiba laptop hardware interface Installed Install 3.0.1-0ubuntu21.1 Simple media player for the GNOME desktop based on GStreamer Installed Install 3.0.1-0ubuntu21.1 Data files for the Totem media player Installed Install 3.0.1-0ubuntu21.1 Totem Mozilla plugin Installed Install 3.0.1-0ubuntu21.1 Plugins for the Totem media player Installed Install 2.51-0ubuntu1.1 lightweight BitTorrent client (common files) Installed Install 2.51-0ubuntu1.1 lightweight BitTorrent client (GTK interface) Installed Install 1.5.3-2 displays directory tree, in color Installed Install 1.0-10 touch screen library common files Installed Install 2.33-2ubuntu1 Vera font family derivate with additional characters Installed Install 2.33-2ubuntu1 Vera font family derivate with additional characters Installed Install 20100919-1 Freefont Serif, Sans and Mono Truetype fonts Installed Install 1:0.5.11ubuntu1 Core collection of free fonts for languages of India Installed Install 1:0.5.11ubuntu1 Free TrueType fonts for the Punjabi language Installed Install 0.80-0ubuntu2 Ubuntu Font Family, sans-serif typeface hinted for clarity Installed Install 0.2.0-beta-1ubuntu1 A droid derived Sans-Seri style CJK font Installed Install 2012e-0ubuntu0.12.04.1 time zone and daylight-saving time data Installed Install 2012e-0ubuntu0.12.04.1 time zone and daylight-saving time data for use by java runtimes Installed Install 57 Ubuntu themes and artwork Installed Install 0.141 useful tools for Ubuntu developers Installed Install 12.04.6 Ubuntu Desktop Guide Installed Install 2010.09.27 GnuPG keys of the Ubuntu extras archive Installed Install 2011.11.21.1 GnuPG keys of the Ubuntu archive Installed Install 1.267 Minimal core of Ubuntu Installed Install 0.0.40 Ubuntu Mono Icon theme Installed Install 0.13 Ubuntu's GNOME audio theme Installed Install 3.0.2-0ubuntu3 Ubuntu Single Sign-On client Installed Install 3.0.2-0ubuntu3 Ubuntu Single Sign-On client - GTK+ frontend Installed Install 3.0.2-0ubuntu3 Ubuntu Single Sign-On client - Qt frontend Installed Install 1.267 The Ubuntu standard system Installed Install 0.2.2 Dbus service to set various system-wide configurations Installed Install 0.8.4-0~bzr1949+20130122~precise1 Ubuntu Tweak Installed Install 0.34.1 Ubuntu Wallpapers Installed Install 0.34.1 Ubuntu 12.04 Wallpapers Installed Install 3.0.2-0ubuntu1 Ubuntu One client Installed Install 3.0.1-0ubuntu1 Ubuntu One client GNOME integration Installed Install 3.0.1-0ubuntu1 Ubuntu One Control Panel Installed Install 3.0.1-0ubuntu1 Ubuntu One Control Panel - Common frontend files Installed Install 3.0.1-0ubuntu1 Ubuntu One Control Panel - Qt frontend Installed Install 0.3.0-0ubuntu4 Ubuntu One CouchDB Installed Install 3.0.2-0ubuntu1.1 Ubuntu One Installer Installed Install 3.0025+nmu2ubuntu1 Update Configuration File: preserve user changes to config files. Installed Install 175-0ubuntu9.2 rule-based device node and kernel event manager Installed Install 1.0.4-5ubuntu2.1 storage media interface Installed Install 0.31.1-1 program for managing a Netfilter firewall Installed Install 0.76ubuntu1 automatic installation of security upgrades Installed Install 5.18.0-0ubuntu1 Interface designed for efficiency of space and interaction. Installed Install 5.12.0-0ubuntu1.2 Unity interface for non-accelerated graphics cards Installed Install 5.12.0-0ubuntu1.2 Common files for Unity 2D Shell Installed Install 5.12.0-0ubuntu1.2 Unity 2D Panel Installed Install 5.12.0-0ubuntu1.2 Dash and Launcher for the Unity 2D environment Installed Install 5.12.0-0ubuntu1.2 Unity 2D Spread Installed Install 0.8.23-0ubuntu1 Unity Assets Pool Installed Install 5.18.0-0ubuntu1 Common files for the Unity interface. Installed Install 0.2.8-0ubuntu1.4 Unity Greeter Installed Install 5.18.0-0ubuntu1 Application lens for unity Installed Install 5.10.0-0ubuntu1 File lens for unity Installed Install 5.12.0-0ubuntu2 Music lens for unity Installed Install 0.3.5-0ubuntu1.3 Unity Video lens Installed Install 5.12.0-0ubuntu2 Store music lens for unity Installed Install 0.3.5-0ubuntu2.1 Remote videos engine Installed Install 5.18.0-0ubuntu1 Services for the Unity interface Installed Install 3.5.4-0ubuntu1.1 LibreOffice UNO runtime environment -- public shared libraries Installed Install 6.0-4ubuntu1 De-archiver for .zip files Installed Install 4.41 inetd configuration file updater Installed Install 1:0.156.14.11 GNOME application that manages apt updates Installed Install 1:0.156.14.11 manage release upgrades Installed Install 0.119ubuntu8.6 Daemon which notifies about package updates Installed Install 0.119ubuntu8.6 Files shared between update-notifier and other packages Installed Install 0.9.15-3git1 abstraction for power management Installed Install 1.5-0ubuntu7 event-based init daemon Installed Install 3.5.4-0ubuntu1.1 LibreOffice UNO runtime environment Installed Install 0.100.0-12 Read required files in advance Installed Install 0.2.38 create a startup disk using a CD or disc image (common files) Installed Install 0.2.38 create a startup disk using a CD or disc image (for GNOME) Installed Install 1.2.3+repack0-1ubuntu2 mode switching tool for controlling "flip flop" USB devices Installed Install 20120120-0ubuntu1 mode switching data for usb-modeswitch Installed Install 1.0.7-2 USB multiplexor daemon for iPhone and iPod Touch devices Installed Install 1:005-1 Linux USB utilities Installed Install 2.20.1-1ubuntu3 Miscellaneous system utilities Installed Install 2.20.1-1ubuntu3 runtime components for the Universally Unique ID library Installed Install 3.102-3 tool to configure video4linux drivers Installed Install 0.8.6-1ubuntu2 Collection of command line video4linux utilities Installed Install 1.1-2ubuntu1 run real-mode video BIOS code to alter hardware state Installed Install 0.6c-2ubuntu3 VGA BIOS software for the Bochs and Qemu emulated VGA card Installed Install 2:7.3.429-2ubuntu2.1 Vi IMproved - enhanced vi editor Installed Install 2:7.3.429-2ubuntu2.1 Vi IMproved - Common files Installed Install 2:7.3.429-2ubuntu2.1 Vi IMproved - Runtime files Installed Install 2:7.3.429-2ubuntu2.1 Vi IMproved - enhanced vi editor - compact version Installed Install 3.4.2-0ubuntu1.2 VNC server for GNOME Installed Install 0.4.2-1 Displaying the graphical console of a virtual machine Installed Install 4.1.12-dfsg-2ubuntu0.2 x86 virtualization solution - base binaries Installed Install 4.1.12-dfsg-2ubuntu0.2 x86 virtualization solution - kernel module sources for dkms Installed Install 4.1.12-dfsg-2ubuntu0.2 x86 virtualization solution - Qt based user interface Installed Install 2.0.5-0ubuntu0.12.04.1 multimedia player and streamer Installed Install 2.0.5-0ubuntu0.12.04.1 Common data for VLC Installed Install 2.0.5-0ubuntu0.12.04.1 multimedia player and streamer (without X support) Installed Install 2.0.5-0ubuntu0.12.04.1 LibNotify plugin for VLC Installed Install 2.0.5-0ubuntu0.12.04.1 PulseAudio plugin for VLC Installed Install 7.1-1 American English dictionary words for /usr/share/dict Installed Install 7.1-1 British English dictionary words for /usr/share/dict Installed Install 0.6.5-1 Compares two files word by word Installed Install 1.13.4-2ubuntu1 retrieves files from the web Installed Install 0.52.11-2ubuntu10 Displays user-friendly dialog boxes from shell scripts Installed Install 5.0.15ubuntu2 intelligent WHOIS client Installed Install 0.1.32 Ubuntu crash database submission daemon Installed Install 0.8-1 a program for applying patches with conflicting changes Installed Install 1.4.8-1 Platform independent Python debugger Installed Install 2011.04.28-1ubuntu3 wireless regulatory database Installed Install 30~pre9-5ubuntu2 Tools for manipulating Linux Wireless Extensions Installed Install 1.07-6 control an EWMH/NetWM compatible X Window Manager Installed Install 9:1.1.11-2ubuntu2 command line CD/DVD writing tool Installed Install 0.7.3-6ubuntu2.1 client support for WPA and WPA2 (IEEE 802.11i) Installed Install 7.7~2ubuntu1~ppa1~precise1 X applications Installed Install 1:7.6+12ubuntu2 X Window System (X.Org) infrastructure Installed Install 7.6+2 X session utilities Installed Install 7.6+4ubuntu0.1 X11 utilities Installed Install 7.6+1 X font server utilities Installed Install 7.6+4 X11 XKB utilities Installed Install 7.6+3 X server utilities Installed Install 1:0.4.2-2 X11 Composite extension wire protocol Installed Install 7.0.22-1 X11 core wire protocol and auxiliary headers Installed Install 1:1.2.1-2 X11 Damage extension wire protocol Installed Install 2.8-1~precise1 X11 DRI2 extension wire protocol Installed Install 1:5.0-2ubuntu1 X11 Fixes extension wire protocol Installed Install 1.4.16-1~precise1 X11 OpenGL extension wire protocol Installed Install 2.1.99.6-1 X11 Input extension wire protocol Installed Install 1.0.5-2 X11 XKB extension wire protocol Installed Install 1.4.0+git20120101.is.really.1.4.0-0ubuntu1~p X11 RandR extension wire protocol Installed Install 2:0.11.1-2 X11 Render extension wire protocol Installed Install 7.2.0-3 X11 various extension wire protocol Installed Install 2.3.1-2 X11 Video Mode extension wire protocol Installed Install 1.2.1-2 X11 Xinerama extension wire protocol Installed Install 1:1.0.6-1 X authentication utility Installed Install 1.5+E-18.1ubuntu1 Xaw3d widget set Installed Install 1.5+E-18.1ubuntu1 Xaw3d widget set Installed Install 3.102-3 television viewer - X11 application Installed Install 3.102-3 television viewer - plugins Installed Install 1.1.1-1 Base X bitmaps Installed Install 1.0.3-1 Base X cursor themes Installed Install 1.1.3-9build1 A diff utility which works with binary files Installed Install 0.14-0ubuntu2 tool to manage well known user directories Installed Install 0.9-0ubuntu1 tool to manage well known user directories (Gtk extension) Installed Install 1.1.0~rc1-2ubuntu6 desktop integration utilities from freedesktop.org Installed Install 2.5.2ubuntu0.1 X.org diagnosis tool Installed Install 0.4-2 interactive viewer for Graphviz dot files Installed Install 1:1.0.3 standard fonts for X Installed Install 1:1.0.4-1ubuntu1 Encodings for X.Org fonts Installed Install 4ubuntu1 Type1 Symbol font for MathML Installed Install 1:1.0.3-1 scalable fonts for X Installed Install 1:7.6+1 X Window System font utility programs Installed Install 1.3.1-1 X server initialisation tool Installed Install 1.5.99.1-0ubuntu2 Runtime configuration and test of XInput devices Installed Install 2.5-1ubuntu1.3 X Keyboard Extension (XKB) configuration data Installed Install 0.13 XML infrastructure and XML catalog file support Installed Install 1:7.6+12ubuntu2 X.Org X Window System Installed Install 1:1.6-1ubuntu2 Core documentation for the X.org X Window System Installed Install 1:1.10-1 Common tools for building X.Org SGML documentation Installed Install 2:1.11.4-0ubuntu10.8 common files used by various X servers Installed Install 1:7.6+12ubuntu2 X.Org X server Installed Install 2:1.11.4-0ubuntu10.8 Xorg X server - core server Installed Install 1:7.6+12ubuntu2 X.Org X server -- input driver metapackage Installed Install 1:2.7.0-0ubuntu1.2 X.Org X server -- evdev input driver Installed Install 1:1.7.1-1build3 X.Org X server -- mouse input driver Installed Install 1.6.2-1ubuntu1~precise2 Synaptics TouchPad driver for X.Org server Installed Install 1:12.9.0-0ubuntu0.1 X.Org X server -- VMMouse input driver to use with VMWare Installed Install 1:0.14.0-0ubuntu2.1 X.Org X server -- Wacom input driver Installed Install 1:7.6+12ubuntu2 X.Org X server -- output driver metapackage Installed Install 1:6.14.99~git20111219.aacbd629-0ubuntu2 X.Org X server -- AMD/ATI display driver wrapper Installed Install 1:1.3.2-4build1 X.Org X server -- Cirrus display driver Installed Install 1:0.4.2-4ubuntu2 X.Org X server -- fbdev display driver Installed Install 2:2.17.0-1ubuntu4.2 X.Org X server -- Intel i8xx, i9xx display driver Installed Install 6.9.0-1build2 X.Org X server -- ATI Mach64 display driver Installed Install 1:1.4.13.dfsg-4build2 X.Org X server -- MGA display driver Installed Install 1:1.2.5-2build2 X.Org X server -- Neomagic display driver Installed Install 1:0.0.16+git20111201+b5534a1-1build2 X.Org X server -- Nouveau display driver Installed Install 1:0.2.904+svn1050-1 X.Org X server -- VIA display driver Installed Install 0.0.16-2 X.Org X server -- QXL display driver Installed Install 6.8.1-5build2 X.Org X server -- ATI r128 display driver Installed Install 1:6.14.99~git20111219.aacbd629-0ubuntu2 X.Org X server -- AMD/ATI Radeon display driver Installed Install 1:0.6.3-4build2 X.Org X server -- legacy S3 display driver Installed Install 1:2.3.3-1ubuntu1 X.Org X server -- Savage display driver Installed Install 1:1.7.5-1build2 X.Org X server -- SiliconMotion display driver Installed Install 1:0.10.3-3build2 X.Org X server -- SiS display driver Installed Install 1:0.9.4-2build2 X.Org X server -- SiS USB display driver Installed Install 1:1.4.3-4build2 X.Org X server -- tdfx display driver Installed Install 1:1.3.4-2build2 X.Org X server -- Trident display driver Installed Install 1:2.3.0-7build2 X.Org X server -- VESA display driver Installed Install 1:12.0.1-1ubuntu1.1 X.Org X server -- VMware display driver Installed Install 271-1ubuntu2.1 X terminal emulator Installed Install 1.2.6-2 X transport library (development files) Installed Install 2.6-0ubuntu0.12.04.1 Ubuntu-specific configuration defaults and apt support for Firefox Installed Install 2:1.11.4-0ubuntu10.8 Virtual Framebuffer 'fake' X server Installed Install 3.0-1 software virtual keyboard for X11 Installed Install 5.1.1alpha+20110809-3 XZ-format compression utilities - compatibility commands Installed Install 5.1.1alpha+20110809-3 XZ-format compression utilities Installed Install 1.1.0-1 modular assembler with multiple syntaxes support Installed Install 3.4.1-0ubuntu1 Help browser for GNOME Installed Install 3.4.1-1 XSL stylesheets for the yelp help browser Installed Install 0.9.0-1ubuntu1 event logging framework Installed Install 0.9.0-1ubuntu1 event logging framework - engine Installed Install 0.8.2-1ubuntu2 event logging framework - passive logging daemon Installed Install 3.4.0-0ubuntu4 Display graphical dialog boxes from shell scripts Installed Install 3.4.0-0ubuntu4 Display graphical dialog boxes from shell scripts (common files) Installed Install 3.0-4 Archiver for .zip files Installed Install 1:1.2.3.4.dfsg-3ubuntu4 compression library - runtime Installed Install 1:1.2.3.4.dfsg-3ubuntu4 compression library - runtime Installed Install 1:1.2.3.4.dfsg-3ubuntu4 compression library - development http://www.example.com plainbox-0.5.3/plainbox/test-data/xml-exporter/test_dump_with_hardware_info.xml0000664000175000017500000000116712320461715030132 0ustar zygazyga00000000000000 I must not fear Fear is the mind-killer Fear is the little-death that brings total obliteration I will face my fear plainbox-0.5.3/plainbox/test-data/xml-exporter/test_dump_with_text_attachment.xml0000664000175000017500000000074312320461715030515 0ustar zygazyga00000000000000 Hello World plainbox-0.5.3/plainbox/test-data/xml-exporter/test_dump_with_binary_attachment.xml0000664000175000017500000000111012320461715031002 0ustar zygazyga00000000000000 iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAAxJREFUCNdj+M/AAAADAQEAGN2NsAAAAABJRU5ErkJggg== plainbox-0.5.3/plainbox/test-data/xml-exporter/test_dump_with_comments.xml0000664000175000017500000000141012320461715027136 0ustar zygazyga00000000000000 pass none pass fail skip foo bar 2000 plainbox-0.5.3/plainbox/test-data/xml-exporter/test_dump_with_comments.json0000664000175000017500000000034012320461715027310 0ustar zygazyga00000000000000{ "resource_map": {}, "attachment_map": {}, "result_map": { "A": { "outcome": "pass", "comments": "foo bar 2000", "plugin": "shell", "description": "foo", "io_log": "YmFy" } } } plainbox-0.5.3/plainbox/test-data/xml-exporter/test_dump_with_io_log.xml0000664000175000017500000000137712320461715026575 0ustar zygazyga00000000000000 pass none pass fail skip bar plainbox-0.5.3/plainbox/test-data/xml-exporter/test_dump_with_text_attachment.json0000664000175000017500000000014412320461715030661 0ustar zygazyga00000000000000{ "resource_map": {}, "attachment_map": { "A": "SGVsbG8gV29ybGQ=" }, "result_map": {} } plainbox-0.5.3/plainbox/test-data/xml-exporter/example-data.json0000664000175000017500000451064612320461715024731 0ustar zygazyga00000000000000{ "attachment_map": {}, "resource_map": { "2013.com.canonical.certification::cpuinfo": [ { "count": "2", "cache": "3145728", "type": "GenuineIntel", "model_revision": "10", "model_number": "6", "bogomips": "5066", "platform": "x86_64", "model_version": "23", "model": "Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz", "speed": "2534", "other": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida dtherm tpr_shadow vnmi flexpriority" } ], "2013.com.canonical.certification::requirements": [ { "name": "example", "link": "http://www.example.com" } ], "2013.com.canonical.certification::lsb": [ { "release": "12.04", "codename": "precise", "distributor_id": "Ubuntu", "description": "Ubuntu 12.04.1 LTS" } ], "2013.com.canonical.certification::package": [ { "status": "Installed", "desired": "Install", "version": "0.6.15-2ubuntu9.4", "name": "accountsservice", "description": "query and manipulate user account information" }, { "status": "Installed", "desired": "Install", "version": "2.2.51-5ubuntu1", "name": "acl", "description": "Access control list utilities" }, { "status": "Installed", "desired": "Install", "version": "1.6-1", "name": "acpi", "description": "displays information on ACPI devices" }, { "status": "Installed", "desired": "Install", "version": "0.140", "name": "acpi-support", "description": "scripts for handling many ACPI events" }, { "status": "Installed", "desired": "Install", "version": "1:2.0.10-1ubuntu3", "name": "acpid", "description": "Advanced Configuration and Power Interface event daemon" }, { "status": "Installed", "desired": "Install", "version": "20100513-3ubuntu1", "name": "acpidump", "description": "utilities to dump system's ACPI tables to an ASCII file" }, { "status": "Installed", "desired": "Install", "version": "0.5.1-3", "name": "acpitool", "description": "command line ACPI client" }, { "status": "Installed", "desired": "Install", "version": "0.9.4-0ubuntu3.2", "name": "activity-log-manager-common", "description": "blacklist configuration for Zeitgeist (assets)" }, { "status": "Installed", "desired": "Install", "version": "0.9.4-0ubuntu3.2", "name": "activity-log-manager-control-center", "description": "blacklist configuration for Zeitgeist (control center integration)" }, { "status": "Installed", "desired": "Install", "version": "3.113ubuntu2", "name": "adduser", "description": "add and remove users and groups" }, { "status": "Installed", "desired": "Install", "version": "0.3.2-0ubuntu1", "name": "adium-theme-ubuntu", "description": "Adium message style for Ubuntu" }, { "status": "Installed", "desired": "Install", "version": "1:3.2.3.2-0ubuntu1", "name": "aisleriot", "description": "Solitaire card games" }, { "status": "Installed", "desired": "Install", "version": "0.13.2-2ubuntu4", "name": "alacarte", "description": "easy GNOME menu editing tool" }, { "status": "Installed", "desired": "Install", "version": "1.0.25+dfsg-0ubuntu1", "name": "alsa-base", "description": "ALSA driver configuration files" }, { "status": "Installed", "desired": "Install", "version": "1.0.25-1ubuntu5", "name": "alsa-utils", "description": "Utilities for configuring and using ALSA" }, { "status": "Installed", "desired": "Install", "version": "2.3-14ubuntu1", "name": "anacron", "description": "cron-like program that doesn't go by time" }, { "status": "Installed", "desired": "Install", "version": "2.2.3.dfsg.1-2", "name": "apg", "description": "Automated Password Generator - Standalone version" }, { "status": "Installed", "desired": "Install", "version": "0.12.04.4", "name": "app-install-data", "description": "Ubuntu applications (data files)" }, { "status": "Installed", "desired": "Install", "version": "12.12.04.1", "name": "app-install-data-partner", "description": "Application Installer (data files for partner applications/repositories)" }, { "status": "Installed", "desired": "Install", "version": "2.7.102-0ubuntu3.7", "name": "apparmor", "description": "User-space parser utility for AppArmor" }, { "status": "Installed", "desired": "Install", "version": "0.3.92-0ubuntu1.1", "name": "appmenu-gtk", "description": "Export GTK menus over DBus" }, { "status": "Installed", "desired": "Install", "version": "0.3.92-0ubuntu1.1", "name": "appmenu-gtk3", "description": "Export GTK menus over DBus" }, { "status": "Installed", "desired": "Install", "version": "0.2.6-0ubuntu1", "name": "appmenu-qt", "description": "appmenu support for Qt" }, { "status": "Installed", "desired": "Install", "version": "2.0.1-0ubuntu17.1", "name": "apport", "description": "automatically generate crash reports for debugging" }, { "status": "Installed", "desired": "Install", "version": "2.0.1-0ubuntu17.1", "name": "apport-gtk", "description": "GTK+ frontend for the apport crash report system" }, { "status": "Installed", "desired": "Install", "version": "0.16.1", "name": "apport-symptoms", "description": "symptom scripts for apport" }, { "status": "Installed", "desired": "Install", "version": "0.8.16~exp12ubuntu10.7", "name": "apt", "description": "commandline package manager" }, { "status": "Installed", "desired": "Install", "version": "2.5.0ubuntu1", "name": "apt-file", "description": "search for files within Debian packages (command-line interface)" }, { "status": "Installed", "desired": "Install", "version": "0.8.16~exp12ubuntu10.7", "name": "apt-transport-https", "description": "https download transport for APT" }, { "status": "Installed", "desired": "Install", "version": "0.8.16~exp12ubuntu10.7", "name": "apt-utils", "description": "package managment related utility programs" }, { "status": "Installed", "desired": "Install", "version": "0.44ubuntu5", "name": "apt-xapian-index", "description": "maintenance and search tools for a Xapian index of Debian packages" }, { "status": "Installed", "desired": "Install", "version": "0.43+bzr805-0ubuntu7", "name": "aptdaemon", "description": "transaction based package management service" }, { "status": "Installed", "desired": "Install", "version": "0.43+bzr805-0ubuntu7", "name": "aptdaemon-data", "description": "data files for clients" }, { "status": "Installed", "desired": "Install", "version": "0.5.1ubuntu3", "name": "apturl", "description": "install packages using the apt protocol - GTK+ frontend" }, { "status": "Installed", "desired": "Install", "version": "0.5.1ubuntu3", "name": "apturl-common", "description": "install packages using the apt protocol - common data" }, { "status": "Installed", "desired": "Install", "version": "0.1.4-1", "name": "arandr", "description": "Simple visual front end for XRandR" }, { "status": "Installed", "desired": "Install", "version": "0.60.7~20110707-1", "name": "aspell", "description": "GNU Aspell spell-checker" }, { "status": "Installed", "desired": "Install", "version": "6.0-0-6ubuntu2", "name": "aspell-en", "description": "English dictionary for GNU Aspell" }, { "status": "Installed", "desired": "Install", "version": "3.1.13-1ubuntu1", "name": "at", "description": "Delayed job execution and batch processing" }, { "status": "Installed", "desired": "Install", "version": "2.4.2-0ubuntu0.1", "name": "at-spi2-core", "description": "Assistive Technology Service Provider Interface (dbus core)" }, { "status": "Installed", "desired": "Install", "version": "2.0.0-1ubuntu0.1", "name": "audacity", "description": "fast, cross-platform audio editor" }, { "status": "Installed", "desired": "Install", "version": "2.0.0-1ubuntu0.1", "name": "audacity-data", "description": "fast, cross-platform audio editor (data)" }, { "status": "Installed", "desired": "Install", "version": "2.68-1ubuntu2", "name": "autoconf", "description": "automatic configure script builder" }, { "status": "Installed", "desired": "Install", "version": "1:1.11.3-1ubuntu2", "name": "automake", "description": "Tool for generating GNU Standards-compliant Makefiles" }, { "status": "Installed", "desired": "Install", "version": "20120210.1ubuntu1", "name": "autotools-dev", "description": "Update infrastructure for config.{guess,sub} files" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "avahi-autoipd", "description": "Avahi IPv4LL network address configuration daemon" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "avahi-daemon", "description": "Avahi mDNS/DNS-SD daemon" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "avahi-utils", "description": "Avahi browsing, publishing and discovery utilities" }, { "status": "Installed", "desired": "Install", "version": "0.2.124.2-0ubuntu1", "name": "bamfdaemon", "description": "Window matching library - daemon" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "baobab", "description": "GNOME disk usage analyzer" }, { "status": "Installed", "desired": "Install", "version": "6.5ubuntu6.4", "name": "base-files", "description": "Debian base system miscellaneous files" }, { "status": "Installed", "desired": "Install", "version": "3.5.24", "name": "base-passwd", "description": "Debian base system master password and group files" }, { "status": "Installed", "desired": "Install", "version": "4.2-2ubuntu2", "name": "bash", "description": "GNU Bourne Again SHell" }, { "status": "Installed", "desired": "Install", "version": "1:1.3-1ubuntu8", "name": "bash-completion", "description": "programmable completion for the bash shell" }, { "status": "Installed", "desired": "Install", "version": "1.06.95-2", "name": "bc", "description": "The GNU bc arbitrary precision calculator language" }, { "status": "Installed", "desired": "Install", "version": "1:9.8.1.dfsg.P1-4ubuntu0.5", "name": "bind9-host", "description": "Version of 'host' bundled with BIND 9.X" }, { "status": "Installed", "desired": "Install", "version": "2.22-6ubuntu1", "name": "binutils", "description": "GNU assembler, linker and binary utilities" }, { "status": "Installed", "desired": "Install", "version": "1.23-0ubuntu2.1", "name": "blueman", "description": "A Graphical bluetooth manager" }, { "status": "Installed", "desired": "Install", "version": "4.98-2ubuntu7", "name": "bluez", "description": "Bluetooth tools and daemons" }, { "status": "Installed", "desired": "Install", "version": "4.98-2ubuntu7", "name": "bluez-alsa", "description": "Bluetooth ALSA support" }, { "status": "Installed", "desired": "Install", "version": "4.98-2ubuntu7", "name": "bluez-alsa:i386", "description": "Bluetooth ALSA support" }, { "status": "Installed", "desired": "Install", "version": "4.98-2ubuntu7", "name": "bluez-cups", "description": "Bluetooth printer driver for CUPS" }, { "status": "Installed", "desired": "Install", "version": "4.98-2ubuntu7", "name": "bluez-gstreamer", "description": "Bluetooth GStreamer support" }, { "status": "Installed", "desired": "Install", "version": "1.96", "name": "bonnie++", "description": "Hard drive benchmark suite." }, { "status": "Installed", "desired": "Install", "version": "0.90.2-8ubuntu1", "name": "bootchart", "description": "boot sequence auditing" }, { "status": "Installed", "desired": "Install", "version": "0.7", "name": "branding-ubuntu", "description": "Replacement artwork with Ubuntu branding" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1.1", "name": "brasero", "description": "CD/DVD burning application for GNOME" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1.1", "name": "brasero-cdrkit", "description": "cdrkit extensions for the Brasero burning application" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1.1", "name": "brasero-common", "description": "Common files for the Brasero CD burning application and library" }, { "status": "Installed", "desired": "Install", "version": "1.5-2ubuntu7", "name": "bridge-utils", "description": "Utilities for configuring the Linux Ethernet bridge" }, { "status": "Installed", "desired": "Install", "version": "4.3-1ubuntu5", "name": "brltty", "description": "Access software for a blind person using a braille display" }, { "status": "Installed", "desired": "Install", "version": "8.2.3ubuntu1", "name": "bsdmainutils", "description": "collection of more utilities from FreeBSD" }, { "status": "Installed", "desired": "Install", "version": "1:2.20.1-1ubuntu3", "name": "bsdutils", "description": "Basic utilities from 4.4BSD-Lite" }, { "status": "Installed", "desired": "Install", "version": "11.5ubuntu2.1", "name": "build-essential", "description": "Informational list of build-essential packages" }, { "status": "Installed", "desired": "Install", "version": "1:1.18.5-1ubuntu4.1", "name": "busybox-initramfs", "description": "Standalone shell setup for initramfs" }, { "status": "Installed", "desired": "Install", "version": "1:1.18.5-1ubuntu4.1", "name": "busybox-static", "description": "Standalone rescue shell with tons of builtin utilities" }, { "status": "Installed", "desired": "Install", "version": "5.17-0ubuntu1", "name": "byobu", "description": "powerful, text based window manager and shell multiplexer" }, { "status": "Installed", "desired": "Install", "version": "1.0.6-1", "name": "bzip2", "description": "high-quality block-sorting file compressor - utilities" }, { "status": "Installed", "desired": "Install", "version": "2.5.1-0ubuntu2", "name": "bzr", "description": "easy to use distributed version control system" }, { "status": "Installed", "desired": "Install", "version": "2.8.4", "name": "bzr-builddeb", "description": "bzr plugin for Debian package management" }, { "status": "Installed", "desired": "Install", "version": "0.7.2-0ubuntu1", "name": "bzr-builder", "description": "construct a bzr branch from a recipe" }, { "status": "Installed", "desired": "Install", "version": "1.2.2-1", "name": "bzr-explorer", "description": "GUI application for using Bazaar" }, { "status": "Installed", "desired": "Install", "version": "0.13.0-1", "name": "bzr-fastimport", "description": "Fast-import/fast-export plugin for Bazaar" }, { "status": "Installed", "desired": "Install", "version": "20111211", "name": "ca-certificates", "description": "Common CA certificates" }, { "status": "Installed", "desired": "Install", "version": "20110912ubuntu6", "name": "ca-certificates-java", "description": "Common CA certificates (JKS keystore)" }, { "status": "Installed", "desired": "Install", "version": "0.4.100ubuntu2", "name": "cdbs", "description": "common build system for Debian packages" }, { "status": "Installed", "desired": "Install", "version": "1.1.2", "name": "cgroup-lite", "description": "Light-weight package to set up cgroups at system boot" }, { "status": "Installed", "desired": "Install", "version": "0.3+bzr167-3~precise1", "name": "charm-tools", "description": "tools for maintaining Juju charms" }, { "status": "Installed", "desired": "Install", "version": "0.15.1+bzr1894+201301181105~precise1", "name": "checkbox", "description": "System testing application" }, { "status": "Installed", "desired": "Install", "version": "0.15+bzr563+201301171917~precise1", "name": "checkbox-certification", "description": "Checkbox Certification Tests" }, { "status": "Installed", "desired": "Install", "version": "0.15+bzr563+201301171917~precise1", "name": "checkbox-certification-client", "description": "Client Certification" }, { "status": "Installed", "desired": "Install", "version": "0.15+bzr563+201301171917~precise1", "name": "checkbox-certification-tools", "description": "Checkbox Certification Tools" }, { "status": "Installed", "desired": "Install", "version": "0.15.1+bzr1894+201301181105~precise1", "name": "checkbox-cli", "description": "Command line interface for checkbox" }, { "status": "Installed", "desired": "Install", "version": "0.10-0precise1~rev150", "name": "checkbox-editor", "description": "Checkbox Editor" }, { "status": "Installed", "desired": "Install", "version": "0.2-0precise1~rev19", "name": "checkbox-editor-oem-template", "description": "Checkbox editor template for OEM projects" }, { "status": "Installed", "desired": "Install", "version": "0.15.1+bzr1894+201301181105~precise1", "name": "checkbox-gtk", "description": "GTK interface for checkbox" }, { "status": "Installed", "desired": "Install", "version": "0.2", "name": "checkbox-ihv", "description": "Canonical hardware testing suite." }, { "status": "Installed", "desired": "Install", "version": "0.2", "name": "checkbox-ihv-cli", "description": "Canonical hardware testing suite - cli version." }, { "status": "Installed", "desired": "Install", "version": "0.2", "name": "checkbox-ihv-qt", "description": "Canonical hardware testing suite - qt version." }, { "status": "Installed", "desired": "Install", "version": "0.45-0-precise1~rev614", "name": "checkbox-oem", "description": "Checkbox OEM Tests" }, { "status": "Installed", "desired": "Install", "version": "1.0-2-precise1~rev4", "name": "checkbox-oem-bug", "description": "Checkbox OEM bug" }, { "status": "Installed", "desired": "Install", "version": "0.45-0-precise1~rev614", "name": "checkbox-oem-gtk", "description": "Checkbox OEM GTK Interface" }, { "status": "Installed", "desired": "Install", "version": "0.45-0-precise1~rev614", "name": "checkbox-oem-qt", "description": "Checkbox OEM Qt Interface" }, { "status": "Installed", "desired": "Install", "version": "0.1-1precise1~rev18ubuntu1", "name": "checkbox-oem-stella", "description": "stella System Testing" }, { "status": "Installed", "desired": "Install", "version": "0.1-1precise1~rev18ubuntu1", "name": "checkbox-oem-stella-gtk", "description": "Checkbox stella GTK Interface" }, { "status": "Installed", "desired": "Install", "version": "0.15.1+bzr1894+201301181105~precise1", "name": "checkbox-qt", "description": "QT4 interface for checkbox" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu2.1", "name": "cheese", "description": "tool to take pictures and videos from your webcam" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu2.1", "name": "cheese-common", "description": "Common files for the Cheese tool to take pictures and videos" }, { "status": "Installed", "desired": "Install", "version": "0.25-0ubuntu5", "name": "cloud-utils", "description": "cloud image management utilities" }, { "status": "Installed", "desired": "Install", "version": "0+20090930-2", "name": "cmap-adobe-japan2", "description": "CMaps for Adobe-Japan2" }, { "status": "Installed", "desired": "Install", "version": "0.1.16-2ubuntu0.1", "name": "colord", "description": "system service to manage device colour profiles -- system daemon" }, { "status": "Installed", "desired": "Install", "version": "0.2.46ubuntu6", "name": "command-not-found", "description": "Suggest installation of packages in interactive bash sessions" }, { "status": "Installed", "desired": "Install", "version": "0.2.46ubuntu6", "name": "command-not-found-data", "description": "Set of data files for command-not-found." }, { "status": "Installed", "desired": "Install", "version": "1:0.9.7.12-0ubuntu1", "name": "compiz", "description": "OpenGL window and compositing manager" }, { "status": "Installed", "desired": "Install", "version": "1:0.9.7.12-0ubuntu1", "name": "compiz-core", "description": "OpenGL window and compositing manager" }, { "status": "Installed", "desired": "Install", "version": "1:0.9.7.12-0ubuntu1", "name": "compiz-gnome", "description": "OpenGL window and compositing manager - GNOME window decorator" }, { "status": "Installed", "desired": "Install", "version": "1:0.9.7.12-0ubuntu1", "name": "compiz-plugins", "description": "OpenGL window and compositing manager - plugins" }, { "status": "Installed", "desired": "Install", "version": "1:0.9.7.12-0ubuntu1", "name": "compiz-plugins-default", "description": "OpenGL window and compositing manager - default plugins" }, { "status": "Installed", "desired": "Install", "version": "1:0.9.7.0~bzr19-0ubuntu10", "name": "compiz-plugins-main", "description": "Compiz plugins - main collection" }, { "status": "Installed", "desired": "Install", "version": "1:0.9.7.0~bzr19-0ubuntu10", "name": "compiz-plugins-main-default", "description": "Compiz plugins - main default collection" }, { "status": "Installed", "desired": "Install", "version": "0.9.5.92-0ubuntu5", "name": "compizconfig-backend-gconf", "description": "Compiz Fusion configuration system - gconf backend" }, { "status": "Installed", "desired": "Install", "version": "0.9.5.92-0ubuntu3", "name": "compizconfig-settings-manager", "description": "Compiz configuration settings manager" }, { "status": "Installed", "desired": "Install", "version": "1.70ubuntu5", "name": "console-setup", "description": "console font and keymap setup program" }, { "status": "Installed", "desired": "Install", "version": "0.4.5-2", "name": "consolekit", "description": "framework for defining and tracking users, sessions and seats" }, { "status": "Installed", "desired": "Install", "version": "8.13-3ubuntu3.2", "name": "coreutils", "description": "GNU core utilities" }, { "status": "Installed", "desired": "Install", "version": "2.11-7ubuntu3", "name": "cpio", "description": "GNU cpio -- a program to manage archives of files" }, { "status": "Installed", "desired": "Install", "version": "4:4.6.3-1ubuntu5", "name": "cpp", "description": "GNU C preprocessor (cpp)" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-1ubuntu5", "name": "cpp-4.6", "description": "GNU C preprocessor" }, { "status": "Installed", "desired": "Install", "version": "0.7-0ubuntu1", "name": "cpu-checker", "description": "tools to help evaluate certain CPU (or BIOS) features" }, { "status": "Installed", "desired": "Install", "version": "1.1.2-1ubuntu1", "name": "crda", "description": "wireless Central Regulatory Domain Agent" }, { "status": "Installed", "desired": "Install", "version": "3.0pl1-120ubuntu4", "name": "cron", "description": "process scheduling daemon" }, { "status": "Installed", "desired": "Install", "version": "2:1.4.1-2ubuntu4", "name": "cryptsetup-bin", "description": "disk encryption support - command line tools" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "cups", "description": "Common UNIX Printing System(tm) - server" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "cups-bsd", "description": "Common UNIX Printing System(tm) - BSD commands" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "cups-client", "description": "Common UNIX Printing System(tm) - client programs (SysV)" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "cups-common", "description": "Common UNIX Printing System(tm) - common files" }, { "status": "Installed", "desired": "Install", "version": "1.0.18-0ubuntu0.1", "name": "cups-filters", "description": "OpenPrinting CUPS Filters" }, { "status": "Installed", "desired": "Install", "version": "0.2.1.2-1ubuntu0.1", "name": "cups-pk-helper", "description": "PolicyKit helper to configure cups with fine-grained privileges" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "cups-ppdc", "description": "Common UNIX Printing System(tm) - PPD manipulation utilities" }, { "status": "Installed", "desired": "Install", "version": "7.22.0-3ubuntu4", "name": "curl", "description": "Get a file from an HTTP, HTTPS or FTP server" }, { "status": "Installed", "desired": "Install", "version": "2:1.12.13+real-8", "name": "cvs", "description": "Concurrent Versions System" }, { "status": "Installed", "desired": "Install", "version": "0.15.1-1ubuntu1", "name": "cython", "description": "C-Extensions for Python" }, { "status": "Installed", "desired": "Install", "version": "0.5.7-2ubuntu2", "name": "dash", "description": "POSIX-compliant shell" }, { "status": "Installed", "desired": "Install", "version": "1.4.18-1ubuntu1.3", "name": "dbus", "description": "simple interprocess messaging system (daemon and utilities)" }, { "status": "Installed", "desired": "Install", "version": "1.4.18-1ubuntu1.3", "name": "dbus-x11", "description": "simple interprocess messaging system (X11 deps)" }, { "status": "Installed", "desired": "Install", "version": "1.06.95-2", "name": "dc", "description": "The GNU dc arbitrary precision reverse-polish calculator" }, { "status": "Installed", "desired": "Install", "version": "0.12.0-0ubuntu1.1", "name": "dconf-gsettings-backend", "description": "simple configuration storage system - GSettings back-end" }, { "status": "Installed", "desired": "Install", "version": "0.12.0-0ubuntu1.1", "name": "dconf-service", "description": "simple configuration storage system - D-Bus service" }, { "status": "Installed", "desired": "Install", "version": "0.12.0-0ubuntu1.1", "name": "dconf-tools", "description": "simple configuration storage system - utilities" }, { "status": "Installed", "desired": "Install", "version": "2.18ubuntu1", "name": "dctrl-tools", "description": "Command-line tools to process Debian package information" }, { "status": "Installed", "desired": "Install", "version": "1.5.42ubuntu1", "name": "debconf", "description": "Debian configuration management system" }, { "status": "Installed", "desired": "Install", "version": "1.5.42ubuntu1", "name": "debconf-i18n", "description": "full internationalization support for debconf" }, { "status": "Installed", "desired": "Install", "version": "9.20120115ubuntu3", "name": "debhelper", "description": "helper programs for debian/rules" }, { "status": "Installed", "desired": "Install", "version": "2010.08.28", "name": "debian-archive-keyring", "description": "GnuPG archive keys of the Debian archive" }, { "status": "Installed", "desired": "Install", "version": "2012.02.22", "name": "debian-keyring", "description": "GnuPG keys of Debian Developers" }, { "status": "Installed", "desired": "Install", "version": "4.2.1ubuntu2", "name": "debianutils", "description": "Miscellaneous utilities specific to Debian" }, { "status": "Installed", "desired": "Install", "version": "1.0.39ubuntu0.2", "name": "debootstrap", "description": "Bootstrap a basic Debian system" }, { "status": "Installed", "desired": "Install", "version": "22.0-0ubuntu2", "name": "deja-dup", "description": "Back up your files" }, { "status": "Installed", "desired": "Install", "version": "0.20-0ubuntu3", "name": "desktop-file-utils", "description": "Utilities for .desktop files" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "devhelp", "description": "GNOME developers help program" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "devhelp-common", "description": "Common files for devhelp and its library" }, { "status": "Installed", "desired": "Install", "version": "2.11.6ubuntu1.4", "name": "devscripts", "description": "scripts to make the life of a Debian Package maintainer easier" }, { "status": "Installed", "desired": "Install", "version": "2.7.102-0ubuntu3.7", "name": "dh-apparmor", "description": "AppArmor debhelper routines" }, { "status": "Installed", "desired": "Install", "version": "0.59ubuntu1", "name": "dh-make", "description": "tool that converts source archives into Debian package source" }, { "status": "Installed", "desired": "Install", "version": "116", "name": "dh-translations", "description": "debhelper extension for translation support" }, { "status": "Installed", "desired": "Install", "version": "0.97.2-5", "name": "dia-common", "description": "Diagram editor (common files)" }, { "status": "Installed", "desired": "Install", "version": "0.97.2-5", "name": "dia-gnome", "description": "Diagram editor (GNOME version)" }, { "status": "Installed", "desired": "Install", "version": "0.97.2-5", "name": "dia-libs", "description": "Diagram editor (library files)" }, { "status": "Installed", "desired": "Install", "version": "1.12.1ubuntu2", "name": "dictionaries-common", "description": "Common utilities for spelling dictionary tools" }, { "status": "Installed", "desired": "Install", "version": "1.54-1", "name": "diffstat", "description": "produces graph of changes introduced by a diff file" }, { "status": "Installed", "desired": "Install", "version": "1:3.2-1ubuntu1", "name": "diffutils", "description": "File comparison utilities" }, { "status": "Installed", "desired": "Install", "version": "0.8.2", "name": "distro-info", "description": "provides information about the distributions' releases" }, { "status": "Installed", "desired": "Install", "version": "0.8ubuntu0.2", "name": "distro-info-data", "description": "information about the distributions' releases (data files)" }, { "status": "Installed", "desired": "Install", "version": "2.2.0.3-1ubuntu3.1", "name": "dkms", "description": "Dynamic Kernel Module Support Framework" }, { "status": "Installed", "desired": "Install", "version": "2.11-4", "name": "dmidecode", "description": "SMBIOS/DMI table decoder" }, { "status": "Installed", "desired": "Install", "version": "2:1.02.48-4ubuntu7.1", "name": "dmsetup", "description": "The Linux Kernel Device Mapper userspace library" }, { "status": "Installed", "desired": "Install", "version": "0.4.3", "name": "dmz-cursor-theme", "description": "Style neutral, scalable cursor theme" }, { "status": "Installed", "desired": "Install", "version": "2.59-4", "name": "dnsmasq-base", "description": "Small caching DNS proxy and DHCP/TFTP server" }, { "status": "Installed", "desired": "Install", "version": "1:9.8.1.dfsg.P1-4ubuntu0.5", "name": "dnsutils", "description": "Clients provided with BIND" }, { "status": "Installed", "desired": "Install", "version": "0.10.3", "name": "doc-base", "description": "utilities to manage online documentation" }, { "status": "Installed", "desired": "Install", "version": "4.5-7ubuntu1", "name": "docbook-xml", "description": "standard XML documentation system for software and systems" }, { "status": "Installed", "desired": "Install", "version": "1.76.1+dfsg-1ubuntu1", "name": "docbook-xsl", "description": "stylesheets for processing DocBook XML to various output formats" }, { "status": "Installed", "desired": "Install", "version": "0.12-0ubuntu1~rev479~precise1", "name": "doit", "description": "Automation Tool" }, { "status": "Installed", "desired": "Install", "version": "3.0.12-1ubuntu1", "name": "dosfstools", "description": "utilities for making and checking MS-DOS FAT filesystems" }, { "status": "Installed", "desired": "Install", "version": "1.16.1.2ubuntu7.1", "name": "dpkg", "description": "Debian package management system" }, { "status": "Installed", "desired": "Install", "version": "1.16.1.2ubuntu7.1", "name": "dpkg-dev", "description": "Debian package development tools" }, { "status": "Installed", "desired": "Install", "version": "0.9.6.2ubuntu1", "name": "dput", "description": "Debian package upload tool" }, { "status": "Installed", "desired": "Install", "version": "0.6.1+repack-1", "name": "drobo-utils", "description": "manage data robotics storage units (drobos)" }, { "status": "Installed", "desired": "Install", "version": "0.6.18-0ubuntu3.1", "name": "duplicity", "description": "encrypted bandwidth-efficient backup" }, { "status": "Installed", "desired": "Install", "version": "7.1-10", "name": "dvd+rw-tools", "description": "DVD+-RW/R tools" }, { "status": "Installed", "desired": "Install", "version": "1.42-1ubuntu2", "name": "e2fslibs", "description": "ext2/ext3/ext4 file system libraries" }, { "status": "Installed", "desired": "Install", "version": "1.42-1ubuntu2", "name": "e2fsprogs", "description": "ext2/ext3/ext4 file system utilities" }, { "status": "Installed", "desired": "Install", "version": "2.0.9.2-2ubuntu2", "name": "ebtables", "description": "Ethernet bridge frame table administration" }, { "status": "Installed", "desired": "Install", "version": "1.5-3", "name": "ed", "description": "classic UNIX line editor" }, { "status": "Installed", "desired": "Install", "version": "2.1.5+deb1+cvs20081104-9", "name": "eject", "description": "ejects CDs and operates CD-Changers under Linux" }, { "status": "Installed", "desired": "Install", "version": "3.4.2.3-0ubuntu1", "name": "empathy", "description": "GNOME multi-protocol chat and call client" }, { "status": "Installed", "desired": "Install", "version": "3.4.2.3-0ubuntu1", "name": "empathy-common", "description": "GNOME multi-protocol chat and call client (common files)" }, { "status": "Installed", "desired": "Install", "version": "1.6.0-7", "name": "enchant", "description": "Wrapper for various spell checker engines (binary programs)" }, { "status": "Installed", "desired": "Install", "version": "2:1.4.6-0ubuntu0.12.04.1", "name": "enigmail", "description": "GPG support for Thunderbird and Debian Icedove" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu1.1", "name": "eog", "description": "Eye of GNOME graphics viewer program" }, { "status": "Installed", "desired": "Install", "version": "0.2.41-10build3", "name": "esound-common", "description": "Enlightened Sound Daemon - Common files" }, { "status": "Installed", "desired": "Install", "version": "1.46.02-0ubuntu1", "name": "espeak", "description": "Multi-lingual software speech synthesizer" }, { "status": "Installed", "desired": "Install", "version": "1.46.02-0ubuntu1", "name": "espeak-data", "description": "Multi-lingual software speech synthesizer: speech data files" }, { "status": "Installed", "desired": "Install", "version": "1:3.1-1", "name": "ethtool", "description": "display or change Ethernet device settings" }, { "status": "Installed", "desired": "Install", "version": "2.0.0~bzr516-0ubuntu3.1", "name": "euca2ools", "description": "managing cloud instances for Eucalyptus" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1.4", "name": "evince", "description": "Document (PostScript, PDF) viewer" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1.4", "name": "evince-common", "description": "Document (PostScript, PDF) viewer - common files" }, { "status": "Installed", "desired": "Install", "version": "2.0.2", "name": "evoluspencil", "description": "Evolus Pencil" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu7", "name": "evolution-data-server", "description": "evolution database backend server" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu7", "name": "evolution-data-server-common", "description": "architecture independent files for Evolution Data Server" }, { "status": "Installed", "desired": "Install", "version": "46", "name": "example-content", "description": "Ubuntu example content" }, { "status": "Installed", "desired": "Install", "version": "1.3.2-5", "name": "fabric", "description": "Simple Pythonic remote deployment tool" }, { "status": "Installed", "desired": "Install", "version": "1.18.2-1", "name": "fakeroot", "description": "tool for simulating superuser privileges" }, { "status": "Installed", "desired": "Install", "version": "4:0.8.4-0ubuntu0.12.04.1", "name": "ffmpeg", "description": "Multimedia player, server, encoder and transcoder (transitional package)" }, { "status": "Installed", "desired": "Install", "version": "5.09-2", "name": "file", "description": "Determines file type using \"magic\" numbers" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "file-roller", "description": "archive manager for GNOME" }, { "status": "Installed", "desired": "Install", "version": "4.4.2-4ubuntu1", "name": "findutils", "description": "utilities for finding files--find, xargs" }, { "status": "Installed", "desired": "Install", "version": "18.0.1+build1-0ubuntu0.12.04.1", "name": "firefox", "description": "Safe and easy web browser from Mozilla" }, { "status": "Installed", "desired": "Install", "version": "18.0.1+build1-0ubuntu0.12.04.1", "name": "firefox-globalmenu", "description": "Unity appmenu integration for Firefox" }, { "status": "Installed", "desired": "Install", "version": "18.0.1+build1-0ubuntu0.12.04.1", "name": "firefox-gnome-support", "description": "Safe and easy web browser from Mozilla - GNOME support" }, { "status": "Installed", "desired": "Install", "version": "0.4", "name": "firefox-launchpad-plugin", "description": "Launchpad firefox integration" }, { "status": "Installed", "desired": "Install", "version": "18.0.1+build1-0ubuntu0.12.04.1", "name": "firefox-locale-en", "description": "English language pack for Firefox" }, { "status": "Installed", "desired": "Install", "version": "11.2.202.261ubuntu0.12.04.1", "name": "flashplugin-installer", "description": "Adobe Flash Player plugin installer" }, { "status": "Installed", "desired": "Install", "version": "2.5.35-10ubuntu3", "name": "flex", "description": "A fast lexical analyzer generator." }, { "status": "Installed", "desired": "Install", "version": "0.6.8-2", "name": "folks-common", "description": "library to aggregates people into metacontacts (common files)" }, { "status": "Installed", "desired": "Install", "version": "2.8.0-3ubuntu9.1", "name": "fontconfig", "description": "generic font configuration library - support binaries" }, { "status": "Installed", "desired": "Install", "version": "2.8.0-3ubuntu9.1", "name": "fontconfig-config", "description": "generic font configuration library - configuration" }, { "status": "Installed", "desired": "Install", "version": "2.01+mry-3", "name": "fonts-kacst", "description": "KACST free TrueType Arabic fonts" }, { "status": "Installed", "desired": "Install", "version": "5.0+svn11846-2", "name": "fonts-kacst-one", "description": "TrueType font designed for Arabic language" }, { "status": "Installed", "desired": "Install", "version": "5.0-5ubuntu1", "name": "fonts-khmeros-core", "description": "KhmerOS Unicode fonts for the Khmer language of Cambodia" }, { "status": "Installed", "desired": "Install", "version": "0.0.20060226-8", "name": "fonts-lao", "description": "TrueType font for Lao language" }, { "status": "Installed", "desired": "Install", "version": "1.07.0-2ubuntu0.1", "name": "fonts-liberation", "description": "Fonts with the same metrics as Times, Arial and Courier" }, { "status": "Installed", "desired": "Install", "version": "3.010-2", "name": "fonts-nanum", "description": "Nanum Korean fonts" }, { "status": "Installed", "desired": "Install", "version": "2:102.2+LibO3.5.4-0ubuntu1.1", "name": "fonts-opensymbol", "description": "OpenSymbol TrueType font" }, { "status": "Installed", "desired": "Install", "version": "003.02.01-5ubuntu1", "name": "fonts-takao-pgothic", "description": "Japanese TrueType font set, Takao P Gothic Fonts" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-thai-tlwg", "description": "Thai fonts maintained by TLWG (meta package)" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-tlwg-garuda", "description": "Thai Garuda font" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-tlwg-kinnari", "description": "Thai Kinnari font" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-tlwg-loma", "description": "Thai Loma font" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-tlwg-mono", "description": "Thai TlwgMono font" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-tlwg-norasi", "description": "Thai Norasi font" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-tlwg-purisa", "description": "Thai Purisa font" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-tlwg-sawasdee", "description": "Thai Sawasdee font" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-tlwg-typewriter", "description": "Thai TlwgTypewriter font" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-tlwg-typist", "description": "Thai TlwgTypist font" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-tlwg-typo", "description": "Thai TlwgTypo font" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-tlwg-umpush", "description": "Thai Umpush font" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.17-1ubuntu1", "name": "fonts-tlwg-waree", "description": "Thai Waree font" }, { "status": "Installed", "desired": "Install", "version": "20120322-0ubuntu1", "name": "foomatic-db-compressed-ppds", "description": "OpenPrinting printer support - Compressed PPDs derived from the database" }, { "status": "Installed", "desired": "Install", "version": "4.0.8-2ubuntu1", "name": "foomatic-db-engine", "description": "OpenPrinting printer support - programs" }, { "status": "Installed", "desired": "Install", "version": "4.0.16-0ubuntu0.2", "name": "foomatic-filters", "description": "OpenPrinting printer support - filters" }, { "status": "Installed", "desired": "Install", "version": "2.6.0-1ubuntu3", "name": "freeglut3", "description": "OpenGL Utility Toolkit" }, { "status": "Installed", "desired": "Install", "version": "2.6.0-1ubuntu3", "name": "freeglut3-dev", "description": "OpenGL Utility Toolkit development files" }, { "status": "Installed", "desired": "Install", "version": "20060219-1", "name": "freepats", "description": "Free patch set for MIDI audio synthesis" }, { "status": "Installed", "desired": "Install", "version": "0.2.25", "name": "friendly-recovery", "description": "Make recovery more user-friendly" }, { "status": "Installed", "desired": "Install", "version": "20101118-2", "name": "fswebcam", "description": "Tiny and flexible webcam program" }, { "status": "Installed", "desired": "Install", "version": "0.17-25", "name": "ftp", "description": "classical file transfer client" }, { "status": "Installed", "desired": "Install", "version": "2.8.6-2ubuntu2", "name": "fuse", "description": "Filesystem in Userspace" }, { "status": "Installed", "desired": "Install", "version": "0.25.06precise1", "name": "fwts", "description": "FirmWare Test Suite" }, { "status": "Installed", "desired": "Install", "version": "4:4.6.3-1ubuntu5", "name": "g++", "description": "GNU C++ compiler" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-1ubuntu5", "name": "g++-4.6", "description": "GNU C++ compiler" }, { "status": "Installed", "desired": "Install", "version": "1:3.1.8+dfsg-0.1ubuntu1", "name": "gawk", "description": "GNU awk, a pattern scanning and processing language" }, { "status": "Installed", "desired": "Install", "version": "6.4.1.1-0ubuntu3", "name": "gcalctool", "description": "GNOME desktop calculator" }, { "status": "Installed", "desired": "Install", "version": "4:4.6.3-1ubuntu5", "name": "gcc", "description": "GNU C compiler" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-1ubuntu5", "name": "gcc-4.6", "description": "GNU C compiler" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-1ubuntu5", "name": "gcc-4.6-base", "description": "GCC, the GNU Compiler Collection (base package)" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-1ubuntu5", "name": "gcc-4.6-base:i386", "description": "GCC, the GNU Compiler Collection (base package)" }, { "status": "Installed", "desired": "Install", "version": "3.2.5-0ubuntu2", "name": "gconf-defaults-service", "description": "GNOME configuration database system (system defaults service)" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-1ubuntu2", "name": "gconf-editor", "description": "editor for the GConf configuration system" }, { "status": "Installed", "desired": "Install", "version": "3.2.5-0ubuntu2", "name": "gconf-service", "description": "GNOME configuration database system (D-Bus service)" }, { "status": "Installed", "desired": "Install", "version": "3.2.5-0ubuntu2", "name": "gconf-service-backend", "description": "GNOME configuration database system (D-Bus service)" }, { "status": "Installed", "desired": "Install", "version": "3.2.5-0ubuntu2", "name": "gconf2", "description": "GNOME configuration database system (support tools)" }, { "status": "Installed", "desired": "Install", "version": "3.2.5-0ubuntu2", "name": "gconf2-common", "description": "GNOME configuration database system (common files)" }, { "status": "Installed", "desired": "Install", "version": "7.4-2012.04-0ubuntu2.1", "name": "gdb", "description": "The GNU Debugger" }, { "status": "Installed", "desired": "Install", "version": "0.8.5build1", "name": "gdebi", "description": "simple tool to install deb files - GNOME GUI" }, { "status": "Installed", "desired": "Install", "version": "0.8.5build1", "name": "gdebi-core", "description": "simple tool to install deb files" }, { "status": "Installed", "desired": "Install", "version": "0.21.dfsg-1ubuntu4", "name": "geany", "description": "fast and lightweight IDE" }, { "status": "Installed", "desired": "Install", "version": "0.21.dfsg-1ubuntu4", "name": "geany-common", "description": "fast and lightweight IDE -- common files" }, { "status": "Installed", "desired": "Install", "version": "0.21.1.dfsg-2", "name": "geany-plugin-treebrowser", "description": "tree browser plugin for Geany" }, { "status": "Installed", "desired": "Install", "version": "0.21.1.dfsg-2", "name": "geany-plugins-common", "description": "set of plugins for Geany (translations)" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "gedit", "description": "official text editor of the GNOME desktop environment" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "gedit-common", "description": "official text editor of the GNOME desktop environment (support files)" }, { "status": "Installed", "desired": "Install", "version": "9:1.1.11-2ubuntu2", "name": "genisoimage", "description": "Creates ISO-9660 CD-ROM filesystem images" }, { "status": "Installed", "desired": "Install", "version": "0.12.0-1ubuntu12", "name": "geoclue", "description": "Geographic information framework" }, { "status": "Installed", "desired": "Install", "version": "0.0.2-0ubuntu6", "name": "geoclue-ubuntu-geoip", "description": "Provide positioning for GeoClue via Ubuntu GeoIP services" }, { "status": "Installed", "desired": "Install", "version": "20111220-1", "name": "geoip-database", "description": "IP lookup command line tools that use the GeoIP library (country database)" }, { "status": "Installed", "desired": "Install", "version": "0.18.1.1-5ubuntu3", "name": "gettext", "description": "GNU Internationalization utilities" }, { "status": "Installed", "desired": "Install", "version": "0.18.1.1-5ubuntu3", "name": "gettext-base", "description": "GNU Internationalization utilities for the base system" }, { "status": "Installed", "desired": "Install", "version": "9.05~dfsg-0ubuntu4.2", "name": "ghostscript", "description": "interpreter for the PostScript language and for PDF" }, { "status": "Installed", "desired": "Install", "version": "9.05~dfsg-0ubuntu4.2", "name": "ghostscript-cups", "description": "interpreter for the PostScript language and for PDF - CUPS filters" }, { "status": "Installed", "desired": "Install", "version": "9.05~dfsg-0ubuntu4.2", "name": "ghostscript-x", "description": "interpreter for the PostScript language and for PDF - X11 support" }, { "status": "Installed", "desired": "Install", "version": "2.6.12-1ubuntu1.2", "name": "gimp", "description": "The GNU Image Manipulation Program" }, { "status": "Installed", "desired": "Install", "version": "2.6.12-1ubuntu1.2", "name": "gimp-data", "description": "Data files for GIMP" }, { "status": "Installed", "desired": "Install", "version": "0.2.4.1-0ubuntu1", "name": "ginn", "description": "Gesture Injector: No-GEIS, No-Toolkits" }, { "status": "Installed", "desired": "Install", "version": "0.6.15-2ubuntu9.4", "name": "gir1.2-accountsservice-1.0", "description": "GObject introspection data for AccountService" }, { "status": "Installed", "desired": "Install", "version": "0.4.92-0ubuntu1", "name": "gir1.2-appindicator3-0.1", "description": "Typelib files for libappindicator3-1." }, { "status": "Installed", "desired": "Install", "version": "2.4.0-0ubuntu1", "name": "gir1.2-atk-1.0", "description": "ATK accessibility toolkit (GObject introspection)" }, { "status": "Installed", "desired": "Install", "version": "2.4.2-0ubuntu0.1", "name": "gir1.2-atspi-2.0", "description": "Assistive Technology Service Provider (GObject introspection)" }, { "status": "Installed", "desired": "Install", "version": "0.4.2-1ubuntu1", "name": "gir1.2-caribou-1.0", "description": "GObject introspection for the Caribou library" }, { "status": "Installed", "desired": "Install", "version": "1.10.6-1~precise1", "name": "gir1.2-clutter-1.0", "description": "GObject introspection data for the Clutter 1.0 library" }, { "status": "Installed", "desired": "Install", "version": "1.10.0-0ubuntu2", "name": "gir1.2-cogl-1.0", "description": "GObject introspection data for the Cogl 1.0 library" }, { "status": "Installed", "desired": "Install", "version": "1.10.0-0ubuntu2", "name": "gir1.2-coglpango-1.0", "description": "GObject introspection data for the CoglPango 1.0 library" }, { "status": "Installed", "desired": "Install", "version": "0.6.2-0ubuntu0.1", "name": "gir1.2-dbusmenu-glib-0.4", "description": "typelib file for libdbusmenu-glib4" }, { "status": "Installed", "desired": "Install", "version": "0.6.2-0ubuntu0.1", "name": "gir1.2-dbusmenu-gtk-0.4", "description": "typelib file for libdbusmenu-gtk4" }, { "status": "Installed", "desired": "Install", "version": "1.0.10-0ubuntu1", "name": "gir1.2-dee-1.0", "description": "GObject introspection data for the Dee library" }, { "status": "Installed", "desired": "Install", "version": "0.6.8-2", "name": "gir1.2-folks-0.6", "description": "library to aggregates people into metacontacts - GObject-Introspection" }, { "status": "Installed", "desired": "Install", "version": "1.32.0-1", "name": "gir1.2-freedesktop", "description": "Introspection data for some FreeDesktop components" }, { "status": "Installed", "desired": "Install", "version": "3.2.5-0ubuntu2", "name": "gir1.2-gconf-2.0", "description": "GNOME configuration database system (GObject-Introspection)" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "gir1.2-gdesktopenums-3.0", "description": "GObject introspection for GSettings desktop-wide schemas" }, { "status": "Installed", "desired": "Install", "version": "2.26.1-1", "name": "gir1.2-gdkpixbuf-2.0", "description": "GDK Pixbuf library - GObject-Introspection" }, { "status": "Installed", "desired": "Install", "version": "0.6.4-1", "name": "gir1.2-gee-1.0", "description": "GLib Telepathy connection manager library (GObject-Introspection)" }, { "status": "Installed", "desired": "Install", "version": "1.32.0-1ubuntu1", "name": "gir1.2-gjsdbus-1.0", "description": "GObject introspection data for GJS" }, { "status": "Installed", "desired": "Install", "version": "3.4.0.2-1", "name": "gir1.2-gkbd-3.0", "description": "GObject introspection data for the GnomeKbd library" }, { "status": "Installed", "desired": "Install", "version": "1.32.0-1", "name": "gir1.2-glib-2.0", "description": "Introspection data for GLib, GObject, Gio and GModule" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1", "name": "gir1.2-gmenu-3.0", "description": "GObject introspection data for the GNOME menu library" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-0ubuntu5", "name": "gir1.2-gnomebluetooth-1.0", "description": "Introspection data for GnomeBluetooth" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-2", "name": "gir1.2-gnomekeyring-1.0", "description": "GNOME keyring services library - introspection data" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu0.1", "name": "gir1.2-gst-plugins-base-0.10", "description": "Description: GObject introspection data for the GStreamer Plugins Base library" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu1", "name": "gir1.2-gstreamer-0.10", "description": "Description: GObject introspection data for the GStreamer library" }, { "status": "Installed", "desired": "Install", "version": "2.24.10-0ubuntu6", "name": "gir1.2-gtk-2.0", "description": "GTK+ graphical user interface library -- gir bindings" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu0.5", "name": "gir1.2-gtk-3.0", "description": "GTK+ graphical user interface library -- gir bindings" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu1", "name": "gir1.2-gtksource-3.0", "description": "gir files for the GTK+ syntax highlighting widget" }, { "status": "Installed", "desired": "Install", "version": "175-0ubuntu9.2", "name": "gir1.2-gudev-1.0", "description": "libgudev-1.0 introspection data" }, { "status": "Installed", "desired": "Install", "version": "0.6.92-0ubuntu1", "name": "gir1.2-indicate-0.7", "description": "Typelib file for libindicate5" }, { "status": "Installed", "desired": "Install", "version": "1.8.3-0ubuntu0.12.04.1", "name": "gir1.2-javascriptcoregtk-1.0", "description": "GObject introspection data for the GTK+-based JavaScriptCore library" }, { "status": "Installed", "desired": "Install", "version": "1.8.3-0ubuntu0.12.04.1", "name": "gir1.2-javascriptcoregtk-3.0", "description": "GObject introspection data for the GTK+-based JavaScriptCore library" }, { "status": "Installed", "desired": "Install", "version": "0.14.2-1", "name": "gir1.2-json-1.0", "description": "GLib JSON manipulation library (introspection data)" }, { "status": "Installed", "desired": "Install", "version": "0.1.56.1", "name": "gir1.2-launchpad-integration-3.0", "description": "library for launchpad integration (gir files)" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "gir1.2-mutter-3.0", "description": "GObject introspection data for Mutter" }, { "status": "Installed", "desired": "Install", "version": "0.9.4.0-0ubuntu4.2", "name": "gir1.2-networkmanager-1.0", "description": "GObject introspection data for NetworkManager" }, { "status": "Installed", "desired": "Install", "version": "0.7.5-1", "name": "gir1.2-notify-0.7", "description": "sends desktop notifications to a notification daemon (Introspection files)" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.1-0ubuntu1.1", "name": "gir1.2-panelapplet-4.0", "description": "GObject introspection for the GNOME Panel Applet library" }, { "status": "Installed", "desired": "Install", "version": "1.30.0-0ubuntu3.1", "name": "gir1.2-pango-1.0", "description": "Layout and rendering of internationalized text - gir bindings" }, { "status": "Installed", "desired": "Install", "version": "1.2.0-1ubuntu1", "name": "gir1.2-peas-1.0", "description": "Application plugin library (introspection files)" }, { "status": "Installed", "desired": "Install", "version": "0.104-1ubuntu1", "name": "gir1.2-polkit-1.0", "description": "GObject introspection data for PolicyKit" }, { "status": "Installed", "desired": "Install", "version": "2.96-0ubuntu4.2", "name": "gir1.2-rb-3.0", "description": "GObject introspection data for the rhythmbox music player" }, { "status": "Installed", "desired": "Install", "version": "2.38.1-1", "name": "gir1.2-soup-2.4", "description": "GObject introspection data for the libsoup HTTP library" }, { "status": "Installed", "desired": "Install", "version": "0.18.0-1ubuntu1", "name": "gir1.2-telepathyglib-0.12", "description": "GLib Telepathy connection manager library (GObject-Introspection)" }, { "status": "Installed", "desired": "Install", "version": "0.4.0-0ubuntu1", "name": "gir1.2-telepathylogger-0.2", "description": "Telepathy logger service - introspection" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu21.1", "name": "gir1.2-totem-1.0", "description": "GObject introspection data for Totem media player" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-1", "name": "gir1.2-totem-plparser-1.0", "description": "GObject introspection data for the Totem Playlist Parser library" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu1", "name": "gir1.2-ubuntuoneui-3.0", "description": "Ubuntu One widget library" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-1", "name": "gir1.2-unique-3.0", "description": "GObject introspection data for the Unique library" }, { "status": "Installed", "desired": "Install", "version": "5.12.0-0ubuntu1.1", "name": "gir1.2-unity-5.0", "description": "GObject introspection data for the Unity library" }, { "status": "Installed", "desired": "Install", "version": "0.9.15-3git1", "name": "gir1.2-upowerglib-1.0", "description": "GObject introspection data for upower" }, { "status": "Installed", "desired": "Install", "version": "1:0.32.1-0ubuntu1", "name": "gir1.2-vte-2.90", "description": "GObject introspection data for the VTE library" }, { "status": "Installed", "desired": "Install", "version": "1.8.3-0ubuntu0.12.04.1", "name": "gir1.2-webkit-1.0", "description": "GObject introspection data for the WebKit library" }, { "status": "Installed", "desired": "Install", "version": "1.8.3-0ubuntu0.12.04.1", "name": "gir1.2-webkit-3.0", "description": "GObject introspection data for the WebKit library" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1", "name": "gir1.2-wnck-3.0", "description": "GObject introspection data for the WNCK library" }, { "status": "Installed", "desired": "Install", "version": "5.2.1-1ubuntu1", "name": "gir1.2-xkl-1.0", "description": "X Keyboard Extension high-level API - introspection data" }, { "status": "Installed", "desired": "Install", "version": "1:1.7.9.5-1", "name": "git", "description": "fast, scalable, distributed revision control system" }, { "status": "Installed", "desired": "Install", "version": "1:1.7.9.5-1", "name": "git-core", "description": "fast, scalable, distributed revision control system (obsolete)" }, { "status": "Installed", "desired": "Install", "version": "1:1.7.9.5-1", "name": "git-email", "description": "fast, scalable, distributed revision control system (email add-on)" }, { "status": "Installed", "desired": "Install", "version": "1:1.7.9.5-1", "name": "git-gui", "description": "fast, scalable, distributed revision control system (GUI)" }, { "status": "Installed", "desired": "Install", "version": "1:1.7.9.5-1", "name": "git-man", "description": "fast, scalable, distributed revision control system (manual pages)" }, { "status": "Installed", "desired": "Install", "version": "1:1.7.9.5-1", "name": "gitk", "description": "fast, scalable, distributed revision control system (revision tree visualizer)" }, { "status": "Installed", "desired": "Install", "version": "1.32.0-1ubuntu1", "name": "gjs", "description": "Mozilla-based javascript bindings for the GNOME platform" }, { "status": "Installed", "desired": "Install", "version": "2.0.2-6ubuntu1", "name": "gksu", "description": "graphical frontend to su" }, { "status": "Installed", "desired": "Install", "version": "3.12.1-0ubuntu1", "name": "glade", "description": "GTK+ User Interface Builder" }, { "status": "Installed", "desired": "Install", "version": "3.8.0-0ubuntu4", "name": "glade-gtk2", "description": "GTK+ 2 User Interface Builder" }, { "status": "Installed", "desired": "Install", "version": "2.32.1-1ubuntu2", "name": "glib-networking", "description": "network-related giomodules for GLib" }, { "status": "Installed", "desired": "Install", "version": "2.32.1-1ubuntu2", "name": "glib-networking:i386", "description": "network-related giomodules for GLib" }, { "status": "Installed", "desired": "Install", "version": "2.32.1-1ubuntu2", "name": "glib-networking-common", "description": "network-related giomodules for GLib - data files" }, { "status": "Installed", "desired": "Install", "version": "2.32.1-1ubuntu2", "name": "glib-networking-services", "description": "network-related giomodules for GLib - D-Bus services" }, { "status": "Installed", "desired": "Install", "version": "2011.09-0ubuntu1", "name": "glmark2", "description": "OpenGL (ES) 2.0 benchmark" }, { "status": "Installed", "desired": "Install", "version": "2011.09-0ubuntu1", "name": "glmark2-data", "description": "data files for the glmark2 OpenGL (ES) 2.0 benchmark" }, { "status": "Installed", "desired": "Install", "version": "2011.09-0ubuntu1", "name": "glmark2-es2", "description": "OpenGL (ES) 2.0 benchmark" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1.2", "name": "gnome-accessibility-themes", "description": "accessibility themes for the GNOME desktop" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "gnome-applets", "description": "Various applets for the GNOME panel - binary files" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "gnome-applets-data", "description": "Various applets for the GNOME panel - data files" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-0ubuntu5", "name": "gnome-bluetooth", "description": "GNOME Bluetooth tools" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-1", "name": "gnome-contacts", "description": "Contacts manager for GNOME" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.2-0ubuntu0.8", "name": "gnome-control-center", "description": "utilities to configure the GNOME desktop" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.2-0ubuntu0.8", "name": "gnome-control-center-data", "description": "configuration applets for GNOME - data files" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu0.1", "name": "gnome-desktop3-data", "description": "Common files for GNOME desktop apps" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-2ubuntu7", "name": "gnome-disk-utility", "description": "manage and configure disk drives and media" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-1", "name": "gnome-font-viewer", "description": "font viewer for GNOME" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.1-0ubuntu2.2", "name": "gnome-games-data", "description": "data files for the GNOME games" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1.1", "name": "gnome-icon-theme", "description": "GNOME Desktop icon theme (small subset)" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1.1", "name": "gnome-icon-theme-full", "description": "GNOME Desktop icon theme" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-1", "name": "gnome-icon-theme-symbolic", "description": "GNOME desktop icon theme (symbolic icons)" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-2ubuntu4", "name": "gnome-keyring", "description": "GNOME keyring services (daemon and tools)" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu3.1", "name": "gnome-media", "description": "GNOME media utilities" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1", "name": "gnome-menus", "description": "GNOME implementation of the freedesktop menu specification" }, { "status": "Installed", "desired": "Install", "version": "1.0.5-1", "name": "gnome-mplayer", "description": "A GTK+ interface for MPlayer" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-0ubuntu1", "name": "gnome-nettool", "description": "network information tool for GNOME" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1", "name": "gnome-online-accounts", "description": "GNOME Online Accounts" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu0.1", "name": "gnome-orca", "description": "Scriptable screen reader" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.1-0ubuntu1.1", "name": "gnome-panel", "description": "launcher and docking facility for GNOME" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.1-0ubuntu1.1", "name": "gnome-panel-data", "description": "common files for the GNOME Panel" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1.1", "name": "gnome-power-manager", "description": "power management tool for the GNOME desktop" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "gnome-screensaver", "description": "GNOME screen saver and locker" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "gnome-screenshot", "description": "screenshot application for GNOME" }, { "status": "Installed", "desired": "Install", "version": "3.2.1-0ubuntu8", "name": "gnome-session", "description": "GNOME Session Manager - GNOME 3 session" }, { "status": "Installed", "desired": "Install", "version": "3.2.1-0ubuntu8", "name": "gnome-session-bin", "description": "GNOME Session Manager - Minimal runtime" }, { "status": "Installed", "desired": "Install", "version": "0.28-3ubuntu3", "name": "gnome-session-canberra", "description": "GNOME session log in and log out sound events" }, { "status": "Installed", "desired": "Install", "version": "3.2.1-0ubuntu8", "name": "gnome-session-common", "description": "GNOME Session Manager - common files" }, { "status": "Installed", "desired": "Install", "version": "3.2.1-0ubuntu8", "name": "gnome-session-fallback", "description": "GNOME Session Manager - GNOME fallback session" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu0.6", "name": "gnome-settings-daemon", "description": "daemon handling the GNOME session settings" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu2", "name": "gnome-shell", "description": "graphical shell for the GNOME desktop" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu2", "name": "gnome-shell-common", "description": "common files for the GNOME graphical shell" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.1-0ubuntu2.2", "name": "gnome-sudoku", "description": "Sudoku puzzle game for GNOME" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "gnome-system-log", "description": "system log viewer for GNOME" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "gnome-system-monitor", "description": "Process viewer and system resource monitor for GNOME" }, { "status": "Installed", "desired": "Install", "version": "3.0.0-2ubuntu1", "name": "gnome-system-tools", "description": "Cross-platform configuration utilities for GNOME" }, { "status": "Installed", "desired": "Install", "version": "3.4.1.1-0ubuntu1", "name": "gnome-terminal", "description": "GNOME terminal emulator application" }, { "status": "Installed", "desired": "Install", "version": "3.4.1.1-0ubuntu1", "name": "gnome-terminal-data", "description": "Data files for the GNOME terminal emulator" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1.2", "name": "gnome-themes-standard", "description": "Standard gnome themes" }, { "status": "Installed", "desired": "Install", "version": "3.3.4-0ubuntu1", "name": "gnome-tweak-tool", "description": "tool to adjust advanced configuration settings for GNOME" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-1", "name": "gnome-user-guide", "description": "GNOME user's guide" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-0ubuntu1", "name": "gnome-user-share", "description": "User level public file sharing via WebDAV or ObexFTP" }, { "status": "Installed", "desired": "Install", "version": "0.4.0-1", "name": "gnome-video-effects", "description": "GNOME Video Effects" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.1-0ubuntu2.2", "name": "gnomine", "description": "popular minesweeper puzzle game for GNOME" }, { "status": "Installed", "desired": "Install", "version": "1.4.11-3ubuntu2.2", "name": "gnupg", "description": "GNU privacy guard - a free PGP replacement" }, { "status": "Installed", "desired": "Install", "version": "2.0.17-2ubuntu2.12.04.2", "name": "gnupg-agent", "description": "GNU privacy guard - password agent" }, { "status": "Installed", "desired": "Install", "version": "3.10.2.0-1", "name": "google-talkplugin", "description": "Google Talk Plugin" }, { "status": "Installed", "desired": "Install", "version": "1.4.11-3ubuntu2.2", "name": "gpgv", "description": "GNU privacy guard - signature verification tool" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-1~precise0", "name": "gpodder", "description": "podcast client and feed aggregator" }, { "status": "Installed", "desired": "Install", "version": "2.26.3-10ubuntu1", "name": "graphviz", "description": "rich set of graph drawing tools" }, { "status": "Installed", "desired": "Install", "version": "2.10-1", "name": "grep", "description": "GNU grep, egrep and fgrep" }, { "status": "Installed", "desired": "Install", "version": "1.21-7", "name": "groff-base", "description": "GNU troff text-formatting system (base system components)" }, { "status": "Installed", "desired": "Install", "version": "7.1-10", "name": "growisofs", "description": "DVD+-RW/R recorder" }, { "status": "Installed", "desired": "Install", "version": "1.99-21ubuntu3.7", "name": "grub-common", "description": "GRand Unified Bootloader (common files)" }, { "status": "Installed", "desired": "Install", "version": "0.6", "name": "grub-gfxpayload-lists", "description": "GRUB gfxpayload blacklist" }, { "status": "Installed", "desired": "Install", "version": "1.99-21ubuntu3.7", "name": "grub-pc", "description": "GRand Unified Bootloader, version 2 (PC/BIOS version)" }, { "status": "Installed", "desired": "Install", "version": "1.99-21ubuntu3.7", "name": "grub-pc-bin", "description": "GRand Unified Bootloader, version 2 (PC/BIOS binaries)" }, { "status": "Installed", "desired": "Install", "version": "1.99-21ubuntu3.7", "name": "grub2-common", "description": "GRand Unified Bootloader (common files for version 2)" }, { "status": "Installed", "desired": "Install", "version": "1.20100103-3", "name": "gs-cjk-resource", "description": "Resource files for gs-cjk, ghostscript CJK-TrueType extension" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "gsettings-desktop-schemas", "description": "GSettings deskop-wide schemas" }, { "status": "Installed", "desired": "Install", "version": "1:8.11+urwcyr1.0.7~pre44-4.2ubuntu1", "name": "gsfonts", "description": "Fonts for the Ghostscript interpreter(s)" }, { "status": "Installed", "desired": "Install", "version": "0.22", "name": "gsfonts-x11", "description": "Make Ghostscript fonts available to X11" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu1", "name": "gstreamer-tools", "description": "Tools for use with GStreamer" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu0.1", "name": "gstreamer0.10-alsa", "description": "GStreamer plugin for ALSA" }, { "status": "Installed", "desired": "Install", "version": "0.10.13-1", "name": "gstreamer0.10-ffmpeg", "description": "FFmpeg plugin for GStreamer" }, { "status": "Installed", "desired": "Install", "version": "0.10.31-1ubuntu1", "name": "gstreamer0.10-gconf", "description": "GStreamer plugin for getting the sink/source information from GConf" }, { "status": "Installed", "desired": "Install", "version": "0.10.17-2", "name": "gstreamer0.10-gnonlin", "description": "non-linear editing module for GStreamer" }, { "status": "Installed", "desired": "Install", "version": "0.1.1-2ubuntu1", "name": "gstreamer0.10-nice", "description": "ICE library (GStreamer plugin)" }, { "status": "Installed", "desired": "Install", "version": "0.10.22.3-2ubuntu2.1", "name": "gstreamer0.10-plugins-bad", "description": "GStreamer plugins from the \"bad\" set" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu0.1", "name": "gstreamer0.10-plugins-base", "description": "GStreamer plugins from the \"base\" set" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu0.1", "name": "gstreamer0.10-plugins-base:i386", "description": "GStreamer plugins from the \"base\" set" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu0.1", "name": "gstreamer0.10-plugins-base-apps", "description": "GStreamer helper programs from the \"base\" set" }, { "status": "Installed", "desired": "Install", "version": "0.10.31-1ubuntu1", "name": "gstreamer0.10-plugins-good", "description": "GStreamer plugins from the \"good\" set" }, { "status": "Installed", "desired": "Install", "version": "0.10.31-1ubuntu1", "name": "gstreamer0.10-plugins-good:i386", "description": "GStreamer plugins from the \"good\" set" }, { "status": "Installed", "desired": "Install", "version": "0.10.18.3-1ubuntu1", "name": "gstreamer0.10-plugins-ugly", "description": "GStreamer plugins from the \"ugly\" set" }, { "status": "Installed", "desired": "Install", "version": "0.10.31-1ubuntu1", "name": "gstreamer0.10-pulseaudio", "description": "GStreamer plugin for PulseAudio" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu1", "name": "gstreamer0.10-tools", "description": "Tools for use with GStreamer" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu0.1", "name": "gstreamer0.10-x", "description": "GStreamer plugins for X11 and Pango" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu0.1", "name": "gstreamer0.10-x:i386", "description": "GStreamer plugins for X11 and Pango" }, { "status": "Installed", "desired": "Install", "version": "0.3.8-4.1ubuntu1", "name": "gtk-recordmydesktop", "description": "Graphical frontend for recordMyDesktop screencast tool" }, { "status": "Installed", "desired": "Install", "version": "1:2.20.2-1ubuntu1", "name": "gtk2-engines", "description": "theme engines for GTK+ 2.x" }, { "status": "Installed", "desired": "Install", "version": "1:2.20.2-1ubuntu1", "name": "gtk2-engines:i386", "description": "theme engines for GTK+ 2.x" }, { "status": "Installed", "desired": "Install", "version": "0.98.2-0ubuntu1", "name": "gtk2-engines-murrine", "description": "cairo-based gtk+-2.0 theme engine" }, { "status": "Installed", "desired": "Install", "version": "0.98.2-0ubuntu1", "name": "gtk2-engines-murrine:i386", "description": "cairo-based gtk+-2.0 theme engine" }, { "status": "Installed", "desired": "Install", "version": "1.2.2-0ubuntu1.1", "name": "gtk2-engines-oxygen:i386", "description": "Oxygen widget theme for GTK+-based applications" }, { "status": "Installed", "desired": "Install", "version": "2.24.10-0ubuntu6", "name": "gtk2-engines-pixbuf:i386", "description": "pixbuf-based theme for GTK+ 2.x" }, { "status": "Installed", "desired": "Install", "version": "1.0.2-0ubuntu1", "name": "gtk3-engines-unico", "description": "Unico Gtk+ 3 theme engine" }, { "status": "Installed", "desired": "Install", "version": "0.40+ds-2", "name": "gtkperf", "description": "GTK+ performance benchmark" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.1.1-0ubuntu1", "name": "gucharmap", "description": "Unicode character picker and font browser" }, { "status": "Installed", "desired": "Install", "version": "1.8.8+1-6ubuntu2", "name": "guile-1.8-libs", "description": "Core Guile libraries" }, { "status": "Installed", "desired": "Install", "version": "1.12.1-0ubuntu1.1", "name": "gvfs", "description": "userspace virtual filesystem - GIO module" }, { "status": "Installed", "desired": "Install", "version": "1.12.1-0ubuntu1.1", "name": "gvfs:i386", "description": "userspace virtual filesystem - GIO module" }, { "status": "Installed", "desired": "Install", "version": "1.12.1-0ubuntu1.1", "name": "gvfs-backends", "description": "userspace virtual filesystem - backends" }, { "status": "Installed", "desired": "Install", "version": "1.12.1-0ubuntu1.1", "name": "gvfs-bin", "description": "userspace virtual filesystem - binaries" }, { "status": "Installed", "desired": "Install", "version": "1.12.1-0ubuntu1.1", "name": "gvfs-common", "description": "userspace virtual filesystem - common data files" }, { "status": "Installed", "desired": "Install", "version": "1.12.1-0ubuntu1.1", "name": "gvfs-daemons", "description": "userspace virtual filesystem - servers" }, { "status": "Installed", "desired": "Install", "version": "1.12.1-0ubuntu1.1", "name": "gvfs-fuse", "description": "userspace virtual filesystem - fuse server" }, { "status": "Installed", "desired": "Install", "version": "1.12.1-0ubuntu1.1", "name": "gvfs-libs", "description": "userspace virtual filesystem - private libraries" }, { "status": "Installed", "desired": "Install", "version": "1.12.1-0ubuntu1.1", "name": "gvfs-libs:i386", "description": "userspace virtual filesystem - private libraries" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu2.1", "name": "gwibber", "description": "Open source social networking client for GNOME" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu2.1", "name": "gwibber-service", "description": "Open source social networking client for GNOME" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu2.1", "name": "gwibber-service-facebook", "description": "Facebook plugin for Gwibber" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu2.1", "name": "gwibber-service-identica", "description": "Identi.ca plugin for Gwibber" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu2.1", "name": "gwibber-service-twitter", "description": "Twitter plugin for Gwibber" }, { "status": "Installed", "desired": "Install", "version": "1.4-1ubuntu2", "name": "gzip", "description": "GNU compression utilities" }, { "status": "Installed", "desired": "Install", "version": "5194svnppa1~precise1", "name": "handbrake-gtk", "description": "versatile DVD ripper and video transcoder - GTK GUI" }, { "status": "Installed", "desired": "Install", "version": "0.3-beta15-51", "name": "hddtemp", "description": "hard drive temperature monitoring utility" }, { "status": "Installed", "desired": "Install", "version": "9.37-0ubuntu3.1", "name": "hdparm", "description": "tune hard disk parameters for high performance" }, { "status": "Installed", "desired": "Install", "version": "12.5-1build1", "name": "heirloom-mailx", "description": "feature-rich BSD mail(1)" }, { "status": "Installed", "desired": "Install", "version": "1.40.4ubuntu1", "name": "help2man", "description": "Automatic manpage generator" }, { "status": "Installed", "desired": "Install", "version": "1.2.12-4", "name": "hexedit", "description": "view and edit files in hexadecimal or in ASCII" }, { "status": "Installed", "desired": "Install", "version": "0.12-1ubuntu2", "name": "hicolor-icon-theme", "description": "default fallback theme for FreeDesktop.org icon themes" }, { "status": "Installed", "desired": "Install", "version": "3.06ubuntu1", "name": "hostname", "description": "utility to set/show the host name or domain name" }, { "status": "Installed", "desired": "Install", "version": "3.12.2-1ubuntu3.1", "name": "hplip", "description": "HP Linux Printing and Imaging System (HPLIP)" }, { "status": "Installed", "desired": "Install", "version": "3.12.2-1ubuntu3.1", "name": "hplip-data", "description": "HP Linux Printing and Imaging - data files" }, { "status": "Installed", "desired": "Install", "version": "1.3.2a-15", "name": "html2text", "description": "advanced HTML to text converter" }, { "status": "Installed", "desired": "Install", "version": "1.0.1-1", "name": "htop", "description": "interactive processes viewer" }, { "status": "Installed", "desired": "Install", "version": "0.5.3.11", "name": "humanity-icon-theme", "description": "Humanity Icon theme" }, { "status": "Installed", "desired": "Install", "version": "20070829-4ubuntu3", "name": "hunspell-en-us", "description": "English_american dictionary for hunspell" }, { "status": "Installed", "desired": "Install", "version": "0.233-1ubuntu1", "name": "hwdata", "description": "hardware identification / configuration data" }, { "status": "Installed", "desired": "Install", "version": "2.8.3-1", "name": "hyphen-en-us", "description": "US English hyphenation patterns for LibreOffice/OpenOffice.org" }, { "status": "Installed", "desired": "Install", "version": "20090808ubuntu36", "name": "ia32-libs", "description": "ia32 shared libraries - transitional package" }, { "status": "Installed", "desired": "Install", "version": "20090808ubuntu36", "name": "ia32-libs-multiarch:i386", "description": "Multi-arch versions of former ia32-libraries" }, { "status": "Installed", "desired": "Install", "version": "1.4.1-3ubuntu1", "name": "ibus", "description": "Intelligent Input Bus - core" }, { "status": "Installed", "desired": "Install", "version": "1.4.1-3ubuntu1", "name": "ibus-gtk", "description": "Intelligent Input Bus - GTK+2 support" }, { "status": "Installed", "desired": "Install", "version": "1.4.1-3ubuntu1", "name": "ibus-gtk:i386", "description": "Intelligent Input Bus - GTK+2 support" }, { "status": "Installed", "desired": "Install", "version": "1.4.1-3ubuntu1", "name": "ibus-gtk3", "description": "Intelligent Input Bus - GTK+3 support" }, { "status": "Installed", "desired": "Install", "version": "1.4.0-1", "name": "ibus-pinyin", "description": "Pinyin engine for IBus" }, { "status": "Installed", "desired": "Install", "version": "1.4.0-1", "name": "ibus-pinyin-db-android", "description": "Pinyin engine for IBus - Android database" }, { "status": "Installed", "desired": "Install", "version": "1.3.9.20110827-1ubuntu1", "name": "ibus-table", "description": "table engine for IBus" }, { "status": "Installed", "desired": "Install", "version": "1.3-4", "name": "icecream", "description": "lightweight stream download utility" }, { "status": "Installed", "desired": "Install", "version": "7u9-2.3.4-0ubuntu1.12.04.1", "name": "icedtea-7-jre-jamvm", "description": "Alternative JVM for OpenJDK, using JamVM" }, { "status": "Installed", "desired": "Install", "version": "1.2-2ubuntu1.3", "name": "icedtea-7-plugin", "description": "web browser plugin based on OpenJDK and IcedTea to execute Java applets" }, { "status": "Installed", "desired": "Install", "version": "1.2-2ubuntu1.3", "name": "icedtea-netx", "description": "NetX - implementation of the Java Network Launching Protocol (JNLP)" }, { "status": "Installed", "desired": "Install", "version": "1.2-2ubuntu1.3", "name": "icedtea-netx-common", "description": "NetX - implementation of the Java Network Launching Protocol (JNLP)" }, { "status": "Installed", "desired": "Install", "version": "0.7~beta2ubuntu8", "name": "ifupdown", "description": "high level tools to configure network interfaces" }, { "status": "Installed", "desired": "Install", "version": "1.20ubuntu5.1", "name": "im-switch", "description": "Input method switch framework" }, { "status": "Installed", "desired": "Install", "version": "8:6.6.9.7-5ubuntu3.2", "name": "imagemagick", "description": "image manipulation programs" }, { "status": "Installed", "desired": "Install", "version": "8:6.6.9.7-5ubuntu3.2", "name": "imagemagick-common", "description": "image manipulation programs -- infrastructure" }, { "status": "Installed", "desired": "Install", "version": "2.2.11-1", "name": "indent", "description": "C language source code formatting program" }, { "status": "Installed", "desired": "Install", "version": "0.5.0-0ubuntu1", "name": "indicator-applet-complete", "description": "Clone of the GNOME panel indicator applet" }, { "status": "Installed", "desired": "Install", "version": "0.5.0-0ubuntu1", "name": "indicator-application", "description": "Application Indicators" }, { "status": "Installed", "desired": "Install", "version": "0.3.97-0ubuntu1", "name": "indicator-appmenu", "description": "Indicator for application menus." }, { "status": "Installed", "desired": "Install", "version": "0.3.94-0ubuntu2", "name": "indicator-datetime", "description": "Simple clock" }, { "status": "Installed", "desired": "Install", "version": "0.6.0-0ubuntu2", "name": "indicator-messages", "description": "indicator that collects messages that need a response" }, { "status": "Installed", "desired": "Install", "version": "2.0-0ubuntu1", "name": "indicator-power", "description": "Indicator showing power state." }, { "status": "Installed", "desired": "Install", "version": "0.1.6-0ubuntu1", "name": "indicator-printers", "description": "indicator showing active print jobs" }, { "status": "Installed", "desired": "Install", "version": "0.3.96-0ubuntu1", "name": "indicator-session", "description": "indicator showing session management, status and user switching" }, { "status": "Installed", "desired": "Install", "version": "0.8.5.0-0ubuntu2.1", "name": "indicator-sound", "description": "System sound indicator." }, { "status": "Installed", "desired": "Install", "version": "0.6.0-0ubuntu2", "name": "indicator-status-provider-mc5", "description": "indicator-messages status provider for telepathy mission-control-5" }, { "status": "Installed", "desired": "Install", "version": "0.6.0-0ubuntu2", "name": "indicator-status-provider-pidgin", "description": "indicator-messages status provider for pidgin" }, { "status": "Installed", "desired": "Install", "version": "11.11.28-0ubuntu1.2", "name": "indicator-weather", "description": "indicator that displays weather information" }, { "status": "Installed", "desired": "Install", "version": "4.13a.dfsg.1-8ubuntu2", "name": "info", "description": "Standalone GNU Info documentation browser" }, { "status": "Installed", "desired": "Install", "version": "0.99ubuntu13", "name": "initramfs-tools", "description": "tools for generating an initramfs" }, { "status": "Installed", "desired": "Install", "version": "0.99ubuntu13", "name": "initramfs-tools-bin", "description": "binaries used by initramfs-tools" }, { "status": "Installed", "desired": "Install", "version": "2.88dsf-13.10ubuntu11.1", "name": "initscripts", "description": "scripts for initializing and shutting down the system" }, { "status": "Installed", "desired": "Install", "version": "0.48.3.1-1ubuntu1", "name": "inkscape", "description": "vector-based drawing program" }, { "status": "Installed", "desired": "Install", "version": "0.0.20110106-0ubuntu1", "name": "input-utils", "description": "utilities for the input layer of the Linux kernel" }, { "status": "Installed", "desired": "Install", "version": "1:1.4.2-1", "name": "inputattach", "description": "utility to connect serial-attached peripherals to the input subsystem" }, { "status": "Installed", "desired": "Install", "version": "1.14.0-2.1ubuntu2", "name": "insserv", "description": "Tool to organize boot sequence using LSB init.d script dependencies" }, { "status": "Installed", "desired": "Install", "version": "4.13a.dfsg.1-8ubuntu2", "name": "install-info", "description": "Manage installed documentation in info format" }, { "status": "Installed", "desired": "Install", "version": "1.2-1", "name": "intel-gpu-tools", "description": "tools for debugging the Intel graphics driver" }, { "status": "Installed", "desired": "Install", "version": "0.50.2-2", "name": "intltool", "description": "Utility scripts for internationalizing XML" }, { "status": "Installed", "desired": "Install", "version": "0.35.0+20060710.1", "name": "intltool-debian", "description": "Help i18n of RFC822 compliant config files" }, { "status": "Installed", "desired": "Install", "version": "397-2", "name": "iozone3", "description": "Filesystem and Disk Benchmarking Tool" }, { "status": "Installed", "desired": "Install", "version": "2.0.5-2.1", "name": "iperf", "description": "Internet Protocol bandwidth measuring tool" }, { "status": "Installed", "desired": "Install", "version": "20111117-1ubuntu2", "name": "iproute", "description": "networking and traffic control tools" }, { "status": "Installed", "desired": "Install", "version": "1.4.12-1ubuntu4", "name": "iptables", "description": "administration tools for packet filtering and NAT" }, { "status": "Installed", "desired": "Install", "version": "3:20101006-1ubuntu1", "name": "iputils-arping", "description": "Tool to send ICMP echo requests to an ARP address" }, { "status": "Installed", "desired": "Install", "version": "3:20101006-1ubuntu1", "name": "iputils-ping", "description": "Tools to test the reachability of network hosts" }, { "status": "Installed", "desired": "Install", "version": "3:20101006-1ubuntu1", "name": "iputils-tracepath", "description": "Tools to trace the network path to a remote host" }, { "status": "Installed", "desired": "Install", "version": "0.12.1+dfsg-0ubuntu1", "name": "ipython", "description": "enhanced interactive Python shell" }, { "status": "Installed", "desired": "Install", "version": "0.56-1ubuntu4", "name": "irqbalance", "description": "Daemon to balance interrupts for SMP systems" }, { "status": "Installed", "desired": "Install", "version": "4.1.ESV-R4-0ubuntu5.5", "name": "isc-dhcp-client", "description": "ISC DHCP client" }, { "status": "Installed", "desired": "Install", "version": "4.1.ESV-R4-0ubuntu5.5", "name": "isc-dhcp-common", "description": "common files used by all the isc-dhcp* packages" }, { "status": "Installed", "desired": "Install", "version": "3.31-1", "name": "iso-codes", "description": "ISO language, territory, currency, script codes and their translations" }, { "status": "Installed", "desired": "Install", "version": "3.2-1", "name": "iw", "description": "tool for configuring Linux wireless devices" }, { "status": "Installed", "desired": "Install", "version": "0.43ubuntu2", "name": "java-common", "description": "Base of all Java packages" }, { "status": "Installed", "desired": "Install", "version": "0.9.7-0ubuntu7.4", "name": "jockey-common", "description": "user interface and desktop integration for driver management" }, { "status": "Installed", "desired": "Install", "version": "0.9.7-0ubuntu7.4", "name": "jockey-gtk", "description": "GNOME user interface and desktop integration for driver management" }, { "status": "Installed", "desired": "Install", "version": "1.1.1-4ubuntu1", "name": "jpegpixi", "description": "Remove hot spots from JPEG images with minimal quality loss" }, { "status": "Installed", "desired": "Install", "version": "0.6.0.1+bzr608-0juju2~precise1", "name": "juju", "description": "next generation service orchestration system" }, { "status": "Installed", "desired": "Install", "version": "1.15.2-3ubuntu4", "name": "kbd", "description": "Linux console font and keytable utilities" }, { "status": "Installed", "desired": "Install", "version": "0.12+git20090217-1ubuntu19", "name": "kerneloops-daemon", "description": "kernel oops tracker" }, { "status": "Installed", "desired": "Install", "version": "1.70ubuntu5", "name": "keyboard-configuration", "description": "system-wide keyboard preferences" }, { "status": "Installed", "desired": "Install", "version": "1.5.25-1ubuntu2", "name": "klibc-utils", "description": "small utilities built with klibc for early boot" }, { "status": "Installed", "desired": "Install", "version": "1.10+dfsg~beta1-2ubuntu0.3", "name": "krb5-locales", "description": "Internationalization support for MIT Kerberos" }, { "status": "Installed", "desired": "Install", "version": "1.0.0+git-3.55f6c88-0ubuntu1", "name": "kvm-ipxe", "description": "PXE ROM's for KVM" }, { "status": "Installed", "desired": "Install", "version": "12.05-0ubuntu1.12.04", "name": "landscape-client-ui-install", "description": "The Landscape administration system client - UI installer" }, { "status": "Installed", "desired": "Install", "version": "1:12.04+20120801", "name": "language-pack-en", "description": "translation updates for language English" }, { "status": "Installed", "desired": "Install", "version": "1:12.04+20120801", "name": "language-pack-en-base", "description": "translations for language English" }, { "status": "Installed", "desired": "Install", "version": "1:12.04+20120801", "name": "language-pack-gnome-en", "description": "GNOME translation updates for language English" }, { "status": "Installed", "desired": "Install", "version": "1:12.04+20120801", "name": "language-pack-gnome-en-base", "description": "GNOME translations for language English" }, { "status": "Installed", "desired": "Install", "version": "0.79", "name": "language-selector-common", "description": "Language selector for Ubuntu" }, { "status": "Installed", "desired": "Install", "version": "0.79", "name": "language-selector-gnome", "description": "Language selector for Ubuntu" }, { "status": "Installed", "desired": "Install", "version": "0.13.7ubuntu2", "name": "laptop-detect", "description": "attempt to detect a laptop" }, { "status": "Installed", "desired": "Install", "version": "0.1.56.1", "name": "launchpad-integration", "description": "launchpad integration" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-0ubuntu1", "name": "ldtp", "description": "GNU/Linux Desktop Testing Project (GNU/LDTP)" }, { "status": "Installed", "desired": "Install", "version": "444-1ubuntu1", "name": "less", "description": "pager program similar to more" }, { "status": "Installed", "desired": "Install", "version": "1:0.95.2-1", "name": "lesstif2", "description": "OSF/Motif 2.1 implementation released under LGPL" }, { "status": "Installed", "desired": "Install", "version": "0.7.4-16build1", "name": "liba52-0.7.4", "description": "library for decoding ATSC A/52 streams" }, { "status": "Installed", "desired": "Install", "version": "1.4p5-39ubuntu1", "name": "libaa1", "description": "ASCII art library" }, { "status": "Installed", "desired": "Install", "version": "1.4p5-39ubuntu1", "name": "libaa1:i386", "description": "ASCII art library" }, { "status": "Installed", "desired": "Install", "version": "0.3.0-4", "name": "libaacs0", "description": "free-and-libre implementation of AACS" }, { "status": "Installed", "desired": "Install", "version": "0.6.15-2ubuntu9.4", "name": "libaccountsservice0", "description": "query and manipulate user account information - shared libraries" }, { "status": "Installed", "desired": "Install", "version": "2.2.51-5ubuntu1", "name": "libacl1", "description": "Access control list shared library" }, { "status": "Installed", "desired": "Install", "version": "2.2.51-5ubuntu1", "name": "libacl1:i386", "description": "Access control list shared library" }, { "status": "Installed", "desired": "Install", "version": "0.3.109-2ubuntu1", "name": "libaio1", "description": "Linux kernel AIO access library - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.3.109-2ubuntu1", "name": "libaio1:i386", "description": "Linux kernel AIO access library - shared library" }, { "status": "Installed", "desired": "Install", "version": "1.19.02-2", "name": "libalgorithm-diff-perl", "description": "module to find differences between files" }, { "status": "Installed", "desired": "Install", "version": "0.04-2build2", "name": "libalgorithm-diff-xs-perl", "description": "module to find differences between files (XS accelerated)" }, { "status": "Installed", "desired": "Install", "version": "0.08-2", "name": "libalgorithm-merge-perl", "description": "Perl module for three-way merge of textual data" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.0-2ubuntu3", "name": "libamd2.2.0", "description": "approximate minimum degree ordering library for sparse matrices" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1ubuntu2", "name": "libao-common", "description": "Cross Platform Audio Output Library (Common files)" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1ubuntu2", "name": "libao4:i386", "description": "Cross Platform Audio Output Library" }, { "status": "Installed", "desired": "Install", "version": "2.7.102-0ubuntu3.7", "name": "libapparmor1", "description": "changehat AppArmor library" }, { "status": "Installed", "desired": "Install", "version": "0.4.92-0ubuntu1", "name": "libappindicator1", "description": "Application Indicators" }, { "status": "Installed", "desired": "Install", "version": "0.4.92-0ubuntu1", "name": "libappindicator3-1", "description": "Application Indicators" }, { "status": "Installed", "desired": "Install", "version": "0.8.16~exp12ubuntu10.7", "name": "libapt-inst1.4", "description": "deb package format runtime library" }, { "status": "Installed", "desired": "Install", "version": "0.1.25build2", "name": "libapt-pkg-perl", "description": "Perl interface to libapt-pkg" }, { "status": "Installed", "desired": "Install", "version": "0.8.16~exp12ubuntu10.7", "name": "libapt-pkg4.12", "description": "package managment runtime library" }, { "status": "Installed", "desired": "Install", "version": "3.0.3-6ubuntu1", "name": "libarchive12", "description": "Multi-format archive and compression library (shared library)" }, { "status": "Installed", "desired": "Install", "version": "2.3.21-1ubuntu0.1", "name": "libart-2.0-2", "description": "Library of functions for 2D graphics - runtime files" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libasn1-8-heimdal", "description": "Heimdal Kerberos - ASN.1 library" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libasn1-8-heimdal:i386", "description": "Heimdal Kerberos - ASN.1 library" }, { "status": "Installed", "desired": "Install", "version": "1.0.25-1ubuntu10.1", "name": "libasound2", "description": "shared library for ALSA applications" }, { "status": "Installed", "desired": "Install", "version": "1.0.25-1ubuntu10.1", "name": "libasound2:i386", "description": "shared library for ALSA applications" }, { "status": "Installed", "desired": "Install", "version": "1.0.25-1ubuntu1", "name": "libasound2-plugins", "description": "ALSA library additional plugins" }, { "status": "Installed", "desired": "Install", "version": "1.0.25-1ubuntu1", "name": "libasound2-plugins:i386", "description": "ALSA library additional plugins" }, { "status": "Installed", "desired": "Install", "version": "0.60.7~20110707-1", "name": "libaspell15", "description": "GNU Aspell spell-checker runtime library" }, { "status": "Installed", "desired": "Install", "version": "0.10.0-3", "name": "libass4", "description": "library for SSA/ASS subtitles rendering" }, { "status": "Installed", "desired": "Install", "version": "2.0.2-1ubuntu1", "name": "libassuan0", "description": "IPC library for the GnuPG components" }, { "status": "Installed", "desired": "Install", "version": "0.8-4", "name": "libasyncns0", "description": "Asynchronous name service query library" }, { "status": "Installed", "desired": "Install", "version": "0.8-4", "name": "libasyncns0:i386", "description": "Asynchronous name service query library" }, { "status": "Installed", "desired": "Install", "version": "0.18-3", "name": "libatasmart4", "description": "ATA S.M.A.R.T. reading and parsing library" }, { "status": "Installed", "desired": "Install", "version": "2.4.0-1ubuntu2", "name": "libatk-adaptor", "description": "at-spi2-atk" }, { "status": "Installed", "desired": "Install", "version": "2.4.0-1ubuntu2", "name": "libatk-adaptor-schemas", "description": "at-spi2-atk GSettings schemas" }, { "status": "Installed", "desired": "Install", "version": "0.30.4-0ubuntu2", "name": "libatk-wrapper-java", "description": "An ATK implementation for Java using JNI" }, { "status": "Installed", "desired": "Install", "version": "0.30.4-0ubuntu2", "name": "libatk-wrapper-java-jni", "description": "An ATK implementation for Java using JNI (jni bindings)" }, { "status": "Installed", "desired": "Install", "version": "2.4.0-0ubuntu1", "name": "libatk1.0-0", "description": "ATK accessibility toolkit" }, { "status": "Installed", "desired": "Install", "version": "2.4.0-0ubuntu1", "name": "libatk1.0-0:i386", "description": "ATK accessibility toolkit" }, { "status": "Installed", "desired": "Install", "version": "2.4.0-0ubuntu1", "name": "libatk1.0-data", "description": "Common files for the ATK accessibility toolkit" }, { "status": "Installed", "desired": "Install", "version": "2.4.0-0ubuntu1", "name": "libatk1.0-dev", "description": "Development files for the ATK accessibility toolkit" }, { "status": "Installed", "desired": "Install", "version": "2.4.0-0ubuntu1", "name": "libatk1.0-doc", "description": "Documentation files for the ATK toolkit" }, { "status": "Installed", "desired": "Install", "version": "2.22.6-1ubuntu1", "name": "libatkmm-1.6-1", "description": "C++ wrappers for ATK accessibility toolkit (shared libraries)" }, { "status": "Installed", "desired": "Install", "version": "2.4.2-0ubuntu0.1", "name": "libatspi2.0-0", "description": "Assistive Technology Service Provider Interface - shared library" }, { "status": "Installed", "desired": "Install", "version": "1:2.4.46-5ubuntu1", "name": "libattr1", "description": "Extended attribute shared library" }, { "status": "Installed", "desired": "Install", "version": "1:2.4.46-5ubuntu1", "name": "libattr1:i386", "description": "Extended attribute shared library" }, { "status": "Installed", "desired": "Install", "version": "1.9.3-4", "name": "libaudio2", "description": "Network Audio System - shared libraries" }, { "status": "Installed", "desired": "Install", "version": "1.9.3-4", "name": "libaudio2:i386", "description": "Network Audio System - shared libraries" }, { "status": "Installed", "desired": "Install", "version": "0.3.3-2", "name": "libaudiofile1", "description": "Open-source version of SGI's audiofile library" }, { "status": "Installed", "desired": "Install", "version": "0.3.3-2", "name": "libaudiofile1:i386", "description": "Open-source version of SGI's audiofile library" }, { "status": "Installed", "desired": "Install", "version": "2.1500-1", "name": "libauthen-sasl-perl", "description": "Authen::SASL - SASL Authentication framework" }, { "status": "Installed", "desired": "Install", "version": "4:0.8.4-0ubuntu0.12.04.1", "name": "libav-tools", "description": "Multimedia player, server, encoder and transcoder" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "libavahi-client3", "description": "Avahi client library" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "libavahi-client3:i386", "description": "Avahi client library" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "libavahi-common-data", "description": "Avahi common data files" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "libavahi-common-data:i386", "description": "Avahi common data files" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "libavahi-common3", "description": "Avahi common library" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "libavahi-common3:i386", "description": "Avahi common library" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "libavahi-core7", "description": "Avahi's embeddable mDNS/DNS-SD library" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "libavahi-glib1", "description": "Avahi glib integration library" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "libavahi-gobject0", "description": "Avahi GObject library" }, { "status": "Installed", "desired": "Install", "version": "0.6.30-5ubuntu2", "name": "libavahi-ui-gtk3-0", "description": "Avahi GTK+ User interface library for GTK3" }, { "status": "Installed", "desired": "Install", "version": "0.5.3-1ubuntu2", "name": "libavc1394-0", "description": "control IEEE 1394 audio/video devices" }, { "status": "Installed", "desired": "Install", "version": "0.5.3-1ubuntu2", "name": "libavc1394-0:i386", "description": "control IEEE 1394 audio/video devices" }, { "status": "Installed", "desired": "Install", "version": "4:0.8.4-0ubuntu0.12.04.1", "name": "libavcodec53", "description": "Libav codec library" }, { "status": "Installed", "desired": "Install", "version": "4:0.8.4-0ubuntu0.12.04.1", "name": "libavdevice53", "description": "Libav device handling library" }, { "status": "Installed", "desired": "Install", "version": "4:0.8.4-0ubuntu0.12.04.1", "name": "libavfilter2", "description": "Libav video filtering library" }, { "status": "Installed", "desired": "Install", "version": "4:0.8.4-0ubuntu0.12.04.1", "name": "libavformat53", "description": "Libav file format library" }, { "status": "Installed", "desired": "Install", "version": "4:0.8.4-0ubuntu0.12.04.1", "name": "libavutil51", "description": "Libav utility library" }, { "status": "Installed", "desired": "Install", "version": "0.0.22-1.1", "name": "libbabl-0.0-0", "description": "Dynamic, any to any, pixel format conversion library" }, { "status": "Installed", "desired": "Install", "version": "0.2.124.2-0ubuntu1", "name": "libbamf0", "description": "Window matching library - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.2.124.2-0ubuntu1", "name": "libbamf3-0", "description": "Window matching library - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.23-1build3", "name": "libbfb0", "description": "bfb protocol library" }, { "status": "Installed", "desired": "Install", "version": "1:9.8.1.dfsg.P1-4ubuntu0.5", "name": "libbind9-80", "description": "BIND9 Shared Library used by BIND" }, { "status": "Installed", "desired": "Install", "version": "7.1-1build2", "name": "libbit-vector-perl", "description": "Perl module for bit vectors and more" }, { "status": "Installed", "desired": "Install", "version": "1.2.20110419-2ubuntu1", "name": "libblas3gf", "description": "Basic Linear Algebra Reference implementations, shared library" }, { "status": "Installed", "desired": "Install", "version": "2.20.1-1ubuntu3", "name": "libblkid1", "description": "block device id library" }, { "status": "Installed", "desired": "Install", "version": "4.98-2ubuntu7", "name": "libbluetooth3", "description": "Library to use the BlueZ Linux Bluetooth stack" }, { "status": "Installed", "desired": "Install", "version": "1:0.2.1+git20111208.63e308d-3", "name": "libbluray1", "description": "Blu-ray disc playback support library (shared library)" }, { "status": "Installed", "desired": "Install", "version": "2.32.1-0ubuntu1.1", "name": "libbonobo2-0", "description": "Bonobo CORBA interfaces library" }, { "status": "Installed", "desired": "Install", "version": "2.32.1-0ubuntu1.1", "name": "libbonobo2-common", "description": "Bonobo CORBA interfaces library -- support files" }, { "status": "Installed", "desired": "Install", "version": "2.24.5-0ubuntu1.1", "name": "libbonoboui2-0", "description": "The Bonobo UI library" }, { "status": "Installed", "desired": "Install", "version": "2.24.5-0ubuntu1.1", "name": "libbonoboui2-common", "description": "The Bonobo UI library -- common files" }, { "status": "Installed", "desired": "Install", "version": "1.46.1-7ubuntu3", "name": "libboost-serialization1.46.1", "description": "serialization library for C++" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1.1", "name": "libbrasero-media3-1", "description": "CD/DVD burning library for GNOME - runtime" }, { "status": "Installed", "desired": "Install", "version": "4.3-1ubuntu5", "name": "libbrlapi0.5", "description": "braille display access via BRLTTY - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.3.0-2", "name": "libbsd0", "description": "utility functions from BSD systems - shared library" }, { "status": "Installed", "desired": "Install", "version": "1.1.8-1", "name": "libburn4", "description": "library to provide CD/DVD writing functions" }, { "status": "Installed", "desired": "Install", "version": "1.0.6-1", "name": "libbz2-1.0", "description": "high-quality block-sorting file compressor library - runtime" }, { "status": "Installed", "desired": "Install", "version": "1.0.6-1", "name": "libbz2-1.0:i386", "description": "high-quality block-sorting file compressor library - runtime" }, { "status": "Installed", "desired": "Install", "version": "2.15-0ubuntu10.3", "name": "libc-bin", "description": "Embedded GNU C Library: Binaries" }, { "status": "Installed", "desired": "Install", "version": "2.15-0ubuntu10.3", "name": "libc-dev-bin", "description": "Embedded GNU C Library: Development binaries" }, { "status": "Installed", "desired": "Install", "version": "2.15-0ubuntu10.3", "name": "libc6", "description": "Embedded GNU C Library: Shared libraries" }, { "status": "Installed", "desired": "Install", "version": "2.15-0ubuntu10.3", "name": "libc6:i386", "description": "Embedded GNU C Library: Shared libraries" }, { "status": "Installed", "desired": "Install", "version": "2.15-0ubuntu10.3", "name": "libc6-dev", "description": "Embedded GNU C Library: Development Libraries and Header Files" }, { "status": "Installed", "desired": "Install", "version": "0.99.beta17-2.1ubuntu2", "name": "libcaca0", "description": "colour ASCII art library" }, { "status": "Installed", "desired": "Install", "version": "0.99.beta17-2.1ubuntu2", "name": "libcaca0:i386", "description": "colour ASCII art library" }, { "status": "Installed", "desired": "Install", "version": "1.10.2-6.1ubuntu3", "name": "libcairo-gobject2", "description": "The Cairo 2D vector graphics library (GObject library)" }, { "status": "Installed", "desired": "Install", "version": "1.10.2-6.1ubuntu3", "name": "libcairo-gobject2:i386", "description": "The Cairo 2D vector graphics library (GObject library)" }, { "status": "Installed", "desired": "Install", "version": "1.081-1build2", "name": "libcairo-perl", "description": "Perl interface to the Cairo graphics library" }, { "status": "Installed", "desired": "Install", "version": "1.10.2-6.1ubuntu3", "name": "libcairo-script-interpreter2", "description": "The Cairo 2D vector graphics library (script interpreter)" }, { "status": "Installed", "desired": "Install", "version": "1.10.2-6.1ubuntu3", "name": "libcairo2", "description": "The Cairo 2D vector graphics library" }, { "status": "Installed", "desired": "Install", "version": "1.10.2-6.1ubuntu3", "name": "libcairo2:i386", "description": "The Cairo 2D vector graphics library" }, { "status": "Installed", "desired": "Install", "version": "1.10.2-6.1ubuntu3", "name": "libcairo2-dev", "description": "Development files for the Cairo 2D graphics library" }, { "status": "Installed", "desired": "Install", "version": "1.10.0-1ubuntu1", "name": "libcairomm-1.0-1", "description": "C++ wrappers for Cairo (shared libraries)" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu7", "name": "libcamel-1.2-29", "description": "Evolution MIME message handling library" }, { "status": "Installed", "desired": "Install", "version": "0.28-3ubuntu3", "name": "libcanberra-gtk-module", "description": "translates GTK+ widgets signals to event sounds" }, { "status": "Installed", "desired": "Install", "version": "0.28-3ubuntu3", "name": "libcanberra-gtk-module:i386", "description": "translates GTK+ widgets signals to event sounds" }, { "status": "Installed", "desired": "Install", "version": "0.28-3ubuntu3", "name": "libcanberra-gtk0", "description": "GTK+ helper for playing widget event sounds with libcanberra" }, { "status": "Installed", "desired": "Install", "version": "0.28-3ubuntu3", "name": "libcanberra-gtk0:i386", "description": "GTK+ helper for playing widget event sounds with libcanberra" }, { "status": "Installed", "desired": "Install", "version": "0.28-3ubuntu3", "name": "libcanberra-gtk3-0", "description": "GTK+ 3.0 helper for playing widget event sounds with libcanberra" }, { "status": "Installed", "desired": "Install", "version": "0.28-3ubuntu3", "name": "libcanberra-gtk3-module", "description": "translates GTK3 widgets signals to event sounds" }, { "status": "Installed", "desired": "Install", "version": "0.28-3ubuntu3", "name": "libcanberra-pulse", "description": "PulseAudio backend for libcanberra" }, { "status": "Installed", "desired": "Install", "version": "0.28-3ubuntu3", "name": "libcanberra0", "description": "simple abstract interface for playing event sounds" }, { "status": "Installed", "desired": "Install", "version": "0.28-3ubuntu3", "name": "libcanberra0:i386", "description": "simple abstract interface for playing event sounds" }, { "status": "Installed", "desired": "Install", "version": "0.6.6-1ubuntu1", "name": "libcap-ng0", "description": "An alternate POSIX capabilities library" }, { "status": "Installed", "desired": "Install", "version": "1:2.22-1ubuntu3", "name": "libcap2", "description": "support for getting/setting POSIX.1e capabilities" }, { "status": "Installed", "desired": "Install", "version": "1:2.22-1ubuntu3", "name": "libcap2:i386", "description": "support for getting/setting POSIX.1e capabilities" }, { "status": "Installed", "desired": "Install", "version": "1:2.22-1ubuntu3", "name": "libcap2-bin", "description": "basic utility programs for using capabilities" }, { "status": "Installed", "desired": "Install", "version": "1:3.12.20071127-0ubuntu11", "name": "libcapi20-3:i386", "description": "libraries for CAPI support" }, { "status": "Installed", "desired": "Install", "version": "0.4.2-1ubuntu1", "name": "libcaribou-common", "description": "Configurable on screen keyboard with scanning mode - common files" }, { "status": "Installed", "desired": "Install", "version": "0.4.2-1ubuntu1", "name": "libcaribou0", "description": "Configurable on screen keyboard with scanning mode - library" }, { "status": "Installed", "desired": "Install", "version": "6.04-1", "name": "libcarp-clan-perl", "description": "Perl enhancement to Carp error logging facilities" }, { "status": "Installed", "desired": "Install", "version": "0.99.12p2-10build1", "name": "libcdaudio1", "description": "library for controlling a CD-ROM when playing audio CDs" }, { "status": "Installed", "desired": "Install", "version": "1.3.2-3fakesync1", "name": "libcddb2", "description": "library to access CDDB data - runtime files" }, { "status": "Installed", "desired": "Install", "version": "0.83-1", "name": "libcdio-cdda1", "description": "library to read and control digital audio CDs" }, { "status": "Installed", "desired": "Install", "version": "0.83-1", "name": "libcdio-paranoia1", "description": "library to read digital audio CDs with error correction" }, { "status": "Installed", "desired": "Install", "version": "0.83-1", "name": "libcdio13", "description": "library to read and control CD-ROM" }, { "status": "Installed", "desired": "Install", "version": "3.10.2+debian-10ubuntu1", "name": "libcdparanoia0", "description": "audio extraction tool for sampling CDs (library)" }, { "status": "Installed", "desired": "Install", "version": "3.10.2+debian-10ubuntu1", "name": "libcdparanoia0:i386", "description": "audio extraction tool for sampling CDs (library)" }, { "status": "Installed", "desired": "Install", "version": "2.26.3-10ubuntu1", "name": "libcdt4", "description": "rich set of graph drawing tools - cdt library" }, { "status": "Installed", "desired": "Install", "version": "0.7.1-1", "name": "libcelt0-0", "description": "The CELT codec runtime library" }, { "status": "Installed", "desired": "Install", "version": "2.26.3-10ubuntu1", "name": "libcgraph5", "description": "rich set of graph drawing tools - cgraph library" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu2.1", "name": "libcheese-gtk21", "description": "tool to take pictures and videos from your webcam - widgets" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu2.1", "name": "libcheese3", "description": "tool to take pictures and videos from your webcam - base library" }, { "status": "Installed", "desired": "Install", "version": "0.4.5-2", "name": "libck-connector0", "description": "ConsoleKit libraries" }, { "status": "Installed", "desired": "Install", "version": "0.34-1", "name": "libclass-accessor-perl", "description": "Perl module that automatically generates accessors" }, { "status": "Installed", "desired": "Install", "version": "0.36-3", "name": "libclass-isa-perl", "description": "report the search path for a class's ISA tree" }, { "status": "Installed", "desired": "Install", "version": "0.31-1build3", "name": "libclone-perl", "description": "recursively copy Perl datatypes" }, { "status": "Installed", "desired": "Install", "version": "1.10.6-1~precise1", "name": "libclutter-1.0-0", "description": "Open GL based interactive canvas library" }, { "status": "Installed", "desired": "Install", "version": "1.10.6-1~precise1", "name": "libclutter-1.0-common", "description": "Open GL based interactive canvas library (common files)" }, { "status": "Installed", "desired": "Install", "version": "1.5.4-0ubuntu2", "name": "libclutter-gst-1.0-0", "description": "Open GL based interactive canvas library GStreamer elements" }, { "status": "Installed", "desired": "Install", "version": "1.2.0-0ubuntu1", "name": "libclutter-gtk-1.0-0", "description": "Open GL based interactive canvas library GTK+ widget" }, { "status": "Installed", "desired": "Install", "version": "0.1.4-2build1", "name": "libclutter-imcontext-0.1-0", "description": "Open GL based interactive canvas library IMContext framework" }, { "status": "Installed", "desired": "Install", "version": "0.0.2.1-2ubuntu3", "name": "libcluttergesture-0.0.2-0", "description": "Open GL based interactive canvas library Gesture framework" }, { "status": "Installed", "desired": "Install", "version": "0.1.0-1", "name": "libcmis-0.2-0", "description": "CMIS protocol client library" }, { "status": "Installed", "desired": "Install", "version": "1.10.0-0ubuntu2", "name": "libcogl-common", "description": "Object oriented GL/GLES Abstraction/Utility Layer (common files)" }, { "status": "Installed", "desired": "Install", "version": "1.10.0-0ubuntu2", "name": "libcogl-pango0", "description": "Object oriented GL/GLES Abstraction/Utility Layer" }, { "status": "Installed", "desired": "Install", "version": "1.10.0-0ubuntu2", "name": "libcogl9", "description": "Object oriented GL/GLES Abstraction/Utility Layer" }, { "status": "Installed", "desired": "Install", "version": "0.1.16-2ubuntu0.1", "name": "libcolord1", "description": "system service to manage device colour profiles -- runtime" }, { "status": "Installed", "desired": "Install", "version": "1.42-1ubuntu2", "name": "libcomerr2", "description": "common error description library" }, { "status": "Installed", "desired": "Install", "version": "1.42-1ubuntu2", "name": "libcomerr2:i386", "description": "common error description library" }, { "status": "Installed", "desired": "Install", "version": "3.4-1", "name": "libcommon-sense-perl", "description": "module that implements some sane defaults for Perl programs" }, { "status": "Installed", "desired": "Install", "version": "0.9.7.0~bzr428-0ubuntu6", "name": "libcompizconfig0", "description": "Settings library for plugins - OpenCompositing Project" }, { "status": "Installed", "desired": "Install", "version": "1.50-2", "name": "libconfig-file-perl", "description": "Parses simple configuration files" }, { "status": "Installed", "desired": "Install", "version": "0.6.5-1", "name": "libcroco3", "description": "Cascading Style Sheet (CSS) parsing and manipulation toolkit" }, { "status": "Installed", "desired": "Install", "version": "0.6.5-1", "name": "libcroco3:i386", "description": "Cascading Style Sheet (CSS) parsing and manipulation toolkit" }, { "status": "Installed", "desired": "Install", "version": "1.3-10", "name": "libcrypt-passwdmd5-perl", "description": "interoperable MD5-based crypt() for perl" }, { "status": "Installed", "desired": "Install", "version": "0.57-2ubuntu1", "name": "libcrypt-ssleay-perl", "description": "Support for https protocol in LWP" }, { "status": "Installed", "desired": "Install", "version": "2:1.4.1-2ubuntu4", "name": "libcryptsetup4", "description": "disk encryption support - shared library" }, { "status": "Installed", "desired": "Install", "version": "1:0.0~git20110715.fdd2f19-4.1", "name": "libcrystalhd3", "description": "Crystal HD Video Decoder (shared library)" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "libcups2", "description": "Common UNIX Printing System(tm) - Core library" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "libcups2:i386", "description": "Common UNIX Printing System(tm) - Core library" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "libcupscgi1", "description": "Common UNIX Printing System(tm) - CGI library" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "libcupsdriver1", "description": "Common UNIX Printing System(tm) - Driver library" }, { "status": "Installed", "desired": "Install", "version": "1.0.18-0ubuntu0.1", "name": "libcupsfilters1", "description": "OpenPrinting CUPS Filters - Shared library" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "libcupsimage2", "description": "Common UNIX Printing System(tm) - Raster image library" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "libcupsimage2:i386", "description": "Common UNIX Printing System(tm) - Raster image library" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "libcupsmime1", "description": "Common UNIX Printing System(tm) - MIME library" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-0ubuntu6", "name": "libcupsppdc1", "description": "Common UNIX Printing System(tm) - PPD manipulation library" }, { "status": "Installed", "desired": "Install", "version": "7.22.0-3ubuntu4", "name": "libcurl3", "description": "Multi-protocol file transfer library (OpenSSL)" }, { "status": "Installed", "desired": "Install", "version": "7.22.0-3ubuntu4", "name": "libcurl3:i386", "description": "Multi-protocol file transfer library (OpenSSL)" }, { "status": "Installed", "desired": "Install", "version": "7.22.0-3ubuntu4", "name": "libcurl3-gnutls", "description": "Multi-protocol file transfer library (GnuTLS)" }, { "status": "Installed", "desired": "Install", "version": "7.22.0-3ubuntu4", "name": "libcurl3-nss", "description": "Multi-protocol file transfer library (NSS)" }, { "status": "Installed", "desired": "Install", "version": "0.14-2", "name": "libdaemon0", "description": "lightweight C library for daemons - runtime library" }, { "status": "Installed", "desired": "Install", "version": "6.3-1", "name": "libdate-calc-perl", "description": "Perl library for accessing dates" }, { "status": "Installed", "desired": "Install", "version": "6.2-1build1", "name": "libdate-calc-xs-perl", "description": "Perl library for accessing dates" }, { "status": "Installed", "desired": "Install", "version": "6.25-1", "name": "libdate-manip-perl", "description": "module for manipulating dates" }, { "status": "Installed", "desired": "Install", "version": "0.2.5-3", "name": "libdatrie1", "description": "Double-array trie library" }, { "status": "Installed", "desired": "Install", "version": "0.2.5-3", "name": "libdatrie1:i386", "description": "Double-array trie library" }, { "status": "Installed", "desired": "Install", "version": "5.1.25-11build1", "name": "libdb5.1", "description": "Berkeley v5.1 Database Libraries [runtime]" }, { "status": "Installed", "desired": "Install", "version": "5.1.25-11build1", "name": "libdb5.1:i386", "description": "Berkeley v5.1 Database Libraries [runtime]" }, { "status": "Installed", "desired": "Install", "version": "1.4.18-1ubuntu1.3", "name": "libdbus-1-3", "description": "simple interprocess messaging system (library)" }, { "status": "Installed", "desired": "Install", "version": "1.4.18-1ubuntu1.3", "name": "libdbus-1-3:i386", "description": "simple interprocess messaging system (library)" }, { "status": "Installed", "desired": "Install", "version": "0.98-1ubuntu1", "name": "libdbus-glib-1-2", "description": "simple interprocess messaging system (GLib-based shared library)" }, { "status": "Installed", "desired": "Install", "version": "0.98-1ubuntu1", "name": "libdbus-glib-1-2:i386", "description": "simple interprocess messaging system (GLib-based shared library)" }, { "status": "Installed", "desired": "Install", "version": "0.6.2-0ubuntu0.1", "name": "libdbusmenu-glib4", "description": "library for passing menus over DBus" }, { "status": "Installed", "desired": "Install", "version": "0.6.2-0ubuntu0.1", "name": "libdbusmenu-gtk3-4", "description": "library for passing menus over DBus - GTK+ version" }, { "status": "Installed", "desired": "Install", "version": "0.6.2-0ubuntu0.1", "name": "libdbusmenu-gtk4", "description": "library for passing menus over DBus - GTK+ version" }, { "status": "Installed", "desired": "Install", "version": "0.9.2-0ubuntu1", "name": "libdbusmenu-qt2", "description": "Qt implementation of the DBusMenu protocol" }, { "status": "Installed", "desired": "Install", "version": "2.2.0-2", "name": "libdc1394-22", "description": "high level programming interface for IEEE1394 digital camera" }, { "status": "Installed", "desired": "Install", "version": "0.0.5-5", "name": "libdca0", "description": "decoding library for DTS Coherent Acoustics streams" }, { "status": "Installed", "desired": "Install", "version": "0.12.0-0ubuntu1.1", "name": "libdconf-dbus-1-0", "description": "simple configuration storage system - D-Bus library" }, { "status": "Installed", "desired": "Install", "version": "0.0.0.110722-0ubuntu4", "name": "libdconf-qt0", "description": "dconf Qt bindings (library)" }, { "status": "Installed", "desired": "Install", "version": "0.12.0-0ubuntu1.1", "name": "libdconf0", "description": "simple configuration storage system - runtime library" }, { "status": "Installed", "desired": "Install", "version": "1:0.9.7.12-0ubuntu1", "name": "libdecoration0", "description": "Compiz window decoration library" }, { "status": "Installed", "desired": "Install", "version": "1.0.10-0ubuntu1", "name": "libdee-1.0-4", "description": "model to synchronize mutiple instances over DBus - shared lib" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "libdevhelp-3-0", "description": "Library providing documentation browser functionality" }, { "status": "Installed", "desired": "Install", "version": "2:1.02.48-4ubuntu7.1", "name": "libdevmapper-event1.02.1", "description": "The Linux Kernel Device Mapper userspace library" }, { "status": "Installed", "desired": "Install", "version": "2:1.02.48-4ubuntu7.1", "name": "libdevmapper1.02.1", "description": "The Linux Kernel Device Mapper userspace library" }, { "status": "Installed", "desired": "Install", "version": "1.03+dfsg-1", "name": "libdigest-hmac-perl", "description": "module for creating standard message integrity checks" }, { "status": "Installed", "desired": "Install", "version": "1.0.2-4build1", "name": "libdirac-encoder0", "description": "open and royalty free high quality codec - encoder library" }, { "status": "Installed", "desired": "Install", "version": "1.2.10.0-4.3ubuntu1", "name": "libdirectfb-1.2-9", "description": "direct frame buffer graphics - shared libraries" }, { "status": "Installed", "desired": "Install", "version": "0.2.2-3", "name": "libdiscid0", "description": "Library for creating MusicBrainz DiscIDs" }, { "status": "Installed", "desired": "Install", "version": "3.5.24-9", "name": "libdjvulibre-text", "description": "Linguistic support files for libdjvulibre" }, { "status": "Installed", "desired": "Install", "version": "3.5.24-9", "name": "libdjvulibre21", "description": "Runtime support for the DjVu image format" }, { "status": "Installed", "desired": "Install", "version": "2.9.14-1", "name": "libdmapsharing-3.0-2", "description": "DMAP client and server library - runtime" }, { "status": "Installed", "desired": "Install", "version": "1:9.8.1.dfsg.P1-4ubuntu0.5", "name": "libdns81", "description": "DNS Shared Library used by BIND" }, { "status": "Installed", "desired": "Install", "version": "1.0.13-3", "name": "libdotconf1.0", "description": "Configuration file parser library - runtime files" }, { "status": "Installed", "desired": "Install", "version": "1.16.1.2ubuntu7.1", "name": "libdpkg-perl", "description": "Dpkg perl modules" }, { "status": "Installed", "desired": "Install", "version": "2.4.32-1ubuntu1", "name": "libdrm-dev", "description": "Userspace interface to kernel DRM services -- development files" }, { "status": "Installed", "desired": "Install", "version": "2.4.32-1ubuntu1", "name": "libdrm-intel1", "description": "Userspace interface to intel-specific kernel DRM services -- runtime" }, { "status": "Installed", "desired": "Install", "version": "2.4.32-1ubuntu1", "name": "libdrm-intel1:i386", "description": "Userspace interface to intel-specific kernel DRM services -- runtime" }, { "status": "Installed", "desired": "Install", "version": "2.4.32-1ubuntu1", "name": "libdrm-nouveau1a", "description": "Userspace interface to nouveau-specific kernel DRM services -- runtime" }, { "status": "Installed", "desired": "Install", "version": "2.4.32-1ubuntu1", "name": "libdrm-nouveau1a:i386", "description": "Userspace interface to nouveau-specific kernel DRM services -- runtime" }, { "status": "Installed", "desired": "Install", "version": "2.4.32-1ubuntu1", "name": "libdrm-radeon1", "description": "Userspace interface to radeon-specific kernel DRM services -- runtime" }, { "status": "Installed", "desired": "Install", "version": "2.4.32-1ubuntu1", "name": "libdrm-radeon1:i386", "description": "Userspace interface to radeon-specific kernel DRM services -- runtime" }, { "status": "Installed", "desired": "Install", "version": "2.4.32-1ubuntu1", "name": "libdrm2", "description": "Userspace interface to kernel DRM services -- runtime" }, { "status": "Installed", "desired": "Install", "version": "2.4.32-1ubuntu1", "name": "libdrm2:i386", "description": "Userspace interface to kernel DRM services -- runtime" }, { "status": "Installed", "desired": "Install", "version": "1.0.0-3ubuntu1", "name": "libdv4", "description": "software library for DV format digital video (runtime lib)" }, { "status": "Installed", "desired": "Install", "version": "1.0.0-3ubuntu1", "name": "libdv4:i386", "description": "software library for DV format digital video (runtime lib)" }, { "status": "Installed", "desired": "Install", "version": "0.2.2-1", "name": "libdvbpsi7", "description": "library for MPEG TS and DVB PSI tables decoding and generating" }, { "status": "Installed", "desired": "Install", "version": "1.2.12-0.0medibuntu1", "name": "libdvdcss2", "description": "Simple foundation for reading DVDs - runtime libraries" }, { "status": "Installed", "desired": "Install", "version": "4.2.0-1", "name": "libdvdnav4", "description": "DVD navigation library" }, { "status": "Installed", "desired": "Install", "version": "4.2.0-1ubuntu3", "name": "libdvdread4", "description": "library for reading DVDs" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu7", "name": "libebackend-1.2-1", "description": "Utility library for evolution data servers" }, { "status": "Installed", "desired": "Install", "version": "1.2.2-2", "name": "libebml3", "description": "access library for the EBML format (shared library)" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu7", "name": "libebook-1.2-12", "description": "Client library for evolution address books" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu7", "name": "libecal-1.2-10", "description": "Client library for evolution calendars" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu7", "name": "libedata-book-1.2-11", "description": "Backend library for evolution address books" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu7", "name": "libedata-cal-1.2-13", "description": "Backend library for evolution calendars" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu7", "name": "libedataserver-1.2-15", "description": "Utility library for evolution data servers" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu7", "name": "libedataserverui-3.0-1", "description": "GUI utility library for evolution data servers" }, { "status": "Installed", "desired": "Install", "version": "2.11-20080614-3ubuntu2", "name": "libedit2", "description": "BSD editline and history libraries" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libegl1-mesa", "description": "free implementation of the EGL API -- runtime" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libegl1-mesa-dev", "description": "free implementation of the EGL API -- development files" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libegl1-mesa-drivers", "description": "free implementation of the EGL API -- hardware drivers" }, { "status": "Installed", "desired": "Install", "version": "0.152-1ubuntu3", "name": "libelf1", "description": "library to read and write ELF files" }, { "status": "Installed", "desired": "Install", "version": "0.152-1ubuntu3", "name": "libelf1:i386", "description": "library to read and write ELF files" }, { "status": "Installed", "desired": "Install", "version": "0.185-1", "name": "libemail-valid-perl", "description": "Perl module for checking the validity of Internet email addresses" }, { "status": "Installed", "desired": "Install", "version": "1.13-4", "name": "libenca0", "description": "Extremely Naive Charset Analyser - shared library files" }, { "status": "Installed", "desired": "Install", "version": "1.6.0-7", "name": "libenchant1c2a", "description": "Wrapper library for various spell checker engines (runtime libs)" }, { "status": "Installed", "desired": "Install", "version": "1.02-2", "name": "libencode-locale-perl", "description": "utility to determine the locale encoding" }, { "status": "Installed", "desired": "Install", "version": "1.0.6~exp1ubuntu1", "name": "libept1.4.12", "description": "High-level library for managing Debian package information" }, { "status": "Installed", "desired": "Install", "version": "0.17-1", "name": "liberror-perl", "description": "Perl module for error/exception handling in an OO-ish way" }, { "status": "Installed", "desired": "Install", "version": "0.2.41-10build3", "name": "libesd0", "description": "Enlightened Sound Daemon - Shared libraries" }, { "status": "Installed", "desired": "Install", "version": "0.2.41-10build3", "name": "libesd0:i386", "description": "Enlightened Sound Daemon - Shared libraries" }, { "status": "Installed", "desired": "Install", "version": "1.46.02-0ubuntu1", "name": "libespeak1", "description": "Multi-lingual software speech synthesizer: shared library" }, { "status": "Installed", "desired": "Install", "version": "2.0.16-stable-1", "name": "libevent-2.0-5", "description": "Asynchronous event notification library" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1.4", "name": "libevince3-3", "description": "Document (PostScript, PDF) rendering library" }, { "status": "Installed", "desired": "Install", "version": "2.2.0-1", "name": "libexempi3", "description": "library to parse XMP metadata (Library)" }, { "status": "Installed", "desired": "Install", "version": "0.6.20-2ubuntu0.1", "name": "libexif12", "description": "library to parse EXIF files" }, { "status": "Installed", "desired": "Install", "version": "0.6.20-2ubuntu0.1", "name": "libexif12:i386", "description": "library to parse EXIF files" }, { "status": "Installed", "desired": "Install", "version": "0.22-2", "name": "libexiv2-11", "description": "EXIF/IPTC metadata manipulation library" }, { "status": "Installed", "desired": "Install", "version": "2.0.1-7.2ubuntu1.1", "name": "libexpat1", "description": "XML parsing C library - runtime library" }, { "status": "Installed", "desired": "Install", "version": "2.0.1-7.2ubuntu1.1", "name": "libexpat1:i386", "description": "XML parsing C library - runtime library" }, { "status": "Installed", "desired": "Install", "version": "2.0.1-7.2ubuntu1.1", "name": "libexpat1-dev", "description": "XML parsing C library - development kit" }, { "status": "Installed", "desired": "Install", "version": "0.51.D001-1", "name": "libexplain30", "description": "library of syscall-specific strerror replacements" }, { "status": "Installed", "desired": "Install", "version": "0.02-2", "name": "libexporter-lite-perl", "description": "lightweight subset of Exporter" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-1ubuntu1", "name": "libexttextcat-data", "description": "Language detection library - data files" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-1ubuntu1", "name": "libexttextcat0", "description": "Language detection library" }, { "status": "Installed", "desired": "Install", "version": "0.304-1", "name": "libextutils-depends-perl", "description": "Perl module for building extensions that depend on other extensions" }, { "status": "Installed", "desired": "Install", "version": "1.12-1", "name": "libextutils-pkgconfig-perl", "description": "simplistic perl interface to pkg-config" }, { "status": "Installed", "desired": "Install", "version": "2.7-7", "name": "libfaad2", "description": "freeware Advanced Audio Decoder - runtime files" }, { "status": "Installed", "desired": "Install", "version": "0.1.2-0ubuntu1", "name": "libfarstream-0.1-0", "description": "Audio/Video communications framework: core library" }, { "status": "Installed", "desired": "Install", "version": "3.0.11~rc1-5", "name": "libffi-dev", "description": "Foreign Function Interface library (development files)" }, { "status": "Installed", "desired": "Install", "version": "3.0.11~rc1-5", "name": "libffi6", "description": "Foreign Function Interface library runtime" }, { "status": "Installed", "desired": "Install", "version": "3.0.11~rc1-5", "name": "libffi6:i386", "description": "Foreign Function Interface library runtime" }, { "status": "Installed", "desired": "Install", "version": "3.3-1ubuntu1", "name": "libfftw3-3", "description": "library for computing Fast Fourier Transforms" }, { "status": "Installed", "desired": "Install", "version": "0.03-1fakesync1", "name": "libfile-basedir-perl", "description": "Perl module to use the freedesktop basedir specification" }, { "status": "Installed", "desired": "Install", "version": "0.38-1", "name": "libfile-copy-recursive-perl", "description": "Perl extension for recursively copying files and directories" }, { "status": "Installed", "desired": "Install", "version": "0.04-3", "name": "libfile-desktopentry-perl", "description": "Perl module to handle freedesktop .desktop files" }, { "status": "Installed", "desired": "Install", "version": "6.03-1", "name": "libfile-listing-perl", "description": "module to parse directory listings" }, { "status": "Installed", "desired": "Install", "version": "0.15-2", "name": "libfile-mimeinfo-perl", "description": "Perl module to determine file types" }, { "status": "Installed", "desired": "Install", "version": "1.08-1", "name": "libfile-which-perl", "description": "Perl module for searching paths for executable programs" }, { "status": "Installed", "desired": "Install", "version": "2.5.35-10ubuntu3", "name": "libfl-dev", "description": "static library for flex (a fast lexical analyzer generator)." }, { "status": "Installed", "desired": "Install", "version": "1.2.1-6", "name": "libflac++6", "description": "Free Lossless Audio Codec - C++ runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.2.1-6", "name": "libflac8", "description": "Free Lossless Audio Codec - runtime C library" }, { "status": "Installed", "desired": "Install", "version": "1.2.1-6", "name": "libflac8:i386", "description": "Free Lossless Audio Codec - runtime C library" }, { "status": "Installed", "desired": "Install", "version": "1.4-release-4", "name": "libflite1", "description": "Small run-time speech synthesis engine - shared libraries" }, { "status": "Installed", "desired": "Install", "version": "0.6.8-2", "name": "libfolks-eds25", "description": "Evolution-data-server backend for libfolks" }, { "status": "Installed", "desired": "Install", "version": "0.6.8-2", "name": "libfolks-telepathy25", "description": "Telepathy backend for libfolks" }, { "status": "Installed", "desired": "Install", "version": "0.6.8-2", "name": "libfolks25", "description": "library to aggregates people into metacontacts" }, { "status": "Installed", "desired": "Install", "version": "1.20-1", "name": "libfont-afm-perl", "description": "Font::AFM - Interface to Adobe Font Metrics files" }, { "status": "Installed", "desired": "Install", "version": "2.8.0-3ubuntu9.1", "name": "libfontconfig1", "description": "generic font configuration library - runtime" }, { "status": "Installed", "desired": "Install", "version": "2.8.0-3ubuntu9.1", "name": "libfontconfig1:i386", "description": "generic font configuration library - runtime" }, { "status": "Installed", "desired": "Install", "version": "2.8.0-3ubuntu9.1", "name": "libfontconfig1-dev", "description": "generic font configuration library - development" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.0-1", "name": "libfontenc1", "description": "X11 font encoding library" }, { "status": "Installed", "desired": "Install", "version": "2.2.4-0ubuntu0.12.04.1", "name": "libframe6", "description": "Touch Frame Library" }, { "status": "Installed", "desired": "Install", "version": "3.15.1-1", "name": "libfreeimage-dev", "description": "Support library for graphics image formats (development files)" }, { "status": "Installed", "desired": "Install", "version": "3.15.1-1", "name": "libfreeimage3", "description": "Support library for graphics image formats (library)" }, { "status": "Installed", "desired": "Install", "version": "1.0.1-1ubuntu2.2", "name": "libfreerdp-plugins-standard", "description": "RDP client for Windows Terminal Services (plugins)" }, { "status": "Installed", "desired": "Install", "version": "1.0.1-1ubuntu2.2", "name": "libfreerdp1", "description": "RDP client for Windows Terminal Services (library)" }, { "status": "Installed", "desired": "Install", "version": "2.4.8-1ubuntu2.1", "name": "libfreetype6", "description": "FreeType 2 font engine, shared library files" }, { "status": "Installed", "desired": "Install", "version": "2.4.8-1ubuntu2.1", "name": "libfreetype6:i386", "description": "FreeType 2 font engine, shared library files" }, { "status": "Installed", "desired": "Install", "version": "2.4.8-1ubuntu2.1", "name": "libfreetype6-dev", "description": "FreeType 2 font engine, development files" }, { "status": "Installed", "desired": "Install", "version": "0.19.2-1", "name": "libfribidi0", "description": "Free Implementation of the Unicode BiDi algorithm" }, { "status": "Installed", "desired": "Install", "version": "2:1.0.3-1", "name": "libfs6", "description": "X11 Font Services library" }, { "status": "Installed", "desired": "Install", "version": "2.8.6-2ubuntu2", "name": "libfuse2", "description": "Filesystem in Userspace (library)" }, { "status": "Installed", "desired": "Install", "version": "0.25.06precise1", "name": "libfwts1", "description": "FirmWare Test Suite core support library" }, { "status": "Installed", "desired": "Install", "version": "0.25.06precise1", "name": "libfwtsacpica1", "description": "FirmWare Test Suite ACPICA core built for acpiexec functionality" }, { "status": "Installed", "desired": "Install", "version": "0.25.06precise1", "name": "libfwtsiasl1", "description": "FirmWare Test Suite ACPICA core built for iasl functionality" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu0.5", "name": "libgail-3-0", "description": "GNOME Accessibility Implementation Library -- shared libraries" }, { "status": "Installed", "desired": "Install", "version": "2.24.10-0ubuntu6", "name": "libgail-common", "description": "GNOME Accessibility Implementation Library -- common modules" }, { "status": "Installed", "desired": "Install", "version": "2.24.10-0ubuntu6", "name": "libgail-common:i386", "description": "GNOME Accessibility Implementation Library -- common modules" }, { "status": "Installed", "desired": "Install", "version": "2.24.10-0ubuntu6", "name": "libgail18", "description": "GNOME Accessibility Implementation Library -- shared libraries" }, { "status": "Installed", "desired": "Install", "version": "2.24.10-0ubuntu6", "name": "libgail18:i386", "description": "GNOME Accessibility Implementation Library -- shared libraries" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libgbm1", "description": "generic buffer management API -- runtime" }, { "status": "Installed", "desired": "Install", "version": "1:7.1-8ubuntu0.12.04.1", "name": "libgc1c2", "description": "conservative garbage collector for C and C++" }, { "status": "Installed", "desired": "Install", "version": "1:4.6.3-1ubuntu5", "name": "libgcc1", "description": "GCC support library" }, { "status": "Installed", "desired": "Install", "version": "1:4.6.3-1ubuntu5", "name": "libgcc1:i386", "description": "GCC support library" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-2ubuntu4", "name": "libgck-1-0", "description": "Glib wrapper library for PKCS#11 - runtime" }, { "status": "Installed", "desired": "Install", "version": "3.2.5-0ubuntu2", "name": "libgconf-2-4", "description": "GNOME configuration database system (shared libraries)" }, { "status": "Installed", "desired": "Install", "version": "3.2.5-0ubuntu2", "name": "libgconf-2-4:i386", "description": "GNOME configuration database system (shared libraries)" }, { "status": "Installed", "desired": "Install", "version": "3.2.5-0ubuntu2", "name": "libgconf2-4", "description": "GNOME configuration database system (dummy package)" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-2ubuntu4", "name": "libgcr-3-1", "description": "Library for Crypto UI related task - runtime" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-2ubuntu4", "name": "libgcr-3-common", "description": "Library for Crypto UI related task - common files" }, { "status": "Installed", "desired": "Install", "version": "1.5.0-3ubuntu0.1", "name": "libgcrypt11", "description": "LGPL Crypto library - runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.5.0-3ubuntu0.1", "name": "libgcrypt11:i386", "description": "LGPL Crypto library - runtime library" }, { "status": "Installed", "desired": "Install", "version": "2.0.36~rc1~dfsg-6ubuntu2", "name": "libgd2-xpm", "description": "GD Graphics Library version 2" }, { "status": "Installed", "desired": "Install", "version": "2.0.36~rc1~dfsg-6ubuntu2", "name": "libgd2-xpm:i386", "description": "GD Graphics Library version 2" }, { "status": "Installed", "desired": "Install", "version": "0.12.0-1", "name": "libgdata-common", "description": "Library for accessing GData webservices - common data files" }, { "status": "Installed", "desired": "Install", "version": "0.12.0-1", "name": "libgdata13", "description": "Library for accessing GData webservices - shared libraries" }, { "status": "Installed", "desired": "Install", "version": "1.8.3-10", "name": "libgdbm3", "description": "GNU dbm database routines (runtime version)" }, { "status": "Installed", "desired": "Install", "version": "1.8.3-10", "name": "libgdbm3:i386", "description": "GNU dbm database routines (runtime version)" }, { "status": "Installed", "desired": "Install", "version": "2.26.1-1", "name": "libgdk-pixbuf2.0-0", "description": "GDK Pixbuf library" }, { "status": "Installed", "desired": "Install", "version": "2.26.1-1", "name": "libgdk-pixbuf2.0-0:i386", "description": "GDK Pixbuf library" }, { "status": "Installed", "desired": "Install", "version": "2.26.1-1", "name": "libgdk-pixbuf2.0-common", "description": "GDK Pixbuf library - data files" }, { "status": "Installed", "desired": "Install", "version": "2.26.1-1", "name": "libgdk-pixbuf2.0-dev", "description": "GDK Pixbuf library (development files)" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-2ubuntu7", "name": "libgdu-gtk0", "description": "GTK+ standard dialog library for libgdu" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-2ubuntu7", "name": "libgdu0", "description": "GObject based Disk Utility Library" }, { "status": "Installed", "desired": "Install", "version": "0.6.4-1", "name": "libgee2", "description": "GObject based collection library" }, { "status": "Installed", "desired": "Install", "version": "0.0.22-2ubuntu3", "name": "libgegl-0.0-0", "description": "Generic Graphics Library" }, { "status": "Installed", "desired": "Install", "version": "2.2.9.2-0ubuntu1", "name": "libgeis1", "description": "Gesture engine interface support" }, { "status": "Installed", "desired": "Install", "version": "0.12.0-1ubuntu12", "name": "libgeoclue0", "description": "C API for GeoClue" }, { "status": "Installed", "desired": "Install", "version": "1.4.8+dfsg-2", "name": "libgeoip1", "description": "non-DNS IP-to-country resolver library" }, { "status": "Installed", "desired": "Install", "version": "0.18.1.1-5ubuntu3", "name": "libgettextpo0", "description": "GNU Internationalization library" }, { "status": "Installed", "desired": "Install", "version": "0.18.1.1-5ubuntu3", "name": "libgettextpo0:i386", "description": "GNU Internationalization library" }, { "status": "Installed", "desired": "Install", "version": "0.4.1-1build1", "name": "libgexiv2-1", "description": "GObject-based wrapper around the Exiv2 library" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-1ubuntu5", "name": "libgfortran3", "description": "Runtime library for GNU Fortran applications" }, { "status": "Installed", "desired": "Install", "version": "4.1.6-9ubuntu1", "name": "libgif4", "description": "library for GIF images (library)" }, { "status": "Installed", "desired": "Install", "version": "2.6.12-1ubuntu1.2", "name": "libgimp2.0", "description": "Libraries for the GNU Image Manipulation Program" }, { "status": "Installed", "desired": "Install", "version": "1.32.0-1", "name": "libgirepository-1.0-1", "description": "Library for handling GObject introspection data (runtime library)" }, { "status": "Installed", "desired": "Install", "version": "1.32.0-1ubuntu1", "name": "libgjs0c", "description": "Mozilla-based javascript bindings for the GNOME platform" }, { "status": "Installed", "desired": "Install", "version": "2.0.13~pre1-5ubuntu2", "name": "libgksu2-0", "description": "library providing su and sudo functionality" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libgl1-mesa-dev", "description": "free implementation of the OpenGL API -- GLX development files" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libgl1-mesa-dri", "description": "free implementation of the OpenGL API -- DRI modules" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libgl1-mesa-dri:i386", "description": "free implementation of the OpenGL API -- DRI modules" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libgl1-mesa-glx", "description": "free implementation of the OpenGL API -- GLX runtime" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libgl1-mesa-glx:i386", "description": "free implementation of the OpenGL API -- GLX runtime" }, { "status": "Installed", "desired": "Install", "version": "1:2.6.4-1ubuntu1.1", "name": "libglade2-0", "description": "library to load .glade files at runtime" }, { "status": "Installed", "desired": "Install", "version": "1:2.6.4-1ubuntu1.1", "name": "libglade2-dev", "description": "development files for libglade" }, { "status": "Installed", "desired": "Install", "version": "3.8.0-0ubuntu4", "name": "libgladeui-1-11", "description": "GTK+ User Interface Build core library" }, { "status": "Installed", "desired": "Install", "version": "3.12.1-0ubuntu1", "name": "libgladeui-2-0", "description": "GTK+ User Interface Build core library" }, { "status": "Installed", "desired": "Install", "version": "3.12.1-0ubuntu1", "name": "libgladeui-common", "description": "GTK+ User Interface Build core library (common files)" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libglapi-mesa", "description": "free implementation of the GL API -- shared library" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libglapi-mesa:i386", "description": "free implementation of the GL API -- shared library" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libgles2-mesa", "description": "free implementation of the OpenGL|ES 2.x API -- runtime" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libgles2-mesa-dev", "description": "free implementation of the OpenGL|ES 2.x API -- development files" }, { "status": "Installed", "desired": "Install", "version": "1.5.7.is.1.5.2-1ubuntu4", "name": "libglew1.5", "description": "The OpenGL Extension Wrangler - runtime environment" }, { "status": "Installed", "desired": "Install", "version": "1.5.7.is.1.5.2-1ubuntu4", "name": "libglew1.5-dev", "description": "The OpenGL Extension Wrangler - development environment" }, { "status": "Installed", "desired": "Install", "version": "1.6.0-4", "name": "libglew1.6", "description": "OpenGL Extension Wrangler - runtime environment" }, { "status": "Installed", "desired": "Install", "version": "1.6.0-4", "name": "libglewmx1.6", "description": "OpenGL Extension Wrangler - runtime environment" }, { "status": "Installed", "desired": "Install", "version": "2:1.241-1", "name": "libglib-perl", "description": "interface to the GLib and GObject libraries" }, { "status": "Installed", "desired": "Install", "version": "2.32.3-0ubuntu1", "name": "libglib2.0-0", "description": "GLib library of C routines" }, { "status": "Installed", "desired": "Install", "version": "2.32.3-0ubuntu1", "name": "libglib2.0-0:i386", "description": "GLib library of C routines" }, { "status": "Installed", "desired": "Install", "version": "2.32.3-0ubuntu1", "name": "libglib2.0-bin", "description": "Programs for the GLib library" }, { "status": "Installed", "desired": "Install", "version": "2.32.3-0ubuntu1", "name": "libglib2.0-data", "description": "Common files for GLib library" }, { "status": "Installed", "desired": "Install", "version": "2.32.3-0ubuntu1", "name": "libglib2.0-dev", "description": "Development files for the GLib library" }, { "status": "Installed", "desired": "Install", "version": "2.32.3-0ubuntu1", "name": "libglib2.0-doc", "description": "Documentation files for the GLib library" }, { "status": "Installed", "desired": "Install", "version": "2.32.0-0ubuntu1", "name": "libglibmm-2.4-1c2a", "description": "C++ wrapper for the GLib toolkit (shared libraries)" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libglu1-mesa", "description": "Mesa OpenGL utility library (GLU)" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libglu1-mesa:i386", "description": "Mesa OpenGL utility library (GLU)" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libglu1-mesa-dev", "description": "Mesa OpenGL utility library -- development files" }, { "status": "Installed", "desired": "Install", "version": "0.5.5-2", "name": "libgme0", "description": "Playback library for video game music files - shared library" }, { "status": "Installed", "desired": "Install", "version": "2.6.7-1", "name": "libgmime-2.6-0", "description": "MIME message parser and creator library - runtime" }, { "status": "Installed", "desired": "Install", "version": "1.0.5-1", "name": "libgmlib0", "description": "gnome-mplayer library (shared library)" }, { "status": "Installed", "desired": "Install", "version": "2:5.0.2+dfsg-2ubuntu1", "name": "libgmp10", "description": "Multiprecision arithmetic library" }, { "status": "Installed", "desired": "Install", "version": "1.0.5-1", "name": "libgmtk0", "description": "gnome-mplayer toolkit (shared library)" }, { "status": "Installed", "desired": "Install", "version": "1.0.5-1", "name": "libgmtk0-data", "description": "gnome-mplayer toolkit (common files)" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-0ubuntu5", "name": "libgnome-bluetooth8", "description": "GNOME Bluetooth tools - support library" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.2-0ubuntu0.8", "name": "libgnome-control-center1", "description": "utilities to configure the GNOME desktop" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu0.1", "name": "libgnome-desktop-3-2", "description": "Utility library for loading .desktop files - runtime files" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-2", "name": "libgnome-keyring-common", "description": "GNOME keyring services library - data files" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-2", "name": "libgnome-keyring0", "description": "GNOME keyring services library" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-2", "name": "libgnome-keyring0:i386", "description": "GNOME keyring services library" }, { "status": "Installed", "desired": "Install", "version": "3.0.0-1", "name": "libgnome-media-profiles-3.0-0", "description": "GNOME Media Profiles library" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1", "name": "libgnome-menu-3-0", "description": "GNOME implementation of the freedesktop menu specification" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu7", "name": "libgnome-menu2", "description": "GNOME implementation of the freedesktop menu specification" }, { "status": "Installed", "desired": "Install", "version": "2.32.1-2ubuntu1.1", "name": "libgnome2-0", "description": "The GNOME library - runtime files" }, { "status": "Installed", "desired": "Install", "version": "2.32.1-2ubuntu1.1", "name": "libgnome2-bin", "description": "The GNOME library - binary files" }, { "status": "Installed", "desired": "Install", "version": "1.002-2build3", "name": "libgnome2-canvas-perl", "description": "Perl interface to the GNOME canvas library" }, { "status": "Installed", "desired": "Install", "version": "2.32.1-2ubuntu1.1", "name": "libgnome2-common", "description": "The GNOME library - common files" }, { "status": "Installed", "desired": "Install", "version": "1.044-4", "name": "libgnome2-gconf-perl", "description": "Perl interface to the GNOME GConf library" }, { "status": "Installed", "desired": "Install", "version": "1.042-2build3", "name": "libgnome2-perl", "description": "Perl interface to the GNOME libraries" }, { "status": "Installed", "desired": "Install", "version": "1.081-3build1", "name": "libgnome2-vfs-perl", "description": "Perl interface to the 2.x series of the GNOME VFS library" }, { "status": "Installed", "desired": "Install", "version": "0.16-2build2", "name": "libgnome2-wnck-perl", "description": "Perl interface to the Window Navigator Construction Kit" }, { "status": "Installed", "desired": "Install", "version": "2.30.3-1ubuntu1.1", "name": "libgnomecanvas2-0", "description": "powerful object-oriented display engine - runtime files" }, { "status": "Installed", "desired": "Install", "version": "2.30.3-1ubuntu1.1", "name": "libgnomecanvas2-common", "description": "powerful object-oriented display engine - common files" }, { "status": "Installed", "desired": "Install", "version": "3.4.0.2-1", "name": "libgnomekbd-common", "description": "GNOME library to manage keyboard configuration - common files" }, { "status": "Installed", "desired": "Install", "version": "3.4.0.2-1", "name": "libgnomekbd7", "description": "GNOME library to manage keyboard configuration - shared library" }, { "status": "Installed", "desired": "Install", "version": "2.24.5-2ubuntu2", "name": "libgnomeui-0", "description": "GNOME user interface library - runtime files" }, { "status": "Installed", "desired": "Install", "version": "2.24.5-2ubuntu2", "name": "libgnomeui-common", "description": "GNOME user interface library - common files" }, { "status": "Installed", "desired": "Install", "version": "1:2.24.4-1ubuntu2.1", "name": "libgnomevfs2-0", "description": "GNOME Virtual File System (runtime libraries)" }, { "status": "Installed", "desired": "Install", "version": "1:2.24.4-1ubuntu2.1", "name": "libgnomevfs2-common", "description": "GNOME Virtual File System (common files)" }, { "status": "Installed", "desired": "Install", "version": "1:2.24.4-1ubuntu2.1", "name": "libgnomevfs2-extra", "description": "GNOME Virtual File System (extra modules)" }, { "status": "Installed", "desired": "Install", "version": "2.12.14-5ubuntu3.1", "name": "libgnutls26", "description": "GNU TLS library - runtime library" }, { "status": "Installed", "desired": "Install", "version": "2.12.14-5ubuntu3.1", "name": "libgnutls26:i386", "description": "GNU TLS library - runtime library" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1", "name": "libgoa-1.0-0", "description": "library for GNOME Online Accounts" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1", "name": "libgoa-1.0-common", "description": "library for GNOME Online Accounts - common files" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-1ubuntu5", "name": "libgomp1", "description": "GCC OpenMP (GOMP) support library" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-1ubuntu5", "name": "libgomp1:i386", "description": "GCC OpenMP (GOMP) support library" }, { "status": "Installed", "desired": "Install", "version": "0.06-1build2", "name": "libgoo-canvas-perl", "description": "Perl interface to the GooCanvas" }, { "status": "Installed", "desired": "Install", "version": "0.15-1", "name": "libgoocanvas-common", "description": "translations for goocanvas" }, { "status": "Installed", "desired": "Install", "version": "0.15-1", "name": "libgoocanvas3", "description": "canvas widget for GTK+ that uses the cairo 2D library" }, { "status": "Installed", "desired": "Install", "version": "1.10-2ubuntu1", "name": "libgpg-error0", "description": "library for common error values and messages in GnuPG components" }, { "status": "Installed", "desired": "Install", "version": "1.10-2ubuntu1", "name": "libgpg-error0:i386", "description": "library for common error values and messages in GnuPG components" }, { "status": "Installed", "desired": "Install", "version": "1.2.0-1.4ubuntu2", "name": "libgpgme11", "description": "GPGME - GnuPG Made Easy" }, { "status": "Installed", "desired": "Install", "version": "2.4.13-1ubuntu1.2", "name": "libgphoto2-2", "description": "gphoto2 digital camera library" }, { "status": "Installed", "desired": "Install", "version": "2.4.13-1ubuntu1.2", "name": "libgphoto2-2:i386", "description": "gphoto2 digital camera library" }, { "status": "Installed", "desired": "Install", "version": "2.4.13-1ubuntu1.2", "name": "libgphoto2-l10n", "description": "gphoto2 digital camera library - localized messages" }, { "status": "Installed", "desired": "Install", "version": "2.4.13-1ubuntu1.2", "name": "libgphoto2-port0", "description": "gphoto2 digital camera port library" }, { "status": "Installed", "desired": "Install", "version": "2.4.13-1ubuntu1.2", "name": "libgphoto2-port0:i386", "description": "gphoto2 digital camera port library" }, { "status": "Installed", "desired": "Install", "version": "1.20.4-4", "name": "libgpm2", "description": "General Purpose Mouse - shared library" }, { "status": "Installed", "desired": "Install", "version": "1.20.4-4", "name": "libgpm2:i386", "description": "General Purpose Mouse - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.8.2-4", "name": "libgpod-common", "description": "common files for libgpod" }, { "status": "Installed", "desired": "Install", "version": "0.8.2-4", "name": "libgpod4", "description": "library to read and write songs and artwork to an iPod" }, { "status": "Installed", "desired": "Install", "version": "3.0.6-0ubuntu0.12.04.01", "name": "libgrail5", "description": "Gesture Recognition And Instantiation Library" }, { "status": "Installed", "desired": "Install", "version": "2.26.3-10ubuntu1", "name": "libgraph4", "description": "rich set of graph drawing tools - graph library" }, { "status": "Installed", "desired": "Install", "version": "0.3.5-0ubuntu1~12.04.1", "name": "libgrip0", "description": "provides multitouch gestures to GTK+ apps" }, { "status": "Installed", "desired": "Install", "version": "9.05~dfsg-0ubuntu4.2", "name": "libgs9", "description": "interpreter for the PostScript language and for PDF - Library" }, { "status": "Installed", "desired": "Install", "version": "9.05~dfsg-0ubuntu4.2", "name": "libgs9-common", "description": "interpreter for the PostScript language and for PDF - common files" }, { "status": "Installed", "desired": "Install", "version": "1.15+dfsg-1build1", "name": "libgsl0ldbl", "description": "GNU Scientific Library (GSL) -- library package" }, { "status": "Installed", "desired": "Install", "version": "1.0.13-3", "name": "libgsm1", "description": "Shared libraries for GSM speech compressor" }, { "status": "Installed", "desired": "Install", "version": "2.8.4-2", "name": "libgsoap1", "description": "Runtime libraries for gSOAP" }, { "status": "Installed", "desired": "Install", "version": "1.10+dfsg~beta1-2ubuntu0.3", "name": "libgssapi-krb5-2", "description": "MIT Kerberos runtime libraries - krb5 GSS-API Mechanism" }, { "status": "Installed", "desired": "Install", "version": "1.10+dfsg~beta1-2ubuntu0.3", "name": "libgssapi-krb5-2:i386", "description": "MIT Kerberos runtime libraries - krb5 GSS-API Mechanism" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libgssapi3-heimdal", "description": "Heimdal Kerberos - GSSAPI support library" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libgssapi3-heimdal:i386", "description": "Heimdal Kerberos - GSSAPI support library" }, { "status": "Installed", "desired": "Install", "version": "0.12.1-2", "name": "libgssdp-1.0-3", "description": "GObject-based library for SSDP" }, { "status": "Installed", "desired": "Install", "version": "0.10.22.3-2ubuntu2.1", "name": "libgstreamer-plugins-bad0.10-0", "description": "GStreamer shared libraries from the \"bad\" set" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu0.1", "name": "libgstreamer-plugins-base0.10-0", "description": "GStreamer libraries from the \"base\" set" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu0.1", "name": "libgstreamer-plugins-base0.10-0:i386", "description": "GStreamer libraries from the \"base\" set" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu1", "name": "libgstreamer0.10-0", "description": "Core GStreamer libraries and elements" }, { "status": "Installed", "desired": "Install", "version": "0.10.36-1ubuntu1", "name": "libgstreamer0.10-0:i386", "description": "Core GStreamer libraries and elements" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu0.5", "name": "libgtk-3-0", "description": "GTK+ graphical user interface library" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu0.5", "name": "libgtk-3-bin", "description": "programs for the GTK+ graphical user interface library" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu0.5", "name": "libgtk-3-common", "description": "common files for the GTK+ graphical user interface library" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu0.5", "name": "libgtk-3-dev", "description": "development files for the GTK+ library" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu0.5", "name": "libgtk-3-doc", "description": "documentation for the GTK+ graphical user interface library" }, { "status": "Installed", "desired": "Install", "version": "0.5.0-1ubuntu1", "name": "libgtk-vnc-2.0-0", "description": "VNC viewer widget for GTK+3 (runtime libraries)" }, { "status": "Installed", "desired": "Install", "version": "0.05-1build2", "name": "libgtk2-imageview-perl", "description": "Perl bindings for the GtkImageView image viewer widget" }, { "status": "Installed", "desired": "Install", "version": "2:1.223-1build3", "name": "libgtk2-perl", "description": "Perl interface to the 2.x series of the Gimp Toolkit library" }, { "status": "Installed", "desired": "Install", "version": "0.05-1build2", "name": "libgtk2-unique-perl", "description": "module for single instance applications" }, { "status": "Installed", "desired": "Install", "version": "2.24.10-0ubuntu6", "name": "libgtk2.0-0", "description": "GTK+ graphical user interface library" }, { "status": "Installed", "desired": "Install", "version": "2.24.10-0ubuntu6", "name": "libgtk2.0-0:i386", "description": "GTK+ graphical user interface library" }, { "status": "Installed", "desired": "Install", "version": "2.24.10-0ubuntu6", "name": "libgtk2.0-bin", "description": "programs for the GTK+ graphical user interface library" }, { "status": "Installed", "desired": "Install", "version": "2.24.10-0ubuntu6", "name": "libgtk2.0-common", "description": "common files for the GTK+ graphical user interface library" }, { "status": "Installed", "desired": "Install", "version": "2.24.10-0ubuntu6", "name": "libgtk2.0-dev", "description": "development files for the GTK+ library" }, { "status": "Installed", "desired": "Install", "version": "1.6.4-1", "name": "libgtkimageview0", "description": "image viewer widget for GTK+" }, { "status": "Installed", "desired": "Install", "version": "1:2.24.2-1ubuntu1", "name": "libgtkmm-2.4-1c2a", "description": "C++ wrappers for GTK+ (shared libraries)" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1", "name": "libgtkmm-3.0-1", "description": "C++ wrappers for GTK+ (shared libraries)" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu1", "name": "libgtksourceview-3.0-0", "description": "shared libraries for the GTK+ syntax highlighting widget" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu1", "name": "libgtksourceview-3.0-common", "description": "common files for the GTK+ syntax highlighting widget" }, { "status": "Installed", "desired": "Install", "version": "2.10.5-0ubuntu3", "name": "libgtksourceview2.0-0", "description": "shared libraries for the GTK+ syntax highlighting widget" }, { "status": "Installed", "desired": "Install", "version": "2.10.5-0ubuntu3", "name": "libgtksourceview2.0-common", "description": "common files for the GTK+ syntax highlighting widget" }, { "status": "Installed", "desired": "Install", "version": "3.0.0~hg20110814-1", "name": "libgtkspell-3-0", "description": "spell-checking addon for GTK's TextView widget" }, { "status": "Installed", "desired": "Install", "version": "2.0.16-1ubuntu5", "name": "libgtkspell0", "description": "a spell-checking addon for GTK's TextView widget" }, { "status": "Installed", "desired": "Install", "version": "2.28.4-2", "name": "libgtop2-7", "description": "gtop system monitoring library (shared)" }, { "status": "Installed", "desired": "Install", "version": "2.28.4-2", "name": "libgtop2-common", "description": "gtop system monitoring library (common)" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.1.1-0ubuntu1", "name": "libgucharmap-2-90-7", "description": "Unicode browser widget library (shared library)" }, { "status": "Installed", "desired": "Install", "version": "1:175-0ubuntu9.2", "name": "libgudev-1.0-0", "description": "GObject-based wrapper library for libudev" }, { "status": "Installed", "desired": "Install", "version": "1:175-0ubuntu9.2", "name": "libgudev-1.0-0:i386", "description": "GObject-based wrapper library for libudev" }, { "status": "Installed", "desired": "Install", "version": "0.18.1-2", "name": "libgupnp-1.0-4", "description": "GObject-based library for UPnP" }, { "status": "Installed", "desired": "Install", "version": "0.2.1-2", "name": "libgupnp-igd-1.0-4", "description": "library to handle UPnP IGD port mapping" }, { "status": "Installed", "desired": "Install", "version": "5.2.8~pre1-0ubuntu2.1", "name": "libgutenprint2", "description": "runtime for the Gutenprint printer driver library" }, { "status": "Installed", "desired": "Install", "version": "2.26.3-10ubuntu1", "name": "libgvc5", "description": "rich set of graph drawing tools - gvc library" }, { "status": "Installed", "desired": "Install", "version": "0.5.0-1ubuntu1", "name": "libgvnc-1.0-0", "description": "VNC gobject wrapper (runtime libraries)" }, { "status": "Installed", "desired": "Install", "version": "2.26.3-10ubuntu1", "name": "libgvpr1", "description": "rich set of graph drawing tools - gvpr library" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "libgweather-3-0", "description": "GWeather shared library" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "libgweather-common", "description": "GWeather common files" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu2.1", "name": "libgwibber-gtk2", "description": "Gwibber GTK Widgets" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu2.1", "name": "libgwibber2", "description": "Gwibber - shared library" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libhcrypto4-heimdal", "description": "Heimdal Kerberos - crypto library" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libhcrypto4-heimdal:i386", "description": "Heimdal Kerberos - crypto library" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libheimbase1-heimdal", "description": "Heimdal Kerberos - Base library" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libheimbase1-heimdal:i386", "description": "Heimdal Kerberos - Base library" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libheimntlm0-heimdal", "description": "Heimdal Kerberos - NTLM support library" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libheimntlm0-heimdal:i386", "description": "Heimdal Kerberos - NTLM support library" }, { "status": "Installed", "desired": "Install", "version": "3.12.2-1ubuntu3.1", "name": "libhpmud0", "description": "HP Multi-Point Transport Driver (hpmud) run-time libraries" }, { "status": "Installed", "desired": "Install", "version": "6.00-1", "name": "libhtml-form-perl", "description": "module that represents an HTML form element" }, { "status": "Installed", "desired": "Install", "version": "2.10-1", "name": "libhtml-format-perl", "description": "module for transforming HTML into various formats" }, { "status": "Installed", "desired": "Install", "version": "3.69-1build1", "name": "libhtml-parser-perl", "description": "collection of modules that parse HTML text documents" }, { "status": "Installed", "desired": "Install", "version": "3.20-2", "name": "libhtml-tagset-perl", "description": "Data tables pertaining to HTML" }, { "status": "Installed", "desired": "Install", "version": "4.2-1", "name": "libhtml-tree-perl", "description": "Perl module to represent and create HTML syntax trees" }, { "status": "Installed", "desired": "Install", "version": "6.00-2", "name": "libhttp-cookies-perl", "description": "HTTP cookie jars" }, { "status": "Installed", "desired": "Install", "version": "6.00-1", "name": "libhttp-daemon-perl", "description": "simple http server class" }, { "status": "Installed", "desired": "Install", "version": "6.00-1", "name": "libhttp-date-perl", "description": "module of date conversion routines" }, { "status": "Installed", "desired": "Install", "version": "6.01-1", "name": "libhttp-message-perl", "description": "perl interface to HTTP style messages" }, { "status": "Installed", "desired": "Install", "version": "6.00-2", "name": "libhttp-negotiate-perl", "description": "implementation of content negotiation" }, { "status": "Installed", "desired": "Install", "version": "0.44-1", "name": "libhttp-server-simple-perl", "description": "simple stand-alone HTTP server" }, { "status": "Installed", "desired": "Install", "version": "1.3.2-4", "name": "libhunspell-1.3-0", "description": "spell checker and morphological analyzer (shared library)" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libhx509-5-heimdal", "description": "Heimdal Kerberos - X509 support library" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libhx509-5-heimdal:i386", "description": "Heimdal Kerberos - X509 support library" }, { "status": "Installed", "desired": "Install", "version": "2.8.3-1", "name": "libhyphen0", "description": "ALTLinux hyphenation library - shared library" }, { "status": "Installed", "desired": "Install", "version": "1.4.1-3ubuntu1", "name": "libibus-1.0-0", "description": "Intelligent Input Bus - shared library" }, { "status": "Installed", "desired": "Install", "version": "1.4.1-3ubuntu1", "name": "libibus-1.0-0:i386", "description": "Intelligent Input Bus - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.48-1ubuntu3", "name": "libical0", "description": "iCalendar library implementation in C (runtime)" }, { "status": "Installed", "desired": "Install", "version": "2:1.0.7-2build1", "name": "libice-dev", "description": "X11 Inter-Client Exchange library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "2:1.0.7-2build1", "name": "libice6", "description": "X11 Inter-Client Exchange library" }, { "status": "Installed", "desired": "Install", "version": "2:1.0.7-2build1", "name": "libice6:i386", "description": "X11 Inter-Client Exchange library" }, { "status": "Installed", "desired": "Install", "version": "4.8.1.1-3", "name": "libicu48", "description": "International Components for Unicode" }, { "status": "Installed", "desired": "Install", "version": "0.15.1b-10build2", "name": "libid3tag0", "description": "ID3 tag reading library from the MAD project" }, { "status": "Installed", "desired": "Install", "version": "0.8.14-0.2ubuntu2", "name": "libidl-common", "description": "library for parsing CORBA IDL files (common files)" }, { "status": "Installed", "desired": "Install", "version": "0.8.14-0.2ubuntu2", "name": "libidl0", "description": "library for parsing CORBA IDL files" }, { "status": "Installed", "desired": "Install", "version": "1.23-2", "name": "libidn11", "description": "GNU Libidn library, implementation of IETF IDN specifications" }, { "status": "Installed", "desired": "Install", "version": "1.23-2", "name": "libidn11:i386", "description": "GNU Libidn library, implementation of IETF IDN specifications" }, { "status": "Installed", "desired": "Install", "version": "0.3.4-0ubuntu1", "name": "libido3-0.1-0", "description": "Shared library providing extra gtk menu items for display in" }, { "status": "Installed", "desired": "Install", "version": "1.2.0-0.1ubuntu1", "name": "libiec61883-0", "description": "an partial implementation of IEC 61883" }, { "status": "Installed", "desired": "Install", "version": "1.2.0-0.1ubuntu1", "name": "libiec61883-0:i386", "description": "an partial implementation of IEC 61883" }, { "status": "Installed", "desired": "Install", "version": "0.2.11-10build1", "name": "libieee1284-3", "description": "cross-platform library for parallel port access" }, { "status": "Installed", "desired": "Install", "version": "0.2.11-10build1", "name": "libieee1284-3:i386", "description": "cross-platform library for parallel port access" }, { "status": "Installed", "desired": "Install", "version": "0.35-8", "name": "libijs-0.35", "description": "IJS raster image transport protocol: shared library" }, { "status": "Installed", "desired": "Install", "version": "1.0.1-3build2", "name": "libilmbase6", "description": "several utility libraries from ILM used by OpenEXR" }, { "status": "Installed", "desired": "Install", "version": "1.1.1-4", "name": "libimobiledevice2", "description": "Library for communicating with the iPhone and iPod Touch" }, { "status": "Installed", "desired": "Install", "version": "0.6.92-0ubuntu1", "name": "libindicate-gtk3", "description": "library for raising indicators via DBus - GTK+ bindings" }, { "status": "Installed", "desired": "Install", "version": "0.6.92-0ubuntu1", "name": "libindicate5", "description": "library for raising indicators via DBus" }, { "status": "Installed", "desired": "Install", "version": "0.6.0-0ubuntu2", "name": "libindicator-messages-status-provider1", "description": "indicator status provider - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.5.0-0ubuntu1", "name": "libindicator3-7", "description": "panel indicator applet - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.5.0-0ubuntu1", "name": "libindicator7", "description": "panel indicator applet - shared library" }, { "status": "Installed", "desired": "Install", "version": "1:1.08-1build2", "name": "libio-pty-perl", "description": "Perl module for pseudo tty IO" }, { "status": "Installed", "desired": "Install", "version": "2.69-2", "name": "libio-socket-inet6-perl", "description": "object interface for AF_INET6 domain sockets" }, { "status": "Installed", "desired": "Install", "version": "1.53-1", "name": "libio-socket-ssl-perl", "description": "Perl module implementing object oriented interface to SSL sockets" }, { "status": "Installed", "desired": "Install", "version": "1.08-2", "name": "libio-string-perl", "description": "Emulate IO::File interface for in-core strings" }, { "status": "Installed", "desired": "Install", "version": "2.110-5", "name": "libio-stringy-perl", "description": "Perl modules for IO from scalars and arrays" }, { "status": "Installed", "desired": "Install", "version": "0.90-1", "name": "libipc-run-perl", "description": "Perl module for running processes" }, { "status": "Installed", "desired": "Install", "version": "1:9.8.1.dfsg.P1-4ubuntu0.5", "name": "libisc83", "description": "ISC Shared Library used by BIND" }, { "status": "Installed", "desired": "Install", "version": "1:9.8.1.dfsg.P1-4ubuntu0.5", "name": "libisccc80", "description": "Command Channel Library used by BIND" }, { "status": "Installed", "desired": "Install", "version": "1:9.8.1.dfsg.P1-4ubuntu0.5", "name": "libisccfg82", "description": "Config File Handling Library used by BIND" }, { "status": "Installed", "desired": "Install", "version": "0.83-1", "name": "libiso9660-8", "description": "library to work with ISO9660 filesystems" }, { "status": "Installed", "desired": "Install", "version": "1.1.6-1ubuntu1", "name": "libisofs6", "description": "library to create ISO9660 images" }, { "status": "Installed", "desired": "Install", "version": "30~pre9-5ubuntu2", "name": "libiw30", "description": "Wireless tools - library" }, { "status": "Installed", "desired": "Install", "version": "1.9.8~dfsg.1-1ubuntu1", "name": "libjack-jackd2-0", "description": "JACK Audio Connection Kit (libraries)" }, { "status": "Installed", "desired": "Install", "version": "1.9.8~dfsg.1-1ubuntu1", "name": "libjack-jackd2-0:i386", "description": "JACK Audio Connection Kit (libraries)" }, { "status": "Installed", "desired": "Install", "version": "1.900.1-13", "name": "libjasper1", "description": "JasPer JPEG-2000 runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.900.1-13", "name": "libjasper1:i386", "description": "JasPer JPEG-2000 runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.8.3-0ubuntu0.12.04.1", "name": "libjavascriptcoregtk-1.0-0", "description": "Javascript engine library for GTK+" }, { "status": "Installed", "desired": "Install", "version": "1.8.3-0ubuntu0.12.04.1", "name": "libjavascriptcoregtk-3.0-0", "description": "Javascript engine library for GTK+" }, { "status": "Installed", "desired": "Install", "version": "0.11-1ubuntu1", "name": "libjbig2dec0", "description": "JBIG2 decoder library - shared libraries" }, { "status": "Installed", "desired": "Install", "version": "1.1.90+svn733-0ubuntu4.1", "name": "libjpeg-turbo8", "description": "IJG JPEG compliant runtime library." }, { "status": "Installed", "desired": "Install", "version": "1.1.90+svn733-0ubuntu4.1", "name": "libjpeg-turbo8:i386", "description": "IJG JPEG compliant runtime library." }, { "status": "Installed", "desired": "Install", "version": "8c-2ubuntu7", "name": "libjpeg8", "description": "Independent JPEG Group's JPEG runtime library (dependency package)" }, { "status": "Installed", "desired": "Install", "version": "8c-2ubuntu7", "name": "libjpeg8:i386", "description": "Independent JPEG Group's JPEG runtime library (dependency package)" }, { "status": "Installed", "desired": "Install", "version": "1.7.1-1ubuntu1", "name": "libjs-jquery", "description": "JavaScript library for dynamic web applications" }, { "status": "Installed", "desired": "Install", "version": "1.1.6-1ubuntu2", "name": "libjs-underscore", "description": "JavaScript's functional programming helper library" }, { "status": "Installed", "desired": "Install", "version": "0.14.2-1", "name": "libjson-glib-1.0-0", "description": "GLib JSON manipulation library" }, { "status": "Installed", "desired": "Install", "version": "2.53-1", "name": "libjson-perl", "description": "module for manipulating JSON-formatted data" }, { "status": "Installed", "desired": "Install", "version": "2.320-1build1", "name": "libjson-xs-perl", "description": "module for manipulating JSON-formatted data (C/XS-accelerated)" }, { "status": "Installed", "desired": "Install", "version": "0.9-1ubuntu1", "name": "libjson0", "description": "JSON manipulation library - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.9-1ubuntu1", "name": "libjson0:i386", "description": "JSON manipulation library - shared library" }, { "status": "Installed", "desired": "Install", "version": "1.19-1", "name": "libjte1", "description": "Jigdo Template Export - runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.10+dfsg~beta1-2ubuntu0.3", "name": "libk5crypto3", "description": "MIT Kerberos runtime libraries - Crypto Library" }, { "status": "Installed", "desired": "Install", "version": "1.10+dfsg~beta1-2ubuntu0.3", "name": "libk5crypto3:i386", "description": "MIT Kerberos runtime libraries - Crypto Library" }, { "status": "Installed", "desired": "Install", "version": "0.4.1-1", "name": "libkate1", "description": "Kate is a codec for karaoke and text encapsulation" }, { "status": "Installed", "desired": "Install", "version": "1.5.2-2", "name": "libkeyutils1", "description": "Linux Key Management Utilities (library)" }, { "status": "Installed", "desired": "Install", "version": "1.5.2-2", "name": "libkeyutils1:i386", "description": "Linux Key Management Utilities (library)" }, { "status": "Installed", "desired": "Install", "version": "1.5.25-1ubuntu2", "name": "libklibc", "description": "minimal libc subset for use with initramfs" }, { "status": "Installed", "desired": "Install", "version": "2.4.32-1ubuntu1", "name": "libkms1", "description": "Userspace interface to kernel DRM buffer management" }, { "status": "Installed", "desired": "Install", "version": "2009-11ubuntu2", "name": "libkpathsea5", "description": "TeX Live: path search library for TeX (runtime part)" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libkrb5-26-heimdal", "description": "Heimdal Kerberos - libraries" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libkrb5-26-heimdal:i386", "description": "Heimdal Kerberos - libraries" }, { "status": "Installed", "desired": "Install", "version": "1.10+dfsg~beta1-2ubuntu0.3", "name": "libkrb5-3", "description": "MIT Kerberos runtime libraries" }, { "status": "Installed", "desired": "Install", "version": "1.10+dfsg~beta1-2ubuntu0.3", "name": "libkrb5-3:i386", "description": "MIT Kerberos runtime libraries" }, { "status": "Installed", "desired": "Install", "version": "1.10+dfsg~beta1-2ubuntu0.3", "name": "libkrb5support0", "description": "MIT Kerberos runtime libraries - Support library" }, { "status": "Installed", "desired": "Install", "version": "1.10+dfsg~beta1-2ubuntu0.3", "name": "libkrb5support0:i386", "description": "MIT Kerberos runtime libraries - Support library" }, { "status": "Installed", "desired": "Install", "version": "3.3.1-1", "name": "liblapack3gf", "description": "library of linear algebra routines 3 - shared version" }, { "status": "Installed", "desired": "Install", "version": "0.1.56.1", "name": "liblaunchpad-integration-3.0-1", "description": "library for launchpad integration" }, { "status": "Installed", "desired": "Install", "version": "0.1.56.1", "name": "liblaunchpad-integration-common", "description": "library for launchpad integration common data" }, { "status": "Installed", "desired": "Install", "version": "0.1.56.1", "name": "liblaunchpad-integration1", "description": "library for launchpad integration" }, { "status": "Installed", "desired": "Install", "version": "1.19.dfsg-1ubuntu3", "name": "liblcms1", "description": "Little CMS color management library" }, { "status": "Installed", "desired": "Install", "version": "1.19.dfsg-1ubuntu3", "name": "liblcms1:i386", "description": "Little CMS color management library" }, { "status": "Installed", "desired": "Install", "version": "2.2+git20110628-2ubuntu3", "name": "liblcms2-2", "description": "Little CMS 2 color management library" }, { "status": "Installed", "desired": "Install", "version": "2.4.28-1.1ubuntu4.2", "name": "libldap-2.4-2", "description": "OpenLDAP libraries" }, { "status": "Installed", "desired": "Install", "version": "2.4.28-1.1ubuntu4.2", "name": "libldap-2.4-2:i386", "description": "OpenLDAP libraries" }, { "status": "Installed", "desired": "Install", "version": "1.2.1-0ubuntu1.1", "name": "liblightdm-gobject-1-0", "description": "LightDM GObject client library" }, { "status": "Installed", "desired": "Install", "version": "0.9.0-0ubuntu1", "name": "liblircclient0", "description": "infra-red remote control support - client library" }, { "status": "Installed", "desired": "Install", "version": "0.33-1build1", "name": "liblist-moreutils-perl", "description": "Perl module with additional list functions not found in List::Util" }, { "status": "Installed", "desired": "Install", "version": "3.0-4ubuntu1", "name": "libllvm3.0", "description": "Low-Level Virtual Machine (LLVM), runtime library" }, { "status": "Installed", "desired": "Install", "version": "3.0-4ubuntu1", "name": "libllvm3.0:i386", "description": "Low-Level Virtual Machine (LLVM), runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.05-7build1", "name": "liblocale-gettext-perl", "description": "module using libc functions for internationalization in Perl" }, { "status": "Installed", "desired": "Install", "version": "1.09-3", "name": "liblockfile-bin", "description": "support binaries for and cli utilities based on liblockfile" }, { "status": "Installed", "desired": "Install", "version": "1.09-3", "name": "liblockfile1", "description": "NFS-safe locking library" }, { "status": "Installed", "desired": "Install", "version": "2.3.0-3", "name": "liblouis-data", "description": "Braille translation library - data" }, { "status": "Installed", "desired": "Install", "version": "2.3.0-3", "name": "liblouis2", "description": "Braille translation library - shared libs" }, { "status": "Installed", "desired": "Install", "version": "0.4.1-1.1", "name": "liblqr-1-0", "description": "converts plain array images into multi-size representation" }, { "status": "Installed", "desired": "Install", "version": "2.4.2-1ubuntu1", "name": "libltdl7", "description": "A system independent dlopen wrapper for GNU libtool" }, { "status": "Installed", "desired": "Install", "version": "2.4.2-1ubuntu1", "name": "libltdl7:i386", "description": "A system independent dlopen wrapper for GNU libtool" }, { "status": "Installed", "desired": "Install", "version": "5.1.4-12ubuntu1", "name": "liblua5.1-0", "description": "Shared library for the Lua interpreter version 5.1" }, { "status": "Installed", "desired": "Install", "version": "2.02.66-4ubuntu7.1", "name": "liblvm2app2.2", "description": "LVM2 application library" }, { "status": "Installed", "desired": "Install", "version": "6.01-1", "name": "liblwp-mediatypes-perl", "description": "module to guess media type for a file or a URL" }, { "status": "Installed", "desired": "Install", "version": "6.02-1", "name": "liblwp-protocol-https-perl", "description": "https driver for LWP::UserAgent" }, { "status": "Installed", "desired": "Install", "version": "1:9.8.1.dfsg.P1-4ubuntu0.5", "name": "liblwres80", "description": "Lightweight Resolver Library used by BIND" }, { "status": "Installed", "desired": "Install", "version": "5.1.1alpha+20110809-3", "name": "liblzma5", "description": "XZ-format compression library" }, { "status": "Installed", "desired": "Install", "version": "2.06-1", "name": "liblzo2-2", "description": "data compression library" }, { "status": "Installed", "desired": "Install", "version": "0.15.1b-7ubuntu1", "name": "libmad0", "description": "MPEG audio decoder library" }, { "status": "Installed", "desired": "Install", "version": "0.15.1b-7ubuntu1", "name": "libmad0:i386", "description": "MPEG audio decoder library" }, { "status": "Installed", "desired": "Install", "version": "5.09-2", "name": "libmagic1", "description": "File type determination library using \"magic\" numbers" }, { "status": "Installed", "desired": "Install", "version": "8:6.6.9.7-5ubuntu3.2", "name": "libmagick++4", "description": "object-oriented C++ interface to ImageMagick" }, { "status": "Installed", "desired": "Install", "version": "8:6.6.9.7-5ubuntu3.2", "name": "libmagickcore4", "description": "low-level image manipulation library" }, { "status": "Installed", "desired": "Install", "version": "8:6.6.9.7-5ubuntu3.2", "name": "libmagickcore4-extra", "description": "low-level image manipulation library - extra codecs" }, { "status": "Installed", "desired": "Install", "version": "8:6.6.9.7-5ubuntu3.2", "name": "libmagickwand4", "description": "image manipulation library" }, { "status": "Installed", "desired": "Install", "version": "0.79.16-1", "name": "libmail-sendmail-perl", "description": "Send email from a perl script" }, { "status": "Installed", "desired": "Install", "version": "2.08-1", "name": "libmailtools-perl", "description": "Manipulate email in perl programs" }, { "status": "Installed", "desired": "Install", "version": "1.3.0-1", "name": "libmatroska5", "description": "extensible open standard audio/video container format (shared library)" }, { "status": "Installed", "desired": "Install", "version": "1.0.2-4ubuntu1", "name": "libmeanwhile1", "description": "open implementation of the Lotus Sametime Community Client protocol" }, { "status": "Installed", "desired": "Install", "version": "1:2.34.1-1ubuntu11", "name": "libmetacity-private0", "description": "library for the Metacity window manager" }, { "status": "Installed", "desired": "Install", "version": "0.9.9.9-1", "name": "libmhash2", "description": "Library for cryptographic hashing and message authentication" }, { "status": "Installed", "desired": "Install", "version": "3.1.12-2", "name": "libmikmod2", "description": "Portable sound library" }, { "status": "Installed", "desired": "Install", "version": "3.1.12-2", "name": "libmikmod2:i386", "description": "Portable sound library" }, { "status": "Installed", "desired": "Install", "version": "1.0.4-2.1build1", "name": "libmimic0", "description": "A video codec for Mimic V2.x content" }, { "status": "Installed", "desired": "Install", "version": "1.6-3ubuntu1", "name": "libminiupnpc8", "description": "UPnP IGD client lightweight library" }, { "status": "Installed", "desired": "Install", "version": "1:5.12.0-0ubuntu2.1", "name": "libmission-control-plugins0", "description": "management daemon for Telepathy (library for plugins)" }, { "status": "Installed", "desired": "Install", "version": "0.6.2-2", "name": "libmms0", "description": "MMS stream protocol library - shared library" }, { "status": "Installed", "desired": "Install", "version": "1.0.10-3", "name": "libmng1", "description": "Multiple-image Network Graphics library" }, { "status": "Installed", "desired": "Install", "version": "1.0.10-3", "name": "libmng1:i386", "description": "Multiple-image Network Graphics library" }, { "status": "Installed", "desired": "Install", "version": "1:0.8.8.4-1", "name": "libmodplug1", "description": "shared libraries for mod music based on ModPlug" }, { "status": "Installed", "desired": "Install", "version": "2.20.1-1ubuntu3", "name": "libmount1", "description": "block device id library" }, { "status": "Installed", "desired": "Install", "version": "1.8.5-1.0.0-0ubuntu8", "name": "libmozjs185-1.0", "description": "Spidermonkey javascript engine" }, { "status": "Installed", "desired": "Install", "version": "3.99.3+repack1-1", "name": "libmp3lame0", "description": "MP3 encoding library" }, { "status": "Installed", "desired": "Install", "version": "0.9-4", "name": "libmpc2", "description": "multiple precision complex floating-point library" }, { "status": "Installed", "desired": "Install", "version": "2:0.1~r459-1ubuntu1", "name": "libmpcdec6", "description": "MusePack decoder - library" }, { "status": "Installed", "desired": "Install", "version": "0.4.1-3", "name": "libmpeg2-4", "description": "MPEG1 and MPEG2 video decoder library" }, { "status": "Installed", "desired": "Install", "version": "3.1.0-3ubuntu2", "name": "libmpfr4", "description": "multiple precision floating-point computation" }, { "status": "Installed", "desired": "Install", "version": "1.12.1-3.2ubuntu1", "name": "libmpg123-0:i386", "description": "MPEG layer 1/2/3 audio decoder -- runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-2ubuntu1", "name": "libmtdev1", "description": "Multitouch Protocol Translation Library - shared library" }, { "status": "Installed", "desired": "Install", "version": "1.1.3-1ubuntu0.1", "name": "libmtp-common", "description": "Media Transfer Protocol (MTP) common files" }, { "status": "Installed", "desired": "Install", "version": "1.1.3-1ubuntu0.1", "name": "libmtp-runtime", "description": "Media Transfer Protocol (MTP) runtime tools" }, { "status": "Installed", "desired": "Install", "version": "1.1.3-1ubuntu0.1", "name": "libmtp9", "description": "Media Transfer Protocol (MTP) library" }, { "status": "Installed", "desired": "Install", "version": "0.23-1build3", "name": "libmulticobex1", "description": "multi-protocol cable OBEX library" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-2.1", "name": "libmusicbrainz3-6", "description": "library to access the MusicBrainz.org database" }, { "status": "Installed", "desired": "Install", "version": "4.0.3-0ubuntu0.1", "name": "libmusicbrainz4-3", "description": "Library to access the MusicBrainz.org database" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "libmutter0", "description": "window manager library from the Mutter window manager" }, { "status": "Installed", "desired": "Install", "version": "1.4.3-0ubuntu1", "name": "libmx-1.0-2", "description": "toolkit for the Moblin user experience" }, { "status": "Installed", "desired": "Install", "version": "5.5.29-0ubuntu0.12.04.1", "name": "libmysqlclient18:i386", "description": "MySQL database client library" }, { "status": "Installed", "desired": "Install", "version": "2:1.2.2-1", "name": "libmythes-1.2-0", "description": "simple thesaurus library" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.2-0ubuntu6", "name": "libnautilus-extension1a", "description": "libraries for nautilus components - runtime version" }, { "status": "Installed", "desired": "Install", "version": "5.9-4", "name": "libncurses5", "description": "shared libraries for terminal handling" }, { "status": "Installed", "desired": "Install", "version": "5.9-4", "name": "libncurses5:i386", "description": "shared libraries for terminal handling" }, { "status": "Installed", "desired": "Install", "version": "5.9-4", "name": "libncursesw5", "description": "shared libraries for terminal handling (wide character support)" }, { "status": "Installed", "desired": "Install", "version": "5.9-4", "name": "libncursesw5:i386", "description": "shared libraries for terminal handling (wide character support)" }, { "status": "Installed", "desired": "Install", "version": "0.29.6-1", "name": "libneon27-gnutls", "description": "HTTP and WebDAV client library (GnuTLS enabled)" }, { "status": "Installed", "desired": "Install", "version": "1.0.0-1build1", "name": "libnet-dbus-perl", "description": "Extension for the DBus bindings" }, { "status": "Installed", "desired": "Install", "version": "0.66-2ubuntu3", "name": "libnet-dns-perl", "description": "Perform DNS queries from a Perl script" }, { "status": "Installed", "desired": "Install", "version": "1.69-1", "name": "libnet-domain-tld-perl", "description": "Perl module for retrieving a list of currently available TLDs" }, { "status": "Installed", "desired": "Install", "version": "6.02-1", "name": "libnet-http-perl", "description": "module providing low-level HTTP connection client" }, { "status": "Installed", "desired": "Install", "version": "1.25-3", "name": "libnet-ip-perl", "description": "Perl extension for manipulating IPv4/IPv6 addresses" }, { "status": "Installed", "desired": "Install", "version": "1.01-3", "name": "libnet-smtp-ssl-perl", "description": "Perl module providing SSL support to Net::SMTP" }, { "status": "Installed", "desired": "Install", "version": "1.42-1build1", "name": "libnet-ssleay-perl", "description": "Perl module for Secure Sockets Layer (SSL)" }, { "status": "Installed", "desired": "Install", "version": "0.9.1-1ubuntu1", "name": "libnetfilter-conntrack3", "description": "Netfilter netlink-conntrack library" }, { "status": "Installed", "desired": "Install", "version": "2:10.0-15", "name": "libnetpbm10", "description": "Graphics conversion tools shared libraries" }, { "status": "Installed", "desired": "Install", "version": "2.4-1", "name": "libnettle4", "description": "low level cryptographic library (symmetric and one-way cryptos)" }, { "status": "Installed", "desired": "Install", "version": "0.52.11-2ubuntu10", "name": "libnewt0.52", "description": "Not Erik's Windowing Toolkit - text mode windowing with slang" }, { "status": "Installed", "desired": "Install", "version": "1.0.0-1", "name": "libnfnetlink0", "description": "Netfilter netlink library" }, { "status": "Installed", "desired": "Install", "version": "0.1.1-2ubuntu1", "name": "libnice10", "description": "ICE library (shared library)" }, { "status": "Installed", "desired": "Install", "version": "1.0.3-4ubuntu9", "name": "libnih-dbus1", "description": "NIH D-Bus Bindings Library" }, { "status": "Installed", "desired": "Install", "version": "1.0.3-4ubuntu9", "name": "libnih1", "description": "NIH Utility Library" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-2ubuntu2", "name": "libnl-3-200", "description": "library for dealing with netlink sockets" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-2ubuntu2", "name": "libnl-genl-3-200", "description": "library for dealing with netlink sockets - generic netlink" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-2ubuntu2", "name": "libnl-route-3-200", "description": "library for dealing with netlink sockets - route interface" }, { "status": "Installed", "desired": "Install", "version": "0.9.4.0-0ubuntu4.2", "name": "libnm-glib-vpn1", "description": "network management framework (GLib VPN shared library)" }, { "status": "Installed", "desired": "Install", "version": "0.9.4.0-0ubuntu4.2", "name": "libnm-glib4", "description": "network management framework (GLib shared library)" }, { "status": "Installed", "desired": "Install", "version": "0.9.4.1-0ubuntu2", "name": "libnm-gtk-common", "description": "network management framework (common files for wifi and mobile)" }, { "status": "Installed", "desired": "Install", "version": "0.9.4.1-0ubuntu2", "name": "libnm-gtk0", "description": "network management framework (GNOME dialogs for wifi and mobile)" }, { "status": "Installed", "desired": "Install", "version": "0.9.4.0-0ubuntu4.2", "name": "libnm-util2", "description": "network management framework (shared library)" }, { "status": "Installed", "desired": "Install", "version": "0.7.5-1", "name": "libnotify-bin", "description": "sends desktop notifications to a notification daemon (Utilities)" }, { "status": "Installed", "desired": "Install", "version": "0.7.5-1", "name": "libnotify4", "description": "sends desktop notifications to a notification daemon" }, { "status": "Installed", "desired": "Install", "version": "4.9.4-0ubuntu0.12.04.1", "name": "libnspr4", "description": "NetScape Portable Runtime Library" }, { "status": "Installed", "desired": "Install", "version": "4.9.4-0ubuntu0.12.04.1", "name": "libnspr4:i386", "description": "NetScape Portable Runtime Library" }, { "status": "Installed", "desired": "Install", "version": "4.9.4-0ubuntu0.12.04.1", "name": "libnspr4-0d", "description": "NetScape Portable Runtime Library" }, { "status": "Installed", "desired": "Install", "version": "0.10-3.2", "name": "libnss-mdns", "description": "NSS module for Multicast DNS name resolution" }, { "status": "Installed", "desired": "Install", "version": "3.14.1-0ckbi1.93ubuntu.0.12.04.1", "name": "libnss3", "description": "Network Security Service libraries" }, { "status": "Installed", "desired": "Install", "version": "3.14.1-0ckbi1.93ubuntu.0.12.04.1", "name": "libnss3:i386", "description": "Network Security Service libraries" }, { "status": "Installed", "desired": "Install", "version": "3.14.1-0ckbi1.93ubuntu.0.12.04.1", "name": "libnss3-1d", "description": "Network Security Service libraries" }, { "status": "Installed", "desired": "Install", "version": "2.0.8~rc3-1", "name": "libnuma1", "description": "Libraries for controlling NUMA policy" }, { "status": "Installed", "desired": "Install", "version": "2.14.1-0ubuntu1", "name": "libnux-2.0-0", "description": "Visual rendering toolkit for real-time applications - shared lib" }, { "status": "Installed", "desired": "Install", "version": "2.14.1-0ubuntu1", "name": "libnux-2.0-common", "description": "Visual rendering toolkit for real-time applications - common files" }, { "status": "Installed", "desired": "Install", "version": "0.9.4-3", "name": "liboauth0", "description": "C library for implementing OAuth 1.0" }, { "status": "Installed", "desired": "Install", "version": "0.23-1build3", "name": "libobexftp0", "description": "object exchange file transfer library" }, { "status": "Installed", "desired": "Install", "version": "2.2.14p2-5ubuntu3", "name": "libodbc1:i386", "description": "ODBC library for Unix" }, { "status": "Installed", "desired": "Install", "version": "0.9.3-4", "name": "libofa0", "description": "Library for acoustic fingerprinting" }, { "status": "Installed", "desired": "Install", "version": "1.2.2~dfsg-1ubuntu1", "name": "libogg0", "description": "Ogg bitstream library" }, { "status": "Installed", "desired": "Install", "version": "1.2.2~dfsg-1ubuntu1", "name": "libogg0:i386", "description": "Ogg bitstream library" }, { "status": "Installed", "desired": "Install", "version": "0.19-1", "name": "libole-storage-lite-perl", "description": "simple class for OLE document interface" }, { "status": "Installed", "desired": "Install", "version": "3.0.0-1", "name": "liboobs-1-5", "description": "GObject based interface to system-tools-backends - shared library" }, { "status": "Installed", "desired": "Install", "version": "1:1.13-4ubuntu3", "name": "libopenal-data", "description": "Software implementation of the OpenAL API (data files)" }, { "status": "Installed", "desired": "Install", "version": "1:1.13-4ubuntu3", "name": "libopenal1", "description": "Software implementation of the OpenAL API (shared library)" }, { "status": "Installed", "desired": "Install", "version": "1:1.13-4ubuntu3", "name": "libopenal1:i386", "description": "Software implementation of the OpenAL API (shared library)" }, { "status": "Installed", "desired": "Install", "version": "0.3.0-1", "name": "libopencc1", "description": "simplified-traditional chinese conversion library - runtime" }, { "status": "Installed", "desired": "Install", "version": "0.1.2-1", "name": "libopencore-amrnb0", "description": "Adaptive Multi Rate speech codec - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.1.2-1", "name": "libopencore-amrwb0", "description": "Adaptive Multi-Rate - Wideband speech codec - shared library" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-7", "name": "libopencv-calib3d2.3", "description": "computer vision Camera Calibration library" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-7", "name": "libopencv-core2.3", "description": "computer vision core library" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-7", "name": "libopencv-features2d2.3", "description": "computer vision Feature Detection and Descriptor Extraction library" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-7", "name": "libopencv-flann2.3", "description": "computer vision Clustering and Search in Multi-Dimensional spaces library" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-7", "name": "libopencv-highgui2.3", "description": "computer vision High-level GUI and Media I/O library" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-7", "name": "libopencv-imgproc2.3", "description": "computer vision Image Processing library" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-7", "name": "libopencv-legacy2.3", "description": "computer vision legacy library" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-7", "name": "libopencv-ml2.3", "description": "computer vision Machine Learning library" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-7", "name": "libopencv-objdetect2.3", "description": "computer vision Object Detection library" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-7", "name": "libopencv-video2.3", "description": "computer vision Video analysis library" }, { "status": "Installed", "desired": "Install", "version": "1.6.1-4.1", "name": "libopenexr6", "description": "runtime files for the OpenEXR image library" }, { "status": "Installed", "desired": "Install", "version": "1.3+dfsg-4", "name": "libopenjpeg2", "description": "JPEG 2000 image compression/decompression library" }, { "status": "Installed", "desired": "Install", "version": "1.5-2build1", "name": "libopenobex1", "description": "OBEX protocol library" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libopenvg1-mesa", "description": "free implementation of the OpenVG API -- runtime" }, { "status": "Installed", "desired": "Install", "version": "1:2.14.19-0.1ubuntu1", "name": "liborbit2", "description": "libraries for ORBit2 - a CORBA ORB" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.16-1ubuntu2", "name": "liborc-0.4-0", "description": "Library of Optimized Inner Loops Runtime Compiler" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.16-1ubuntu2", "name": "liborc-0.4-0:i386", "description": "Library of Optimized Inner Loops Runtime Compiler" }, { "status": "Installed", "desired": "Install", "version": "0.2.16-0ubuntu1.1", "name": "liboverlay-scrollbar-0.2-0", "description": "Scrollbar overlayed widget - shared lib" }, { "status": "Installed", "desired": "Install", "version": "0.2.16-0ubuntu1.1", "name": "liboverlay-scrollbar3-0.2-0", "description": "Scrollbar overlayed widget - shared lib" }, { "status": "Installed", "desired": "Install", "version": "0.12-2ubuntu1", "name": "libp11-kit0", "description": "Library for loading and coordinating access to PKCS#11 modules - runtime" }, { "status": "Installed", "desired": "Install", "version": "0.12-2ubuntu1", "name": "libp11-kit0:i386", "description": "Library for loading and coordinating access to PKCS#11 modules - runtime" }, { "status": "Installed", "desired": "Install", "version": "0.7.2-4ubuntu3", "name": "libpackagekit-glib2-14", "description": "Library for accessing PackageKit using GLib" }, { "status": "Installed", "desired": "Install", "version": "1:2.22-1ubuntu3", "name": "libpam-cap", "description": "PAM module for implementing capabilities" }, { "status": "Installed", "desired": "Install", "version": "0.4.5-2", "name": "libpam-ck-connector", "description": "ConsoleKit PAM module" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-2ubuntu4", "name": "libpam-gnome-keyring", "description": "PAM module to unlock the GNOME keyring upon login" }, { "status": "Installed", "desired": "Install", "version": "1.1.3-7ubuntu2", "name": "libpam-modules", "description": "Pluggable Authentication Modules for PAM" }, { "status": "Installed", "desired": "Install", "version": "1.1.3-7ubuntu2", "name": "libpam-modules-bin", "description": "Pluggable Authentication Modules for PAM - helper binaries" }, { "status": "Installed", "desired": "Install", "version": "1.1.3-7ubuntu2", "name": "libpam-runtime", "description": "Runtime support for the PAM library" }, { "status": "Installed", "desired": "Install", "version": "1.1.3-7ubuntu2", "name": "libpam0g", "description": "Pluggable Authentication Modules library" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.1-0ubuntu1.1", "name": "libpanel-applet-4-0", "description": "library for GNOME Panel applets" }, { "status": "Installed", "desired": "Install", "version": "1.222-1build1", "name": "libpango-perl", "description": "Perl module to layout and render international text" }, { "status": "Installed", "desired": "Install", "version": "1.30.0-0ubuntu3.1", "name": "libpango1.0-0", "description": "Layout and rendering of internationalized text" }, { "status": "Installed", "desired": "Install", "version": "1.30.0-0ubuntu3.1", "name": "libpango1.0-0:i386", "description": "Layout and rendering of internationalized text" }, { "status": "Installed", "desired": "Install", "version": "1.30.0-0ubuntu3.1", "name": "libpango1.0-dev", "description": "Development files for the Pango" }, { "status": "Installed", "desired": "Install", "version": "1.30.0-0ubuntu3.1", "name": "libpango1.0-doc", "description": "Documentation files for the Pango" }, { "status": "Installed", "desired": "Install", "version": "2.28.4-1ubuntu1", "name": "libpangomm-1.4-1", "description": "C++ Wrapper for pango (shared libraries)" }, { "status": "Installed", "desired": "Install", "version": "1.1.24+nmu1build1", "name": "libpaper-utils", "description": "library for handling paper characteristics (utilities)" }, { "status": "Installed", "desired": "Install", "version": "1.1.24+nmu1build1", "name": "libpaper1", "description": "library for handling paper characteristics" }, { "status": "Installed", "desired": "Install", "version": "2.005-3", "name": "libparse-debcontrol-perl", "description": "parser for debian control-like files" }, { "status": "Installed", "desired": "Install", "version": "1.2.0-1ubuntu1", "name": "libparse-debianchangelog-perl", "description": "parse Debian changelogs and output them in other formats" }, { "status": "Installed", "desired": "Install", "version": "1.965001+dfsg-1", "name": "libparse-recdescent-perl", "description": "Perl module to create and use recursive-descent parsers" }, { "status": "Installed", "desired": "Install", "version": "2.3-8ubuntu5.1", "name": "libparted0debian1", "description": "disk partition manipulator - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.24-1", "name": "libpath-class-perl", "description": "module for cross-platform path specification manipulation" }, { "status": "Installed", "desired": "Install", "version": "2.26.3-10ubuntu1", "name": "libpathplan4", "description": "rich set of graph drawing tools - pathplan library" }, { "status": "Installed", "desired": "Install", "version": "1.1.1-10", "name": "libpcap0.8", "description": "system interface for user-level packet capture" }, { "status": "Installed", "desired": "Install", "version": "1:3.1.8-2ubuntu5", "name": "libpci3", "description": "Linux PCI Utilities (shared library)" }, { "status": "Installed", "desired": "Install", "version": "0.12.902-1", "name": "libpciaccess0", "description": "Generic PCI access library for X" }, { "status": "Installed", "desired": "Install", "version": "0.12.902-1", "name": "libpciaccess0:i386", "description": "Generic PCI access library for X" }, { "status": "Installed", "desired": "Install", "version": "8.12-4", "name": "libpcre3", "description": "Perl 5 Compatible Regular Expression Library - runtime files" }, { "status": "Installed", "desired": "Install", "version": "8.12-4", "name": "libpcre3:i386", "description": "Perl 5 Compatible Regular Expression Library - runtime files" }, { "status": "Installed", "desired": "Install", "version": "8.12-4", "name": "libpcre3-dev", "description": "Perl 5 Compatible Regular Expression Library - development files" }, { "status": "Installed", "desired": "Install", "version": "8.12-4", "name": "libpcrecpp0", "description": "Perl 5 Compatible Regular Expression Library - C++ runtime files" }, { "status": "Installed", "desired": "Install", "version": "1.7.4-2ubuntu2", "name": "libpcsclite1", "description": "Middleware to access a smart card using PC/SC (library)" }, { "status": "Installed", "desired": "Install", "version": "1.2.0-1ubuntu1", "name": "libpeas-1.0-0", "description": "Application plugin library" }, { "status": "Installed", "desired": "Install", "version": "1.2.0-1ubuntu1", "name": "libpeas-common", "description": "Application plugin library (common files)" }, { "status": "Installed", "desired": "Install", "version": "5.14.2-6ubuntu2.2", "name": "libperl5.14", "description": "shared Perl library" }, { "status": "Installed", "desired": "Install", "version": "4:4.7.0really4.6.0-0ubuntu1", "name": "libphonon4", "description": "multimedia framework from KDE - core library" }, { "status": "Installed", "desired": "Install", "version": "1.2.1-1", "name": "libpipeline1", "description": "pipeline manipulation library" }, { "status": "Installed", "desired": "Install", "version": "0.24.4-1", "name": "libpixman-1-0", "description": "pixel-manipulation library for X and cairo" }, { "status": "Installed", "desired": "Install", "version": "0.24.4-1", "name": "libpixman-1-0:i386", "description": "pixel-manipulation library for X and cairo" }, { "status": "Installed", "desired": "Install", "version": "0.24.4-1", "name": "libpixman-1-dev", "description": "pixel-manipulation library for X and cairo (development files)" }, { "status": "Installed", "desired": "Install", "version": "1.09-1", "name": "libpkcs11-helper1", "description": "library that simplifies the interaction with PKCS#11" }, { "status": "Installed", "desired": "Install", "version": "1.8-1", "name": "libplist1", "description": "Library for handling Apple binary and XML property lists" }, { "status": "Installed", "desired": "Install", "version": "0.8.2-2ubuntu30", "name": "libplymouth2", "description": "graphical boot animation and logger - shared libraries" }, { "status": "Installed", "desired": "Install", "version": "1.2.46-3ubuntu4", "name": "libpng12-0", "description": "PNG library - runtime" }, { "status": "Installed", "desired": "Install", "version": "1.2.46-3ubuntu4", "name": "libpng12-0:i386", "description": "PNG library - runtime" }, { "status": "Installed", "desired": "Install", "version": "1.2.46-3ubuntu4", "name": "libpng12-dev", "description": "PNG library - development" }, { "status": "Installed", "desired": "Install", "version": "0.104-1ubuntu1", "name": "libpolkit-agent-1-0", "description": "PolicyKit Authentication Agent API" }, { "status": "Installed", "desired": "Install", "version": "0.104-1ubuntu1", "name": "libpolkit-backend-1-0", "description": "PolicyKit backend API" }, { "status": "Installed", "desired": "Install", "version": "0.104-1ubuntu1", "name": "libpolkit-gobject-1-0", "description": "PolicyKit Authorization API" }, { "status": "Installed", "desired": "Install", "version": "0.18.4-1ubuntu3", "name": "libpoppler-glib8", "description": "PDF rendering library (GLib-based shared library)" }, { "status": "Installed", "desired": "Install", "version": "0.18.4-1ubuntu3", "name": "libpoppler19", "description": "PDF rendering library" }, { "status": "Installed", "desired": "Install", "version": "1.16-3ubuntu1", "name": "libpopt0", "description": "lib for parsing cmdline parameters" }, { "status": "Installed", "desired": "Install", "version": "19+svn20111121-1", "name": "libportaudio2", "description": "Portable audio I/O - shared library" }, { "status": "Installed", "desired": "Install", "version": "1:200-0ubuntu1", "name": "libportmidi0", "description": "library for real-time MIDI input/output" }, { "status": "Installed", "desired": "Install", "version": "0.1~svn20101010-3", "name": "libportsmf0", "description": "Portable Standard Midi File Library" }, { "status": "Installed", "desired": "Install", "version": "4:0.8.4-0ubuntu0.12.04.1", "name": "libpostproc52", "description": "Libav video postprocessing library" }, { "status": "Installed", "desired": "Install", "version": "0.45-3", "name": "libproc-processtable-perl", "description": "Perl library for accessing process table information" }, { "status": "Installed", "desired": "Install", "version": "1.30-1", "name": "libproc-simple-perl", "description": "Perl interface to launch and control background processes" }, { "status": "Installed", "desired": "Install", "version": "2.4.1-1ubuntu2", "name": "libprotobuf7", "description": "protocol buffers C++ library" }, { "status": "Installed", "desired": "Install", "version": "2.4.1-1ubuntu2", "name": "libprotoc7", "description": "protocol buffers compiler library" }, { "status": "Installed", "desired": "Install", "version": "0.4.7-0ubuntu4.1", "name": "libproxy1", "description": "automatic proxy configuration management library (shared)" }, { "status": "Installed", "desired": "Install", "version": "0.4.7-0ubuntu4.1", "name": "libproxy1:i386", "description": "automatic proxy configuration management library (shared)" }, { "status": "Installed", "desired": "Install", "version": "0.4.7-0ubuntu4.1", "name": "libproxy1-plugin-gsettings", "description": "automatic proxy configuration management library (GSettings plugin)" }, { "status": "Installed", "desired": "Install", "version": "0.4.7-0ubuntu4.1", "name": "libproxy1-plugin-networkmanager", "description": "automatic proxy configuration management library (Network Manager plugin)" }, { "status": "Installed", "desired": "Install", "version": "2.0.7-16ubuntu3", "name": "libpth20", "description": "The GNU Portable Threads" }, { "status": "Installed", "desired": "Install", "version": "0.3-3", "name": "libpthread-stubs0", "description": "pthread stubs not provided by native libc" }, { "status": "Installed", "desired": "Install", "version": "0.3-3", "name": "libpthread-stubs0-dev", "description": "pthread stubs not provided by native libc, development files" }, { "status": "Installed", "desired": "Install", "version": "1:1.1-0ubuntu15.2", "name": "libpulse-mainloop-glib0", "description": "PulseAudio client libraries (glib support)" }, { "status": "Installed", "desired": "Install", "version": "1:1.1-0ubuntu15.2", "name": "libpulse-mainloop-glib0:i386", "description": "PulseAudio client libraries (glib support)" }, { "status": "Installed", "desired": "Install", "version": "1:1.1-0ubuntu15.2", "name": "libpulse0", "description": "PulseAudio client libraries" }, { "status": "Installed", "desired": "Install", "version": "1:1.1-0ubuntu15.2", "name": "libpulse0:i386", "description": "PulseAudio client libraries" }, { "status": "Installed", "desired": "Install", "version": "1:1.1-0ubuntu15.2", "name": "libpulsedsp", "description": "PulseAudio OSS pre-load library" }, { "status": "Installed", "desired": "Install", "version": "1:1.1-0ubuntu15.2", "name": "libpulsedsp:i386", "description": "PulseAudio OSS pre-load library" }, { "status": "Installed", "desired": "Install", "version": "1:2.10.3-0ubuntu1.1", "name": "libpurple-bin", "description": "multi-protocol instant messaging library - extra utilities" }, { "status": "Installed", "desired": "Install", "version": "1:2.10.3-0ubuntu1.1", "name": "libpurple0", "description": "multi-protocol instant messaging library" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "libpyside-py3-1.1", "description": "Python3 bindings for Qt 4 (base files)" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "libpyside1.1", "description": "Python bindings for Qt 4 (base files)" }, { "status": "Installed", "desired": "Install", "version": "2.7.3-0ubuntu3.1", "name": "libpython2.7", "description": "Shared Python runtime library (version 2.7)" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu3.2", "name": "libpython3.2", "description": "Shared Python runtime library (version 3.2)" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-dbus", "description": "Qt 4 D-Bus module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-dbus:i386", "description": "Qt 4 D-Bus module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-declarative", "description": "Qt 4 Declarative module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-declarative:i386", "description": "Qt 4 Declarative module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-declarative-gestures", "description": "Qt 4 gestures QML plugin" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-declarative-particles", "description": "Qt 4 particles QML plugin" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-designer", "description": "Qt 4 designer module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-designer:i386", "description": "Qt 4 designer module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-dev", "description": "Qt 4 development files" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-help", "description": "Qt 4 help module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-network", "description": "Qt 4 network module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-network:i386", "description": "Qt 4 network module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-opengl", "description": "Qt 4 OpenGL module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-opengl:i386", "description": "Qt 4 OpenGL module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-opengl-dev", "description": "Qt 4 OpenGL library development files" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-qt3support", "description": "Qt 3 compatibility library for Qt 4" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-qt3support:i386", "description": "Qt 3 compatibility library for Qt 4" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-script", "description": "Qt 4 script module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-script:i386", "description": "Qt 4 script module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-scripttools", "description": "Qt 4 script tools module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-scripttools:i386", "description": "Qt 4 script tools module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-sql", "description": "Qt 4 SQL module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-sql:i386", "description": "Qt 4 SQL module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-sql-mysql:i386", "description": "Qt 4 MySQL database driver" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-sql-sqlite", "description": "Qt 4 SQLite 3 database driver" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-svg", "description": "Qt 4 SVG module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-svg:i386", "description": "Qt 4 SVG module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-test", "description": "Qt 4 test module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-test:i386", "description": "Qt 4 test module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-webkit", "description": "transitional package for Qt 4 WebKit module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-xml", "description": "Qt 4 XML module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-xml:i386", "description": "Qt 4 XML module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-xmlpatterns", "description": "Qt 4 XML patterns module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqt4-xmlpatterns:i386", "description": "Qt 4 XML patterns module" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-3ubuntu2", "name": "libqtassistantclient4", "description": "Qt Assistant client library (runtime)" }, { "status": "Installed", "desired": "Install", "version": "0.2.4-0ubuntu1", "name": "libqtbamf1", "description": "Qt binding and QML plugin for bamf - shared library" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqtcore4", "description": "Qt 4 core module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqtcore4:i386", "description": "Qt 4 core module" }, { "status": "Installed", "desired": "Install", "version": "0.2.4-0ubuntu1", "name": "libqtdee2", "description": "Qt binding and QML plugin for Dee - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.1-0ubuntu5", "name": "libqtgconf1", "description": "Qt binding and QML plugin for GConf - shared library" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqtgui4", "description": "Qt 4 GUI module" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "libqtgui4:i386", "description": "Qt 4 GUI module" }, { "status": "Installed", "desired": "Install", "version": "2.2.1-1ubuntu4", "name": "libqtwebkit-dev", "description": "Web content engine library for Qt - development files" }, { "status": "Installed", "desired": "Install", "version": "2.2.1-1ubuntu4", "name": "libqtwebkit-qmlwebkitplugin", "description": "Qt WebKit QML plugin" }, { "status": "Installed", "desired": "Install", "version": "2.2.1-1ubuntu4", "name": "libqtwebkit4", "description": "Web content engine library for Qt" }, { "status": "Installed", "desired": "Install", "version": "2.2.1-1ubuntu4", "name": "libqtwebkit4:i386", "description": "Web content engine library for Qt" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-1ubuntu5", "name": "libquadmath0", "description": "GCC Quad-Precision Math Library" }, { "status": "Installed", "desired": "Install", "version": "0.4.2-1", "name": "libquvi-scripts", "description": "library for parsing video download links (Lua scripts)" }, { "status": "Installed", "desired": "Install", "version": "0.4.0-1", "name": "libquvi7", "description": "library for parsing video download links (runtime libraries)" }, { "status": "Installed", "desired": "Install", "version": "0.41-1ubuntu2.1", "name": "librados2", "description": "RADOS distributed object store client library" }, { "status": "Installed", "desired": "Install", "version": "2.0.6-1", "name": "libraptor2-0", "description": "Raptor 2 RDF syntax library" }, { "status": "Installed", "desired": "Install", "version": "0.8.1-5", "name": "librarian0", "description": "Documentation meta-data library (library package)" }, { "status": "Installed", "desired": "Install", "version": "0.9.28-1", "name": "librasqal3", "description": "Rasqal RDF query library" }, { "status": "Installed", "desired": "Install", "version": "2.0.7-1ubuntu1", "name": "libraw1394-11", "description": "library for direct access to IEEE 1394 bus (aka FireWire)" }, { "status": "Installed", "desired": "Install", "version": "2.0.7-1ubuntu1", "name": "libraw1394-11:i386", "description": "library for direct access to IEEE 1394 bus (aka FireWire)" }, { "status": "Installed", "desired": "Install", "version": "0.14.4-0ubuntu2", "name": "libraw5", "description": "raw image decoder library" }, { "status": "Installed", "desired": "Install", "version": "0.41-1ubuntu2.1", "name": "librbd1", "description": "RADOS block device client library" }, { "status": "Installed", "desired": "Install", "version": "1.0.14-1", "name": "librdf0", "description": "Redland Resource Description Framework (RDF) library" }, { "status": "Installed", "desired": "Install", "version": "6.2-8", "name": "libreadline6", "description": "GNU readline and history libraries, run-time libraries" }, { "status": "Installed", "desired": "Install", "version": "0.35-2", "name": "libregexp-assemble-perl", "description": "Assemble multiple Regular Expressions into a single RE" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-base-core", "description": "office productivity suite -- shared library" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-calc", "description": "office productivity suite -- spreadsheet" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-common", "description": "office productivity suite -- arch-independent files" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-core", "description": "office productivity suite -- arch-dependent files" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-draw", "description": "office productivity suite -- drawing" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-emailmerge", "description": "office productivity suite -- email mail merge" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-gnome", "description": "office productivity suite -- GNOME integration" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-gtk", "description": "office productivity suite -- GTK+ integration" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-help-en-us", "description": "office productivity suite -- English_american help" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-impress", "description": "office productivity suite -- presentation" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-math", "description": "office productivity suite -- equation editor" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-style-human", "description": "office productivity suite -- Human symbol style" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-style-tango", "description": "office productivity suite -- Tango symbol style" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "libreoffice-writer", "description": "office productivity suite -- word processor" }, { "status": "Installed", "desired": "Install", "version": "2.1.1-12", "name": "libresid-builder0c2a", "description": "SID chip emulation class based on resid" }, { "status": "Installed", "desired": "Install", "version": "0.7.12-1ubuntu2", "name": "librest-0.7-0", "description": "REST service access library" }, { "status": "Installed", "desired": "Install", "version": "2.96-0ubuntu4.2", "name": "librhythmbox-core5", "description": "support library for the rhythmbox music player" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libroken18-heimdal", "description": "Heimdal Kerberos - roken support library" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libroken18-heimdal:i386", "description": "Heimdal Kerberos - roken support library" }, { "status": "Installed", "desired": "Install", "version": "2.36.1-0ubuntu1", "name": "librsvg2-2", "description": "SAX-based renderer library for SVG files (runtime)" }, { "status": "Installed", "desired": "Install", "version": "2.36.1-0ubuntu1", "name": "librsvg2-2:i386", "description": "SAX-based renderer library for SVG files (runtime)" }, { "status": "Installed", "desired": "Install", "version": "2.36.1-0ubuntu1", "name": "librsvg2-bin", "description": "command-line and graphical viewers for SVG files" }, { "status": "Installed", "desired": "Install", "version": "2.36.1-0ubuntu1", "name": "librsvg2-common", "description": "SAX-based renderer library for SVG files (extra runtime)" }, { "status": "Installed", "desired": "Install", "version": "2.36.1-0ubuntu1", "name": "librsvg2-common:i386", "description": "SAX-based renderer library for SVG files (extra runtime)" }, { "status": "Installed", "desired": "Install", "version": "0.9.7-8build1", "name": "librsync1", "description": "rsync remote-delta algorithm library" }, { "status": "Installed", "desired": "Install", "version": "2.4~20110711.gitc28f1bab-1", "name": "librtmp0", "description": "toolkit for RTMP streams (shared library)" }, { "status": "Installed", "desired": "Install", "version": "2.4~20110711.gitc28f1bab-1", "name": "librtmp0:i386", "description": "toolkit for RTMP streams (shared library)" }, { "status": "Installed", "desired": "Install", "version": "0.1.8-4", "name": "libsamplerate0", "description": "Audio sample rate conversion library" }, { "status": "Installed", "desired": "Install", "version": "0.1.8-4", "name": "libsamplerate0:i386", "description": "Audio sample rate conversion library" }, { "status": "Installed", "desired": "Install", "version": "1.0.22-7ubuntu1", "name": "libsane", "description": "API library for scanners" }, { "status": "Installed", "desired": "Install", "version": "1.0.22-7ubuntu1", "name": "libsane:i386", "description": "API library for scanners" }, { "status": "Installed", "desired": "Install", "version": "1.0.22-7ubuntu1", "name": "libsane-common", "description": "API library for scanners -- documentation and support files" }, { "status": "Installed", "desired": "Install", "version": "3.12.2-1ubuntu3.1", "name": "libsane-hpaio", "description": "HP SANE backend for multi-function peripherals" }, { "status": "Installed", "desired": "Install", "version": "2.1.25.dfsg1-3ubuntu0.1", "name": "libsasl2-2", "description": "Cyrus SASL - authentication abstraction library" }, { "status": "Installed", "desired": "Install", "version": "2.1.25.dfsg1-3ubuntu0.1", "name": "libsasl2-2:i386", "description": "Cyrus SASL - authentication abstraction library" }, { "status": "Installed", "desired": "Install", "version": "2.1.25.dfsg1-3ubuntu0.1", "name": "libsasl2-modules", "description": "Cyrus SASL - pluggable authentication modules" }, { "status": "Installed", "desired": "Install", "version": "2.1.25.dfsg1-3ubuntu0.1", "name": "libsasl2-modules:i386", "description": "Cyrus SASL - pluggable authentication modules" }, { "status": "Installed", "desired": "Install", "version": "1.0.11-1", "name": "libschroedinger-1.0-0", "description": "library for encoding/decoding of Dirac video streams" }, { "status": "Installed", "desired": "Install", "version": "1.2.10-3", "name": "libsdl-image1.2", "description": "image loading library for Simple DirectMedia Layer 1.2" }, { "status": "Installed", "desired": "Install", "version": "1.2.10-3", "name": "libsdl-image1.2:i386", "description": "image loading library for Simple DirectMedia Layer 1.2" }, { "status": "Installed", "desired": "Install", "version": "1.2.11-7", "name": "libsdl-mixer1.2", "description": "Mixer library for Simple DirectMedia Layer 1.2, libraries" }, { "status": "Installed", "desired": "Install", "version": "1.2.11-7", "name": "libsdl-mixer1.2:i386", "description": "Mixer library for Simple DirectMedia Layer 1.2, libraries" }, { "status": "Installed", "desired": "Install", "version": "1.2.7-5", "name": "libsdl-net1.2:i386", "description": "Network library for Simple DirectMedia Layer 1.2, libraries" }, { "status": "Installed", "desired": "Install", "version": "2.0.9-1.1ubuntu1", "name": "libsdl-ttf2.0-0", "description": "ttf library for Simple DirectMedia Layer with FreeType 2 support" }, { "status": "Installed", "desired": "Install", "version": "2.0.9-1.1ubuntu1", "name": "libsdl-ttf2.0-0:i386", "description": "ttf library for Simple DirectMedia Layer with FreeType 2 support" }, { "status": "Installed", "desired": "Install", "version": "1.2.14-6.4ubuntu3", "name": "libsdl1.2debian", "description": "Simple DirectMedia Layer" }, { "status": "Installed", "desired": "Install", "version": "1.2.14-6.4ubuntu3", "name": "libsdl1.2debian:i386", "description": "Simple DirectMedia Layer" }, { "status": "Installed", "desired": "Install", "version": "2.1.0-4.1ubuntu1", "name": "libselinux1", "description": "SELinux runtime shared libraries" }, { "status": "Installed", "desired": "Install", "version": "2.1.0-4.1ubuntu1", "name": "libselinux1:i386", "description": "SELinux runtime shared libraries" }, { "status": "Installed", "desired": "Install", "version": "1:3.3.1-2ubuntu1", "name": "libsensors4", "description": "library to read temperature/voltage/fan sensors" }, { "status": "Installed", "desired": "Install", "version": "1.33-1", "name": "libsgutils2-2", "description": "utilities for devices using the SCSI command set (shared libraries)" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-2", "name": "libshiboken-py3-1.1", "description": "CPython3 bindings generator for C++ libraries - shared library" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-2", "name": "libshiboken1.1", "description": "CPython bindings generator for C++ libraries - shared library" }, { "status": "Installed", "desired": "Install", "version": "2.2.2-7ubuntu1", "name": "libshout3", "description": "MP3/Ogg Vorbis broadcast streaming library" }, { "status": "Installed", "desired": "Install", "version": "2.2.2-7ubuntu1", "name": "libshout3:i386", "description": "MP3/Ogg Vorbis broadcast streaming library" }, { "status": "Installed", "desired": "Install", "version": "1.36.59-5", "name": "libsidplay1", "description": "SID (MOS 6581) emulation library" }, { "status": "Installed", "desired": "Install", "version": "2.1.1-12", "name": "libsidplay2", "description": "SID (MOS 6581) emulation library" }, { "status": "Installed", "desired": "Install", "version": "2.2.10-0ubuntu2", "name": "libsigc++-2.0-0c2a", "description": "type-safe Signal Framework for C++ - runtime" }, { "status": "Installed", "desired": "Install", "version": "2.9-4ubuntu2", "name": "libsigsegv2", "description": "Library for handling page faults in a portable way" }, { "status": "Installed", "desired": "Install", "version": "2.2.4-3ubuntu1", "name": "libslang2", "description": "S-Lang programming library - runtime version" }, { "status": "Installed", "desired": "Install", "version": "2.2.4-3ubuntu1", "name": "libslang2:i386", "description": "S-Lang programming library - runtime version" }, { "status": "Installed", "desired": "Install", "version": "1.2.1-7.8ubuntu1", "name": "libslp1", "description": "OpenSLP libraries" }, { "status": "Installed", "desired": "Install", "version": "0.6.6+dfsg1-1", "name": "libslv2-9", "description": "library for simple use of LV2 plugins" }, { "status": "Installed", "desired": "Install", "version": "2:1.2.0-2build1", "name": "libsm-dev", "description": "X11 Session Management library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "2:1.2.0-2build1", "name": "libsm6", "description": "X11 Session Management library" }, { "status": "Installed", "desired": "Install", "version": "2:1.2.0-2build1", "name": "libsm6:i386", "description": "X11 Session Management library" }, { "status": "Installed", "desired": "Install", "version": "2:3.6.3-2ubuntu2.3", "name": "libsmbclient", "description": "shared library for communication with SMB/CIFS servers" }, { "status": "Installed", "desired": "Install", "version": "0.4.5+cvs20030824-4", "name": "libsmpeg0", "description": "SDL MPEG Player Library - shared libraries" }, { "status": "Installed", "desired": "Install", "version": "1.0.25-4", "name": "libsndfile1", "description": "Library for reading/writing audio files" }, { "status": "Installed", "desired": "Install", "version": "1.0.25-4", "name": "libsndfile1:i386", "description": "Library for reading/writing audio files" }, { "status": "Installed", "desired": "Install", "version": "5.4.3~dfsg-2.4ubuntu1.1", "name": "libsnmp-base", "description": "SNMP (Simple Network Management Protocol) MIBs and documentation" }, { "status": "Installed", "desired": "Install", "version": "5.4.3~dfsg-2.4ubuntu1.1", "name": "libsnmp15", "description": "SNMP (Simple Network Management Protocol) library" }, { "status": "Installed", "desired": "Install", "version": "0.23-1build2", "name": "libsocket6-perl", "description": "Perl extensions for IPv6" }, { "status": "Installed", "desired": "Install", "version": "0.1.17-1.1", "name": "libsonic0", "description": "Simple library to speed up or slow down speech" }, { "status": "Installed", "desired": "Install", "version": "1.02-1", "name": "libsort-naturally-perl", "description": "Sort naturally - sort lexically except for numerical parts" }, { "status": "Installed", "desired": "Install", "version": "1.6.0-2build1", "name": "libsoundtouch0", "description": "Sound stretching library" }, { "status": "Installed", "desired": "Install", "version": "2.38.1-1", "name": "libsoup-gnome2.4-1", "description": "HTTP library implementation in C -- GNOME support library" }, { "status": "Installed", "desired": "Install", "version": "2.38.1-1", "name": "libsoup-gnome2.4-1:i386", "description": "HTTP library implementation in C -- GNOME support library" }, { "status": "Installed", "desired": "Install", "version": "2.38.1-1", "name": "libsoup2.4-1", "description": "HTTP library implementation in C -- Shared library" }, { "status": "Installed", "desired": "Install", "version": "2.38.1-1", "name": "libsoup2.4-1:i386", "description": "HTTP library implementation in C -- Shared library" }, { "status": "Installed", "desired": "Install", "version": "14.3.2-3", "name": "libsox-fmt-alsa", "description": "SoX alsa format I/O library" }, { "status": "Installed", "desired": "Install", "version": "14.3.2-3", "name": "libsox-fmt-base", "description": "Minimal set of SoX format libraries" }, { "status": "Installed", "desired": "Install", "version": "14.3.2-3", "name": "libsox1b", "description": "SoX library of audio effects and processing" }, { "status": "Installed", "desired": "Install", "version": "0.0.6~pre18-2build1", "name": "libspandsp2", "description": "Telephony signal processing library" }, { "status": "Installed", "desired": "Install", "version": "0.2.6-1build1", "name": "libspectre1", "description": "Library for rendering PostScript documents" }, { "status": "Installed", "desired": "Install", "version": "0.7.1-6ubuntu3", "name": "libspeechd2", "description": "Speech Dispatcher: Shared libraries" }, { "status": "Installed", "desired": "Install", "version": "1.2~rc1-3ubuntu2", "name": "libspeex1", "description": "The Speex codec runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.2~rc1-3ubuntu2", "name": "libspeex1:i386", "description": "The Speex codec runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.2~rc1-3ubuntu2", "name": "libspeexdsp1", "description": "The Speex extended runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.2~rc1-3ubuntu2", "name": "libspeexdsp1:i386", "description": "The Speex extended runtime library" }, { "status": "Installed", "desired": "Install", "version": "2.37-1", "name": "libspreadsheet-writeexcel-perl", "description": "module to create Excel spreadsheets" }, { "status": "Installed", "desired": "Install", "version": "2.8.17-7fakesync1build1", "name": "libsqlite0", "description": "SQLite shared library" }, { "status": "Installed", "desired": "Install", "version": "3.7.9-2ubuntu1.1", "name": "libsqlite3-0", "description": "SQLite 3 shared library" }, { "status": "Installed", "desired": "Install", "version": "3.7.9-2ubuntu1.1", "name": "libsqlite3-0:i386", "description": "SQLite 3 shared library" }, { "status": "Installed", "desired": "Install", "version": "1.42-1ubuntu2", "name": "libss2", "description": "command-line interface parsing library" }, { "status": "Installed", "desired": "Install", "version": "0.5.2-1ubuntu0.12.04.1", "name": "libssh-4", "description": "tiny C SSH library" }, { "status": "Installed", "desired": "Install", "version": "1.0.1-4ubuntu5.5", "name": "libssl-dev", "description": "SSL development libraries, header files and documentation" }, { "status": "Installed", "desired": "Install", "version": "1.0.1-4ubuntu5.5", "name": "libssl-doc", "description": "SSL development documentation documentation" }, { "status": "Installed", "desired": "Install", "version": "0.9.8o-7ubuntu3.1", "name": "libssl0.9.8:i386", "description": "SSL shared libraries" }, { "status": "Installed", "desired": "Install", "version": "1.0.1-4ubuntu5.5", "name": "libssl1.0.0", "description": "SSL shared libraries" }, { "status": "Installed", "desired": "Install", "version": "1.0.1-4ubuntu5.5", "name": "libssl1.0.0:i386", "description": "SSL shared libraries" }, { "status": "Installed", "desired": "Install", "version": "0.12-1ubuntu1", "name": "libstartup-notification0", "description": "library for program launch feedback (shared library)" }, { "status": "Installed", "desired": "Install", "version": "1:3.3.6-25ubuntu1", "name": "libstdc++5:i386", "description": "The GNU Standard C++ Library v3" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-1ubuntu5", "name": "libstdc++6", "description": "GNU Standard C++ Library v3" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-1ubuntu5", "name": "libstdc++6:i386", "description": "GNU Standard C++ Library v3" }, { "status": "Installed", "desired": "Install", "version": "4.6.3-1ubuntu5", "name": "libstdc++6-4.6-dev", "description": "GNU Standard C++ Library v3 (development files)" }, { "status": "Installed", "desired": "Install", "version": "0.05-1build2", "name": "libsub-name-perl", "description": "module for assigning a new name to referenced sub" }, { "status": "Installed", "desired": "Install", "version": "1:1.4.3-31", "name": "libsvga1", "description": "console SVGA display libraries" }, { "status": "Installed", "desired": "Install", "version": "2.16-2", "name": "libswitch-perl", "description": "switch statement for Perl" }, { "status": "Installed", "desired": "Install", "version": "4:0.8.4-0ubuntu0.12.04.1", "name": "libswscale2", "description": "Libav video scaling library" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-0ubuntu1", "name": "libsyncdaemon-1.0-1", "description": "Ubuntu One synchronization daemon library" }, { "status": "Installed", "desired": "Install", "version": "1.4-2", "name": "libsys-hostname-long-perl", "description": "Figure out the long (fully-qualified) hostname" }, { "status": "Installed", "desired": "Install", "version": "2.1.0+repack-1", "name": "libsysfs2", "description": "interface library to sysfs" }, { "status": "Installed", "desired": "Install", "version": "5.1.2-3.4ubuntu1", "name": "libt1-5", "description": "Type 1 font rasterizer library - runtime" }, { "status": "Installed", "desired": "Install", "version": "1.7-1ubuntu5", "name": "libtag1-vanilla", "description": "audio meta-data library - vanilla flavour" }, { "status": "Installed", "desired": "Install", "version": "1.7-1ubuntu5", "name": "libtag1-vanilla:i386", "description": "audio meta-data library - vanilla flavour" }, { "status": "Installed", "desired": "Install", "version": "1.7-1ubuntu5", "name": "libtag1c2a", "description": "audio meta-data library" }, { "status": "Installed", "desired": "Install", "version": "1.7-1ubuntu5", "name": "libtag1c2a:i386", "description": "audio meta-data library" }, { "status": "Installed", "desired": "Install", "version": "2.0.7-3", "name": "libtalloc2", "description": "hierarchical pool based memory allocator" }, { "status": "Installed", "desired": "Install", "version": "1.2.11-8", "name": "libtar0", "description": "C library for manipulating tar archives" }, { "status": "Installed", "desired": "Install", "version": "2.10-1ubuntu1.1", "name": "libtasn1-3", "description": "Manage ASN.1 structures (runtime)" }, { "status": "Installed", "desired": "Install", "version": "2.10-1ubuntu1.1", "name": "libtasn1-3:i386", "description": "Manage ASN.1 structures (runtime)" }, { "status": "Installed", "desired": "Install", "version": "1.2.9-4", "name": "libtdb1", "description": "Trivial Database - shared library" }, { "status": "Installed", "desired": "Install", "version": "1.2.9-4", "name": "libtdb1:i386", "description": "Trivial Database - shared library" }, { "status": "Installed", "desired": "Install", "version": "0.4.0-0ubuntu1", "name": "libtelepathy-farstream2", "description": "Glue library between telepathy and farstream" }, { "status": "Installed", "desired": "Install", "version": "0.18.0-1ubuntu1", "name": "libtelepathy-glib0", "description": "Telepathy framework - GLib library" }, { "status": "Installed", "desired": "Install", "version": "0.4.0-0ubuntu1", "name": "libtelepathy-logger2", "description": "Telepathy logger service - utility library" }, { "status": "Installed", "desired": "Install", "version": "0.04-7build1", "name": "libtext-charwidth-perl", "description": "get display widths of characters on the terminal" }, { "status": "Installed", "desired": "Install", "version": "1.7-5", "name": "libtext-iconv-perl", "description": "converts between character sets in Perl" }, { "status": "Installed", "desired": "Install", "version": "0.06-7", "name": "libtext-wrapi18n-perl", "description": "internationalized substitute of Text::Wrap" }, { "status": "Installed", "desired": "Install", "version": "0.1.16-3", "name": "libthai-data", "description": "Data files for Thai language support library" }, { "status": "Installed", "desired": "Install", "version": "0.1.16-3", "name": "libthai0", "description": "Thai language support library" }, { "status": "Installed", "desired": "Install", "version": "0.1.16-3", "name": "libthai0:i386", "description": "Thai language support library" }, { "status": "Installed", "desired": "Install", "version": "1.1.1+dfsg.1-3ubuntu2", "name": "libtheora0", "description": "The Theora Video Compression Codec" }, { "status": "Installed", "desired": "Install", "version": "1.1.1+dfsg.1-3ubuntu2", "name": "libtheora0:i386", "description": "The Theora Video Compression Codec" }, { "status": "Installed", "desired": "Install", "version": "20091223cvs-1ubuntu2", "name": "libtidy-0.99-0", "description": "HTML syntax checker and reformatter - library" }, { "status": "Installed", "desired": "Install", "version": "1.21-2", "name": "libtie-ixhash-perl", "description": "ordered associative arrays for Perl" }, { "status": "Installed", "desired": "Install", "version": "3.9.5-2ubuntu1.4", "name": "libtiff4", "description": "Tag Image File Format (TIFF) library" }, { "status": "Installed", "desired": "Install", "version": "3.9.5-2ubuntu1.4", "name": "libtiff4:i386", "description": "Tag Image File Format (TIFF) library" }, { "status": "Installed", "desired": "Install", "version": "1.2000-1", "name": "libtimedate-perl", "description": "collection of modules to manipulate date/time information" }, { "status": "Installed", "desired": "Install", "version": "0.3.2", "name": "libtimezonemap1", "description": "GTK+3 timezone map widget" }, { "status": "Installed", "desired": "Install", "version": "5.9-4", "name": "libtinfo5", "description": "shared low-level terminfo library for terminal handling" }, { "status": "Installed", "desired": "Install", "version": "5.9-4", "name": "libtinfo5:i386", "description": "shared low-level terminfo library for terminal handling" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-1", "name": "libtotem-plparser17", "description": "Totem Playlist Parser library - runtime files" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu21.1", "name": "libtotem0", "description": "Main library for the Totem media player" }, { "status": "Installed", "desired": "Install", "version": "1.0-10", "name": "libts-0.0-0", "description": "touch screen library" }, { "status": "Installed", "desired": "Install", "version": "0.3.13-1build1", "name": "libtwolame0", "description": "MPEG Audio Layer 2 encoding library" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu1", "name": "libubuntuoneui-3.0-1", "description": "Ubuntu One widget library" }, { "status": "Installed", "desired": "Install", "version": "175-0ubuntu9.2", "name": "libudev0", "description": "udev library" }, { "status": "Installed", "desired": "Install", "version": "175-0ubuntu9.2", "name": "libudev0:i386", "description": "udev library" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.0-2ubuntu3", "name": "libumfpack5.4.0", "description": "sparse LU factorization library" }, { "status": "Installed", "desired": "Install", "version": "1.1.6-4", "name": "libunique-1.0-0", "description": "Library for writing single instance applications - shared libraries" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-1", "name": "libunique-3.0-0", "description": "Library for writing single instance applications - shared libraries" }, { "status": "Installed", "desired": "Install", "version": "0.9.3-5", "name": "libunistring0", "description": "Unicode string library for C" }, { "status": "Installed", "desired": "Install", "version": "0.9.3-5", "name": "libunistring0:i386", "description": "Unicode string library for C" }, { "status": "Installed", "desired": "Install", "version": "5.12.0-0ubuntu1.2", "name": "libunity-2d-private0", "description": "Unity 2D shared library" }, { "status": "Installed", "desired": "Install", "version": "5.18.0-0ubuntu1", "name": "libunity-core-5.0-5", "description": "Core library for the Unity interface." }, { "status": "Installed", "desired": "Install", "version": "4.0.4-0ubuntu2", "name": "libunity-misc4", "description": "Miscellaneous functions for Unity - shared library" }, { "status": "Installed", "desired": "Install", "version": "5.12.0-0ubuntu1.1", "name": "libunity9", "description": "binding to get places into the launcher - shared library" }, { "status": "Installed", "desired": "Install", "version": "1:1.6.6-5.1", "name": "libupnp3", "description": "Portable SDK for UPnP Devices, version 1.6 (shared libraries)" }, { "status": "Installed", "desired": "Install", "version": "0.9.15-3git1", "name": "libupower-glib1", "description": "abstraction for power management - shared library" }, { "status": "Installed", "desired": "Install", "version": "1.59-1", "name": "liburi-perl", "description": "module to manipulate and access URI strings" }, { "status": "Installed", "desired": "Install", "version": "2:0.1.12-20", "name": "libusb-0.1-4", "description": "userspace USB programming library" }, { "status": "Installed", "desired": "Install", "version": "2:0.1.12-20", "name": "libusb-0.1-4:i386", "description": "userspace USB programming library" }, { "status": "Installed", "desired": "Install", "version": "2:1.0.9~rc3-2ubuntu1", "name": "libusb-1.0-0", "description": "userspace USB programming library" }, { "status": "Installed", "desired": "Install", "version": "1.0.7-2", "name": "libusbmuxd1", "description": "USB multiplexor daemon for iPhone and iPod Touch devices - library" }, { "status": "Installed", "desired": "Install", "version": "1.1.5-4", "name": "libutempter0", "description": "A privileged helper for utmp/wtmp updates (runtime)" }, { "status": "Installed", "desired": "Install", "version": "1.0.9-0ubuntu1", "name": "libutouch-evemu1", "description": "KernelInput Event Device Emulation Library" }, { "status": "Installed", "desired": "Install", "version": "2.2.3-0ubuntu1", "name": "libutouch-frame1", "description": "Touch Frame Library" }, { "status": "Installed", "desired": "Install", "version": "2.2.9-0ubuntu3", "name": "libutouch-geis1", "description": "Gesture engine interface support" }, { "status": "Installed", "desired": "Install", "version": "3.0.5-0ubuntu1", "name": "libutouch-grail1", "description": "Gesture Recognition And Instantiation Library" }, { "status": "Installed", "desired": "Install", "version": "0.02-4ubuntu1", "name": "libuuid-perl", "description": "Perl extension for using UUID interfaces as defined in e2fsprogs" }, { "status": "Installed", "desired": "Install", "version": "2.20.1-1ubuntu3", "name": "libuuid1", "description": "Universally Unique ID library" }, { "status": "Installed", "desired": "Install", "version": "2.20.1-1ubuntu3", "name": "libuuid1:i386", "description": "Universally Unique ID library" }, { "status": "Installed", "desired": "Install", "version": "0.8.6-1ubuntu2", "name": "libv4l-0", "description": "Collection of video4linux support libraries" }, { "status": "Installed", "desired": "Install", "version": "0.8.6-1ubuntu2", "name": "libv4l-0:i386", "description": "Collection of video4linux support libraries" }, { "status": "Installed", "desired": "Install", "version": "0.8.6-1ubuntu2", "name": "libv4lconvert0", "description": "Video4linux frame format conversion library" }, { "status": "Installed", "desired": "Install", "version": "0.8.6-1ubuntu2", "name": "libv4lconvert0:i386", "description": "Video4linux frame format conversion library" }, { "status": "Installed", "desired": "Install", "version": "1.0.15-4", "name": "libva-x11-1", "description": "Video Acceleration (VA) API for Linux -- X11 runtime" }, { "status": "Installed", "desired": "Install", "version": "1.0.15-4", "name": "libva1", "description": "Video Acceleration (VA) API for Linux -- runtime" }, { "status": "Installed", "desired": "Install", "version": "2.1-1", "name": "libvamp-hostsdk3", "description": "helper library for Vamp hosts written in C++" }, { "status": "Installed", "desired": "Install", "version": "0.7.23-4.1ubuntu1", "name": "libvcdinfo0", "description": "library to extract information from VideoCD" }, { "status": "Installed", "desired": "Install", "version": "0.4.1-3ubuntu1.1", "name": "libvdpau1", "description": "Video Decode and Presentation API for Unix (libraries)" }, { "status": "Installed", "desired": "Install", "version": "0.9.8-2ubuntu17.5", "name": "libvirt-bin", "description": "programs for the libvirt library" }, { "status": "Installed", "desired": "Install", "version": "0.9.8-2ubuntu17.5", "name": "libvirt0", "description": "library for interfacing with different virtualization systems" }, { "status": "Installed", "desired": "Install", "version": "0.4.0-4", "name": "libvisual-0.4-0", "description": "Audio visualization framework" }, { "status": "Installed", "desired": "Install", "version": "0.4.0-4", "name": "libvisual-0.4-0:i386", "description": "Audio visualization framework" }, { "status": "Installed", "desired": "Install", "version": "0.4.0.dfsg.1-7", "name": "libvisual-0.4-plugins", "description": "Audio visualization framework plugins" }, { "status": "Installed", "desired": "Install", "version": "0.4.0.dfsg.1-7", "name": "libvisual-0.4-plugins:i386", "description": "Audio visualization framework plugins" }, { "status": "Installed", "desired": "Install", "version": "2.0.5-0ubuntu0.12.04.1", "name": "libvlc5", "description": "multimedia player and streamer library" }, { "status": "Installed", "desired": "Install", "version": "2.0.5-0ubuntu0.12.04.1", "name": "libvlccore5", "description": "base library for VLC and its modules" }, { "status": "Installed", "desired": "Install", "version": "0.9.8.2-2ubuntu1", "name": "libvncserver0", "description": "API to write one's own vnc server" }, { "status": "Installed", "desired": "Install", "version": "0.1.1-2", "name": "libvo-aacenc0", "description": "VisualOn AAC encoder library" }, { "status": "Installed", "desired": "Install", "version": "0.1.1-2", "name": "libvo-amrwbenc0", "description": "VisualOn AMR-WB encoder library" }, { "status": "Installed", "desired": "Install", "version": "1.3.2-1ubuntu3", "name": "libvorbis0a", "description": "The Vorbis General Audio Compression Codec (Decoder library)" }, { "status": "Installed", "desired": "Install", "version": "1.3.2-1ubuntu3", "name": "libvorbis0a:i386", "description": "The Vorbis General Audio Compression Codec (Decoder library)" }, { "status": "Installed", "desired": "Install", "version": "1.3.2-1ubuntu3", "name": "libvorbisenc2", "description": "The Vorbis General Audio Compression Codec (Encoder library)" }, { "status": "Installed", "desired": "Install", "version": "1.3.2-1ubuntu3", "name": "libvorbisenc2:i386", "description": "The Vorbis General Audio Compression Codec (Encoder library)" }, { "status": "Installed", "desired": "Install", "version": "1.3.2-1ubuntu3", "name": "libvorbisfile3", "description": "The Vorbis General Audio Compression Codec (High Level API)" }, { "status": "Installed", "desired": "Install", "version": "1.3.2-1ubuntu3", "name": "libvorbisfile3:i386", "description": "The Vorbis General Audio Compression Codec (High Level API)" }, { "status": "Installed", "desired": "Install", "version": "1.0.0-1", "name": "libvpx1", "description": "VP8 video codec (shared library)" }, { "status": "Installed", "desired": "Install", "version": "1:0.32.1-0ubuntu1", "name": "libvte-2.90-9", "description": "Terminal emulator widget for GTK+ 3.0 - runtime files" }, { "status": "Installed", "desired": "Install", "version": "1:0.32.1-0ubuntu1", "name": "libvte-2.90-common", "description": "Terminal emulator widget for GTK+ 3.0 - common files" }, { "status": "Installed", "desired": "Install", "version": "1:0.28.2-3ubuntu2", "name": "libvte-common", "description": "Terminal emulator widget for GTK+ 2.x - common files" }, { "status": "Installed", "desired": "Install", "version": "1:0.28.2-3ubuntu2", "name": "libvte9", "description": "Terminal emulator widget for GTK+ 2.0 - runtime files" }, { "status": "Installed", "desired": "Install", "version": "0.4-1ubuntu1", "name": "libwacom-common", "description": "Wacom model feature query library (common files)" }, { "status": "Installed", "desired": "Install", "version": "0.4-1ubuntu1", "name": "libwacom2", "description": "Wacom model feature query library" }, { "status": "Installed", "desired": "Install", "version": "4.60.1-2", "name": "libwavpack1", "description": "audio codec (lossy and lossless) - library" }, { "status": "Installed", "desired": "Install", "version": "4.60.1-2", "name": "libwavpack1:i386", "description": "audio codec (lossy and lossless) - library" }, { "status": "Installed", "desired": "Install", "version": "0.95.2+git~20120903-1ubuntu5", "name": "libwayland0", "description": "wayland compositor infrastructure - shared libraries" }, { "status": "Installed", "desired": "Install", "version": "2:3.6.3-2ubuntu2.3", "name": "libwbclient0", "description": "Samba winbind client library" }, { "status": "Installed", "desired": "Install", "version": "1.8.3-0ubuntu0.12.04.1", "name": "libwebkitgtk-1.0-0", "description": "Web content engine library for GTK+" }, { "status": "Installed", "desired": "Install", "version": "1.8.3-0ubuntu0.12.04.1", "name": "libwebkitgtk-1.0-common", "description": "Web content engine library for GTK+ - data files" }, { "status": "Installed", "desired": "Install", "version": "1.8.3-0ubuntu0.12.04.1", "name": "libwebkitgtk-3.0-0", "description": "Web content engine library for GTK+" }, { "status": "Installed", "desired": "Install", "version": "1.8.3-0ubuntu0.12.04.1", "name": "libwebkitgtk-3.0-common", "description": "Web content engine library for GTK+ - data files" }, { "status": "Installed", "desired": "Install", "version": "0.2.3.4-2.1", "name": "libwildmidi-config", "description": "software MIDI player configuration" }, { "status": "Installed", "desired": "Install", "version": "0.2.3.4-2.1", "name": "libwildmidi1", "description": "software MIDI player library" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libwind0-heimdal", "description": "Heimdal Kerberos - stringprep implementation" }, { "status": "Installed", "desired": "Install", "version": "1.6~git20120311.dfsg.1-2", "name": "libwind0-heimdal:i386", "description": "Heimdal Kerberos - stringprep implementation" }, { "status": "Installed", "desired": "Install", "version": "0.2.8.4-10ubuntu1", "name": "libwmf-bin", "description": "Windows metafile conversion tools" }, { "status": "Installed", "desired": "Install", "version": "0.2.8.4-10ubuntu1", "name": "libwmf0.2-7", "description": "Windows metafile conversion library" }, { "status": "Installed", "desired": "Install", "version": "0.2.8.4-10ubuntu1", "name": "libwmf0.2-7-gtk", "description": "Windows metafile conversion library" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1", "name": "libwnck-3-0", "description": "Window Navigator Construction Kit - runtime files" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu1", "name": "libwnck-3-common", "description": "Window Navigator Construction Kit - common files" }, { "status": "Installed", "desired": "Install", "version": "1:2.30.7-0ubuntu1", "name": "libwnck-common", "description": "Window Navigator Construction Kit - common files" }, { "status": "Installed", "desired": "Install", "version": "1:2.30.7-0ubuntu1", "name": "libwnck22", "description": "Window Navigator Construction Kit - runtime files" }, { "status": "Installed", "desired": "Install", "version": "0.9.4-1", "name": "libwpd-0.9-9", "description": "Library for handling WordPerfect documents (shared library)" }, { "status": "Installed", "desired": "Install", "version": "0.2.1-1", "name": "libwpg-0.2-2", "description": "WordPerfect graphics import/convert library (shared library)" }, { "status": "Installed", "desired": "Install", "version": "0.2.4-1", "name": "libwps-0.2-2", "description": "Works text file format import filter library (shared library)" }, { "status": "Installed", "desired": "Install", "version": "7.6.q-21", "name": "libwrap0", "description": "Wietse Venema's TCP wrappers library" }, { "status": "Installed", "desired": "Install", "version": "7.6.q-21", "name": "libwrap0:i386", "description": "Wietse Venema's TCP wrappers library" }, { "status": "Installed", "desired": "Install", "version": "1.71-1", "name": "libwww-mechanize-perl", "description": "module to automate interaction with websites" }, { "status": "Installed", "desired": "Install", "version": "6.03-1", "name": "libwww-perl", "description": "simple and consistent interface to the world-wide web" }, { "status": "Installed", "desired": "Install", "version": "6.01-1", "name": "libwww-robotrules-perl", "description": "database of robots.txt-derived permissions" }, { "status": "Installed", "desired": "Install", "version": "2.8.12.1-6ubuntu2", "name": "libwxbase2.8-0", "description": "wxBase library (runtime) - non-GUI support classes of wxWidgets toolkit" }, { "status": "Installed", "desired": "Install", "version": "2.8.12.1-6ubuntu2", "name": "libwxgtk2.8-0", "description": "wxWidgets Cross-platform C++ GUI toolkit (GTK+ runtime)" }, { "status": "Installed", "desired": "Install", "version": "2:1.4.99.1-0ubuntu2", "name": "libx11-6", "description": "X11 client-side library" }, { "status": "Installed", "desired": "Install", "version": "2:1.4.99.1-0ubuntu2", "name": "libx11-6:i386", "description": "X11 client-side library" }, { "status": "Installed", "desired": "Install", "version": "2:1.4.99.1-0ubuntu2", "name": "libx11-data", "description": "X11 client-side library" }, { "status": "Installed", "desired": "Install", "version": "2:1.4.99.1-0ubuntu2", "name": "libx11-dev", "description": "X11 client-side library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "2:1.4.99.1-0ubuntu2", "name": "libx11-doc", "description": "X11 client-side library (development documentation)" }, { "status": "Installed", "desired": "Install", "version": "0.56-2", "name": "libx11-protocol-perl", "description": "Perl module for the X Window System Protocol, version 11" }, { "status": "Installed", "desired": "Install", "version": "2:1.4.99.1-0ubuntu2", "name": "libx11-xcb-dev", "description": "Xlib/XCB interface library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "2:1.4.99.1-0ubuntu2", "name": "libx11-xcb1", "description": "Xlib/XCB interface library" }, { "status": "Installed", "desired": "Install", "version": "2:1.4.99.1-0ubuntu2", "name": "libx11-xcb1:i386", "description": "Xlib/XCB interface library" }, { "status": "Installed", "desired": "Install", "version": "2:0.120.2151+gita3f4407-2", "name": "libx264-120", "description": "x264 video coding library" }, { "status": "Installed", "desired": "Install", "version": "1.1+ds1-7ubuntu1", "name": "libx86-1", "description": "x86 real-mode library" }, { "status": "Installed", "desired": "Install", "version": "1.2.8-1", "name": "libxapian22", "description": "Search engine library" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "libxatracker1", "description": "X acceleration library -- runtime" }, { "status": "Installed", "desired": "Install", "version": "1:1.0.6-4", "name": "libxau-dev", "description": "X11 authorisation library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "1:1.0.6-4", "name": "libxau6", "description": "X11 authorisation library" }, { "status": "Installed", "desired": "Install", "version": "1:1.0.6-4", "name": "libxau6:i386", "description": "X11 authorisation library" }, { "status": "Installed", "desired": "Install", "version": "2:1.0.9-3ubuntu1", "name": "libxaw7", "description": "X11 Athena Widget library" }, { "status": "Installed", "desired": "Install", "version": "2:1.0.9-3ubuntu1", "name": "libxaw7:i386", "description": "X11 Athena Widget library" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-composite0", "description": "X C Binding, composite extension" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-dri2-0", "description": "X C Binding, dri2 extension" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-glx0", "description": "X C Binding, glx extension" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-glx0:i386", "description": "X C Binding, glx extension" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-glx0-dev", "description": "X C Binding, glx extension, development files" }, { "status": "Installed", "desired": "Install", "version": "0.3.8-1build1", "name": "libxcb-icccm4", "description": "utility libraries for X C Binding -- icccm" }, { "status": "Installed", "desired": "Install", "version": "0.3.8-1build1", "name": "libxcb-image0", "description": "utility libraries for X C Binding -- image" }, { "status": "Installed", "desired": "Install", "version": "0.3.8-1build1", "name": "libxcb-keysyms1", "description": "utility libraries for X C Binding -- keysyms" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-randr0", "description": "X C Binding, randr extension" }, { "status": "Installed", "desired": "Install", "version": "0.3.8-1", "name": "libxcb-render-util0", "description": "utility libraries for X C Binding -- render-util" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-render0", "description": "X C Binding, render extension" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-render0:i386", "description": "X C Binding, render extension" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-render0-dev", "description": "X C Binding, render extension, development files" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-shape0", "description": "X C Binding, shape extension" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-shm0", "description": "X C Binding, shm extension" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-shm0:i386", "description": "X C Binding, shm extension" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-shm0-dev", "description": "X C Binding, shm extension, development files" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-sync0", "description": "X C Binding, sync extension" }, { "status": "Installed", "desired": "Install", "version": "0.3.8-2", "name": "libxcb-util0", "description": "utility libraries for X C Binding -- atom, aux and event" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-xfixes0", "description": "X C Binding, xfixes extension" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb-xv0", "description": "X C Binding, xv extension" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb1", "description": "X C Binding" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb1:i386", "description": "X C Binding" }, { "status": "Installed", "desired": "Install", "version": "1.8.1-1ubuntu0.1", "name": "libxcb1-dev", "description": "X C Binding, development files" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.3-2build1", "name": "libxcomposite-dev", "description": "X11 Composite extension library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.3-2build1", "name": "libxcomposite1", "description": "X11 Composite extension library" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.3-2build1", "name": "libxcomposite1:i386", "description": "X11 Composite extension library" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.12-1", "name": "libxcursor-dev", "description": "X cursor management library (development files)" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.12-1", "name": "libxcursor1", "description": "X cursor management library" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.12-1", "name": "libxcursor1:i386", "description": "X cursor management library" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.3-2build1", "name": "libxdamage-dev", "description": "X11 damaged region extension library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.3-2build1", "name": "libxdamage1", "description": "X11 damaged region extension library" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.3-2build1", "name": "libxdamage1:i386", "description": "X11 damaged region extension library" }, { "status": "Installed", "desired": "Install", "version": "1.1.3-9build1", "name": "libxdelta2", "description": "Xdelta runtime library" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.0-4", "name": "libxdmcp-dev", "description": "X11 authorisation library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.0-4", "name": "libxdmcp6", "description": "X11 Display Manager Control Protocol library" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.0-4", "name": "libxdmcp6:i386", "description": "X11 Display Manager Control Protocol library" }, { "status": "Installed", "desired": "Install", "version": "4.1.2-2ubuntu2.5", "name": "libxenstore3.0", "description": "Xenstore communications library for Xen" }, { "status": "Installed", "desired": "Install", "version": "2:1.3.0-3build1", "name": "libxext-dev", "description": "X11 miscellaneous extensions library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "2:1.3.0-3build1", "name": "libxext6", "description": "X11 miscellaneous extension library" }, { "status": "Installed", "desired": "Install", "version": "2:1.3.0-3build1", "name": "libxext6:i386", "description": "X11 miscellaneous extension library" }, { "status": "Installed", "desired": "Install", "version": "1:5.0-4ubuntu4", "name": "libxfixes-dev", "description": "X11 miscellaneous 'fixes' extension library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "1:5.0-4ubuntu4", "name": "libxfixes3", "description": "X11 miscellaneous 'fixes' extension library" }, { "status": "Installed", "desired": "Install", "version": "1:5.0-4ubuntu4", "name": "libxfixes3:i386", "description": "X11 miscellaneous 'fixes' extension library" }, { "status": "Installed", "desired": "Install", "version": "1:1.4.4-1", "name": "libxfont1", "description": "X11 font rasterisation library" }, { "status": "Installed", "desired": "Install", "version": "2.2.0-3ubuntu2", "name": "libxft-dev", "description": "FreeType-based font drawing library for X (development files)" }, { "status": "Installed", "desired": "Install", "version": "2.2.0-3ubuntu2", "name": "libxft2", "description": "FreeType-based font drawing library for X" }, { "status": "Installed", "desired": "Install", "version": "2.2.0-3ubuntu2", "name": "libxft2:i386", "description": "FreeType-based font drawing library for X" }, { "status": "Installed", "desired": "Install", "version": "2:1.6.0-0ubuntu2", "name": "libxi-dev", "description": "X11 Input extension library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "2:1.6.0-0ubuntu2", "name": "libxi6", "description": "X11 Input extension library" }, { "status": "Installed", "desired": "Install", "version": "2:1.6.0-0ubuntu2", "name": "libxi6:i386", "description": "X11 Input extension library" }, { "status": "Installed", "desired": "Install", "version": "2:1.1.1-3build1", "name": "libxinerama-dev", "description": "X11 Xinerama extension library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "2:1.1.1-3build1", "name": "libxinerama1", "description": "X11 Xinerama extension library" }, { "status": "Installed", "desired": "Install", "version": "2:1.1.1-3build1", "name": "libxinerama1:i386", "description": "X11 Xinerama extension library" }, { "status": "Installed", "desired": "Install", "version": "1:1.0.7-1ubuntu0.1", "name": "libxkbfile1", "description": "X11 keyboard file manipulation library" }, { "status": "Installed", "desired": "Install", "version": "5.2.1-1ubuntu1", "name": "libxklavier16", "description": "X Keyboard Extension high-level API" }, { "status": "Installed", "desired": "Install", "version": "1.09-3", "name": "libxml-namespacesupport-perl", "description": "Perl module for supporting simple generic namespaces" }, { "status": "Installed", "desired": "Install", "version": "2.41-1build1", "name": "libxml-parser-perl", "description": "Perl module for parsing XML files" }, { "status": "Installed", "desired": "Install", "version": "1.07-1", "name": "libxml-sax-base-perl", "description": "base class for SAX drivers and filters" }, { "status": "Installed", "desired": "Install", "version": "0.40-2", "name": "libxml-sax-expat-perl", "description": "Perl module for a SAX2 driver for Expat (XML::Parser)" }, { "status": "Installed", "desired": "Install", "version": "0.99+dfsg-1ubuntu0.1", "name": "libxml-sax-perl", "description": "Perl module for using and building Perl SAX2 XML processors" }, { "status": "Installed", "desired": "Install", "version": "2.18-3", "name": "libxml-simple-perl", "description": "Perl module for reading and writing XML" }, { "status": "Installed", "desired": "Install", "version": "1:3.39-1ubuntu1", "name": "libxml-twig-perl", "description": "Perl module for processing huge XML documents in tree mode" }, { "status": "Installed", "desired": "Install", "version": "1.13-7", "name": "libxml-xpath-perl", "description": "Perl module for processing XPath" }, { "status": "Installed", "desired": "Install", "version": "2.7.8.dfsg-5.1ubuntu4.3", "name": "libxml2", "description": "GNOME XML library" }, { "status": "Installed", "desired": "Install", "version": "2.7.8.dfsg-5.1ubuntu4.3", "name": "libxml2:i386", "description": "GNOME XML library" }, { "status": "Installed", "desired": "Install", "version": "2.7.8.dfsg-5.1ubuntu4.3", "name": "libxml2-dev", "description": "Development files for the GNOME XML library" }, { "status": "Installed", "desired": "Install", "version": "2.7.8.dfsg-5.1ubuntu4.3", "name": "libxml2-utils", "description": "XML utilities" }, { "status": "Installed", "desired": "Install", "version": "2:1.1.0-3", "name": "libxmu6", "description": "X11 miscellaneous utility library" }, { "status": "Installed", "desired": "Install", "version": "2:1.1.0-3", "name": "libxmu6:i386", "description": "X11 miscellaneous utility library" }, { "status": "Installed", "desired": "Install", "version": "2:1.1.0-3", "name": "libxmuu1", "description": "X11 miscellaneous micro-utility library" }, { "status": "Installed", "desired": "Install", "version": "1:1.0.1-2", "name": "libxp6", "description": "X Printing Extension (Xprint) client library" }, { "status": "Installed", "desired": "Install", "version": "1:1.0.1-2", "name": "libxp6:i386", "description": "X Printing Extension (Xprint) client library" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.9-4", "name": "libxpm4", "description": "X11 pixmap library" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.9-4", "name": "libxpm4:i386", "description": "X11 pixmap library" }, { "status": "Installed", "desired": "Install", "version": "2:1.3.2-2", "name": "libxrandr-dev", "description": "X11 RandR extension library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "2:1.3.2-2", "name": "libxrandr2", "description": "X11 RandR extension library" }, { "status": "Installed", "desired": "Install", "version": "2:1.3.2-2", "name": "libxrandr2:i386", "description": "X11 RandR extension library" }, { "status": "Installed", "desired": "Install", "version": "1:0.9.6-2build1", "name": "libxrender-dev", "description": "X Rendering Extension client library (development files)" }, { "status": "Installed", "desired": "Install", "version": "1:0.9.6-2build1", "name": "libxrender1", "description": "X Rendering Extension client library" }, { "status": "Installed", "desired": "Install", "version": "1:0.9.6-2build1", "name": "libxrender1:i386", "description": "X Rendering Extension client library" }, { "status": "Installed", "desired": "Install", "version": "2:1.0.5-1", "name": "libxres1", "description": "X11 Resource extension library" }, { "status": "Installed", "desired": "Install", "version": "1.1.26-8ubuntu1.2", "name": "libxslt1.1", "description": "XSLT 1.0 processing library - runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.1.26-8ubuntu1.2", "name": "libxslt1.1:i386", "description": "XSLT 1.0 processing library - runtime library" }, { "status": "Installed", "desired": "Install", "version": "1:1.2.1-2", "name": "libxss1", "description": "X11 Screen Saver extension library" }, { "status": "Installed", "desired": "Install", "version": "1:1.2.1-2", "name": "libxss1:i386", "description": "X11 Screen Saver extension library" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.1-2build1", "name": "libxt-dev", "description": "X11 toolkit intrinsics library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.1-2build1", "name": "libxt6", "description": "X11 toolkit intrinsics library" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.1-2build1", "name": "libxt6:i386", "description": "X11 toolkit intrinsics library" }, { "status": "Installed", "desired": "Install", "version": "2:1.2.0-4", "name": "libxtst6", "description": "X11 Testing -- Record extension library" }, { "status": "Installed", "desired": "Install", "version": "2:1.2.0-4", "name": "libxtst6:i386", "description": "X11 Testing -- Record extension library" }, { "status": "Installed", "desired": "Install", "version": "2:1.0.6-2build1", "name": "libxv1", "description": "X11 Video extension library" }, { "status": "Installed", "desired": "Install", "version": "2:1.0.6-2build1", "name": "libxv1:i386", "description": "X11 Video extension library" }, { "status": "Installed", "desired": "Install", "version": "2:1.3.2-6", "name": "libxvidcore4", "description": "Open source MPEG-4 video codec (library)" }, { "status": "Installed", "desired": "Install", "version": "2:1.0.6-1ubuntu2", "name": "libxvmc1", "description": "X11 Video extension library" }, { "status": "Installed", "desired": "Install", "version": "2:1.1.2-1", "name": "libxxf86dga1", "description": "X11 Direct Graphics Access extension library" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.1-2build1", "name": "libxxf86vm-dev", "description": "X11 XFree86 video mode extension library (development headers)" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.1-2build1", "name": "libxxf86vm1", "description": "X11 XFree86 video mode extension library" }, { "status": "Installed", "desired": "Install", "version": "1:1.1.1-2build1", "name": "libxxf86vm1:i386", "description": "X11 XFree86 video mode extension library" }, { "status": "Installed", "desired": "Install", "version": "1.0.12-2", "name": "libyajl1", "description": "Yet Another JSON Library" }, { "status": "Installed", "desired": "Install", "version": "0.1.4-2", "name": "libyaml-0-2", "description": "Fast YAML 1.1 parser and emitter library" }, { "status": "Installed", "desired": "Install", "version": "1.19-1", "name": "libyaml-syck-perl", "description": "Perl module providing a fast, lightweight YAML loader and dumper" }, { "status": "Installed", "desired": "Install", "version": "1.50-1", "name": "libyaml-tiny-perl", "description": "Perl module for reading and writing YAML files" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "libyelp0", "description": "Library for the GNOME help browser" }, { "status": "Installed", "desired": "Install", "version": "0.10+doc-7build2", "name": "libzbar0", "description": "bar code scanner and decoder (library)" }, { "status": "Installed", "desired": "Install", "version": "0.3.18-1ubuntu1", "name": "libzeitgeist-1.0-1", "description": "library to access Zeitgeist - shared library" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-1", "name": "libzephyr4", "description": "Project Athena's notification service - non-Kerberos libraries" }, { "status": "Installed", "desired": "Install", "version": "3.3.5+dfsg1-1ubuntu1", "name": "libzookeeper-mt2", "description": "Multi threaded C bindings for zookeeper" }, { "status": "Installed", "desired": "Install", "version": "0.2.33-4", "name": "libzvbi-common", "description": "Vertical Blanking Interval decoder (VBI) - common files" }, { "status": "Installed", "desired": "Install", "version": "0.2.33-4", "name": "libzvbi0", "description": "Vertical Blanking Interval decoder (VBI) - runtime files" }, { "status": "Installed", "desired": "Install", "version": "0.1.9.1-0ubuntu1.2", "name": "light-themes", "description": "Light Themes (Ambiance and Radiance)" }, { "status": "Installed", "desired": "Install", "version": "1.2.1-0ubuntu1.1", "name": "lightdm", "description": "Display Manager" }, { "status": "Installed", "desired": "Install", "version": "1.2.2", "name": "lightread", "description": "A lightweight news reader." }, { "status": "Installed", "desired": "Install", "version": "2.5.6ubuntu0.1", "name": "lintian", "description": "Debian package checker" }, { "status": "Installed", "desired": "Install", "version": "1.79.1", "name": "linux-firmware", "description": "Firmware for Linux kernel drivers" }, { "status": "Installed", "desired": "Install", "version": "3.2.0.36.43", "name": "linux-generic", "description": "Complete Generic Linux kernel" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-23.36", "name": "linux-headers-3.2.0-23", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-23.36", "name": "linux-headers-3.2.0-23-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-24.39", "name": "linux-headers-3.2.0-24", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-24.39", "name": "linux-headers-3.2.0-24-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-25.40", "name": "linux-headers-3.2.0-25", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-25.40", "name": "linux-headers-3.2.0-25-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-26.41", "name": "linux-headers-3.2.0-26", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-26.41", "name": "linux-headers-3.2.0-26-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-27.43", "name": "linux-headers-3.2.0-27", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-27.43", "name": "linux-headers-3.2.0-27-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-29.46", "name": "linux-headers-3.2.0-29", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-29.46", "name": "linux-headers-3.2.0-29-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-30.48", "name": "linux-headers-3.2.0-30", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-30.48", "name": "linux-headers-3.2.0-30-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-31.50", "name": "linux-headers-3.2.0-31", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-31.50", "name": "linux-headers-3.2.0-31-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-32.51", "name": "linux-headers-3.2.0-32", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-32.51", "name": "linux-headers-3.2.0-32-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-33.52", "name": "linux-headers-3.2.0-33", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-33.52", "name": "linux-headers-3.2.0-33-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-34.53", "name": "linux-headers-3.2.0-34", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-34.53", "name": "linux-headers-3.2.0-34-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-35.55", "name": "linux-headers-3.2.0-35", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-35.55", "name": "linux-headers-3.2.0-35-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-36.57", "name": "linux-headers-3.2.0-36", "description": "Header files related to Linux kernel version 3.2.0" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-36.57", "name": "linux-headers-3.2.0-36-generic", "description": "Linux kernel headers for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0.36.43", "name": "linux-headers-generic", "description": "Generic Linux kernel headers" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-24.39", "name": "linux-image-3.2.0-24-generic", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-25.40", "name": "linux-image-3.2.0-25-generic", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-26.41", "name": "linux-image-3.2.0-26-generic", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-27.43", "name": "linux-image-3.2.0-27-generic", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-29.46", "name": "linux-image-3.2.0-29-generic", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-30.48", "name": "linux-image-3.2.0-30-generic", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-31.50", "name": "linux-image-3.2.0-31-generic", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-32.51", "name": "linux-image-3.2.0-32-generic", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-33.52", "name": "linux-image-3.2.0-33-generic", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-34.53", "name": "linux-image-3.2.0-34-generic", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-35.55", "name": "linux-image-3.2.0-35-generic", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-36.57", "name": "linux-image-3.2.0-36-generic", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-36.57", "name": "linux", "description": "Linux kernel image for version 3.2.0 on 64 bit x86 SMP" }, { "status": "Installed", "desired": "Install", "version": "3.2.0.36.43", "name": "linux-image-generic", "description": "Generic Linux kernel image" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-36.57", "name": "linux-libc-dev", "description": "Linux Kernel Headers for development" }, { "status": "Installed", "desired": "Install", "version": "1.0.25+dfsg-0ubuntu1", "name": "linux-sound-base", "description": "base package for ALSA and OSS sound systems" }, { "status": "Installed", "desired": "Install", "version": "2.13+git20120306-3", "name": "locales", "description": "common files for locale support" }, { "status": "Installed", "desired": "Install", "version": "0.1.16", "name": "lockfile-progs", "description": "Programs for locking and unlocking files and mailboxes" }, { "status": "Installed", "desired": "Install", "version": "1:4.1.4.2+svn3283-3ubuntu5.1", "name": "login", "description": "system login tools" }, { "status": "Installed", "desired": "Install", "version": "3.7.8-6ubuntu5", "name": "logrotate", "description": "Log rotation utility" }, { "status": "Installed", "desired": "Install", "version": "4.0-0ubuntu20.2", "name": "lsb-base", "description": "Linux Standard Base 4.0 init script functionality" }, { "status": "Installed", "desired": "Install", "version": "4.0-0ubuntu20.2", "name": "lsb-release", "description": "Linux Standard Base version reporting utility" }, { "status": "Installed", "desired": "Install", "version": "02.15-2", "name": "lshw", "description": "information about hardware configuration" }, { "status": "Installed", "desired": "Install", "version": "4.81.dfsg.1-1build1", "name": "lsof", "description": "List open files" }, { "status": "Installed", "desired": "Install", "version": "0.5.3-2.1ubuntu2", "name": "ltrace", "description": "Tracks runtime library calls in dynamically linked programs" }, { "status": "Installed", "desired": "Install", "version": "1:0.2.6-5", "name": "luvcview", "description": "USB Video Class grabber" }, { "status": "Installed", "desired": "Install", "version": "2.8.8dev.9-2ubuntu0.12.04.1", "name": "lynx-cur", "description": "Text-mode WWW Browser with NLS support (development version)" }, { "status": "Installed", "desired": "Install", "version": "1.4.16-2ubuntu1", "name": "m4", "description": "a macro processing language" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.1-0ubuntu2.2", "name": "mahjongg", "description": "classic Eastern tile game for GNOME" }, { "status": "Installed", "desired": "Install", "version": "3.81-8.1ubuntu1.1", "name": "make", "description": "An utility for Directing compilation." }, { "status": "Installed", "desired": "Install", "version": "2.3.1-89ubuntu2", "name": "makedev", "description": "creates device files in /dev" }, { "status": "Installed", "desired": "Install", "version": "2.6.1-2ubuntu1", "name": "man-db", "description": "on-line manual pager" }, { "status": "Installed", "desired": "Install", "version": "3.35-0.1ubuntu1", "name": "manpages", "description": "Manual pages about using a GNU/Linux system" }, { "status": "Installed", "desired": "Install", "version": "3.35-0.1ubuntu1", "name": "manpages-dev", "description": "Manual pages about using GNU/Linux for development" }, { "status": "Installed", "desired": "Install", "version": "1.3.3-17", "name": "mawk", "description": "a pattern scanning and text processing language" }, { "status": "Installed", "desired": "Install", "version": "16-1", "name": "media-player-info", "description": "Media player identification files" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-1ubuntu1", "name": "meld", "description": "graphical tool to diff and merge files" }, { "status": "Installed", "desired": "Install", "version": "4.20-1.1ubuntu1", "name": "memtest86+", "description": "thorough real-mode memory tester" }, { "status": "Installed", "desired": "Install", "version": "8.0.4-0ubuntu0.3", "name": "mesa-common-dev", "description": "Developer documentation for Mesa" }, { "status": "Installed", "desired": "Install", "version": "8.0.1+git20110129+d8f7d6b-0ubuntu2", "name": "mesa-utils", "description": "Miscellaneous Mesa GL utilities" }, { "status": "Installed", "desired": "Install", "version": "1:2.34.1-1ubuntu11", "name": "metacity", "description": "lightweight GTK+ window manager" }, { "status": "Installed", "desired": "Install", "version": "1:2.34.1-1ubuntu11", "name": "metacity-common", "description": "shared files for the Metacity window manager" }, { "status": "Installed", "desired": "Install", "version": "3.51-1ubuntu1", "name": "mime-support", "description": "MIME files 'mime.types' & 'mailcap', and support programs" }, { "status": "Installed", "desired": "Install", "version": "0.9.5.1-1.1", "name": "mirage", "description": "fast and simple GTK+ image viewer" }, { "status": "Installed", "desired": "Install", "version": "1.10.1-1-ppa1~precise1", "name": "mixxx", "description": "Digital DJ interface" }, { "status": "Installed", "desired": "Install", "version": "0.23.1-1ubuntu2", "name": "mlocate", "description": "quickly find files on the filesystem based on their name" }, { "status": "Installed", "desired": "Install", "version": "20120410-0ubuntu1", "name": "mobile-broadband-provider-info", "description": "database of mobile broadband service providers" }, { "status": "Installed", "desired": "Install", "version": "0.5.2.0-0ubuntu2", "name": "modemmanager", "description": "D-Bus service for managing modems" }, { "status": "Installed", "desired": "Install", "version": "3.16-1ubuntu2", "name": "module-init-tools", "description": "tools for managing Linux kernel modules" }, { "status": "Installed", "desired": "Install", "version": "2.20.1-1ubuntu3", "name": "mount", "description": "Tools for mounting and manipulating filesystems" }, { "status": "Installed", "desired": "Install", "version": "2.36.3", "name": "mountall", "description": "filesystem mounting tool" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "mousetweaks", "description": "mouse accessibility enhancements for the GNOME desktop" }, { "status": "Installed", "desired": "Install", "version": "2:1.0~rc4.dfsg1+svn34540-1", "name": "mplayer", "description": "movie player for Unix-like systems" }, { "status": "Installed", "desired": "Install", "version": "1.10", "name": "mr", "description": "Multiple Repository management tool" }, { "status": "Installed", "desired": "Install", "version": "0.3-3.1", "name": "mscompress", "description": "Microsoft \"compress.exe/expand.exe\" compatible (de)compressor" }, { "status": "Installed", "desired": "Install", "version": "1.2-3", "name": "msr-tools", "description": "Utilities for modifying MSRs from userspace" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-2ubuntu1", "name": "mtdev-tools", "description": "Multitouch Protocol Translation Library - test tools" }, { "status": "Installed", "desired": "Install", "version": "4.0.12-1", "name": "mtools", "description": "Tools for manipulating MSDOS files" }, { "status": "Installed", "desired": "Install", "version": "0.80-1ubuntu1", "name": "mtr-tiny", "description": "Full screen ncurses traceroute tool" }, { "status": "Installed", "desired": "Install", "version": "2.15-0ubuntu10.3", "name": "multiarch-support", "description": "Transitional package to ensure multiarch compatibility" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "mutter-common", "description": "shared files for the Mutter window manager" }, { "status": "Installed", "desired": "Install", "version": "2.1-5.3ubuntu1", "name": "myspell-en-au", "description": "English_australian dictionary for myspell" }, { "status": "Installed", "desired": "Install", "version": "1:3.3.0-2ubuntu3", "name": "myspell-en-gb", "description": "English_british dictionary for myspell" }, { "status": "Installed", "desired": "Install", "version": "1:3.3.0-2ubuntu3", "name": "myspell-en-za", "description": "English_southafrican dictionary for myspell" }, { "status": "Installed", "desired": "Install", "version": "5.5.29-0ubuntu0.12.04.1", "name": "mysql-common", "description": "MySQL database common files, e.g. /etc/mysql/my.cnf" }, { "status": "Installed", "desired": "Install", "version": "1:3.3.0-2ubuntu3", "name": "mythes-en-us", "description": "English Thesaurus for LibreOffice/OpenOffice.org" }, { "status": "Installed", "desired": "Install", "version": "2.2.6-1", "name": "nano", "description": "small, friendly text editor inspired by Pico" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.2-0ubuntu6", "name": "nautilus", "description": "file manager and graphical shell for GNOME" }, { "status": "Installed", "desired": "Install", "version": "1:3.4.2-0ubuntu6", "name": "nautilus-data", "description": "data files for nautilus" }, { "status": "Installed", "desired": "Install", "version": "0.19-2build1", "name": "nautilus-open-terminal", "description": "nautilus plugin for opening terminals in arbitrary paths" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-2ubuntu2", "name": "nautilus-sendto", "description": "integrates Evolution and Pidgin into the Nautilus file manager" }, { "status": "Installed", "desired": "Install", "version": "3.4.2.3-0ubuntu1", "name": "nautilus-sendto-empathy", "description": "GNOME multi-protocol chat and call client (nautilus-sendto plugin)" }, { "status": "Installed", "desired": "Install", "version": "0.7.3-1ubuntu2", "name": "nautilus-share", "description": "Nautilus extension to share folder using Samba" }, { "status": "Installed", "desired": "Install", "version": "5.9-4", "name": "ncurses-base", "description": "basic terminal type definitions" }, { "status": "Installed", "desired": "Install", "version": "5.9-4", "name": "ncurses-bin", "description": "terminal-related programs and man pages" }, { "status": "Installed", "desired": "Install", "version": "1.60-24.1ubuntu2", "name": "net-tools", "description": "The NET-3 networking toolkit" }, { "status": "Installed", "desired": "Install", "version": "4.47ubuntu1", "name": "netbase", "description": "Basic TCP/IP networking system" }, { "status": "Installed", "desired": "Install", "version": "1.89-4ubuntu1", "name": "netcat-openbsd", "description": "TCP/IP swiss army knife" }, { "status": "Installed", "desired": "Install", "version": "2:10.0-15", "name": "netpbm", "description": "Graphics conversion tools between image formats" }, { "status": "Installed", "desired": "Install", "version": "0.9.4.0-0ubuntu4.2", "name": "network-manager", "description": "network management framework (daemon and userspace tools)" }, { "status": "Installed", "desired": "Install", "version": "0.9.4.1-0ubuntu2", "name": "network-manager-gnome", "description": "network management framework (GNOME frontend)" }, { "status": "Installed", "desired": "Install", "version": "0.9.4.0-0ubuntu1", "name": "network-manager-openvpn", "description": "network management framework (OpenVPN plugin core)" }, { "status": "Installed", "desired": "Install", "version": "0.9.4.0-0ubuntu1", "name": "network-manager-openvpn-gnome", "description": "network management framework (OpenVPN plugin GNOME GUI)" }, { "status": "Installed", "desired": "Install", "version": "0.9.4.0-0ubuntu1", "name": "network-manager-pptp", "description": "network management framework (PPTP plugin core)" }, { "status": "Installed", "desired": "Install", "version": "0.9.4.0-0ubuntu1", "name": "network-manager-pptp-gnome", "description": "network management framework (PPTP plugin GNOME GUI)" }, { "status": "Installed", "desired": "Install", "version": "1.5-0ubuntu1", "name": "nitro", "description": "Get stuff done with Nitro." }, { "status": "Installed", "desired": "Install", "version": "5.21-1.1ubuntu1", "name": "nmap", "description": "The Network Mapper" }, { "status": "Installed", "desired": "Install", "version": "0.1+bzr57-0ubuntu1", "name": "notepad-qml", "description": "Demos for Qt Components for Ubuntu" }, { "status": "Installed", "desired": "Install", "version": "0.9.34-0ubuntu2", "name": "notify-osd", "description": "daemon that displays passive pop-up notifications" }, { "status": "Installed", "desired": "Install", "version": "0.7", "name": "notify-osd-icons", "description": "Notify-OSD icons" }, { "status": "Installed", "desired": "Install", "version": "1:2012.1.15AR.1-1ubuntu1.2", "name": "ntfs-3g", "description": "read/write NTFS driver for FUSE" }, { "status": "Installed", "desired": "Install", "version": "1:4.2.6.p3+dfsg-1ubuntu3.1", "name": "ntpdate", "description": "client for setting system time from NTP servers" }, { "status": "Installed", "desired": "Install", "version": "2.14.1-0ubuntu1", "name": "nux-tools", "description": "Visual rendering toolkit for real-time applications - tools" }, { "status": "Installed", "desired": "Install", "version": "1:0.2.44.2", "name": "nvidia-common", "description": "Find obsolete NVIDIA drivers" }, { "status": "Installed", "desired": "Install", "version": "310.14-0ubuntu0.1", "name": "nvidia-experimental-310", "description": "Experimental NVIDIA binary Xorg driver, kernel module and VDPAU library" }, { "status": "Installed", "desired": "Install", "version": "310.14-0ubuntu0.1", "name": "nvidia-settings-experimental-310", "description": "Tool for configuring the NVIDIA graphics driver" }, { "status": "Installed", "desired": "Install", "version": "0.4.6-0ubuntu1", "name": "obex-data-server", "description": "D-Bus service for OBEX client and server side functionality" }, { "status": "Installed", "desired": "Install", "version": "0.44-0ubuntu1", "name": "obexd-client", "description": "D-Bus OBEX client" }, { "status": "Installed", "desired": "Install", "version": "0.23-1build3", "name": "obexftp", "description": "file transfer utility for devices that use the OBEX protocol" }, { "status": "Installed", "desired": "Install", "version": "2.2.14p2-5ubuntu3", "name": "odbcinst", "description": "Helper program for accessing odbc ini files" }, { "status": "Installed", "desired": "Install", "version": "2.2.14p2-5ubuntu3", "name": "odbcinst1debian2", "description": "Support library for accessing odbc ini files" }, { "status": "Installed", "desired": "Install", "version": "2.2.14p2-5ubuntu3", "name": "odbcinst1debian2:i386", "description": "Support library for accessing odbc ini files" }, { "status": "Installed", "desired": "Install", "version": "0.3-0precise1", "name": "oem-qa-benchmark", "description": "OEM QA Benchmark" }, { "status": "Installed", "desired": "Install", "version": "0.3-0precise1", "name": "oem-qa-benchmark-cachebench", "description": "OEM QA Benchmark Cachebench" }, { "status": "Installed", "desired": "Install", "version": "0.3-0precise1", "name": "oem-qa-benchmark-encode-mp3", "description": "OEM QA Benchmark Encode MP3" }, { "status": "Installed", "desired": "Install", "version": "0.3-0precise1", "name": "oem-qa-benchmark-unigine-sanctuary", "description": "OEM QA Benchmark Unigine Sanctuary" }, { "status": "Installed", "desired": "Install", "version": "0.3-0precise1", "name": "oem-qa-benchmark-x264", "description": "OEM QA Benchmark X264" }, { "status": "Installed", "desired": "Install", "version": "0.97.0-0ubuntu4", "name": "onboard", "description": "Simple On-screen Keyboard" }, { "status": "Installed", "desired": "Install", "version": "0.2.8.1", "name": "oneconf", "description": "synchronize your configuration data over the network" }, { "status": "Installed", "desired": "Install", "version": "7u9-2.3.4-0ubuntu1.12.04.1", "name": "openjdk-7-jre", "description": "OpenJDK Java runtime, using Hotspot JIT" }, { "status": "Installed", "desired": "Install", "version": "7u9-2.3.4-0ubuntu1.12.04.1", "name": "openjdk-7-jre-headless", "description": "OpenJDK Java runtime, using Hotspot JIT (headless)" }, { "status": "Installed", "desired": "Install", "version": "7u9-2.3.4-0ubuntu1.12.04.1", "name": "openjdk-7-jre-lib", "description": "OpenJDK Java runtime (architecture independent libraries)" }, { "status": "Installed", "desired": "Install", "version": "0.6", "name": "openoffice.org-hyphenation", "description": "Hyphenation patterns for OpenOffice.org" }, { "status": "Installed", "desired": "Install", "version": "20120322-0ubuntu1", "name": "openprinting-ppds", "description": "OpenPrinting printer support - PostScript PPD files" }, { "status": "Installed", "desired": "Install", "version": "1:5.9p1-5ubuntu1", "name": "openssh-client", "description": "secure shell (SSH) client, for secure access to remote machines" }, { "status": "Installed", "desired": "Install", "version": "1.0.1-4ubuntu5.5", "name": "openssl", "description": "Secure Socket Layer (SSL) binary and related cryptographic tools" }, { "status": "Installed", "desired": "Install", "version": "2.2.1-8ubuntu1", "name": "openvpn", "description": "virtual private network daemon" }, { "status": "Installed", "desired": "Install", "version": "1.51ubuntu3", "name": "os-prober", "description": "utility to detect other OSes on a set of drives" }, { "status": "Installed", "desired": "Install", "version": "1", "name": "oss-compat", "description": "Open Sound System (OSS) compatibility package" }, { "status": "Installed", "desired": "Install", "version": "0.2.16-0ubuntu1.1", "name": "overlay-scrollbar", "description": "Scrollbar overlayed widget" }, { "status": "Installed", "desired": "Install", "version": "0.2-0precise1~rev64", "name": "packager", "description": "Package uploader" }, { "status": "Installed", "desired": "Install", "version": "2.3-8ubuntu5.1", "name": "parted", "description": "disk partition manipulator" }, { "status": "Installed", "desired": "Install", "version": "1:4.1.4.2+svn3283-3ubuntu5.1", "name": "passwd", "description": "change and administer password and group data" }, { "status": "Installed", "desired": "Install", "version": "2.6.1-3", "name": "patch", "description": "Apply a diff file to an original" }, { "status": "Installed", "desired": "Install", "version": "0.3.2-1.1", "name": "patchutils", "description": "Utilities to work with patches" }, { "status": "Installed", "desired": "Install", "version": "0.99.2-1build1", "name": "pavucontrol", "description": "PulseAudio Volume Control" }, { "status": "Installed", "desired": "Install", "version": "0.208ubuntu1", "name": "pbuilder", "description": "personal package builder for Debian packages" }, { "status": "Installed", "desired": "Install", "version": "1.1.6-1", "name": "pbzip2", "description": "parallel bzip2 implementation" }, { "status": "Installed", "desired": "Install", "version": "1:3.1.8-2ubuntu5", "name": "pciutils", "description": "Linux PCI Utilities" }, { "status": "Installed", "desired": "Install", "version": "018-6", "name": "pcmciautils", "description": "PCMCIA utilities for Linux 2.6" }, { "status": "Installed", "desired": "Install", "version": "0.6.1-2ubuntu2", "name": "pep8", "description": "Python PEP 8 code style checker" }, { "status": "Installed", "desired": "Install", "version": "5.14.2-6ubuntu2.2", "name": "perl", "description": "Larry Wall's Practical Extraction and Report Language" }, { "status": "Installed", "desired": "Install", "version": "5.14.2-6ubuntu2.2", "name": "perl-base", "description": "minimal Perl system" }, { "status": "Installed", "desired": "Install", "version": "5.14.2-6ubuntu2.2", "name": "perl-modules", "description": "Core Perl modules" }, { "status": "Installed", "desired": "Install", "version": "8:6.6.9.7-5ubuntu3.2", "name": "perlmagick", "description": "Perl interface to the ImageMagick graphics routines" }, { "status": "Installed", "desired": "Install", "version": "4:4.7.0really4.6.0-0ubuntu1", "name": "phonon", "description": "multimedia framework from KDE - metapackage" }, { "status": "Installed", "desired": "Install", "version": "4:4.7.0really4.6.2-0ubuntu0.1", "name": "phonon-backend-gstreamer", "description": "Phonon GStreamer 0.10.x backend" }, { "status": "Installed", "desired": "Install", "version": "3.6.1-1", "name": "phoronix-test-suite", "description": "comprehensive testing and benchmarking platform" }, { "status": "Installed", "desired": "Install", "version": "5.3.10-1ubuntu3.5", "name": "php5-cli", "description": "command-line interpreter for the php5 scripting language" }, { "status": "Installed", "desired": "Install", "version": "5.3.10-1ubuntu3.5", "name": "php5-common", "description": "Common files for packages built from the php5 source" }, { "status": "Installed", "desired": "Install", "version": "5.3.10-1ubuntu3.5", "name": "php5-gd", "description": "GD module for php5" }, { "status": "Installed", "desired": "Install", "version": "3.102-3", "name": "pia", "description": "movie player for xawtw" }, { "status": "Installed", "desired": "Install", "version": "1:2.10.3-0ubuntu1.1", "name": "pidgin", "description": "graphical multi-protocol instant messaging client for X" }, { "status": "Installed", "desired": "Install", "version": "1:2.10.3-0ubuntu1.1", "name": "pidgin-data", "description": "multi-protocol instant messaging client - data files" }, { "status": "Installed", "desired": "Install", "version": "0.14-4ubuntu10", "name": "pidgin-libnotify", "description": "display notification bubbles in pidgin" }, { "status": "Installed", "desired": "Install", "version": "1.0+git201212190624-1~precise1", "name": "piglit", "description": "OpenGL driver testing framework" }, { "status": "Installed", "desired": "Install", "version": "0.8.1-1ubuntu1", "name": "pinentry-gtk2", "description": "GTK+-2-based PIN or pass-phrase entry dialog for GnuPG" }, { "status": "Installed", "desired": "Install", "version": "0.15.2-0ubuntu0.1", "name": "pitivi", "description": "non-linear audio/video editor using GStreamer" }, { "status": "Installed", "desired": "Install", "version": "0.26-1ubuntu1", "name": "pkg-config", "description": "manage compile and link flags for libraries" }, { "status": "Installed", "desired": "Install", "version": "0.8.2-2ubuntu30", "name": "plymouth", "description": "graphical boot animation and logger - main package" }, { "status": "Installed", "desired": "Install", "version": "0.8.2-2ubuntu30", "name": "plymouth-label", "description": "graphical boot animation and logger - label control" }, { "status": "Installed", "desired": "Install", "version": "0.8.2-2ubuntu30", "name": "plymouth-theme-ubuntu-logo", "description": "graphical boot animation and logger - ubuntu-logo theme" }, { "status": "Installed", "desired": "Install", "version": "0.8.2-2ubuntu30", "name": "plymouth-theme-ubuntu-text", "description": "graphical boot animation and logger - ubuntu-logo theme" }, { "status": "Installed", "desired": "Install", "version": "1.4.1-9", "name": "pm-utils", "description": "utilities and scripts for power management" }, { "status": "Installed", "desired": "Install", "version": "1.0.16+nmu2ubuntu1", "name": "po-debconf", "description": "tool for managing templates file translations with gettext" }, { "status": "Installed", "desired": "Install", "version": "0.104-1ubuntu1", "name": "policykit-1", "description": "framework for managing administrative policies and privileges" }, { "status": "Installed", "desired": "Install", "version": "0.105-1ubuntu3.1", "name": "policykit-1-gnome", "description": "GNOME authentication agent for PolicyKit-1" }, { "status": "Installed", "desired": "Install", "version": "0.10", "name": "policykit-desktop-privileges", "description": "run common desktop actions without password" }, { "status": "Installed", "desired": "Install", "version": "0.4.5-2", "name": "poppler-data", "description": "Encoding data for the poppler PDF rendering library" }, { "status": "Installed", "desired": "Install", "version": "0.18.4-1ubuntu3", "name": "poppler-utils", "description": "PDF utilities (based on Poppler)" }, { "status": "Installed", "desired": "Install", "version": "1.53ubuntu1", "name": "popularity-contest", "description": "Vote for your favourite packages automatically" }, { "status": "Installed", "desired": "Install", "version": "1.31", "name": "powermgmt-base", "description": "Common utils and configs for power management" }, { "status": "Installed", "desired": "Install", "version": "2.4.5-5ubuntu1", "name": "ppp", "description": "Point-to-Point Protocol (PPP) - daemon" }, { "status": "Installed", "desired": "Install", "version": "2.3.18+nmu3ubuntu1", "name": "pppconfig", "description": "A text menu based utility for configuring ppp" }, { "status": "Installed", "desired": "Install", "version": "1.20ubuntu1", "name": "pppoeconf", "description": "configures PPPoE/ADSL connections" }, { "status": "Installed", "desired": "Install", "version": "1.7.2-6", "name": "pptp-linux", "description": "Point-to-Point Tunneling Protocol (PPTP) Client" }, { "status": "Installed", "desired": "Install", "version": "23-1", "name": "printer-driver-c2esp", "description": "printer driver for Kodak ESP AiO color inkjet Series" }, { "status": "Installed", "desired": "Install", "version": "20111202dfsg0-1ubuntu1", "name": "printer-driver-foo2zjs", "description": "printer driver for ZjStream-based printers" }, { "status": "Installed", "desired": "Install", "version": "5.2.8~pre1-0ubuntu2.1", "name": "printer-driver-gutenprint", "description": "printer drivers for CUPS" }, { "status": "Installed", "desired": "Install", "version": "3.12.2-1ubuntu3.1", "name": "printer-driver-hpcups", "description": "HP Linux Printing and Imaging - CUPS Raster driver (hpcups)" }, { "status": "Installed", "desired": "Install", "version": "3.12.2-1ubuntu3.1", "name": "printer-driver-hpijs", "description": "HP Linux Printing and Imaging - gs IJS driver (hpijs)" }, { "status": "Installed", "desired": "Install", "version": "0.0.9-6ubuntu1", "name": "printer-driver-min12xxw", "description": "printer driver for KonicaMinolta PagePro 1[234]xxW" }, { "status": "Installed", "desired": "Install", "version": "1.13+nondbs-0ubuntu1", "name": "printer-driver-pnm2ppa", "description": "printer driver for HP-GDI printers" }, { "status": "Installed", "desired": "Install", "version": "3.12.2-1ubuntu3.1", "name": "printer-driver-postscript-hp", "description": "HP Printers PostScript Descriptions" }, { "status": "Installed", "desired": "Install", "version": "1.3-3ubuntu0.1", "name": "printer-driver-ptouch", "description": "printer driver Brother P-touch label printers" }, { "status": "Installed", "desired": "Install", "version": "1.3+repack0-2", "name": "printer-driver-pxljr", "description": "printer driver for HP Color LaserJet 35xx/36xx" }, { "status": "Installed", "desired": "Install", "version": "0.1-3", "name": "printer-driver-sag-gdi", "description": "printer driver for Ricoh Aficio SP 1000s/SP 1100s" }, { "status": "Installed", "desired": "Install", "version": "2.0.0+svn300-1.1ubuntu2", "name": "printer-driver-splix", "description": "Driver for Samsung and Xerox SPL2 and SPLc laser printers" }, { "status": "Installed", "desired": "Install", "version": "1.20", "name": "pristine-tar", "description": "regenerate pristine tarballs" }, { "status": "Installed", "desired": "Install", "version": "1:3.2.8-11ubuntu6", "name": "procps", "description": "/proc file system utilities" }, { "status": "Installed", "desired": "Install", "version": "2.4.1-1ubuntu2", "name": "protobuf-compiler", "description": "compiler for protocol buffer definition files" }, { "status": "Installed", "desired": "Install", "version": "0.6.2.16-1ubuntu4.1", "name": "psensor", "description": "display graphs for monitoring hardware temperature" }, { "status": "Installed", "desired": "Install", "version": "0.6.2.16-1ubuntu4.1", "name": "psensor-common", "description": "common files for Psensor and Psensor server" }, { "status": "Installed", "desired": "Install", "version": "22.15-2ubuntu1.1", "name": "psmisc", "description": "utilities that use the proc file system" }, { "status": "Installed", "desired": "Install", "version": "1:1.1-0ubuntu15.2", "name": "pulseaudio", "description": "PulseAudio sound server" }, { "status": "Installed", "desired": "Install", "version": "1:1.1-0ubuntu15.2", "name": "pulseaudio-module-bluetooth", "description": "Bluetooth module for PulseAudio sound server" }, { "status": "Installed", "desired": "Install", "version": "1:1.1-0ubuntu15.2", "name": "pulseaudio-module-gconf", "description": "GConf module for PulseAudio sound server" }, { "status": "Installed", "desired": "Install", "version": "1:1.1-0ubuntu15.2", "name": "pulseaudio-module-x11", "description": "X11 module for PulseAudio sound server" }, { "status": "Installed", "desired": "Install", "version": "1:1.1-0ubuntu15.2", "name": "pulseaudio-utils", "description": "Command line tools for the PulseAudio sound server" }, { "status": "Installed", "desired": "Install", "version": "0+r141-0ubuntu3", "name": "pybootchartgui", "description": "boot sequence visualisation" }, { "status": "Installed", "desired": "Install", "version": "0.5.0-1ubuntu1", "name": "pyflakes", "description": "passive checker of Python programs" }, { "status": "Installed", "desired": "Install", "version": "2.7.3-0ubuntu2", "name": "python", "description": "interactive high-level object-oriented language (default version)" }, { "status": "Installed", "desired": "Install", "version": "2.7.3-0ubuntu2", "name": "python-all", "description": "package depending on all supported Python runtime versions" }, { "status": "Installed", "desired": "Install", "version": "0.4.92-0ubuntu1", "name": "python-appindicator", "description": "Python bindings for libappindicator" }, { "status": "Installed", "desired": "Install", "version": "2.0.1-0ubuntu17.1", "name": "python-apport", "description": "apport crash report handling library" }, { "status": "Installed", "desired": "Install", "version": "0.8.3ubuntu7", "name": "python-apt", "description": "Python interface to libapt-pkg" }, { "status": "Installed", "desired": "Install", "version": "0.8.3ubuntu7", "name": "python-apt-common", "description": "Python interface to libapt-pkg (locales)" }, { "status": "Installed", "desired": "Install", "version": "0.43+bzr805-0ubuntu7", "name": "python-aptdaemon", "description": "Python module for the server and client of aptdaemon" }, { "status": "Installed", "desired": "Install", "version": "0.43+bzr805-0ubuntu7", "name": "python-aptdaemon.gtk3widgets", "description": "Python GTK+ 3 widgets to run an aptdaemon client" }, { "status": "Installed", "desired": "Install", "version": "0.43+bzr805-0ubuntu7", "name": "python-aptdaemon.pkcompat", "description": "PackageKit compatibilty for AptDaemon" }, { "status": "Installed", "desired": "Install", "version": "3.2.0-2build1", "name": "python-beautifulsoup", "description": "error-tolerant HTML parser for Python" }, { "status": "Installed", "desired": "Install", "version": "2.2.2-0ubuntu2", "name": "python-boto", "description": "Python interface to Amazon's Web Services" }, { "status": "Installed", "desired": "Install", "version": "4.3-1ubuntu5", "name": "python-brlapi", "description": "Python bindings for BrlAPI" }, { "status": "Installed", "desired": "Install", "version": "2.5.1-0ubuntu2", "name": "python-bzrlib", "description": "distributed version control system - python library" }, { "status": "Installed", "desired": "Install", "version": "1.8.8-1ubuntu3", "name": "python-cairo", "description": "Python bindings for the Cairo vector graphics library" }, { "status": "Installed", "desired": "Install", "version": "0.6.17ubuntu2", "name": "python-central", "description": "register and build utility for Python packages" }, { "status": "Installed", "desired": "Install", "version": "2.0.1-2build1", "name": "python-chardet", "description": "universal character encoding detector" }, { "status": "Installed", "desired": "Install", "version": "2.4.4-2ubuntu3", "name": "python-cheetah", "description": "text-based template engine and Python code generator" }, { "status": "Installed", "desired": "Install", "version": "0.9.5.94-0ubuntu4", "name": "python-compizconfig", "description": "Compizconfig bindings for python" }, { "status": "Installed", "desired": "Install", "version": "1.0-1build1", "name": "python-configglue", "description": "Glues together optparse.OptionParser and ConfigParser.ConfigParser" }, { "status": "Installed", "desired": "Install", "version": "4.7.2+ds-3build1", "name": "python-configobj", "description": "simple but powerful config file reader and writer for Python" }, { "status": "Installed", "desired": "Install", "version": "3.4-1ubuntu1", "name": "python-coverage", "description": "code coverage tool for Python" }, { "status": "Installed", "desired": "Install", "version": "2.4.1-1ubuntu0.1", "name": "python-crypto", "description": "cryptographic algorithms and protocols for Python" }, { "status": "Installed", "desired": "Install", "version": "0.9.8-1ubuntu2", "name": "python-cssutils", "description": "CSS Cascading Style Sheets parser and builder" }, { "status": "Installed", "desired": "Install", "version": "1.9.61-0ubuntu2", "name": "python-cups", "description": "Python bindings for CUPS" }, { "status": "Installed", "desired": "Install", "version": "1.3.8+20120201-0ubuntu8.1", "name": "python-cupshelpers", "description": "Python modules for printer configuration with CUPS" }, { "status": "Installed", "desired": "Install", "version": "1.5-1", "name": "python-dateutil", "description": "powerful extensions to the standard datetime module" }, { "status": "Installed", "desired": "Install", "version": "1.0.0-1ubuntu1", "name": "python-dbus", "description": "simple interprocess messaging system (Python interface)" }, { "status": "Installed", "desired": "Install", "version": "1.0.0-1ubuntu1", "name": "python-dbus-dev", "description": "main loop integration development files for python-dbus" }, { "status": "Installed", "desired": "Install", "version": "0.1.21ubuntu1", "name": "python-debian", "description": "Python modules to work with Debian-related data formats" }, { "status": "Installed", "desired": "Install", "version": "1.10build1", "name": "python-debianbts", "description": "Python interface to Debian's Bug Tracking System" }, { "status": "Installed", "desired": "Install", "version": "1.9+git20120320-0ubuntu1", "name": "python-debtagshw", "description": "Match debtags hardware:: tags against the actual hardware" }, { "status": "Installed", "desired": "Install", "version": "3.3.2-1", "name": "python-decorator", "description": "simplify usage of Python decorators by programmers" }, { "status": "Installed", "desired": "Install", "version": "1.0.2+bzr481-1", "name": "python-defer", "description": "Small framework for asynchronous programming" }, { "status": "Installed", "desired": "Install", "version": "2.7.3-0ubuntu2", "name": "python-dev", "description": "header files and a static library for Python (default)" }, { "status": "Installed", "desired": "Install", "version": "3.0.0-0ubuntu1", "name": "python-dirspec", "description": "Python User Folders Specification Library" }, { "status": "Installed", "desired": "Install", "version": "0.8.2", "name": "python-distro-info", "description": "information about distributions' releases (Python module)" }, { "status": "Installed", "desired": "Install", "version": "2.34-0ubuntu0.1", "name": "python-distutils-extra", "description": "enhancements to the Python build system" }, { "status": "Installed", "desired": "Install", "version": "2.3.6-1", "name": "python-dns", "description": "DNS client module for Python" }, { "status": "Installed", "desired": "Install", "version": "3.2.1-1ubuntu1", "name": "python-egenix-mxdatetime", "description": "date and time handling routines for Python" }, { "status": "Installed", "desired": "Install", "version": "3.2.1-1ubuntu1", "name": "python-egenix-mxtools", "description": "collection of additional builtins for Python" }, { "status": "Installed", "desired": "Install", "version": "1.6.5-2build1", "name": "python-enchant", "description": "spellchecking library for Python" }, { "status": "Installed", "desired": "Install", "version": "0.9.0-3.1build1", "name": "python-fastimport", "description": "Fastimport file format parser and generator library" }, { "status": "Installed", "desired": "Install", "version": "5.1.2-1ubuntu1~precise0", "name": "python-feedparser", "description": "Universal Feed Parser for Python" }, { "status": "Installed", "desired": "Install", "version": "1.2.4-2ubuntu2", "name": "python-formencode", "description": "validation and form generation Python package" }, { "status": "Installed", "desired": "Install", "version": "0.7.2-4", "name": "python-fpconst", "description": "Utilities for handling IEEE 754 floating point special values" }, { "status": "Installed", "desired": "Install", "version": "2.28.1+dfsg-1", "name": "python-gconf", "description": "Python bindings for the GConf configuration database system" }, { "status": "Installed", "desired": "Install", "version": "2.7.3-1ubuntu1", "name": "python-gdbm", "description": "GNU dbm database support for Python" }, { "status": "Installed", "desired": "Install", "version": "0.6-2", "name": "python-genshi", "description": "Python XML-based template engine" }, { "status": "Installed", "desired": "Install", "version": "0.13.6-1ubuntu1", "name": "python-gevent", "description": "gevent is a coroutine-based Python networking library" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-1~precise", "name": "python-gi", "description": "Python 2.x bindings for gobject-introspection libraries" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-1~precise", "name": "python-gi-cairo", "description": "Python Cairo bindings for the GObject library" }, { "status": "Installed", "desired": "Install", "version": "2.24.0-3", "name": "python-glade2", "description": "GTK+ bindings: Glade support" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu7", "name": "python-gmenu", "description": "GNOME implementation of the freedesktop menu specification" }, { "status": "Installed", "desired": "Install", "version": "2.28.1+dfsg-1", "name": "python-gnome2", "description": "Python bindings for the GNOME desktop environment" }, { "status": "Installed", "desired": "Install", "version": "2.32.0+dfsg-1", "name": "python-gnomekeyring", "description": "Python bindings for the GNOME keyring library" }, { "status": "Installed", "desired": "Install", "version": "0.3.2-9.1ubuntu3", "name": "python-gnupginterface", "description": "Python interface to GnuPG (GPG)" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-1~precise", "name": "python-gobject", "description": "Python 2.x bindings for GObject - transitional package" }, { "status": "Installed", "desired": "Install", "version": "2.28.6-10ubuntu1", "name": "python-gobject-2", "description": "deprecated static Python bindings for the GObject library" }, { "status": "Installed", "desired": "Install", "version": "2.28.6-10ubuntu1", "name": "python-gobject-2-dev", "description": "development headers for the static GObject Python bindings" }, { "status": "Installed", "desired": "Install", "version": "0.8.2-4", "name": "python-gpod", "description": "Python bindings for libgpod" }, { "status": "Installed", "desired": "Install", "version": "0.3.1-1ubuntu5.1", "name": "python-greenlet", "description": "Lightweight in-process concurrent programming" }, { "status": "Installed", "desired": "Install", "version": "0.10.22-3ubuntu0.1", "name": "python-gst0.10", "description": "generic media-playing framework (Python bindings)" }, { "status": "Installed", "desired": "Install", "version": "2.24.0-3", "name": "python-gtk2", "description": "Python bindings for the GTK+ widget set" }, { "status": "Installed", "desired": "Install", "version": "2.24.0-3", "name": "python-gtk2-dev", "description": "GTK+ bindings: devel files" }, { "status": "Installed", "desired": "Install", "version": "2.24.0-3", "name": "python-gtk2-doc", "description": "Python bindings for the GTK+ widget set - documentation" }, { "status": "Installed", "desired": "Install", "version": "2.10.1-2build1", "name": "python-gtksourceview2", "description": "Python bindings for the GtkSourceView widget" }, { "status": "Installed", "desired": "Install", "version": "0.7.2-1ubuntu2", "name": "python-httplib2", "description": "comprehensive HTTP client library written for Python" }, { "status": "Installed", "desired": "Install", "version": "1.4.1-3ubuntu1", "name": "python-ibus", "description": "Intelligent Input Bus - Python support" }, { "status": "Installed", "desired": "Install", "version": "1.1.7-4", "name": "python-imaging", "description": "Python Imaging Library" }, { "status": "Installed", "desired": "Install", "version": "2.6-1", "name": "python-jinja2", "description": "small but fast and easy to use stand-alone template engine" }, { "status": "Installed", "desired": "Install", "version": "0.9.2-0ubuntu0.12.04.2", "name": "python-keyring", "description": "store and access your passwords safely" }, { "status": "Installed", "desired": "Install", "version": "0.1.56.1", "name": "python-launchpad-integration", "description": "library for launchpad integration" }, { "status": "Installed", "desired": "Install", "version": "1.9.12-1", "name": "python-launchpadlib", "description": "Launchpad web services client library" }, { "status": "Installed", "desired": "Install", "version": "0.12.0-1ubuntu1", "name": "python-lazr.restfulclient", "description": "client for lazr.restful-based web services" }, { "status": "Installed", "desired": "Install", "version": "1.0.3-1", "name": "python-lazr.uri", "description": "library for parsing, manipulating, and generating URIs" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-0ubuntu1", "name": "python-ldtp", "description": "Python bindings for ldtp" }, { "status": "Installed", "desired": "Install", "version": "0.4.7-0ubuntu4.1", "name": "python-libproxy", "description": "automatic proxy configuration management library (python)" }, { "status": "Installed", "desired": "Install", "version": "2.7.8.dfsg-5.1ubuntu4.3", "name": "python-libxml2", "description": "Python bindings for the GNOME XML library" }, { "status": "Installed", "desired": "Install", "version": "2.3.0-3", "name": "python-louis", "description": "Python bindings for liblouis" }, { "status": "Installed", "desired": "Install", "version": "2.3.2-1", "name": "python-lxml", "description": "pythonic binding for the libxml2 and libxslt libraries" }, { "status": "Installed", "desired": "Install", "version": "0.21.1-2ubuntu2", "name": "python-m2crypto", "description": "a crypto and SSL toolkit for Python" }, { "status": "Installed", "desired": "Install", "version": "5.09-2", "name": "python-magic", "description": "File type determination library using \"magic\" numbers (Python bindings)" }, { "status": "Installed", "desired": "Install", "version": "0.5.0-1", "name": "python-mako", "description": "fast and lightweight templating for the Python platform" }, { "status": "Installed", "desired": "Install", "version": "0.15-1", "name": "python-markupsafe", "description": "XML/HTML/XHTML Markup safe string for Python" }, { "status": "Installed", "desired": "Install", "version": "2.7.3-0ubuntu2", "name": "python-minimal", "description": "minimal subset of the Python language (default version)" }, { "status": "Installed", "desired": "Install", "version": "1.20-1ubuntu1", "name": "python-mutagen", "description": "audio metadata editing library" }, { "status": "Installed", "desired": "Install", "version": "1.4-1build1", "name": "python-mygpoclient", "description": "Client library for the my.gpodder.org web service" }, { "status": "Installed", "desired": "Install", "version": "0.52.11-2ubuntu10", "name": "python-newt", "description": "A NEWT module for Python" }, { "status": "Installed", "desired": "Install", "version": "1.1.2-3", "name": "python-nose", "description": "test discovery and running of Python's unittest" }, { "status": "Installed", "desired": "Install", "version": "0.1.1-3", "name": "python-notify", "description": "Python bindings for libnotify" }, { "status": "Installed", "desired": "Install", "version": "1:1.6.1-6ubuntu1", "name": "python-numpy", "description": "Numerical Python adds a fast array facility to the Python language" }, { "status": "Installed", "desired": "Install", "version": "1.0.1-3build1", "name": "python-oauth", "description": "Python library implementing of the OAuth protocol" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-7", "name": "python-opencv", "description": "Python bindings for the computer vision library" }, { "status": "Installed", "desired": "Install", "version": "3.0.1~b2-1", "name": "python-opengl", "description": "Python bindings to OpenGL" }, { "status": "Installed", "desired": "Install", "version": "2.2.5-3ubuntu1", "name": "python-openid", "description": "OpenID support for servers and consumers" }, { "status": "Installed", "desired": "Install", "version": "1.5.6-1", "name": "python-openpyxl", "description": "module to read/write OpenXML xlsx/xlsm files" }, { "status": "Installed", "desired": "Install", "version": "0.12-1ubuntu2", "name": "python-openssl", "description": "Python wrapper around the OpenSSL library" }, { "status": "Installed", "desired": "Install", "version": "0.7.2-4ubuntu3", "name": "python-packagekit", "description": "PackageKit Python bindings" }, { "status": "Installed", "desired": "Install", "version": "0.4.2-12.2ubuntu4", "name": "python-pam", "description": "A Python interface to the PAM library" }, { "status": "Installed", "desired": "Install", "version": "1.7.7.1-2", "name": "python-paramiko", "description": "Make ssh v2 connections with Python" }, { "status": "Installed", "desired": "Install", "version": "1.7.5.1-4ubuntu2", "name": "python-paste", "description": "tools for using a Web Server Gateway Interface stack" }, { "status": "Installed", "desired": "Install", "version": "1.5.0-2build1", "name": "python-pastedeploy", "description": "load, configure, and compose WSGI applications and servers" }, { "status": "Installed", "desired": "Install", "version": "1.7.5-1", "name": "python-pastescript", "description": "serving web applications, creating file layouts for Python packages" }, { "status": "Installed", "desired": "Install", "version": "2.3-1ubuntu2", "name": "python-pexpect", "description": "Python module for automating interactive applications" }, { "status": "Installed", "desired": "Install", "version": "1.0-1build1", "name": "python-pip", "description": "alternative Python package installer" }, { "status": "Installed", "desired": "Install", "version": "0.7.2+bzr57-0ubuntu1", "name": "python-piston-mini-client", "description": "library for writing clients for Django's Piston REST APIs" }, { "status": "Installed", "desired": "Install", "version": "0.6.24-1ubuntu1", "name": "python-pkg-resources", "description": "Package Discovery and Resource Access using pkg_resources" }, { "status": "Installed", "desired": "Install", "version": "0.5.30-0ubuntu1", "name": "python-pocket-lint", "description": "composite linter and style checker" }, { "status": "Installed", "desired": "Install", "version": "2.0.1-0ubuntu17.1", "name": "python-problem-report", "description": "Python library to handle problem reports" }, { "status": "Installed", "desired": "Install", "version": "2.4.1-1ubuntu2", "name": "python-protobuf", "description": "Python bindings for protocol buffers" }, { "status": "Installed", "desired": "Install", "version": "0.0.11a-1ubuntu1", "name": "python-pyasn1", "description": "ASN.1 library for Python" }, { "status": "Installed", "desired": "Install", "version": "2.4.0+dfsg-0ubuntu3", "name": "python-pyatspi2", "description": "Assistive Technology Service Provider Interface - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "7.19.0-4ubuntu3", "name": "python-pycurl", "description": "Python bindings to libcurl" }, { "status": "Installed", "desired": "Install", "version": "1.0.2-1", "name": "python-pydot", "description": "Python interface to Graphviz's dot" }, { "status": "Installed", "desired": "Install", "version": "1.9.1release+dfsg-5", "name": "python-pygame", "description": "SDL bindings for games development in Python" }, { "status": "Installed", "desired": "Install", "version": "1.4+dfsg-2", "name": "python-pygments", "description": "syntax highlighting package written in Python" }, { "status": "Installed", "desired": "Install", "version": "0.14.1-1ubuntu6", "name": "python-pygoocanvas", "description": "GooCanvas Python bindings" }, { "status": "Installed", "desired": "Install", "version": "0.9.2-1", "name": "python-pyinotify", "description": "simple Linux inotify Python bindings" }, { "status": "Installed", "desired": "Install", "version": "0.5.1-0ubuntu3", "name": "python-pymt", "description": "Python multi-touch library" }, { "status": "Installed", "desired": "Install", "version": "0.0.4-4", "name": "python-pymtp", "description": "Pythonic binding to LibMTP to interact with MTP devices" }, { "status": "Installed", "desired": "Install", "version": "2.24.0-6ubuntu2", "name": "python-pyorbit", "description": "A Python language binding for the ORBit2 CORBA implementation" }, { "status": "Installed", "desired": "Install", "version": "1.5.2-2ubuntu1", "name": "python-pyparsing", "description": "Python parsing module" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside", "description": "Python bindings for Qt4 (big metapackage)" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.phonon", "description": "Qt 4 Phonon module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qtcore", "description": "Qt 4 core module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qtdeclarative", "description": "Qt 4 Declarative module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qtgui", "description": "Qt 4 GUI module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qthelp", "description": "Qt 4 help module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qtnetwork", "description": "Qt 4 network module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qtopengl", "description": "Qt 4 OpenGL module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qtscript", "description": "Qt 4 script module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qtsql", "description": "Qt 4 SQL module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qtsvg", "description": "Qt 4 SVG module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qttest", "description": "Qt 4 test module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qtuitools", "description": "Qt 4 UI tools module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qtwebkit", "description": "Qt 4 WebKit module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python-pyside.qtxml", "description": "Qt 4 XML module - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "0.2.2-1", "name": "python-pywapi", "description": "Python wrapper around different weather APIs" }, { "status": "Installed", "desired": "Install", "version": "4.9.1-2ubuntu1", "name": "python-qt4", "description": "Python bindings for Qt4" }, { "status": "Installed", "desired": "Install", "version": "4.9.1-2ubuntu1", "name": "python-qt4-dbus", "description": "DBus Support for PyQt4" }, { "status": "Installed", "desired": "Install", "version": "12.04-0ubuntu4", "name": "python-quickly-common", "description": "build new apps quickly" }, { "status": "Installed", "desired": "Install", "version": "12.04-0ubuntu4", "name": "python-quickly-core", "description": "build new apps quickly" }, { "status": "Installed", "desired": "Install", "version": "2.5-1.1build1", "name": "python-renderpm", "description": "python low level render interface" }, { "status": "Installed", "desired": "Install", "version": "6.3.1ubuntu1", "name": "python-reportbug", "description": "Python modules for interacting with bug tracking systems" }, { "status": "Installed", "desired": "Install", "version": "2.5-1.1build1", "name": "python-reportlab", "description": "ReportLab library to create PDF documents using Python" }, { "status": "Installed", "desired": "Install", "version": "2.5-1.1build1", "name": "python-reportlab-accel", "description": "C coded extension accelerator for the ReportLab Toolkit" }, { "status": "Installed", "desired": "Install", "version": "0.8.2-1", "name": "python-requests", "description": "elegant and simple HTTP library for Python, built for human beings" }, { "status": "Installed", "desired": "Install", "version": "1.13-1ubuntu1", "name": "python-scgi", "description": "Server-side implementation of the SCGI protocol" }, { "status": "Installed", "desired": "Install", "version": "0.9.0+dfsg1-1ubuntu2", "name": "python-scipy", "description": "scientific tools for Python" }, { "status": "Installed", "desired": "Install", "version": "0.26-3", "name": "python-scour", "description": "SVG scrubber and optimizer" }, { "status": "Installed", "desired": "Install", "version": "2.5-2.1build1", "name": "python-serial", "description": "pyserial - module encapsulating access for the serial port" }, { "status": "Installed", "desired": "Install", "version": "0.6.24-1ubuntu1", "name": "python-setuptools", "description": "Python Distutils Enhancements (setuptools compatibility)" }, { "status": "Installed", "desired": "Install", "version": "1.3-3", "name": "python-simplecv", "description": "SimpleCV, The opensource framework for computer vision" }, { "status": "Installed", "desired": "Install", "version": "0.7-1build1", "name": "python-simplegeneric", "description": "Simple generic functions for Python" }, { "status": "Installed", "desired": "Install", "version": "2.3.2-1", "name": "python-simplejson", "description": "simple, fast, extensible JSON encoder/decoder for Python" }, { "status": "Installed", "desired": "Install", "version": "4.13.2-1", "name": "python-sip", "description": "Python/C++ bindings generator runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.0.13-0ubuntu1", "name": "python-smbc", "description": "Python bindings for Samba clients (libsmbclient)" }, { "status": "Installed", "desired": "Install", "version": "0.12.0-4", "name": "python-soappy", "description": "SOAP Support for Python" }, { "status": "Installed", "desired": "Install", "version": "0.82.7.3", "name": "python-software-properties", "description": "manage the repositories that you install software from" }, { "status": "Installed", "desired": "Install", "version": "0.7.1-6ubuntu3", "name": "python-speechd", "description": "Python interface to Speech Dispatcher" }, { "status": "Installed", "desired": "Install", "version": "0.6.0+20100620-2build1", "name": "python-stdeb", "description": "Python to Debian source package conversion utility" }, { "status": "Installed", "desired": "Install", "version": "1.0.14ubuntu2", "name": "python-support", "description": "automated rebuilding support for Python modules" }, { "status": "Installed", "desired": "Install", "version": "11.1.0-1ubuntu2", "name": "python-twisted", "description": "Event-based framework for internet applications (dependency package)" }, { "status": "Installed", "desired": "Install", "version": "11.1.0-1ubuntu2", "name": "python-twisted-bin", "description": "Event-based framework for internet applications" }, { "status": "Installed", "desired": "Install", "version": "1:11.1.0-1", "name": "python-twisted-conch", "description": "Twisted SSH Implementation" }, { "status": "Installed", "desired": "Install", "version": "11.1.0-1ubuntu2", "name": "python-twisted-core", "description": "Event-based framework for internet applications" }, { "status": "Installed", "desired": "Install", "version": "11.1.0-1", "name": "python-twisted-lore", "description": "Documentation generator with HTML and LaTeX support" }, { "status": "Installed", "desired": "Install", "version": "11.1.0-1", "name": "python-twisted-mail", "description": "SMTP, IMAP and POP protocol implementation" }, { "status": "Installed", "desired": "Install", "version": "11.1.0-1", "name": "python-twisted-names", "description": "DNS protocol implementation with client and server" }, { "status": "Installed", "desired": "Install", "version": "11.1.0-1", "name": "python-twisted-news", "description": "NNTP protocol implementation with client and server" }, { "status": "Installed", "desired": "Install", "version": "11.1.0-1", "name": "python-twisted-runner", "description": "Process management, including an inetd server" }, { "status": "Installed", "desired": "Install", "version": "11.1.0-1", "name": "python-twisted-web", "description": "HTTP protocol implementation together with clients and servers" }, { "status": "Installed", "desired": "Install", "version": "11.1.0-1", "name": "python-twisted-words", "description": "Chat and Instant Messaging" }, { "status": "Installed", "desired": "Install", "version": "0.2-0ubuntu10", "name": "python-txaws", "description": "Twisted-based Asynchronous Libraries for Amazon Web Services" }, { "status": "Installed", "desired": "Install", "version": "0.9.7-1~ubuntu12.04.1~ppa1", "name": "python-txzookeeper", "description": "Twisted-based Asynchronous Libraries for Apache Zookeeper." }, { "status": "Installed", "desired": "Install", "version": "3.0.2-0ubuntu3", "name": "python-ubuntu-sso-client", "description": "Ubuntu Single Sign-On client - Python library" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-0ubuntu1", "name": "python-ubuntuone-client", "description": "Ubuntu One client Python libraries" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu1", "name": "python-ubuntuone-control-panel", "description": "Ubuntu One Control Panel - Python Libraries" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-0ubuntu1", "name": "python-ubuntuone-storageprotocol", "description": "Python library for Ubuntu One file storage and sharing service" }, { "status": "Installed", "desired": "Install", "version": "1.1.4-1ubuntu1", "name": "python-uniconvertor", "description": "Universal vector graphics translator" }, { "status": "Installed", "desired": "Install", "version": "1:3.5.4-0ubuntu1.1", "name": "python-uno", "description": "Python-UNO bridge" }, { "status": "Installed", "desired": "Install", "version": "0.2-8build1", "name": "python-utidylib", "description": "Python wrapper for TidyLib" }, { "status": "Installed", "desired": "Install", "version": "0.60.0-0ubuntu5", "name": "python-virtkey", "description": "Library to emulate keyboard keypresses." }, { "status": "Installed", "desired": "Install", "version": "1.7.1.2-1", "name": "python-virtualenv", "description": "Python virtual environment creator" }, { "status": "Installed", "desired": "Install", "version": "1.3.0-2", "name": "python-wadllib", "description": "Python library for navigating WADL files" }, { "status": "Installed", "desired": "Install", "version": "1.1.8-2ubuntu2", "name": "python-webkit", "description": "WebKit/Gtk Python bindings" }, { "status": "Installed", "desired": "Install", "version": "2.8.12.1-6ubuntu2", "name": "python-wxgtk2.8", "description": "wxWidgets Cross-platform C++ GUI toolkit (wxPython binding)" }, { "status": "Installed", "desired": "Install", "version": "2.8.12.1-6ubuntu2", "name": "python-wxversion", "description": "wxWidgets Cross-platform C++ GUI toolkit (wxPython version selector)" }, { "status": "Installed", "desired": "Install", "version": "1.2.8-1", "name": "python-xapian", "description": "Xapian search engine interface for Python" }, { "status": "Installed", "desired": "Install", "version": "0.19-3ubuntu2", "name": "python-xdg", "description": "Python library to access freedesktop.org standards" }, { "status": "Installed", "desired": "Install", "version": "0.4.2.3build1", "name": "python-xkit", "description": "library for the manipulation of the xorg.conf" }, { "status": "Installed", "desired": "Install", "version": "0.14+20091101-1", "name": "python-xlib", "description": "Interface for Python to the X11 Protocol" }, { "status": "Installed", "desired": "Install", "version": "3.10-2", "name": "python-yaml", "description": "YAML parser and emitter for Python" }, { "status": "Installed", "desired": "Install", "version": "0.9.0-1ubuntu1", "name": "python-zeitgeist", "description": "event logging framework - Python bindings" }, { "status": "Installed", "desired": "Install", "version": "3.3.5+dfsg1-1ubuntu1", "name": "python-zookeeper", "description": "Python bindings for zookeeper" }, { "status": "Installed", "desired": "Install", "version": "3.6.1-1ubuntu3", "name": "python-zope.interface", "description": "Interfaces for Python" }, { "status": "Installed", "desired": "Install", "version": "2.7.3-0ubuntu3.1", "name": "python2.7", "description": "Interactive high-level object-oriented language (version 2.7)" }, { "status": "Installed", "desired": "Install", "version": "2.7.3-0ubuntu3.1", "name": "python2.7-dev", "description": "Header files and a static library for Python (v2.7)" }, { "status": "Installed", "desired": "Install", "version": "2.7.3-0ubuntu3.1", "name": "python2.7-minimal", "description": "Minimal subset of the Python language (version 2.7)" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu1", "name": "python3", "description": "interactive high-level object-oriented language (default python3 version)" }, { "status": "Installed", "desired": "Install", "version": "0.8.3ubuntu7", "name": "python3-apt", "description": "Python 3 interface to libapt-pkg" }, { "status": "Installed", "desired": "Install", "version": "1.10.0+dfsg-1", "name": "python3-cairo", "description": "Python 3 bindings for the Cairo vector graphics library" }, { "status": "Installed", "desired": "Install", "version": "1.0.0-1ubuntu1", "name": "python3-dbus", "description": "simple interprocess messaging system (Python 3 interface)" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu1", "name": "python3-dev", "description": "header files and a static library for Python (default)" }, { "status": "Installed", "desired": "Install", "version": "2.34-0ubuntu0.1", "name": "python3-distutils-extra", "description": "enhancements to the Python3 build system" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-1~precise", "name": "python3-gi", "description": "Python 3 bindings for gobject-introspection libraries" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-1~precise", "name": "python3-gi-cairo", "description": "Python 3 Cairo bindings for the GObject library" }, { "status": "Installed", "desired": "Install", "version": "2.6-1", "name": "python3-jinja2", "description": "small but fast and easy to use stand-alone template engine" }, { "status": "Installed", "desired": "Install", "version": "2.3.2-1", "name": "python3-lxml", "description": "pythonic binding for the libxml2 and libxslt libraries" }, { "status": "Installed", "desired": "Install", "version": "0.15-1", "name": "python3-markupsafe", "description": "XML/HTML/XHTML Markup safe string for Python3" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu1", "name": "python3-minimal", "description": "minimal subset of the Python language (default python3 version)" }, { "status": "Installed", "desired": "Install", "version": "0.6.24-1ubuntu1", "name": "python3-pkg-resources", "description": "Package Discovery and Resource Access using pkg_resources" }, { "status": "Installed", "desired": "Install", "version": "4.9.1-2ubuntu1", "name": "python3-pyqt4", "description": "Python3 bindings for Qt4" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside", "description": "Python3 bindings for Qt4 (big metapackage)" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.phonon", "description": "Qt 4 Phonon module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qtcore", "description": "Qt 4 core module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qtdeclarative", "description": "Qt 4 Declarative module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qtgui", "description": "Qt 4 GUI module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qthelp", "description": "Qt 4 help module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qtnetwork", "description": "Qt 4 network module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qtopengl", "description": "Qt 4 OpenGL module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qtscript", "description": "Qt 4 script module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qtsql", "description": "Qt 4 SQL module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qtsvg", "description": "Qt 4 SVG module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qttest", "description": "Qt 4 test module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qtuitools", "description": "Qt 4 UI tools module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qtwebkit", "description": "Qt 4 WebKit module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "python3-pyside.qtxml", "description": "Qt 4 XML module - Python3 bindings" }, { "status": "Installed", "desired": "Install", "version": "0.6.24-1ubuntu1", "name": "python3-setuptools", "description": "Python3 Distutils Enhancements (setuptools compatibility)" }, { "status": "Installed", "desired": "Install", "version": "4.13.2-1", "name": "python3-sip", "description": "Python 3/C++ bindings generator runtime library" }, { "status": "Installed", "desired": "Install", "version": "1.0.1-2", "name": "python3-urwid", "description": "curses-based UI/widget library for Python 3" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu3.2", "name": "python3.2", "description": "Interactive high-level object-oriented language (version 3.2)" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu3.2", "name": "python3.2-dev", "description": "Header files and a static library for Python (v3.2)" }, { "status": "Installed", "desired": "Install", "version": "3.2.3-0ubuntu3.2", "name": "python3.2-minimal", "description": "Minimal subset of the Python language (version 3.2)" }, { "status": "Installed", "desired": "Install", "version": "0.22.2-1", "name": "qbzr", "description": "Graphical interface for Bazaar using the Qt toolkit" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "qdbus", "description": "Qt 4 D-Bus tool" }, { "status": "Installed", "desired": "Install", "version": "1.0+noroms-0ubuntu14.7", "name": "qemu-common", "description": "qemu common functionality (bios, documentation, etc)" }, { "status": "Installed", "desired": "Install", "version": "1.0+noroms-0ubuntu14.7", "name": "qemu-kvm", "description": "Full virtualization on i386 and amd64 hardware" }, { "status": "Installed", "desired": "Install", "version": "1.0+noroms-0ubuntu14.7", "name": "qemu-utils", "description": "qemu utilities" }, { "status": "Installed", "desired": "Install", "version": "0~20080822-0precise4", "name": "qgears2", "description": "Simple Qt graphics benchmark" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120904-1ubuntu12", "name": "qlalr", "description": "Qt parser generator" }, { "status": "Installed", "desired": "Install", "version": "0.2.0+git20120411-0ubuntu1", "name": "qt-at-spi", "description": "accessibility plugin for Qt" }, { "status": "Installed", "desired": "Install", "version": "0.2~git20120611-1-0fn", "name": "qt-components-desktop", "description": "Qt Quick components desktop runtime libraries" }, { "status": "Installed", "desired": "Install", "version": "0.2~git20120611-1-0fn", "name": "qt-components-desktop-dev", "description": "Qt Quick components development files" }, { "status": "Installed", "desired": "Install", "version": "0.2~git20120611-1-0fn", "name": "qt-components-desktop-examples", "description": "Qt Quick components examples" }, { "status": "Installed", "desired": "Install", "version": "0.1.25-0ubuntu2", "name": "qt-components-ubuntu", "description": "Qt Components for Ubuntu" }, { "status": "Installed", "desired": "Install", "version": "0.1.25-0ubuntu2", "name": "qt-components-ubuntu-demos", "description": "Qt Components for Ubuntu - demos" }, { "status": "Installed", "desired": "Install", "version": "0.1.25-0ubuntu2", "name": "qt-components-ubuntu-doc", "description": "Qt Components for Ubuntu - documentation" }, { "status": "Installed", "desired": "Install", "version": "0.1.25-0ubuntu2", "name": "qt-components-ubuntu-examples", "description": "Qt Components for Ubuntu - examples" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120901-1ubuntu5", "name": "qt3d", "description": "Qt Quick module for scripting 3D applications in QML" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "qt4-demos", "description": "Qt 4 examples and demos" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "qt4-designer", "description": "graphical designer for Qt 4 applications" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "qt4-dev-tools", "description": "Qt 4 development tools" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "qt4-doc", "description": "Qt 4 API documentation" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "qt4-linguist-tools", "description": "Qt 4 Linguist tools" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "qt4-qmake", "description": "Qt 4 qmake Makefile generator tool" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "qt4-qmlviewer", "description": "Qt 4 QML viewer" }, { "status": "Installed", "desired": "Install", "version": "4:4.8.1-0ubuntu4.3", "name": "qt4-qtconfig", "description": "Qt 4 configuration tool" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120908-1ubuntu2", "name": "qt5-meta-full", "description": "The full stack of Qt5 Beta1 release" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu56", "name": "qtbase", "description": "Qt Base modules." }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu7", "name": "qtconnectivity", "description": "Qt 5 connectivity module" }, { "status": "Installed", "desired": "Install", "version": "2.4.1-0ubuntu2", "name": "qtcreator", "description": "lightweight integrated development environment (IDE) for Qt" }, { "status": "Installed", "desired": "Install", "version": "2.4.1-0ubuntu2", "name": "qtcreator-doc", "description": "documentation for Qt Creator IDE" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu28", "name": "qtdeclarative", "description": "Qt5 Declarative module" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu8", "name": "qtdoc", "description": "QtDoc module" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120904-1ubuntu7", "name": "qtdocgallery", "description": "Qt5 Documentation gallery" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120904-1ubuntu9", "name": "qtfeedback", "description": "The Qt Feedback module" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu9", "name": "qtgraphicaleffects", "description": "Qt 5 graphicaleffects module" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120901-1ubuntu7", "name": "qtimageformats", "description": "Qt 5 Image format plugins" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu17", "name": "qtjsbackend", "description": "Qt V8 Javascript backend used by Qt Declarative." }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu7", "name": "qtlocation", "description": "Qt 5 Location module" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu11", "name": "qtmultimedia", "description": "Qt 5 Image format plugins" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120904-1ubuntu9", "name": "qtphonon", "description": "Qt5 Phonon module" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120904-1ubuntu9", "name": "qtpim", "description": "Qt PIM module" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu7", "name": "qtquick1", "description": "Qt Quick 1 compatibility library" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu9", "name": "qtscript", "description": "The QtScript module" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~git+20130115-1ubuntu3", "name": "qtsensors", "description": "Qt5 Sensor module" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu7", "name": "qtsvg", "description": "Qt 5 SVG module" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu9", "name": "qtsystems", "description": "Qt 5 Systems module" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu7", "name": "qttools", "description": "Qt5 tools module" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120901-1ubuntu35", "name": "qtwayland", "description": "Qt support for the Wayland windowing system" }, { "status": "Installed", "desired": "Install", "version": "2:5.0-1ubuntu31", "name": "qtwebkit", "description": "WebKit open source browser engine." }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120904-1ubuntu2", "name": "qtwebkit-examples-and-demos", "description": "Examples and demos for Qt5 Webkit" }, { "status": "Installed", "desired": "Install", "version": "5.0-release~beta+20120831-1ubuntu7", "name": "qtxmlpatterns", "description": "The QtXmlPatterns module" }, { "status": "Installed", "desired": "Install", "version": "12.04-0ubuntu4", "name": "quickly", "description": "build new apps quickly" }, { "status": "Installed", "desired": "Install", "version": "12.04-0ubuntu4", "name": "quickly-ubuntu-template", "description": "quickly ubuntu application template" }, { "status": "Installed", "desired": "Install", "version": "0.50-2", "name": "quilt", "description": "Tool to work with series of patches" }, { "status": "Installed", "desired": "Install", "version": "1.6.2-1.1", "name": "radeontool", "description": "utility to control ATI Radeon backlight functions on laptops" }, { "status": "Installed", "desired": "Install", "version": "0.8.1-5", "name": "rarian-compat", "description": "Documentation meta-data library (compatibility tools)" }, { "status": "Installed", "desired": "Install", "version": "2.0.0-3.1", "name": "read-edid", "description": "hardware information-gathering tool for VESA PnP monitors" }, { "status": "Installed", "desired": "Install", "version": "6.2-8", "name": "readline-common", "description": "GNU readline and history libraries, common files" }, { "status": "Installed", "desired": "Install", "version": "0.3.8.1+svn602-1ubuntu3", "name": "recordmydesktop", "description": "Captures audio-video data of a Linux desktop session" }, { "status": "Installed", "desired": "Install", "version": "1.0.0-1ubuntu6.1", "name": "remmina", "description": "remote desktop client for GNOME desktop environment" }, { "status": "Installed", "desired": "Install", "version": "1.0.0-1ubuntu6.1", "name": "remmina-common", "description": "common files for remmina remote desktop client" }, { "status": "Installed", "desired": "Install", "version": "1.0.0-1ubuntu6.1", "name": "remmina-plugin-rdp", "description": "RDP plugin for remmina remote desktop client" }, { "status": "Installed", "desired": "Install", "version": "1.0.0-1ubuntu6.1", "name": "remmina-plugin-vnc", "description": "VNC plugin for remmina remote desktop client" }, { "status": "Installed", "desired": "Install", "version": "6.3.1ubuntu1", "name": "reportbug", "description": "reports bugs in the Debian distribution" }, { "status": "Installed", "desired": "Install", "version": "1.63ubuntu16", "name": "resolvconf", "description": "name server information handler" }, { "status": "Installed", "desired": "Install", "version": "0.4-1ubuntu2", "name": "rfkill", "description": "tool for enabling and disabling wireless devices" }, { "status": "Installed", "desired": "Install", "version": "2.96-0ubuntu4.2", "name": "rhythmbox", "description": "music player and organizer for GNOME" }, { "status": "Installed", "desired": "Install", "version": "2.96-0ubuntu4.2", "name": "rhythmbox-data", "description": "data files for rhythmbox" }, { "status": "Installed", "desired": "Install", "version": "2.96-0ubuntu4.2", "name": "rhythmbox-mozilla", "description": "Rhythmbox Mozilla plugin" }, { "status": "Installed", "desired": "Install", "version": "2.96-0ubuntu4.2", "name": "rhythmbox-plugin-cdrecorder", "description": "burning plugin for rhythmbox music player" }, { "status": "Installed", "desired": "Install", "version": "2.96-0ubuntu4.2", "name": "rhythmbox-plugin-magnatune", "description": "Magnatune plugin for rhythmbox music player" }, { "status": "Installed", "desired": "Install", "version": "2.96-0ubuntu4.2", "name": "rhythmbox-plugin-zeitgeist", "description": "zeitgeist plugin for rhythmbox music player" }, { "status": "Installed", "desired": "Install", "version": "2.96-0ubuntu4.2", "name": "rhythmbox-plugins", "description": "plugins for rhythmbox music player" }, { "status": "Installed", "desired": "Install", "version": "3.0.0-0ubuntu1", "name": "rhythmbox-ubuntuone", "description": "Ubuntu One Rhythmbox plugin" }, { "status": "Installed", "desired": "Install", "version": "3.0.9-1ubuntu1", "name": "rsync", "description": "fast, versatile, remote (and local) file-copying tool" }, { "status": "Installed", "desired": "Install", "version": "5.8.6-1ubuntu8", "name": "rsyslog", "description": "reliable system and kernel logging daemon" }, { "status": "Installed", "desired": "Install", "version": "0.10-2", "name": "rtkit", "description": "Realtime Policy and Watchdog Daemon" }, { "status": "Installed", "desired": "Install", "version": "2:3.6.3-2ubuntu2.3", "name": "samba-common", "description": "common files used by both the Samba server and client" }, { "status": "Installed", "desired": "Install", "version": "2:3.6.3-2ubuntu2.3", "name": "samba-common-bin", "description": "common files used by both the Samba server and client" }, { "status": "Installed", "desired": "Install", "version": "1.0.22-7ubuntu1", "name": "sane-utils", "description": "API library for scanners -- utilities" }, { "status": "Installed", "desired": "Install", "version": "3.102-3", "name": "scantv", "description": "television channel-scanner" }, { "status": "Installed", "desired": "Install", "version": "4.0.3-14ubuntu8", "name": "screen", "description": "terminal multiplexor with VT100/ANSI terminal emulation" }, { "status": "Installed", "desired": "Install", "version": "0.14ubuntu2", "name": "screen-resolution-extra", "description": "Extension for the GNOME screen resolution applet" }, { "status": "Installed", "desired": "Install", "version": "0.6.2-0ubuntu2.1", "name": "seabios", "description": "legacy BIOS implementation which can be used as a coreboot payload" }, { "status": "Installed", "desired": "Install", "version": "3.2.2-0ubuntu2.1", "name": "seahorse", "description": "GNOME front end for GnuPG" }, { "status": "Installed", "desired": "Install", "version": "4.2.1-9", "name": "sed", "description": "The GNU sed stream editor" }, { "status": "Installed", "desired": "Install", "version": "0.0.6ubuntu2", "name": "sensible-utils", "description": "Utilities for sensible alternative selection" }, { "status": "Installed", "desired": "Install", "version": "0.20+bzr128-0ubuntu1.2", "name": "sessioninstaller", "description": "APT based installer using PackageKit's session DBus API" }, { "status": "Installed", "desired": "Install", "version": "1.33-1", "name": "sg3-utils", "description": "utilities for devices using the SCSI command set" }, { "status": "Installed", "desired": "Install", "version": "1.26+nmu1ubuntu1", "name": "sgml-base", "description": "SGML infrastructure and SGML catalog file support" }, { "status": "Installed", "desired": "Install", "version": "2.0.6", "name": "sgml-data", "description": "common SGML and XML data" }, { "status": "Installed", "desired": "Install", "version": "1.0-0ubuntu4.1", "name": "shared-mime-info", "description": "FreeDesktop.org shared MIME database and spec" }, { "status": "Installed", "desired": "Install", "version": "0.12.3-0ubuntu0.1", "name": "shotwell", "description": "digital photo organizer" }, { "status": "Installed", "desired": "Install", "version": "0.88.1-1", "name": "shutter", "description": "feature-rich screenshot program" }, { "status": "Installed", "desired": "Install", "version": "2.70-1build1", "name": "siege", "description": "HTTP regression testing and benchmarking utility" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1.1", "name": "simple-scan", "description": "Simple Scanning Utility" }, { "status": "Installed", "desired": "Install", "version": "5.41+svn3365-1", "name": "smartmontools", "description": "control and monitor storage systems using S.M.A.R.T." }, { "status": "Installed", "desired": "Install", "version": "2:3.6.3-2ubuntu2.3", "name": "smbclient", "description": "command-line SMB/CIFS clients for Unix" }, { "status": "Installed", "desired": "Install", "version": "0.2.5-0ubuntu3", "name": "sni-qt", "description": "indicator support for Qt" }, { "status": "Installed", "desired": "Install", "version": "5.2.7", "name": "software-center", "description": "Utility for browsing, installing, and removing software" }, { "status": "Installed", "desired": "Install", "version": "0.1.2", "name": "software-center-aptdaemon-plugins", "description": "The aptdaemon plugins for software-center" }, { "status": "Installed", "desired": "Install", "version": "0.82.7.3", "name": "software-properties-common", "description": "manage the repositories that you install software from (common)" }, { "status": "Installed", "desired": "Install", "version": "0.82.7.3", "name": "software-properties-gtk", "description": "manage the repositories that you install software from (gtk)" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-1ubuntu1", "name": "sound-juicer", "description": "GNOME CD Ripper" }, { "status": "Installed", "desired": "Install", "version": "0.7.pristine-2", "name": "sound-theme-freedesktop", "description": "freedesktop.org sound theme" }, { "status": "Installed", "desired": "Install", "version": "14.3.2-3", "name": "sox", "description": "Swiss army knife of sound processing" }, { "status": "Installed", "desired": "Install", "version": "0.7.1-6ubuntu3", "name": "speech-dispatcher", "description": "Common interface to speech synthesizers" }, { "status": "Installed", "desired": "Install", "version": "1:5.9p1-5ubuntu1", "name": "ssh-askpass-gnome", "description": "interactive X program to prompt users for a passphrase for ssh-add" }, { "status": "Installed", "desired": "Install", "version": "1.0.28ubuntu0.1", "name": "ssl-cert", "description": "simple debconf wrapper for OpenSSL" }, { "status": "Installed", "desired": "Install", "version": "0.1precise4~rev6", "name": "startuptime", "description": "Measure application startup time" }, { "status": "Installed", "desired": "Install", "version": "4.5.20-2.3ubuntu1", "name": "strace", "description": "A system call tracer" }, { "status": "Installed", "desired": "Install", "version": "1.64.6-1", "name": "streamripper", "description": "download online streams into audio files" }, { "status": "Installed", "desired": "Install", "version": "1.0.1-1build1", "name": "stress", "description": "A tool to impose load on and stress test a computer system" }, { "status": "Installed", "desired": "Install", "version": "1.0.3-2ubuntu2", "name": "stressapptest", "description": "stress test application for simulating high load situations" }, { "status": "Installed", "desired": "Install", "version": "1.8.3p1-1ubuntu3.3", "name": "sudo", "description": "Provide limited super user privileges to specific users" }, { "status": "Installed", "desired": "Install", "version": "0.75.9ubuntu1", "name": "synaptic", "description": "Graphical package manager" }, { "status": "Installed", "desired": "Install", "version": "2:4.05+dfsg-2", "name": "syslinux", "description": "collection of boot loaders" }, { "status": "Installed", "desired": "Install", "version": "2:4.05+dfsg-2", "name": "syslinux-common", "description": "collection of boot loaders (common files)" }, { "status": "Installed", "desired": "Install", "version": "2:3.63+dfsg-2ubuntu5", "name": "syslinux-legacy", "description": "Bootloader for Linux/i386 using MS-DOS floppies" }, { "status": "Installed", "desired": "Install", "version": "10.0.3-1", "name": "sysstat", "description": "system performance tools for Linux" }, { "status": "Installed", "desired": "Install", "version": "1.3.8+20120201-0ubuntu8.1", "name": "system-config-printer-common", "description": "Printer configuration GUI" }, { "status": "Installed", "desired": "Install", "version": "1.3.8+20120201-0ubuntu8.1", "name": "system-config-printer-gnome", "description": "Printer configuration GUI" }, { "status": "Installed", "desired": "Install", "version": "1.3.8+20120201-0ubuntu8.1", "name": "system-config-printer-udev", "description": "Printer auto-configuration facility based on udev" }, { "status": "Installed", "desired": "Install", "version": "2.10.2-1ubuntu1", "name": "system-tools-backends", "description": "System Tools to manage computer configuration -- scripts" }, { "status": "Installed", "desired": "Install", "version": "2.88dsf-13.10ubuntu11.1", "name": "sysv-rc", "description": "System-V-like runlevel change mechanism" }, { "status": "Installed", "desired": "Install", "version": "2.88dsf-13.10ubuntu11.1", "name": "sysvinit-utils", "description": "System-V-like utilities" }, { "status": "Installed", "desired": "Install", "version": "0.8.90-5", "name": "tango-icon-theme", "description": "Tango icon theme" }, { "status": "Installed", "desired": "Install", "version": "1.26-4ubuntu1", "name": "tar", "description": "GNU version of the tar archiving utility" }, { "status": "Installed", "desired": "Install", "version": "8.5.0-2", "name": "tcl", "description": "The Tool Command Language (default version) - run-time files" }, { "status": "Installed", "desired": "Install", "version": "8.5.11-1ubuntu1", "name": "tcl8.5", "description": "Tcl (the Tool Command Language) v8.5 - run-time files" }, { "status": "Installed", "desired": "Install", "version": "7.6.q-21", "name": "tcpd", "description": "Wietse Venema's TCP wrapper utilities" }, { "status": "Installed", "desired": "Install", "version": "4.2.1-1ubuntu2", "name": "tcpdump", "description": "command-line network traffic analyzer" }, { "status": "Installed", "desired": "Install", "version": "0.16.0-0ubuntu2", "name": "telepathy-gabble", "description": "Jabber/XMPP connection manager" }, { "status": "Installed", "desired": "Install", "version": "0.6.0-0ubuntu1", "name": "telepathy-haze", "description": "Telepathy connection manager that uses libpurple" }, { "status": "Installed", "desired": "Install", "version": "0.1.11-2", "name": "telepathy-idle", "description": "IRC connection manager for Telepathy" }, { "status": "Installed", "desired": "Install", "version": "0.2.1-0ubuntu1", "name": "telepathy-indicator", "description": "Desktop service to integrate Telepathy with the messaging menu." }, { "status": "Installed", "desired": "Install", "version": "0.4.0-0ubuntu1", "name": "telepathy-logger", "description": "Telepathy logger service - Daemon" }, { "status": "Installed", "desired": "Install", "version": "1:5.12.0-0ubuntu2.1", "name": "telepathy-mission-control-5", "description": "management daemon for Telepathy real-time communication framework" }, { "status": "Installed", "desired": "Install", "version": "0.8.0-0ubuntu1", "name": "telepathy-salut", "description": "Link-local XMPP connection manager for the Telepathy framework" }, { "status": "Installed", "desired": "Install", "version": "0.17-36build1", "name": "telnet", "description": "The telnet client" }, { "status": "Installed", "desired": "Install", "version": "17.0.2+build1-0ubuntu0.12.04.1", "name": "thunderbird", "description": "Email, RSS and newsgroup client with integrated spam filter" }, { "status": "Installed", "desired": "Install", "version": "17.0.2+build1-0ubuntu0.12.04.1", "name": "thunderbird-globalmenu", "description": "Unity appmenu integration for Thunderbird" }, { "status": "Installed", "desired": "Install", "version": "17.0.2+build1-0ubuntu0.12.04.1", "name": "thunderbird-gnome-support", "description": "Email, RSS and newsgroup client - GNOME support" }, { "status": "Installed", "desired": "Install", "version": "1:17.0.2+build1-0ubuntu0.12.04.1", "name": "thunderbird-locale-en", "description": "English language pack for Thunderbird" }, { "status": "Installed", "desired": "Install", "version": "1:17.0.2+build1-0ubuntu0.12.04.1", "name": "thunderbird-locale-en-us", "description": "Transitional English language pack for Thunderbird" }, { "status": "Installed", "desired": "Install", "version": "1.7-23.1", "name": "time", "description": "The GNU time program for measuring cpu resource usage" }, { "status": "Installed", "desired": "Install", "version": "8.5.0-2", "name": "tk", "description": "The Tk toolkit for Tcl and X11 (default version) - run-time files" }, { "status": "Installed", "desired": "Install", "version": "8.5.11-1", "name": "tk8.5", "description": "Tk toolkit for Tcl and X11, v8.5 - run-time files" }, { "status": "Installed", "desired": "Install", "version": "1.6-1ubuntu1", "name": "tmux", "description": "terminal multiplexer" }, { "status": "Installed", "desired": "Install", "version": "1.76-2", "name": "toshset", "description": "Access much of the Toshiba laptop hardware interface" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu21.1", "name": "totem", "description": "Simple media player for the GNOME desktop based on GStreamer" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu21.1", "name": "totem-common", "description": "Data files for the Totem media player" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu21.1", "name": "totem-mozilla", "description": "Totem Mozilla plugin" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu21.1", "name": "totem-plugins", "description": "Plugins for the Totem media player" }, { "status": "Installed", "desired": "Install", "version": "2.51-0ubuntu1.1", "name": "transmission-common", "description": "lightweight BitTorrent client (common files)" }, { "status": "Installed", "desired": "Install", "version": "2.51-0ubuntu1.1", "name": "transmission-gtk", "description": "lightweight BitTorrent client (GTK interface)" }, { "status": "Installed", "desired": "Install", "version": "1.5.3-2", "name": "tree", "description": "displays directory tree, in color" }, { "status": "Installed", "desired": "Install", "version": "1.0-10", "name": "tsconf", "description": "touch screen library common files" }, { "status": "Installed", "desired": "Install", "version": "2.33-2ubuntu1", "name": "ttf-dejavu-core", "description": "Vera font family derivate with additional characters" }, { "status": "Installed", "desired": "Install", "version": "2.33-2ubuntu1", "name": "ttf-dejavu-extra", "description": "Vera font family derivate with additional characters" }, { "status": "Installed", "desired": "Install", "version": "20100919-1", "name": "ttf-freefont", "description": "Freefont Serif, Sans and Mono Truetype fonts" }, { "status": "Installed", "desired": "Install", "version": "1:0.5.11ubuntu1", "name": "ttf-indic-fonts-core", "description": "Core collection of free fonts for languages of India" }, { "status": "Installed", "desired": "Install", "version": "1:0.5.11ubuntu1", "name": "ttf-punjabi-fonts", "description": "Free TrueType fonts for the Punjabi language" }, { "status": "Installed", "desired": "Install", "version": "0.80-0ubuntu2", "name": "ttf-ubuntu-font-family", "description": "Ubuntu Font Family, sans-serif typeface hinted for clarity" }, { "status": "Installed", "desired": "Install", "version": "0.2.0-beta-1ubuntu1", "name": "ttf-wqy-microhei", "description": "A droid derived Sans-Seri style CJK font" }, { "status": "Installed", "desired": "Install", "version": "2012e-0ubuntu0.12.04.1", "name": "tzdata", "description": "time zone and daylight-saving time data" }, { "status": "Installed", "desired": "Install", "version": "2012e-0ubuntu0.12.04.1", "name": "tzdata-java", "description": "time zone and daylight-saving time data for use by java runtimes" }, { "status": "Installed", "desired": "Install", "version": "57", "name": "ubuntu-artwork", "description": "Ubuntu themes and artwork" }, { "status": "Installed", "desired": "Install", "version": "0.141", "name": "ubuntu-dev-tools", "description": "useful tools for Ubuntu developers" }, { "status": "Installed", "desired": "Install", "version": "12.04.6", "name": "ubuntu-docs", "description": "Ubuntu Desktop Guide" }, { "status": "Installed", "desired": "Install", "version": "2010.09.27", "name": "ubuntu-extras-keyring", "description": "GnuPG keys of the Ubuntu extras archive" }, { "status": "Installed", "desired": "Install", "version": "2011.11.21.1", "name": "ubuntu-keyring", "description": "GnuPG keys of the Ubuntu archive" }, { "status": "Installed", "desired": "Install", "version": "1.267", "name": "ubuntu-minimal", "description": "Minimal core of Ubuntu" }, { "status": "Installed", "desired": "Install", "version": "0.0.40", "name": "ubuntu-mono", "description": "Ubuntu Mono Icon theme" }, { "status": "Installed", "desired": "Install", "version": "0.13", "name": "ubuntu-sounds", "description": "Ubuntu's GNOME audio theme" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-0ubuntu3", "name": "ubuntu-sso-client", "description": "Ubuntu Single Sign-On client" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-0ubuntu3", "name": "ubuntu-sso-client-gtk", "description": "Ubuntu Single Sign-On client - GTK+ frontend" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-0ubuntu3", "name": "ubuntu-sso-client-qt", "description": "Ubuntu Single Sign-On client - Qt frontend" }, { "status": "Installed", "desired": "Install", "version": "1.267", "name": "ubuntu-standard", "description": "The Ubuntu standard system" }, { "status": "Installed", "desired": "Install", "version": "0.2.2", "name": "ubuntu-system-service", "description": "Dbus service to set various system-wide configurations" }, { "status": "Installed", "desired": "Install", "version": "0.8.4-0~bzr1949+20130122~precise1", "name": "ubuntu-tweak", "description": "Ubuntu Tweak" }, { "status": "Installed", "desired": "Install", "version": "0.34.1", "name": "ubuntu-wallpapers", "description": "Ubuntu Wallpapers" }, { "status": "Installed", "desired": "Install", "version": "0.34.1", "name": "ubuntu-wallpapers-precise", "description": "Ubuntu 12.04 Wallpapers" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-0ubuntu1", "name": "ubuntuone-client", "description": "Ubuntu One client" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu1", "name": "ubuntuone-client-gnome", "description": "Ubuntu One client GNOME integration" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu1", "name": "ubuntuone-control-panel", "description": "Ubuntu One Control Panel" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu1", "name": "ubuntuone-control-panel-common", "description": "Ubuntu One Control Panel - Common frontend files" }, { "status": "Installed", "desired": "Install", "version": "3.0.1-0ubuntu1", "name": "ubuntuone-control-panel-qt", "description": "Ubuntu One Control Panel - Qt frontend" }, { "status": "Installed", "desired": "Install", "version": "0.3.0-0ubuntu4", "name": "ubuntuone-couch", "description": "Ubuntu One CouchDB" }, { "status": "Installed", "desired": "Install", "version": "3.0.2-0ubuntu1.1", "name": "ubuntuone-installer", "description": "Ubuntu One Installer" }, { "status": "Installed", "desired": "Install", "version": "3.0025+nmu2ubuntu1", "name": "ucf", "description": "Update Configuration File: preserve user changes to config files." }, { "status": "Installed", "desired": "Install", "version": "175-0ubuntu9.2", "name": "udev", "description": "rule-based device node and kernel event manager" }, { "status": "Installed", "desired": "Install", "version": "1.0.4-5ubuntu2.1", "name": "udisks", "description": "storage media interface" }, { "status": "Installed", "desired": "Install", "version": "0.31.1-1", "name": "ufw", "description": "program for managing a Netfilter firewall" }, { "status": "Installed", "desired": "Install", "version": "0.76ubuntu1", "name": "unattended-upgrades", "description": "automatic installation of security upgrades" }, { "status": "Installed", "desired": "Install", "version": "5.18.0-0ubuntu1", "name": "unity", "description": "Interface designed for efficiency of space and interaction." }, { "status": "Installed", "desired": "Install", "version": "5.12.0-0ubuntu1.2", "name": "unity-2d", "description": "Unity interface for non-accelerated graphics cards" }, { "status": "Installed", "desired": "Install", "version": "5.12.0-0ubuntu1.2", "name": "unity-2d-common", "description": "Common files for Unity 2D Shell" }, { "status": "Installed", "desired": "Install", "version": "5.12.0-0ubuntu1.2", "name": "unity-2d-panel", "description": "Unity 2D Panel" }, { "status": "Installed", "desired": "Install", "version": "5.12.0-0ubuntu1.2", "name": "unity-2d-shell", "description": "Dash and Launcher for the Unity 2D environment" }, { "status": "Installed", "desired": "Install", "version": "5.12.0-0ubuntu1.2", "name": "unity-2d-spread", "description": "Unity 2D Spread" }, { "status": "Installed", "desired": "Install", "version": "0.8.23-0ubuntu1", "name": "unity-asset-pool", "description": "Unity Assets Pool" }, { "status": "Installed", "desired": "Install", "version": "5.18.0-0ubuntu1", "name": "unity-common", "description": "Common files for the Unity interface." }, { "status": "Installed", "desired": "Install", "version": "0.2.8-0ubuntu1.4", "name": "unity-greeter", "description": "Unity Greeter" }, { "status": "Installed", "desired": "Install", "version": "5.18.0-0ubuntu1", "name": "unity-lens-applications", "description": "Application lens for unity" }, { "status": "Installed", "desired": "Install", "version": "5.10.0-0ubuntu1", "name": "unity-lens-files", "description": "File lens for unity" }, { "status": "Installed", "desired": "Install", "version": "5.12.0-0ubuntu2", "name": "unity-lens-music", "description": "Music lens for unity" }, { "status": "Installed", "desired": "Install", "version": "0.3.5-0ubuntu1.3", "name": "unity-lens-video", "description": "Unity Video lens" }, { "status": "Installed", "desired": "Install", "version": "5.12.0-0ubuntu2", "name": "unity-scope-musicstores", "description": "Store music lens for unity" }, { "status": "Installed", "desired": "Install", "version": "0.3.5-0ubuntu2.1", "name": "unity-scope-video-remote", "description": "Remote videos engine" }, { "status": "Installed", "desired": "Install", "version": "5.18.0-0ubuntu1", "name": "unity-services", "description": "Services for the Unity interface" }, { "status": "Installed", "desired": "Install", "version": "3.5.4-0ubuntu1.1", "name": "uno-libs3", "description": "LibreOffice UNO runtime environment -- public shared libraries" }, { "status": "Installed", "desired": "Install", "version": "6.0-4ubuntu1", "name": "unzip", "description": "De-archiver for .zip files" }, { "status": "Installed", "desired": "Install", "version": "4.41", "name": "update-inetd", "description": "inetd configuration file updater" }, { "status": "Installed", "desired": "Install", "version": "1:0.156.14.11", "name": "update-manager", "description": "GNOME application that manages apt updates" }, { "status": "Installed", "desired": "Install", "version": "1:0.156.14.11", "name": "update-manager-core", "description": "manage release upgrades" }, { "status": "Installed", "desired": "Install", "version": "0.119ubuntu8.6", "name": "update-notifier", "description": "Daemon which notifies about package updates" }, { "status": "Installed", "desired": "Install", "version": "0.119ubuntu8.6", "name": "update-notifier-common", "description": "Files shared between update-notifier and other packages" }, { "status": "Installed", "desired": "Install", "version": "0.9.15-3git1", "name": "upower", "description": "abstraction for power management" }, { "status": "Installed", "desired": "Install", "version": "1.5-0ubuntu7", "name": "upstart", "description": "event-based init daemon" }, { "status": "Installed", "desired": "Install", "version": "3.5.4-0ubuntu1.1", "name": "ure", "description": "LibreOffice UNO runtime environment" }, { "status": "Installed", "desired": "Install", "version": "0.100.0-12", "name": "ureadahead", "description": "Read required files in advance" }, { "status": "Installed", "desired": "Install", "version": "0.2.38", "name": "usb-creator-common", "description": "create a startup disk using a CD or disc image (common files)" }, { "status": "Installed", "desired": "Install", "version": "0.2.38", "name": "usb-creator-gtk", "description": "create a startup disk using a CD or disc image (for GNOME)" }, { "status": "Installed", "desired": "Install", "version": "1.2.3+repack0-1ubuntu2", "name": "usb-modeswitch", "description": "mode switching tool for controlling \"flip flop\" USB devices" }, { "status": "Installed", "desired": "Install", "version": "20120120-0ubuntu1", "name": "usb-modeswitch-data", "description": "mode switching data for usb-modeswitch" }, { "status": "Installed", "desired": "Install", "version": "1.0.7-2", "name": "usbmuxd", "description": "USB multiplexor daemon for iPhone and iPod Touch devices" }, { "status": "Installed", "desired": "Install", "version": "1:005-1", "name": "usbutils", "description": "Linux USB utilities" }, { "status": "Installed", "desired": "Install", "version": "2.20.1-1ubuntu3", "name": "util-linux", "description": "Miscellaneous system utilities" }, { "status": "Installed", "desired": "Install", "version": "2.20.1-1ubuntu3", "name": "uuid-runtime", "description": "runtime components for the Universally Unique ID library" }, { "status": "Installed", "desired": "Install", "version": "3.102-3", "name": "v4l-conf", "description": "tool to configure video4linux drivers" }, { "status": "Installed", "desired": "Install", "version": "0.8.6-1ubuntu2", "name": "v4l-utils", "description": "Collection of command line video4linux utilities" }, { "status": "Installed", "desired": "Install", "version": "1.1-2ubuntu1", "name": "vbetool", "description": "run real-mode video BIOS code to alter hardware state" }, { "status": "Installed", "desired": "Install", "version": "0.6c-2ubuntu3", "name": "vgabios", "description": "VGA BIOS software for the Bochs and Qemu emulated VGA card" }, { "status": "Installed", "desired": "Install", "version": "2:7.3.429-2ubuntu2.1", "name": "vim", "description": "Vi IMproved - enhanced vi editor" }, { "status": "Installed", "desired": "Install", "version": "2:7.3.429-2ubuntu2.1", "name": "vim-common", "description": "Vi IMproved - Common files" }, { "status": "Installed", "desired": "Install", "version": "2:7.3.429-2ubuntu2.1", "name": "vim-runtime", "description": "Vi IMproved - Runtime files" }, { "status": "Installed", "desired": "Install", "version": "2:7.3.429-2ubuntu2.1", "name": "vim-tiny", "description": "Vi IMproved - enhanced vi editor - compact version" }, { "status": "Installed", "desired": "Install", "version": "3.4.2-0ubuntu1.2", "name": "vino", "description": "VNC server for GNOME" }, { "status": "Installed", "desired": "Install", "version": "0.4.2-1", "name": "virt-viewer", "description": "Displaying the graphical console of a virtual machine" }, { "status": "Installed", "desired": "Install", "version": "4.1.12-dfsg-2ubuntu0.2", "name": "virtualbox", "description": "x86 virtualization solution - base binaries" }, { "status": "Installed", "desired": "Install", "version": "4.1.12-dfsg-2ubuntu0.2", "name": "virtualbox-dkms", "description": "x86 virtualization solution - kernel module sources for dkms" }, { "status": "Installed", "desired": "Install", "version": "4.1.12-dfsg-2ubuntu0.2", "name": "virtualbox-qt", "description": "x86 virtualization solution - Qt based user interface" }, { "status": "Installed", "desired": "Install", "version": "2.0.5-0ubuntu0.12.04.1", "name": "vlc", "description": "multimedia player and streamer" }, { "status": "Installed", "desired": "Install", "version": "2.0.5-0ubuntu0.12.04.1", "name": "vlc-data", "description": "Common data for VLC" }, { "status": "Installed", "desired": "Install", "version": "2.0.5-0ubuntu0.12.04.1", "name": "vlc-nox", "description": "multimedia player and streamer (without X support)" }, { "status": "Installed", "desired": "Install", "version": "2.0.5-0ubuntu0.12.04.1", "name": "vlc-plugin-notify", "description": "LibNotify plugin for VLC" }, { "status": "Installed", "desired": "Install", "version": "2.0.5-0ubuntu0.12.04.1", "name": "vlc-plugin-pulse", "description": "PulseAudio plugin for VLC" }, { "status": "Installed", "desired": "Install", "version": "7.1-1", "name": "wamerican", "description": "American English dictionary words for /usr/share/dict" }, { "status": "Installed", "desired": "Install", "version": "7.1-1", "name": "wbritish", "description": "British English dictionary words for /usr/share/dict" }, { "status": "Installed", "desired": "Install", "version": "0.6.5-1", "name": "wdiff", "description": "Compares two files word by word" }, { "status": "Installed", "desired": "Install", "version": "1.13.4-2ubuntu1", "name": "wget", "description": "retrieves files from the web" }, { "status": "Installed", "desired": "Install", "version": "0.52.11-2ubuntu10", "name": "whiptail", "description": "Displays user-friendly dialog boxes from shell scripts" }, { "status": "Installed", "desired": "Install", "version": "5.0.15ubuntu2", "name": "whois", "description": "intelligent WHOIS client" }, { "status": "Installed", "desired": "Install", "version": "0.1.32", "name": "whoopsie", "description": "Ubuntu crash database submission daemon" }, { "status": "Installed", "desired": "Install", "version": "0.8-1", "name": "wiggle", "description": "a program for applying patches with conflicting changes" }, { "status": "Installed", "desired": "Install", "version": "1.4.8-1", "name": "winpdb", "description": "Platform independent Python debugger" }, { "status": "Installed", "desired": "Install", "version": "2011.04.28-1ubuntu3", "name": "wireless-regdb", "description": "wireless regulatory database" }, { "status": "Installed", "desired": "Install", "version": "30~pre9-5ubuntu2", "name": "wireless-tools", "description": "Tools for manipulating Linux Wireless Extensions" }, { "status": "Installed", "desired": "Install", "version": "1.07-6", "name": "wmctrl", "description": "control an EWMH/NetWM compatible X Window Manager" }, { "status": "Installed", "desired": "Install", "version": "9:1.1.11-2ubuntu2", "name": "wodim", "description": "command line CD/DVD writing tool" }, { "status": "Installed", "desired": "Install", "version": "0.7.3-6ubuntu2.1", "name": "wpasupplicant", "description": "client support for WPA and WPA2 (IEEE 802.11i)" }, { "status": "Installed", "desired": "Install", "version": "7.7~2ubuntu1~ppa1~precise1", "name": "x11-apps", "description": "X applications" }, { "status": "Installed", "desired": "Install", "version": "1:7.6+12ubuntu2", "name": "x11-common", "description": "X Window System (X.Org) infrastructure" }, { "status": "Installed", "desired": "Install", "version": "7.6+2", "name": "x11-session-utils", "description": "X session utilities" }, { "status": "Installed", "desired": "Install", "version": "7.6+4ubuntu0.1", "name": "x11-utils", "description": "X11 utilities" }, { "status": "Installed", "desired": "Install", "version": "7.6+1", "name": "x11-xfs-utils", "description": "X font server utilities" }, { "status": "Installed", "desired": "Install", "version": "7.6+4", "name": "x11-xkb-utils", "description": "X11 XKB utilities" }, { "status": "Installed", "desired": "Install", "version": "7.6+3", "name": "x11-xserver-utils", "description": "X server utilities" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.2-2", "name": "x11proto-composite-dev", "description": "X11 Composite extension wire protocol" }, { "status": "Installed", "desired": "Install", "version": "7.0.22-1", "name": "x11proto-core-dev", "description": "X11 core wire protocol and auxiliary headers" }, { "status": "Installed", "desired": "Install", "version": "1:1.2.1-2", "name": "x11proto-damage-dev", "description": "X11 Damage extension wire protocol" }, { "status": "Installed", "desired": "Install", "version": "2.8-1~precise1", "name": "x11proto-dri2-dev", "description": "X11 DRI2 extension wire protocol" }, { "status": "Installed", "desired": "Install", "version": "1:5.0-2ubuntu1", "name": "x11proto-fixes-dev", "description": "X11 Fixes extension wire protocol" }, { "status": "Installed", "desired": "Install", "version": "1.4.16-1~precise1", "name": "x11proto-gl-dev", "description": "X11 OpenGL extension wire protocol" }, { "status": "Installed", "desired": "Install", "version": "2.1.99.6-1", "name": "x11proto-input-dev", "description": "X11 Input extension wire protocol" }, { "status": "Installed", "desired": "Install", "version": "1.0.5-2", "name": "x11proto-kb-dev", "description": "X11 XKB extension wire protocol" }, { "status": "Installed", "desired": "Install", "version": "1.4.0+git20120101.is.really.1.4.0-0ubuntu1~p", "name": "x11proto-randr-dev", "description": "X11 RandR extension wire protocol" }, { "status": "Installed", "desired": "Install", "version": "2:0.11.1-2", "name": "x11proto-render-dev", "description": "X11 Render extension wire protocol" }, { "status": "Installed", "desired": "Install", "version": "7.2.0-3", "name": "x11proto-xext-dev", "description": "X11 various extension wire protocol" }, { "status": "Installed", "desired": "Install", "version": "2.3.1-2", "name": "x11proto-xf86vidmode-dev", "description": "X11 Video Mode extension wire protocol" }, { "status": "Installed", "desired": "Install", "version": "1.2.1-2", "name": "x11proto-xinerama-dev", "description": "X11 Xinerama extension wire protocol" }, { "status": "Installed", "desired": "Install", "version": "1:1.0.6-1", "name": "xauth", "description": "X authentication utility" }, { "status": "Installed", "desired": "Install", "version": "1.5+E-18.1ubuntu1", "name": "xaw3dg", "description": "Xaw3d widget set" }, { "status": "Installed", "desired": "Install", "version": "1.5+E-18.1ubuntu1", "name": "xaw3dg:i386", "description": "Xaw3d widget set" }, { "status": "Installed", "desired": "Install", "version": "3.102-3", "name": "xawtv", "description": "television viewer - X11 application" }, { "status": "Installed", "desired": "Install", "version": "3.102-3", "name": "xawtv-plugins", "description": "television viewer - plugins" }, { "status": "Installed", "desired": "Install", "version": "1.1.1-1", "name": "xbitmaps", "description": "Base X bitmaps" }, { "status": "Installed", "desired": "Install", "version": "1.0.3-1", "name": "xcursor-themes", "description": "Base X cursor themes" }, { "status": "Installed", "desired": "Install", "version": "1.1.3-9build1", "name": "xdelta", "description": "A diff utility which works with binary files" }, { "status": "Installed", "desired": "Install", "version": "0.14-0ubuntu2", "name": "xdg-user-dirs", "description": "tool to manage well known user directories" }, { "status": "Installed", "desired": "Install", "version": "0.9-0ubuntu1", "name": "xdg-user-dirs-gtk", "description": "tool to manage well known user directories (Gtk extension)" }, { "status": "Installed", "desired": "Install", "version": "1.1.0~rc1-2ubuntu6", "name": "xdg-utils", "description": "desktop integration utilities from freedesktop.org" }, { "status": "Installed", "desired": "Install", "version": "2.5.2ubuntu0.1", "name": "xdiagnose", "description": "X.org diagnosis tool" }, { "status": "Installed", "desired": "Install", "version": "0.4-2", "name": "xdot", "description": "interactive viewer for Graphviz dot files" }, { "status": "Installed", "desired": "Install", "version": "1:1.0.3", "name": "xfonts-base", "description": "standard fonts for X" }, { "status": "Installed", "desired": "Install", "version": "1:1.0.4-1ubuntu1", "name": "xfonts-encodings", "description": "Encodings for X.Org fonts" }, { "status": "Installed", "desired": "Install", "version": "4ubuntu1", "name": "xfonts-mathml", "description": "Type1 Symbol font for MathML" }, { "status": "Installed", "desired": "Install", "version": "1:1.0.3-1", "name": "xfonts-scalable", "description": "scalable fonts for X" }, { "status": "Installed", "desired": "Install", "version": "1:7.6+1", "name": "xfonts-utils", "description": "X Window System font utility programs" }, { "status": "Installed", "desired": "Install", "version": "1.3.1-1", "name": "xinit", "description": "X server initialisation tool" }, { "status": "Installed", "desired": "Install", "version": "1.5.99.1-0ubuntu2", "name": "xinput", "description": "Runtime configuration and test of XInput devices" }, { "status": "Installed", "desired": "Install", "version": "2.5-1ubuntu1.3", "name": "xkb-data", "description": "X Keyboard Extension (XKB) configuration data" }, { "status": "Installed", "desired": "Install", "version": "0.13", "name": "xml-core", "description": "XML infrastructure and XML catalog file support" }, { "status": "Installed", "desired": "Install", "version": "1:7.6+12ubuntu2", "name": "xorg", "description": "X.Org X Window System" }, { "status": "Installed", "desired": "Install", "version": "1:1.6-1ubuntu2", "name": "xorg-docs-core", "description": "Core documentation for the X.org X Window System" }, { "status": "Installed", "desired": "Install", "version": "1:1.10-1", "name": "xorg-sgml-doctools", "description": "Common tools for building X.Org SGML documentation" }, { "status": "Installed", "desired": "Install", "version": "2:1.11.4-0ubuntu10.8", "name": "xserver-common", "description": "common files used by various X servers" }, { "status": "Installed", "desired": "Install", "version": "1:7.6+12ubuntu2", "name": "xserver-xorg", "description": "X.Org X server" }, { "status": "Installed", "desired": "Install", "version": "2:1.11.4-0ubuntu10.8", "name": "xserver-xorg-core", "description": "Xorg X server - core server" }, { "status": "Installed", "desired": "Install", "version": "1:7.6+12ubuntu2", "name": "xserver-xorg-input-all", "description": "X.Org X server -- input driver metapackage" }, { "status": "Installed", "desired": "Install", "version": "1:2.7.0-0ubuntu1.2", "name": "xserver-xorg-input-evdev", "description": "X.Org X server -- evdev input driver" }, { "status": "Installed", "desired": "Install", "version": "1:1.7.1-1build3", "name": "xserver-xorg-input-mouse", "description": "X.Org X server -- mouse input driver" }, { "status": "Installed", "desired": "Install", "version": "1.6.2-1ubuntu1~precise2", "name": "xserver-xorg-input-synaptics", "description": "Synaptics TouchPad driver for X.Org server" }, { "status": "Installed", "desired": "Install", "version": "1:12.9.0-0ubuntu0.1", "name": "xserver-xorg-input-vmmouse", "description": "X.Org X server -- VMMouse input driver to use with VMWare" }, { "status": "Installed", "desired": "Install", "version": "1:0.14.0-0ubuntu2.1", "name": "xserver-xorg-input-wacom", "description": "X.Org X server -- Wacom input driver" }, { "status": "Installed", "desired": "Install", "version": "1:7.6+12ubuntu2", "name": "xserver-xorg-video-all", "description": "X.Org X server -- output driver metapackage" }, { "status": "Installed", "desired": "Install", "version": "1:6.14.99~git20111219.aacbd629-0ubuntu2", "name": "xserver-xorg-video-ati", "description": "X.Org X server -- AMD/ATI display driver wrapper" }, { "status": "Installed", "desired": "Install", "version": "1:1.3.2-4build1", "name": "xserver-xorg-video-cirrus", "description": "X.Org X server -- Cirrus display driver" }, { "status": "Installed", "desired": "Install", "version": "1:0.4.2-4ubuntu2", "name": "xserver-xorg-video-fbdev", "description": "X.Org X server -- fbdev display driver" }, { "status": "Installed", "desired": "Install", "version": "2:2.17.0-1ubuntu4.2", "name": "xserver-xorg-video-intel", "description": "X.Org X server -- Intel i8xx, i9xx display driver" }, { "status": "Installed", "desired": "Install", "version": "6.9.0-1build2", "name": "xserver-xorg-video-mach64", "description": "X.Org X server -- ATI Mach64 display driver" }, { "status": "Installed", "desired": "Install", "version": "1:1.4.13.dfsg-4build2", "name": "xserver-xorg-video-mga", "description": "X.Org X server -- MGA display driver" }, { "status": "Installed", "desired": "Install", "version": "1:1.2.5-2build2", "name": "xserver-xorg-video-neomagic", "description": "X.Org X server -- Neomagic display driver" }, { "status": "Installed", "desired": "Install", "version": "1:0.0.16+git20111201+b5534a1-1build2", "name": "xserver-xorg-video-nouveau", "description": "X.Org X server -- Nouveau display driver" }, { "status": "Installed", "desired": "Install", "version": "1:0.2.904+svn1050-1", "name": "xserver-xorg-video-openchrome", "description": "X.Org X server -- VIA display driver" }, { "status": "Installed", "desired": "Install", "version": "0.0.16-2", "name": "xserver-xorg-video-qxl", "description": "X.Org X server -- QXL display driver" }, { "status": "Installed", "desired": "Install", "version": "6.8.1-5build2", "name": "xserver-xorg-video-r128", "description": "X.Org X server -- ATI r128 display driver" }, { "status": "Installed", "desired": "Install", "version": "1:6.14.99~git20111219.aacbd629-0ubuntu2", "name": "xserver-xorg-video-radeon", "description": "X.Org X server -- AMD/ATI Radeon display driver" }, { "status": "Installed", "desired": "Install", "version": "1:0.6.3-4build2", "name": "xserver-xorg-video-s3", "description": "X.Org X server -- legacy S3 display driver" }, { "status": "Installed", "desired": "Install", "version": "1:2.3.3-1ubuntu1", "name": "xserver-xorg-video-savage", "description": "X.Org X server -- Savage display driver" }, { "status": "Installed", "desired": "Install", "version": "1:1.7.5-1build2", "name": "xserver-xorg-video-siliconmotion", "description": "X.Org X server -- SiliconMotion display driver" }, { "status": "Installed", "desired": "Install", "version": "1:0.10.3-3build2", "name": "xserver-xorg-video-sis", "description": "X.Org X server -- SiS display driver" }, { "status": "Installed", "desired": "Install", "version": "1:0.9.4-2build2", "name": "xserver-xorg-video-sisusb", "description": "X.Org X server -- SiS USB display driver" }, { "status": "Installed", "desired": "Install", "version": "1:1.4.3-4build2", "name": "xserver-xorg-video-tdfx", "description": "X.Org X server -- tdfx display driver" }, { "status": "Installed", "desired": "Install", "version": "1:1.3.4-2build2", "name": "xserver-xorg-video-trident", "description": "X.Org X server -- Trident display driver" }, { "status": "Installed", "desired": "Install", "version": "1:2.3.0-7build2", "name": "xserver-xorg-video-vesa", "description": "X.Org X server -- VESA display driver" }, { "status": "Installed", "desired": "Install", "version": "1:12.0.1-1ubuntu1.1", "name": "xserver-xorg-video-vmware", "description": "X.Org X server -- VMware display driver" }, { "status": "Installed", "desired": "Install", "version": "271-1ubuntu2.1", "name": "xterm", "description": "X terminal emulator" }, { "status": "Installed", "desired": "Install", "version": "1.2.6-2", "name": "xtrans-dev", "description": "X transport library (development files)" }, { "status": "Installed", "desired": "Install", "version": "2.6-0ubuntu0.12.04.1", "name": "xul-ext-ubufox", "description": "Ubuntu-specific configuration defaults and apt support for Firefox" }, { "status": "Installed", "desired": "Install", "version": "2:1.11.4-0ubuntu10.8", "name": "xvfb", "description": "Virtual Framebuffer 'fake' X server" }, { "status": "Installed", "desired": "Install", "version": "3.0-1", "name": "xvkbd", "description": "software virtual keyboard for X11" }, { "status": "Installed", "desired": "Install", "version": "5.1.1alpha+20110809-3", "name": "xz-lzma", "description": "XZ-format compression utilities - compatibility commands" }, { "status": "Installed", "desired": "Install", "version": "5.1.1alpha+20110809-3", "name": "xz-utils", "description": "XZ-format compression utilities" }, { "status": "Installed", "desired": "Install", "version": "1.1.0-1", "name": "yasm", "description": "modular assembler with multiple syntaxes support" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-0ubuntu1", "name": "yelp", "description": "Help browser for GNOME" }, { "status": "Installed", "desired": "Install", "version": "3.4.1-1", "name": "yelp-xsl", "description": "XSL stylesheets for the yelp help browser" }, { "status": "Installed", "desired": "Install", "version": "0.9.0-1ubuntu1", "name": "zeitgeist", "description": "event logging framework" }, { "status": "Installed", "desired": "Install", "version": "0.9.0-1ubuntu1", "name": "zeitgeist-core", "description": "event logging framework - engine" }, { "status": "Installed", "desired": "Install", "version": "0.8.2-1ubuntu2", "name": "zeitgeist-datahub", "description": "event logging framework - passive logging daemon" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu4", "name": "zenity", "description": "Display graphical dialog boxes from shell scripts" }, { "status": "Installed", "desired": "Install", "version": "3.4.0-0ubuntu4", "name": "zenity-common", "description": "Display graphical dialog boxes from shell scripts (common files)" }, { "status": "Installed", "desired": "Install", "version": "3.0-4", "name": "zip", "description": "Archiver for .zip files" }, { "status": "Installed", "desired": "Install", "version": "1:1.2.3.4.dfsg-3ubuntu4", "name": "zlib1g", "description": "compression library - runtime" }, { "status": "Installed", "desired": "Install", "version": "1:1.2.3.4.dfsg-3ubuntu4", "name": "zlib1g:i386", "description": "compression library - runtime" }, { "status": "Installed", "desired": "Install", "version": "1:1.2.3.4.dfsg-3ubuntu4", "name": "zlib1g-dev", "description": "compression library - development" } ], "2013.com.canonical.certification::uname": [ { "node": "sylvain-Studio-XPS-1340", "release": "3.2.0-36-generic", "machine": "x86_64", "version": "#57-Ubuntu SMP Tue Jan 8 21:44:52 UTC 2013", "name": "Linux" } ], "2013.com.canonical.certification::device": [ { "category": "OTHER", "path": "/devices/LNXSYSTM:00/LNXPWRBN:00/input/input3", "product": "Power Button", "driver": "button", "bus": "input" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00", "driver": "pci_root", "product_id": "2568", "bus": "pnp" }, { "vendor": "ITE", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/ITE8708:00", "driver": "pci_root", "product_id": "34568", "bus": "pnp" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/PNP0103:00", "driver": "pci_root", "product_id": "259", "bus": "pnp" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/PNP0200:00", "driver": "pci_root", "product_id": "512", "bus": "pnp" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/PNP0800:00", "driver": "pci_root", "product_id": "2048", "bus": "pnp" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/PNP0B00:00", "driver": "pci_root", "product_id": "2816", "bus": "pnp" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/PNP0C04:00", "driver": "pci_root", "product_id": "3076", "bus": "pnp" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/PNP0C0F:00", "driver": "pci_link", "product_id": "3087", "bus": "pnp" }, { "category": "OTHER", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:0b/LNXVIDEO:00/input/input11", "product": "Video Bus", "driver": "video", "bus": "input" }, { "category": "OTHER", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:12/LNXVIDEO:01/input/input13", "product": "Video Bus", "driver": "video", "bus": "input" }, { "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:2a/PNP0303:00", "vendor": "PNP", "product_id": "771", "bus": "pnp" }, { "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:2a/PNP0C02:00", "vendor": "PNP", "product_id": "3074", "bus": "pnp" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:2a/PNP0C09:00", "driver": "ec", "product_id": "3081", "bus": "pnp" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:2a/PNP0C09:00/PNP0C0A:00", "driver": "battery", "product_id": "3082", "bus": "pnp" }, { "category": "OTHER", "product": "Dell", "vendor": "PANASONIC", "bus": "power_supply", "driver": "battery", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:2a/PNP0C09:00/PNP0C0A:00/power_supply/BAT0" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:2a/PNP0C0E:00", "driver": "button", "product_id": "3086", "bus": "pnp" }, { "category": "OTHER", "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:2a/PNP0C0E:00/input/input1", "product": "Sleep Button", "driver": "button", "bus": "input" }, { "path": "/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:2a/PNP0F13:00", "vendor": "PNP", "product_id": "3859", "bus": "pnp" }, { "path": "/devices/LNXSYSTM:00/device:00/PNP0C01:00", "vendor": "PNP", "product_id": "3073", "bus": "pnp" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0C0C:00", "driver": "button", "product_id": "3084", "bus": "pnp" }, { "category": "OTHER", "path": "/devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input0", "product": "Power Button", "driver": "button", "bus": "input" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0C0D:00", "driver": "button", "product_id": "3085", "bus": "pnp" }, { "category": "OTHER", "path": "/devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input2", "product": "Lid Switch", "driver": "button", "bus": "input" }, { "vendor": "PNP", "path": "/devices/LNXSYSTM:00/device:00/PNP0C14:00", "driver": "wmi", "product_id": "3092", "bus": "pnp" }, { "subproduct_id": "0", "product_id": "2690", "bus": "pci", "vendor_id": "4318", "path": "/devices/pci0000:00/0000:00:00.0", "subvendor_id": "0" }, { "subproduct_id": "0", "product_id": "2696", "bus": "pci", "vendor_id": "4318", "path": "/devices/pci0000:00/0000:00:00.1", "subvendor_id": "0" }, { "subproduct_id": "625", "product_id": "2734", "bus": "pci", "vendor_id": "4318", "path": "/devices/pci0000:00/0000:00:03.0", "subvendor_id": "4136" }, { "subproduct_id": "625", "product_id": "2724", "bus": "pci", "vendor_id": "4318", "path": "/devices/pci0000:00/0000:00:03.1", "subvendor_id": "4136" }, { "subproduct_id": "625", "product_id": "2722", "bus": "pci", "vendor_id": "4318", "driver": "nForce2_smbus", "path": "/devices/pci0000:00/0000:00:03.2", "subvendor_id": "4136" }, { "subproduct_id": "625", "product_id": "2697", "bus": "pci", "vendor_id": "4318", "path": "/devices/pci0000:00/0000:00:03.3", "subvendor_id": "4136" }, { "subproduct_id": "625", "product_id": "2723", "bus": "pci", "vendor_id": "4318", "driver": "nvidia", "path": "/devices/pci0000:00/0000:00:03.5", "subvendor_id": "4136" }, { "category": "USB", "subproduct_id": "625", "product_id": "2725", "bus": "pci", "vendor_id": "4318", "driver": "ohci_hcd", "path": "/devices/pci0000:00/0000:00:04.0", "subvendor_id": "4136" }, { "path": "/devices/pci0000:00/0000:00:04.0/usb3/3-0:1.0", "vendor_id": "7531", "driver": "hub", "product_id": "1", "bus": "usb" }, { "category": "USB", "subproduct_id": "625", "product_id": "2726", "bus": "pci", "vendor_id": "4318", "driver": "ehci_hcd", "path": "/devices/pci0000:00/0000:00:04.1", "subvendor_id": "4136" }, { "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-0:1.0", "vendor_id": "7531", "driver": "hub", "product_id": "2", "bus": "usb" }, { "category": "AUDIO", "product_id": "2571", "bus": "usb", "vendor_id": "1133", "driver": "snd-usb-audio", "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.3/1-2.3:1.0" }, { "category": "AUDIO", "product_id": "2571", "bus": "usb", "vendor_id": "1133", "driver": "snd-usb-audio", "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.3/1-2.3:1.1" }, { "category": "AUDIO", "product_id": "2571", "bus": "usb", "vendor_id": "1133", "driver": "snd-usb-audio", "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.3/1-2.3:1.2" }, { "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.3/1-2.3:1.3", "vendor_id": "1133", "driver": "usbhid", "product_id": "2571", "bus": "usb" }, { "category": "OTHER", "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.3/1-2.3:1.3/input/input5", "product": "Logitech Logitech USB Headset", "driver": "usbhid", "bus": "input" }, { "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.4/1-2.4.1/1-2.4.1:1.0", "vendor_id": "1133", "driver": "usbhid", "product_id": "49944", "bus": "usb" }, { "category": "KEYBOARD", "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.4/1-2.4.1/1-2.4.1:1.0/input/input6", "product": "Logitech Logitech Illuminated Keyboard", "driver": "usbhid", "bus": "input" }, { "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.4/1-2.4.1/1-2.4.1:1.1", "vendor_id": "1133", "driver": "usbhid", "product_id": "49944", "bus": "usb" }, { "category": "CAPTURE", "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.4/1-2.4.1/1-2.4.1:1.1/input/input7", "product": "Logitech Logitech Illuminated Keyboard", "driver": "usbhid", "bus": "input" }, { "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.4/1-2.4.2/1-2.4.2:1.0", "vendor_id": "1118", "driver": "usbhid", "product_id": "71", "bus": "usb" }, { "category": "MOUSE", "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.4/1-2.4.2/1-2.4.2:1.0/input/input8", "product": "Microsoft Microsoft 5-Button Mouse with IntelliEye(TM)", "driver": "usbhid", "bus": "input" }, { "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.4/1-2.4.3/1-2.4.3:1.0", "vendor_id": "4309", "driver": "usbhid", "product_id": "21922", "bus": "usb" }, { "category": "KEYBOARD", "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.4/1-2.4.3/1-2.4.3:1.0/input/input9", "product": "No brand 2Port KVMSwicther", "driver": "usbhid", "bus": "input" }, { "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.4/1-2.4.3/1-2.4.3:1.1", "vendor_id": "4309", "driver": "usb", "product_id": "21922", "bus": "usb" }, { "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2.4/1-2.4:1.0", "vendor_id": "1423", "driver": "hub", "product_id": "37460", "bus": "usb" }, { "path": "/devices/pci0000:00/0000:00:04.1/usb1/1-2/1-2:1.0", "vendor_id": "1507", "driver": "hub", "product_id": "1544", "bus": "usb" }, { "category": "USB", "subproduct_id": "625", "product_id": "2727", "bus": "pci", "vendor_id": "4318", "driver": "ohci_hcd", "path": "/devices/pci0000:00/0000:00:06.0", "subvendor_id": "4136" }, { "path": "/devices/pci0000:00/0000:00:06.0/usb4/4-0:1.0", "vendor_id": "7531", "driver": "hub", "product_id": "1", "bus": "usb" }, { "category": "USB", "subproduct_id": "625", "product_id": "2729", "bus": "pci", "vendor_id": "4318", "driver": "ehci_hcd", "path": "/devices/pci0000:00/0000:00:06.1", "subvendor_id": "4136" }, { "path": "/devices/pci0000:00/0000:00:06.1/usb2/2-0:1.0", "vendor_id": "7531", "driver": "hub", "product_id": "2", "bus": "usb" }, { "category": "AUDIO", "subproduct_id": "625", "product_id": "2752", "bus": "pci", "vendor_id": "4318", "driver": "snd_hda_intel", "path": "/devices/pci0000:00/0000:00:08.0", "subvendor_id": "4136" }, { "category": "OTHER", "path": "/devices/pci0000:00/0000:00:08.0/sound/card0/input17", "product": "HDA NVidia Mic", "bus": "input" }, { "subproduct_id": "52089", "product_id": "2731", "bus": "pci", "vendor_id": "4318", "path": "/devices/pci0000:00/0000:00:09.0", "subvendor_id": "4318" }, { "category": "FIREWIRE", "subproduct_id": "625", "product_id": "2098", "bus": "pci", "vendor_id": "4480", "driver": "firewire_ohci", "path": "/devices/pci0000:00/0000:00:09.0/0000:01:07.0", "subvendor_id": "4136" }, { "category": "CARDREADER", "subproduct_id": "625", "product_id": "2082", "bus": "pci", "vendor_id": "4480", "driver": "sdhci-pci", "path": "/devices/pci0000:00/0000:00:09.0/0000:01:07.1", "subvendor_id": "4136" }, { "subproduct_id": "625", "product_id": "1426", "bus": "pci", "vendor_id": "4480", "driver": "r592", "path": "/devices/pci0000:00/0000:00:09.0/0000:01:07.2", "subvendor_id": "4136" }, { "subproduct_id": "625", "product_id": "2130", "bus": "pci", "vendor_id": "4480", "driver": "r852", "path": "/devices/pci0000:00/0000:00:09.0/0000:01:07.3", "subvendor_id": "4136" }, { "category": "NETWORK", "subproduct_id": "625", "product_id": "2736", "bus": "pci", "vendor_id": "4318", "driver": "forcedeth", "path": "/devices/pci0000:00/0000:00:0a.0", "subvendor_id": "4136" }, { "subproduct_id": "625", "product_id": "2745", "bus": "pci", "vendor_id": "4318", "driver": "ahci", "path": "/devices/pci0000:00/0000:00:0b.0", "subvendor_id": "4136" }, { "category": "DISK", "path": "/devices/pci0000:00/0000:00:0b.0/host0/target0:0:0/0:0:0:0", "product": "ST9500420ASG", "driver": "sd", "bus": "scsi" }, { "category": "CDROM", "path": "/devices/pci0000:00/0000:00:0b.0/host1/target1:0:0/1:0:0:0", "product": "HL-DT-ST DVD+/-RW GS20N", "driver": "sr", "bus": "scsi" }, { "subproduct_id": "0", "product_id": "2756", "bus": "pci", "vendor_id": "4318", "driver": "pcieport", "path": "/devices/pci0000:00/0000:00:0c.0", "subvendor_id": "4318" }, { "category": "VIDEO", "subproduct_id": "625", "product_id": "2676", "bus": "pci", "vendor_id": "4318", "driver": "nvidia", "path": "/devices/pci0000:00/0000:00:0c.0/0000:02:00.0", "subvendor_id": "4136" }, { "subproduct_id": "0", "product_id": "2720", "bus": "pci", "vendor_id": "4318", "path": "/devices/pci0000:00/0000:00:10.0", "subvendor_id": "4318" }, { "category": "VIDEO", "subproduct_id": "625", "product_id": "2150", "bus": "pci", "vendor_id": "4318", "driver": "nvidia", "path": "/devices/pci0000:00/0000:00:10.0/0000:03:00.0", "subvendor_id": "4136" }, { "subproduct_id": "0", "product_id": "2758", "bus": "pci", "vendor_id": "4318", "driver": "pcieport", "path": "/devices/pci0000:00/0000:00:15.0", "subvendor_id": "4318" }, { "subproduct_id": "0", "product_id": "2759", "bus": "pci", "vendor_id": "4318", "driver": "pcieport", "path": "/devices/pci0000:00/0000:00:16.0", "subvendor_id": "4318" }, { "category": "WIRELESS", "subproduct_id": "512", "product_id": "42", "bus": "pci", "vendor_id": "5772", "driver": "ath9k", "path": "/devices/pci0000:00/0000:00:16.0/0000:06:00.0", "subvendor_id": "5772" }, { "category": "WIRELESS", "path": "/devices/pci0000:00/0000:00:16.0/0000:06:00.0/ieee80211/phy0", "driver": "ath9k", "bus": "ieee80211" }, { "category": "OTHER", "path": "/devices/pci0000:00/0000:00:16.0/0000:06:00.0/ieee80211/phy0/rfkill1", "product": "phy0", "bus": "rfkill" }, { "subproduct_id": "0", "product_id": "2759", "bus": "pci", "vendor_id": "4318", "driver": "pcieport", "path": "/devices/pci0000:00/0000:00:17.0", "subvendor_id": "4318" }, { "subproduct_id": "0", "product_id": "2759", "bus": "pci", "vendor_id": "4318", "driver": "pcieport", "path": "/devices/pci0000:00/0000:00:18.0", "subvendor_id": "4318" }, { "category": "OTHER", "path": "/devices/platform/dell-laptop/rfkill/rfkill0", "product": "dell-wifi", "driver": "dell-laptop", "bus": "rfkill" }, { "category": "KEYBOARD", "path": "/devices/platform/i8042/serio0/input/input4", "product": "AT Translated Set 2 keyboard", "driver": "atkbd", "bus": "input" }, { "category": "TOUCH", "path": "/devices/platform/i8042/serio1/input/input15", "product": "SynPS/2 Synaptics TouchPad", "driver": "psmouse", "bus": "input" }, { "category": "OTHER", "path": "/devices/virtual/input/input10", "product": "Dell WMI hotkeys", "bus": "input" }, { "category": "KEYBOARD", "path": "/devices/virtual/input/input14", "product": "MCE IR Keyboard/Mouse (ite-cir)", "bus": "input" }, { "category": "OTHER", "path": "/devices/virtual/rc/rc0", "product": "rc-rc6-mce", "bus": "rc" }, { "category": "CAPTURE", "path": "/devices/virtual/rc/rc0/input12", "product": "ITE8708 CIR transceiver", "bus": "input" } ], "2013.com.canonical.certification::dpkg": [ { "version": "1.16.1.2", "architecture": "amd64" } ] }, "result_map": { "2013.com.canonical.certification::cpuinfo": { "outcome": "pass", "comments": null, "plugin": "resource", "command": "cpuinfo_resource", "description": "Gets CPU resource info from /proc/cpuinfo", "io_log": "bW9kZWxfcmV2aXNpb246IDEwCmJvZ29taXBzOiA1MDY2Cm1vZGVsX3ZlcnNpb246IDIzCnNwZWVkOiAyNTM0CmNvdW50OiAyCmNhY2hlOiAzMTQ1NzI4Cm1vZGVsX251bWJlcjogNgpwbGF0Zm9ybTogeDg2XzY0Cm90aGVyOiBmcHUgdm1lIGRlIHBzZSB0c2MgbXNyIHBhZSBtY2UgY3g4IGFwaWMgc2VwIG10cnIgcGdlIG1jYSBjbW92IHBhdCBwc2UzNiBjbGZsdXNoIGR0cyBhY3BpIG1teCBmeHNyIHNzZSBzc2UyIHNzIGh0IHRtIHBiZSBzeXNjYWxsIG54IGxtIGNvbnN0YW50X3RzYyBhcmNoX3BlcmZtb24gcGVicyBidHMgcmVwX2dvb2Qgbm9wbCBhcGVyZm1wZXJmIHBuaSBkdGVzNjQgbW9uaXRvciBkc19jcGwgdm14IHNteCBlc3QgdG0yIHNzc2UzIGN4MTYgeHRwciBwZGNtIHNzZTRfMSB4c2F2ZSBsYWhmX2xtIGlkYSBkdGhlcm0gdHByX3NoYWRvdyB2bm1pIGZsZXhwcmlvcml0eQptb2RlbDogSW50ZWwoUikgQ29yZShUTSkyIER1byBDUFUgICAgIFA4NzAwICBAIDIuNTNHSHoKdHlwZTogR2VudWluZUludGVsCg==" }, "2013.com.canonical.certification::lsb": { "outcome": "pass", "comments": null, "plugin": "resource", "requires": "package.name == \"lsb-release\"", "command": "lsb_resource", "description": "Generates release info based on /etc/lsb-release", "io_log": "cmVsZWFzZTogMTIuMDQKY29kZW5hbWU6IHByZWNpc2UKZGlzdHJpYnV0b3JfaWQ6IFVidW50dQpkZXNjcmlwdGlvbjogVWJ1bnR1IDEyLjA0LjEgTFRTCg==" }, "2013.com.canonical.certification::package": { "outcome": "pass", "comments": null, "plugin": "resource", "command": "package_resource | filter_templates -w 'desired=Install' -w 'status=Installed'", "description": "Generates a list of installed packages", "io_log": "c3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMTUtMnVidW50dTkuNApuYW1lOiBhY2NvdW50c3NlcnZpY2UKZGVzY3JpcHRpb246IHF1ZXJ5IGFuZCBtYW5pcHVsYXRlIHVzZXIgYWNjb3VudCBpbmZvcm1hdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjIuNTEtNXVidW50dTEKbmFtZTogYWNsCmRlc2NyaXB0aW9uOiBBY2Nlc3MgY29udHJvbCBsaXN0IHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjYtMQpuYW1lOiBhY3BpCmRlc2NyaXB0aW9uOiBkaXNwbGF5cyBpbmZvcm1hdGlvbiBvbiBBQ1BJIGRldmljZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xNDAKbmFtZTogYWNwaS1zdXBwb3J0CmRlc2NyaXB0aW9uOiBzY3JpcHRzIGZvciBoYW5kbGluZyBtYW55IEFDUEkgZXZlbnRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Mi4wLjEwLTF1YnVudHUzCm5hbWU6IGFjcGlkCmRlc2NyaXB0aW9uOiBBZHZhbmNlZCBDb25maWd1cmF0aW9uIGFuZCBQb3dlciBJbnRlcmZhY2UgZXZlbnQgZGFlbW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIwMTAwNTEzLTN1YnVudHUxCm5hbWU6IGFjcGlkdW1wCmRlc2NyaXB0aW9uOiB1dGlsaXRpZXMgdG8gZHVtcCBzeXN0ZW0ncyBBQ1BJIHRhYmxlcyB0byBhbiBBU0NJSSBmaWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNS4xLTMKbmFtZTogYWNwaXRvb2wKZGVzY3JpcHRpb246IGNvbW1hbmQgbGluZSBBQ1BJIGNsaWVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuNC0wdWJ1bnR1My4yCm5hbWU6IGFjdGl2aXR5LWxvZy1tYW5hZ2VyLWNvbW1vbgpkZXNjcmlwdGlvbjogYmxhY2tsaXN0IGNvbmZpZ3VyYXRpb24gZm9yIFplaXRnZWlzdCAoYXNzZXRzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuNC0wdWJ1bnR1My4yCm5hbWU6IGFjdGl2aXR5LWxvZy1tYW5hZ2VyLWNvbnRyb2wtY2VudGVyCmRlc2NyaXB0aW9uOiBibGFja2xpc3QgY29uZmlndXJhdGlvbiBmb3IgWmVpdGdlaXN0IChjb250cm9sIGNlbnRlciBpbnRlZ3JhdGlvbikKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4xMTN1YnVudHUyCm5hbWU6IGFkZHVzZXIKZGVzY3JpcHRpb246IGFkZCBhbmQgcmVtb3ZlIHVzZXJzIGFuZCBncm91cHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjItMHVidW50dTEKbmFtZTogYWRpdW0tdGhlbWUtdWJ1bnR1CmRlc2NyaXB0aW9uOiBBZGl1bSBtZXNzYWdlIHN0eWxlIGZvciBVYnVudHUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjIuMy4yLTB1YnVudHUxCm5hbWU6IGFpc2xlcmlvdApkZXNjcmlwdGlvbjogU29saXRhaXJlIGNhcmQgZ2FtZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMy4yLTJ1YnVudHU0Cm5hbWU6IGFsYWNhcnRlCmRlc2NyaXB0aW9uOiBlYXN5IEdOT01FIG1lbnUgZWRpdGluZyB0b29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4yNStkZnNnLTB1YnVudHUxCm5hbWU6IGFsc2EtYmFzZQpkZXNjcmlwdGlvbjogQUxTQSBkcml2ZXIgY29uZmlndXJhdGlvbiBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMjUtMXVidW50dTUKbmFtZTogYWxzYS11dGlscwpkZXNjcmlwdGlvbjogVXRpbGl0aWVzIGZvciBjb25maWd1cmluZyBhbmQgdXNpbmcgQUxTQQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMtMTR1YnVudHUxCm5hbWU6IGFuYWNyb24KZGVzY3JpcHRpb246IGNyb24tbGlrZSBwcm9ncmFtIHRoYXQgZG9lc24ndCBnbyBieSB0aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMi4zLmRmc2cuMS0yCm5hbWU6IGFwZwpkZXNjcmlwdGlvbjogQXV0b21hdGVkIFBhc3N3b3JkIEdlbmVyYXRvciAtIFN0YW5kYWxvbmUgdmVyc2lvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEyLjA0LjQKbmFtZTogYXBwLWluc3RhbGwtZGF0YQpkZXNjcmlwdGlvbjogVWJ1bnR1IGFwcGxpY2F0aW9ucyAoZGF0YSBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTIuMTIuMDQuMQpuYW1lOiBhcHAtaW5zdGFsbC1kYXRhLXBhcnRuZXIKZGVzY3JpcHRpb246IEFwcGxpY2F0aW9uIEluc3RhbGxlciAoZGF0YSBmaWxlcyBmb3IgcGFydG5lciBhcHBsaWNhdGlvbnMvcmVwb3NpdG9yaWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjcuMTAyLTB1YnVudHUzLjcKbmFtZTogYXBwYXJtb3IKZGVzY3JpcHRpb246IFVzZXItc3BhY2UgcGFyc2VyIHV0aWxpdHkgZm9yIEFwcEFybW9yCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMy45Mi0wdWJ1bnR1MS4xCm5hbWU6IGFwcG1lbnUtZ3RrCmRlc2NyaXB0aW9uOiBFeHBvcnQgR1RLIG1lbnVzIG92ZXIgREJ1cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMuOTItMHVidW50dTEuMQpuYW1lOiBhcHBtZW51LWd0azMKZGVzY3JpcHRpb246IEV4cG9ydCBHVEsgbWVudXMgb3ZlciBEQnVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi42LTB1YnVudHUxCm5hbWU6IGFwcG1lbnUtcXQKZGVzY3JpcHRpb246IGFwcG1lbnUgc3VwcG9ydCBmb3IgUXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjEtMHVidW50dTE3LjEKbmFtZTogYXBwb3J0CmRlc2NyaXB0aW9uOiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGNyYXNoIHJlcG9ydHMgZm9yIGRlYnVnZ2luZwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuMS0wdWJ1bnR1MTcuMQpuYW1lOiBhcHBvcnQtZ3RrCmRlc2NyaXB0aW9uOiBHVEsrIGZyb250ZW5kIGZvciB0aGUgYXBwb3J0IGNyYXNoIHJlcG9ydCBzeXN0ZW0KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xNi4xCm5hbWU6IGFwcG9ydC1zeW1wdG9tcwpkZXNjcmlwdGlvbjogc3ltcHRvbSBzY3JpcHRzIGZvciBhcHBvcnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44LjE2fmV4cDEydWJ1bnR1MTAuNwpuYW1lOiBhcHQKZGVzY3JpcHRpb246IGNvbW1hbmRsaW5lIHBhY2thZ2UgbWFuYWdlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjUuMHVidW50dTEKbmFtZTogYXB0LWZpbGUKZGVzY3JpcHRpb246IHNlYXJjaCBmb3IgZmlsZXMgd2l0aGluIERlYmlhbiBwYWNrYWdlcyAoY29tbWFuZC1saW5lIGludGVyZmFjZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44LjE2fmV4cDEydWJ1bnR1MTAuNwpuYW1lOiBhcHQtdHJhbnNwb3J0LWh0dHBzCmRlc2NyaXB0aW9uOiBodHRwcyBkb3dubG9hZCB0cmFuc3BvcnQgZm9yIEFQVAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguMTZ+ZXhwMTJ1YnVudHUxMC43Cm5hbWU6IGFwdC11dGlscwpkZXNjcmlwdGlvbjogcGFja2FnZSBtYW5hZ21lbnQgcmVsYXRlZCB1dGlsaXR5IHByb2dyYW1zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNDR1YnVudHU1Cm5hbWU6IGFwdC14YXBpYW4taW5kZXgKZGVzY3JpcHRpb246IG1haW50ZW5hbmNlIGFuZCBzZWFyY2ggdG9vbHMgZm9yIGEgWGFwaWFuIGluZGV4IG9mIERlYmlhbiBwYWNrYWdlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQzK2J6cjgwNS0wdWJ1bnR1NwpuYW1lOiBhcHRkYWVtb24KZGVzY3JpcHRpb246IHRyYW5zYWN0aW9uIGJhc2VkIHBhY2thZ2UgbWFuYWdlbWVudCBzZXJ2aWNlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNDMrYnpyODA1LTB1YnVudHU3Cm5hbWU6IGFwdGRhZW1vbi1kYXRhCmRlc2NyaXB0aW9uOiBkYXRhIGZpbGVzIGZvciBjbGllbnRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNS4xdWJ1bnR1MwpuYW1lOiBhcHR1cmwKZGVzY3JpcHRpb246IGluc3RhbGwgcGFja2FnZXMgdXNpbmcgdGhlIGFwdCBwcm90b2NvbCAtIEdUSysgZnJvbnRlbmQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC41LjF1YnVudHUzCm5hbWU6IGFwdHVybC1jb21tb24KZGVzY3JpcHRpb246IGluc3RhbGwgcGFja2FnZXMgdXNpbmcgdGhlIGFwdCBwcm90b2NvbCAtIGNvbW1vbiBkYXRhCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS40LTEKbmFtZTogYXJhbmRyCmRlc2NyaXB0aW9uOiBTaW1wbGUgdmlzdWFsIGZyb250IGVuZCBmb3IgWFJhbmRSCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNjAuN34yMDExMDcwNy0xCm5hbWU6IGFzcGVsbApkZXNjcmlwdGlvbjogR05VIEFzcGVsbCBzcGVsbC1jaGVja2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDYuMC0wLTZ1YnVudHUyCm5hbWU6IGFzcGVsbC1lbgpkZXNjcmlwdGlvbjogRW5nbGlzaCBkaWN0aW9uYXJ5IGZvciBHTlUgQXNwZWxsCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMS4xMy0xdWJ1bnR1MQpuYW1lOiBhdApkZXNjcmlwdGlvbjogRGVsYXllZCBqb2IgZXhlY3V0aW9uIGFuZCBiYXRjaCBwcm9jZXNzaW5nCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4yLTB1YnVudHUwLjEKbmFtZTogYXQtc3BpMi1jb3JlCmRlc2NyaXB0aW9uOiBBc3Npc3RpdmUgVGVjaG5vbG9neSBTZXJ2aWNlIFByb3ZpZGVyIEludGVyZmFjZSAoZGJ1cyBjb3JlKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuMC0xdWJ1bnR1MC4xCm5hbWU6IGF1ZGFjaXR5CmRlc2NyaXB0aW9uOiBmYXN0LCBjcm9zcy1wbGF0Zm9ybSBhdWRpbyBlZGl0b3IKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjAtMXVidW50dTAuMQpuYW1lOiBhdWRhY2l0eS1kYXRhCmRlc2NyaXB0aW9uOiBmYXN0LCBjcm9zcy1wbGF0Zm9ybSBhdWRpbyBlZGl0b3IgKGRhdGEpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNjgtMXVidW50dTIKbmFtZTogYXV0b2NvbmYKZGVzY3JpcHRpb246IGF1dG9tYXRpYyBjb25maWd1cmUgc2NyaXB0IGJ1aWxkZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjExLjMtMXVidW50dTIKbmFtZTogYXV0b21ha2UKZGVzY3JpcHRpb246IFRvb2wgZm9yIGdlbmVyYXRpbmcgR05VIFN0YW5kYXJkcy1jb21wbGlhbnQgTWFrZWZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIwMTIwMjEwLjF1YnVudHUxCm5hbWU6IGF1dG90b29scy1kZXYKZGVzY3JpcHRpb246IFVwZGF0ZSBpbmZyYXN0cnVjdHVyZSBmb3IgY29uZmlnLntndWVzcyxzdWJ9IGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4zMC01dWJ1bnR1MgpuYW1lOiBhdmFoaS1hdXRvaXBkCmRlc2NyaXB0aW9uOiBBdmFoaSBJUHY0TEwgbmV0d29yayBhZGRyZXNzIGNvbmZpZ3VyYXRpb24gZGFlbW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4zMC01dWJ1bnR1MgpuYW1lOiBhdmFoaS1kYWVtb24KZGVzY3JpcHRpb246IEF2YWhpIG1ETlMvRE5TLVNEIGRhZW1vbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMzAtNXVidW50dTIKbmFtZTogYXZhaGktdXRpbHMKZGVzY3JpcHRpb246IEF2YWhpIGJyb3dzaW5nLCBwdWJsaXNoaW5nIGFuZCBkaXNjb3ZlcnkgdXRpbGl0aWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi4xMjQuMi0wdWJ1bnR1MQpuYW1lOiBiYW1mZGFlbW9uCmRlc2NyaXB0aW9uOiBXaW5kb3cgbWF0Y2hpbmcgbGlicmFyeSAtIGRhZW1vbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0wdWJ1bnR1MQpuYW1lOiBiYW9iYWIKZGVzY3JpcHRpb246IEdOT01FIGRpc2sgdXNhZ2UgYW5hbHl6ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNi41dWJ1bnR1Ni40Cm5hbWU6IGJhc2UtZmlsZXMKZGVzY3JpcHRpb246IERlYmlhbiBiYXNlIHN5c3RlbSBtaXNjZWxsYW5lb3VzIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNS4yNApuYW1lOiBiYXNlLXBhc3N3ZApkZXNjcmlwdGlvbjogRGViaWFuIGJhc2Ugc3lzdGVtIG1hc3RlciBwYXNzd29yZCBhbmQgZ3JvdXAgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC4yLTJ1YnVudHUyCm5hbWU6IGJhc2gKZGVzY3JpcHRpb246IEdOVSBCb3VybmUgQWdhaW4gU0hlbGwKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjMtMXVidW50dTgKbmFtZTogYmFzaC1jb21wbGV0aW9uCmRlc2NyaXB0aW9uOiBwcm9ncmFtbWFibGUgY29tcGxldGlvbiBmb3IgdGhlIGJhc2ggc2hlbGwKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wNi45NS0yCm5hbWU6IGJjCmRlc2NyaXB0aW9uOiBUaGUgR05VIGJjIGFyYml0cmFyeSBwcmVjaXNpb24gY2FsY3VsYXRvciBsYW5ndWFnZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjkuOC4xLmRmc2cuUDEtNHVidW50dTAuNQpuYW1lOiBiaW5kOS1ob3N0CmRlc2NyaXB0aW9uOiBWZXJzaW9uIG9mICdob3N0JyBidW5kbGVkIHdpdGggQklORCA5LlgKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yMi02dWJ1bnR1MQpuYW1lOiBiaW51dGlscwpkZXNjcmlwdGlvbjogR05VIGFzc2VtYmxlciwgbGlua2VyIGFuZCBiaW5hcnkgdXRpbGl0aWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMjMtMHVidW50dTIuMQpuYW1lOiBibHVlbWFuCmRlc2NyaXB0aW9uOiBBIEdyYXBoaWNhbCBibHVldG9vdGggbWFuYWdlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0Ljk4LTJ1YnVudHU3Cm5hbWU6IGJsdWV6CmRlc2NyaXB0aW9uOiBCbHVldG9vdGggdG9vbHMgYW5kIGRhZW1vbnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC45OC0ydWJ1bnR1NwpuYW1lOiBibHVlei1hbHNhCmRlc2NyaXB0aW9uOiBCbHVldG9vdGggQUxTQSBzdXBwb3J0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuOTgtMnVidW50dTcKbmFtZTogYmx1ZXotYWxzYTppMzg2CmRlc2NyaXB0aW9uOiBCbHVldG9vdGggQUxTQSBzdXBwb3J0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuOTgtMnVidW50dTcKbmFtZTogYmx1ZXotY3VwcwpkZXNjcmlwdGlvbjogQmx1ZXRvb3RoIHByaW50ZXIgZHJpdmVyIGZvciBDVVBTCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuOTgtMnVidW50dTcKbmFtZTogYmx1ZXotZ3N0cmVhbWVyCmRlc2NyaXB0aW9uOiBCbHVldG9vdGggR1N0cmVhbWVyIHN1cHBvcnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS45NgpuYW1lOiBib25uaWUrKwpkZXNjcmlwdGlvbjogSGFyZCBkcml2ZSBiZW5jaG1hcmsgc3VpdGUuCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOTAuMi04dWJ1bnR1MQpuYW1lOiBib290Y2hhcnQKZGVzY3JpcHRpb246IGJvb3Qgc2VxdWVuY2UgYXVkaXRpbmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC43Cm5hbWU6IGJyYW5kaW5nLXVidW50dQpkZXNjcmlwdGlvbjogUmVwbGFjZW1lbnQgYXJ0d29yayB3aXRoIFVidW50dSBicmFuZGluZwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0wdWJ1bnR1MS4xCm5hbWU6IGJyYXNlcm8KZGVzY3JpcHRpb246IENEL0RWRCBidXJuaW5nIGFwcGxpY2F0aW9uIGZvciBHTk9NRQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0wdWJ1bnR1MS4xCm5hbWU6IGJyYXNlcm8tY2Rya2l0CmRlc2NyaXB0aW9uOiBjZHJraXQgZXh0ZW5zaW9ucyBmb3IgdGhlIEJyYXNlcm8gYnVybmluZyBhcHBsaWNhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0wdWJ1bnR1MS4xCm5hbWU6IGJyYXNlcm8tY29tbW9uCmRlc2NyaXB0aW9uOiBDb21tb24gZmlsZXMgZm9yIHRoZSBCcmFzZXJvIENEIGJ1cm5pbmcgYXBwbGljYXRpb24gYW5kIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41LTJ1YnVudHU3Cm5hbWU6IGJyaWRnZS11dGlscwpkZXNjcmlwdGlvbjogVXRpbGl0aWVzIGZvciBjb25maWd1cmluZyB0aGUgTGludXggRXRoZXJuZXQgYnJpZGdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuMy0xdWJ1bnR1NQpuYW1lOiBicmx0dHkKZGVzY3JpcHRpb246IEFjY2VzcyBzb2Z0d2FyZSBmb3IgYSBibGluZCBwZXJzb24gdXNpbmcgYSBicmFpbGxlIGRpc3BsYXkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogOC4yLjN1YnVudHUxCm5hbWU6IGJzZG1haW51dGlscwpkZXNjcmlwdGlvbjogY29sbGVjdGlvbiBvZiBtb3JlIHV0aWxpdGllcyBmcm9tIEZyZWVCU0QKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToyLjIwLjEtMXVidW50dTMKbmFtZTogYnNkdXRpbHMKZGVzY3JpcHRpb246IEJhc2ljIHV0aWxpdGllcyBmcm9tIDQuNEJTRC1MaXRlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDExLjV1YnVudHUyLjEKbmFtZTogYnVpbGQtZXNzZW50aWFsCmRlc2NyaXB0aW9uOiBJbmZvcm1hdGlvbmFsIGxpc3Qgb2YgYnVpbGQtZXNzZW50aWFsIHBhY2thZ2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4xOC41LTF1YnVudHU0LjEKbmFtZTogYnVzeWJveC1pbml0cmFtZnMKZGVzY3JpcHRpb246IFN0YW5kYWxvbmUgc2hlbGwgc2V0dXAgZm9yIGluaXRyYW1mcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMTguNS0xdWJ1bnR1NC4xCm5hbWU6IGJ1c3lib3gtc3RhdGljCmRlc2NyaXB0aW9uOiBTdGFuZGFsb25lIHJlc2N1ZSBzaGVsbCB3aXRoIHRvbnMgb2YgYnVpbHRpbiB1dGlsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4xNy0wdWJ1bnR1MQpuYW1lOiBieW9idQpkZXNjcmlwdGlvbjogcG93ZXJmdWwsIHRleHQgYmFzZWQgd2luZG93IG1hbmFnZXIgYW5kIHNoZWxsIG11bHRpcGxleGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC42LTEKbmFtZTogYnppcDIKZGVzY3JpcHRpb246IGhpZ2gtcXVhbGl0eSBibG9jay1zb3J0aW5nIGZpbGUgY29tcHJlc3NvciAtIHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjUuMS0wdWJ1bnR1MgpuYW1lOiBienIKZGVzY3JpcHRpb246IGVhc3kgdG8gdXNlIGRpc3RyaWJ1dGVkIHZlcnNpb24gY29udHJvbCBzeXN0ZW0KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi44LjQKbmFtZTogYnpyLWJ1aWxkZGViCmRlc2NyaXB0aW9uOiBienIgcGx1Z2luIGZvciBEZWJpYW4gcGFja2FnZSBtYW5hZ2VtZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNy4yLTB1YnVudHUxCm5hbWU6IGJ6ci1idWlsZGVyCmRlc2NyaXB0aW9uOiBjb25zdHJ1Y3QgYSBienIgYnJhbmNoIGZyb20gYSByZWNpcGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjItMQpuYW1lOiBienItZXhwbG9yZXIKZGVzY3JpcHRpb246IEdVSSBhcHBsaWNhdGlvbiBmb3IgdXNpbmcgQmF6YWFyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTMuMC0xCm5hbWU6IGJ6ci1mYXN0aW1wb3J0CmRlc2NyaXB0aW9uOiBGYXN0LWltcG9ydC9mYXN0LWV4cG9ydCBwbHVnaW4gZm9yIEJhemFhcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyMDExMTIxMQpuYW1lOiBjYS1jZXJ0aWZpY2F0ZXMKZGVzY3JpcHRpb246IENvbW1vbiBDQSBjZXJ0aWZpY2F0ZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjAxMTA5MTJ1YnVudHU2Cm5hbWU6IGNhLWNlcnRpZmljYXRlcy1qYXZhCmRlc2NyaXB0aW9uOiBDb21tb24gQ0EgY2VydGlmaWNhdGVzIChKS1Mga2V5c3RvcmUpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC4xMDB1YnVudHUyCm5hbWU6IGNkYnMKZGVzY3JpcHRpb246IGNvbW1vbiBidWlsZCBzeXN0ZW0gZm9yIERlYmlhbiBwYWNrYWdlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMgpuYW1lOiBjZ3JvdXAtbGl0ZQpkZXNjcmlwdGlvbjogTGlnaHQtd2VpZ2h0IHBhY2thZ2UgdG8gc2V0IHVwIGNncm91cHMgYXQgc3lzdGVtIGJvb3QKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zK2J6cjE2Ny0zfnByZWNpc2UxCm5hbWU6IGNoYXJtLXRvb2xzCmRlc2NyaXB0aW9uOiB0b29scyBmb3IgbWFpbnRhaW5pbmcgSnVqdSBjaGFybXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xNS4xK2J6cjE4OTQrMjAxMzAxMTgxMTA1fnByZWNpc2UxCm5hbWU6IGNoZWNrYm94CmRlc2NyaXB0aW9uOiBTeXN0ZW0gdGVzdGluZyBhcHBsaWNhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE1K2J6cjU2MysyMDEzMDExNzE5MTd+cHJlY2lzZTEKbmFtZTogY2hlY2tib3gtY2VydGlmaWNhdGlvbgpkZXNjcmlwdGlvbjogQ2hlY2tib3ggQ2VydGlmaWNhdGlvbiBUZXN0cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE1K2J6cjU2MysyMDEzMDExNzE5MTd+cHJlY2lzZTEKbmFtZTogY2hlY2tib3gtY2VydGlmaWNhdGlvbi1jbGllbnQKZGVzY3JpcHRpb246IENsaWVudCBDZXJ0aWZpY2F0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTUrYnpyNTYzKzIwMTMwMTE3MTkxN35wcmVjaXNlMQpuYW1lOiBjaGVja2JveC1jZXJ0aWZpY2F0aW9uLXRvb2xzCmRlc2NyaXB0aW9uOiBDaGVja2JveCBDZXJ0aWZpY2F0aW9uIFRvb2xzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTUuMStienIxODk0KzIwMTMwMTE4MTEwNX5wcmVjaXNlMQpuYW1lOiBjaGVja2JveC1jbGkKZGVzY3JpcHRpb246IENvbW1hbmQgbGluZSBpbnRlcmZhY2UgZm9yIGNoZWNrYm94CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAtMHByZWNpc2UxfnJldjE1MApuYW1lOiBjaGVja2JveC1lZGl0b3IKZGVzY3JpcHRpb246IENoZWNrYm94IEVkaXRvcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjItMHByZWNpc2UxfnJldjE5Cm5hbWU6IGNoZWNrYm94LWVkaXRvci1vZW0tdGVtcGxhdGUKZGVzY3JpcHRpb246IENoZWNrYm94IGVkaXRvciB0ZW1wbGF0ZSBmb3IgT0VNIHByb2plY3RzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTUuMStienIxODk0KzIwMTMwMTE4MTEwNX5wcmVjaXNlMQpuYW1lOiBjaGVja2JveC1ndGsKZGVzY3JpcHRpb246IEdUSyBpbnRlcmZhY2UgZm9yIGNoZWNrYm94CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMgpuYW1lOiBjaGVja2JveC1paHYKZGVzY3JpcHRpb246IENhbm9uaWNhbCBoYXJkd2FyZSB0ZXN0aW5nIHN1aXRlLgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIKbmFtZTogY2hlY2tib3gtaWh2LWNsaQpkZXNjcmlwdGlvbjogQ2Fub25pY2FsIGhhcmR3YXJlIHRlc3Rpbmcgc3VpdGUgLSBjbGkgdmVyc2lvbi4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yCm5hbWU6IGNoZWNrYm94LWlodi1xdApkZXNjcmlwdGlvbjogQ2Fub25pY2FsIGhhcmR3YXJlIHRlc3Rpbmcgc3VpdGUgLSBxdCB2ZXJzaW9uLgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQ1LTAtcHJlY2lzZTF+cmV2NjE0Cm5hbWU6IGNoZWNrYm94LW9lbQpkZXNjcmlwdGlvbjogQ2hlY2tib3ggT0VNIFRlc3RzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC0yLXByZWNpc2UxfnJldjQKbmFtZTogY2hlY2tib3gtb2VtLWJ1ZwpkZXNjcmlwdGlvbjogQ2hlY2tib3ggT0VNIGJ1ZwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQ1LTAtcHJlY2lzZTF+cmV2NjE0Cm5hbWU6IGNoZWNrYm94LW9lbS1ndGsKZGVzY3JpcHRpb246IENoZWNrYm94IE9FTSBHVEsgSW50ZXJmYWNlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNDUtMC1wcmVjaXNlMX5yZXY2MTQKbmFtZTogY2hlY2tib3gtb2VtLXF0CmRlc2NyaXB0aW9uOiBDaGVja2JveCBPRU0gUXQgSW50ZXJmYWNlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS0xcHJlY2lzZTF+cmV2MTh1YnVudHUxCm5hbWU6IGNoZWNrYm94LW9lbS1zdGVsbGEKZGVzY3JpcHRpb246IHN0ZWxsYSBTeXN0ZW0gVGVzdGluZwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEtMXByZWNpc2UxfnJldjE4dWJ1bnR1MQpuYW1lOiBjaGVja2JveC1vZW0tc3RlbGxhLWd0awpkZXNjcmlwdGlvbjogQ2hlY2tib3ggc3RlbGxhIEdUSyBJbnRlcmZhY2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xNS4xK2J6cjE4OTQrMjAxMzAxMTgxMTA1fnByZWNpc2UxCm5hbWU6IGNoZWNrYm94LXF0CmRlc2NyaXB0aW9uOiBRVDQgaW50ZXJmYWNlIGZvciBjaGVja2JveAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0wdWJ1bnR1Mi4xCm5hbWU6IGNoZWVzZQpkZXNjcmlwdGlvbjogdG9vbCB0byB0YWtlIHBpY3R1cmVzIGFuZCB2aWRlb3MgZnJvbSB5b3VyIHdlYmNhbQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0wdWJ1bnR1Mi4xCm5hbWU6IGNoZWVzZS1jb21tb24KZGVzY3JpcHRpb246IENvbW1vbiBmaWxlcyBmb3IgdGhlIENoZWVzZSB0b29sIHRvIHRha2UgcGljdHVyZXMgYW5kIHZpZGVvcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjI1LTB1YnVudHU1Cm5hbWU6IGNsb3VkLXV0aWxzCmRlc2NyaXB0aW9uOiBjbG91ZCBpbWFnZSBtYW5hZ2VtZW50IHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwKzIwMDkwOTMwLTIKbmFtZTogY21hcC1hZG9iZS1qYXBhbjIKZGVzY3JpcHRpb246IENNYXBzIGZvciBBZG9iZS1KYXBhbjIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xLjE2LTJ1YnVudHUwLjEKbmFtZTogY29sb3JkCmRlc2NyaXB0aW9uOiBzeXN0ZW0gc2VydmljZSB0byBtYW5hZ2UgZGV2aWNlIGNvbG91ciBwcm9maWxlcyAtLSBzeXN0ZW0gZGFlbW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi40NnVidW50dTYKbmFtZTogY29tbWFuZC1ub3QtZm91bmQKZGVzY3JpcHRpb246IFN1Z2dlc3QgaW5zdGFsbGF0aW9uIG9mIHBhY2thZ2VzIGluIGludGVyYWN0aXZlIGJhc2ggc2Vzc2lvbnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjQ2dWJ1bnR1NgpuYW1lOiBjb21tYW5kLW5vdC1mb3VuZC1kYXRhCmRlc2NyaXB0aW9uOiBTZXQgb2YgZGF0YSBmaWxlcyBmb3IgY29tbWFuZC1ub3QtZm91bmQuCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC45LjcuMTItMHVidW50dTEKbmFtZTogY29tcGl6CmRlc2NyaXB0aW9uOiBPcGVuR0wgd2luZG93IGFuZCBjb21wb3NpdGluZyBtYW5hZ2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC45LjcuMTItMHVidW50dTEKbmFtZTogY29tcGl6LWNvcmUKZGVzY3JpcHRpb246IE9wZW5HTCB3aW5kb3cgYW5kIGNvbXBvc2l0aW5nIG1hbmFnZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjkuNy4xMi0wdWJ1bnR1MQpuYW1lOiBjb21waXotZ25vbWUKZGVzY3JpcHRpb246IE9wZW5HTCB3aW5kb3cgYW5kIGNvbXBvc2l0aW5nIG1hbmFnZXIgLSBHTk9NRSB3aW5kb3cgZGVjb3JhdG9yCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC45LjcuMTItMHVidW50dTEKbmFtZTogY29tcGl6LXBsdWdpbnMKZGVzY3JpcHRpb246IE9wZW5HTCB3aW5kb3cgYW5kIGNvbXBvc2l0aW5nIG1hbmFnZXIgLSBwbHVnaW5zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC45LjcuMTItMHVidW50dTEKbmFtZTogY29tcGl6LXBsdWdpbnMtZGVmYXVsdApkZXNjcmlwdGlvbjogT3BlbkdMIHdpbmRvdyBhbmQgY29tcG9zaXRpbmcgbWFuYWdlciAtIGRlZmF1bHQgcGx1Z2lucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuOS43LjB+YnpyMTktMHVidW50dTEwCm5hbWU6IGNvbXBpei1wbHVnaW5zLW1haW4KZGVzY3JpcHRpb246IENvbXBpeiBwbHVnaW5zIC0gbWFpbiBjb2xsZWN0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC45LjcuMH5ienIxOS0wdWJ1bnR1MTAKbmFtZTogY29tcGl6LXBsdWdpbnMtbWFpbi1kZWZhdWx0CmRlc2NyaXB0aW9uOiBDb21waXogcGx1Z2lucyAtIG1haW4gZGVmYXVsdCBjb2xsZWN0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS41LjkyLTB1YnVudHU1Cm5hbWU6IGNvbXBpemNvbmZpZy1iYWNrZW5kLWdjb25mCmRlc2NyaXB0aW9uOiBDb21waXogRnVzaW9uIGNvbmZpZ3VyYXRpb24gc3lzdGVtIC0gZ2NvbmYgYmFja2VuZAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuNS45Mi0wdWJ1bnR1MwpuYW1lOiBjb21waXpjb25maWctc2V0dGluZ3MtbWFuYWdlcgpkZXNjcmlwdGlvbjogQ29tcGl6IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgbWFuYWdlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjcwdWJ1bnR1NQpuYW1lOiBjb25zb2xlLXNldHVwCmRlc2NyaXB0aW9uOiBjb25zb2xlIGZvbnQgYW5kIGtleW1hcCBzZXR1cCBwcm9ncmFtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC41LTIKbmFtZTogY29uc29sZWtpdApkZXNjcmlwdGlvbjogZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgdHJhY2tpbmcgdXNlcnMsIHNlc3Npb25zIGFuZCBzZWF0cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjEzLTN1YnVudHUzLjIKbmFtZTogY29yZXV0aWxzCmRlc2NyaXB0aW9uOiBHTlUgY29yZSB1dGlsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xMS03dWJ1bnR1MwpuYW1lOiBjcGlvCmRlc2NyaXB0aW9uOiBHTlUgY3BpbyAtLSBhIHByb2dyYW0gdG8gbWFuYWdlIGFyY2hpdmVzIG9mIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6NC42LjMtMXVidW50dTUKbmFtZTogY3BwCmRlc2NyaXB0aW9uOiBHTlUgQyBwcmVwcm9jZXNzb3IgKGNwcCkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC42LjMtMXVidW50dTUKbmFtZTogY3BwLTQuNgpkZXNjcmlwdGlvbjogR05VIEMgcHJlcHJvY2Vzc29yCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNy0wdWJ1bnR1MQpuYW1lOiBjcHUtY2hlY2tlcgpkZXNjcmlwdGlvbjogdG9vbHMgdG8gaGVscCBldmFsdWF0ZSBjZXJ0YWluIENQVSAob3IgQklPUykgZmVhdHVyZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjItMXVidW50dTEKbmFtZTogY3JkYQpkZXNjcmlwdGlvbjogd2lyZWxlc3MgQ2VudHJhbCBSZWd1bGF0b3J5IERvbWFpbiBBZ2VudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjBwbDEtMTIwdWJ1bnR1NApuYW1lOiBjcm9uCmRlc2NyaXB0aW9uOiBwcm9jZXNzIHNjaGVkdWxpbmcgZGFlbW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS40LjEtMnVidW50dTQKbmFtZTogY3J5cHRzZXR1cC1iaW4KZGVzY3JpcHRpb246IGRpc2sgZW5jcnlwdGlvbiBzdXBwb3J0IC0gY29tbWFuZCBsaW5lIHRvb2xzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNS4zLTB1YnVudHU2Cm5hbWU6IGN1cHMKZGVzY3JpcHRpb246IENvbW1vbiBVTklYIFByaW50aW5nIFN5c3RlbSh0bSkgLSBzZXJ2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41LjMtMHVidW50dTYKbmFtZTogY3Vwcy1ic2QKZGVzY3JpcHRpb246IENvbW1vbiBVTklYIFByaW50aW5nIFN5c3RlbSh0bSkgLSBCU0QgY29tbWFuZHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41LjMtMHVidW50dTYKbmFtZTogY3Vwcy1jbGllbnQKZGVzY3JpcHRpb246IENvbW1vbiBVTklYIFByaW50aW5nIFN5c3RlbSh0bSkgLSBjbGllbnQgcHJvZ3JhbXMgKFN5c1YpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNS4zLTB1YnVudHU2Cm5hbWU6IGN1cHMtY29tbW9uCmRlc2NyaXB0aW9uOiBDb21tb24gVU5JWCBQcmludGluZyBTeXN0ZW0odG0pIC0gY29tbW9uIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4xOC0wdWJ1bnR1MC4xCm5hbWU6IGN1cHMtZmlsdGVycwpkZXNjcmlwdGlvbjogT3BlblByaW50aW5nIENVUFMgRmlsdGVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuMS4yLTF1YnVudHUwLjEKbmFtZTogY3Vwcy1way1oZWxwZXIKZGVzY3JpcHRpb246IFBvbGljeUtpdCBoZWxwZXIgdG8gY29uZmlndXJlIGN1cHMgd2l0aCBmaW5lLWdyYWluZWQgcHJpdmlsZWdlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjUuMy0wdWJ1bnR1NgpuYW1lOiBjdXBzLXBwZGMKZGVzY3JpcHRpb246IENvbW1vbiBVTklYIFByaW50aW5nIFN5c3RlbSh0bSkgLSBQUEQgbWFuaXB1bGF0aW9uIHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA3LjIyLjAtM3VidW50dTQKbmFtZTogY3VybApkZXNjcmlwdGlvbjogR2V0IGEgZmlsZSBmcm9tIGFuIEhUVFAsIEhUVFBTIG9yIEZUUCBzZXJ2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjEyLjEzK3JlYWwtOApuYW1lOiBjdnMKZGVzY3JpcHRpb246IENvbmN1cnJlbnQgVmVyc2lvbnMgU3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTUuMS0xdWJ1bnR1MQpuYW1lOiBjeXRob24KZGVzY3JpcHRpb246IEMtRXh0ZW5zaW9ucyBmb3IgUHl0aG9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNS43LTJ1YnVudHUyCm5hbWU6IGRhc2gKZGVzY3JpcHRpb246IFBPU0lYLWNvbXBsaWFudCBzaGVsbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjQuMTgtMXVidW50dTEuMwpuYW1lOiBkYnVzCmRlc2NyaXB0aW9uOiBzaW1wbGUgaW50ZXJwcm9jZXNzIG1lc3NhZ2luZyBzeXN0ZW0gKGRhZW1vbiBhbmQgdXRpbGl0aWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjQuMTgtMXVidW50dTEuMwpuYW1lOiBkYnVzLXgxMQpkZXNjcmlwdGlvbjogc2ltcGxlIGludGVycHJvY2VzcyBtZXNzYWdpbmcgc3lzdGVtIChYMTEgZGVwcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wNi45NS0yCm5hbWU6IGRjCmRlc2NyaXB0aW9uOiBUaGUgR05VIGRjIGFyYml0cmFyeSBwcmVjaXNpb24gcmV2ZXJzZS1wb2xpc2ggY2FsY3VsYXRvcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEyLjAtMHVidW50dTEuMQpuYW1lOiBkY29uZi1nc2V0dGluZ3MtYmFja2VuZApkZXNjcmlwdGlvbjogc2ltcGxlIGNvbmZpZ3VyYXRpb24gc3RvcmFnZSBzeXN0ZW0gLSBHU2V0dGluZ3MgYmFjay1lbmQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMi4wLTB1YnVudHUxLjEKbmFtZTogZGNvbmYtc2VydmljZQpkZXNjcmlwdGlvbjogc2ltcGxlIGNvbmZpZ3VyYXRpb24gc3RvcmFnZSBzeXN0ZW0gLSBELUJ1cyBzZXJ2aWNlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTIuMC0wdWJ1bnR1MS4xCm5hbWU6IGRjb25mLXRvb2xzCmRlc2NyaXB0aW9uOiBzaW1wbGUgY29uZmlndXJhdGlvbiBzdG9yYWdlIHN5c3RlbSAtIHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjE4dWJ1bnR1MQpuYW1lOiBkY3RybC10b29scwpkZXNjcmlwdGlvbjogQ29tbWFuZC1saW5lIHRvb2xzIHRvIHByb2Nlc3MgRGViaWFuIHBhY2thZ2UgaW5mb3JtYXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41LjQydWJ1bnR1MQpuYW1lOiBkZWJjb25mCmRlc2NyaXB0aW9uOiBEZWJpYW4gY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50IHN5c3RlbQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjUuNDJ1YnVudHUxCm5hbWU6IGRlYmNvbmYtaTE4bgpkZXNjcmlwdGlvbjogZnVsbCBpbnRlcm5hdGlvbmFsaXphdGlvbiBzdXBwb3J0IGZvciBkZWJjb25mCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDkuMjAxMjAxMTV1YnVudHUzCm5hbWU6IGRlYmhlbHBlcgpkZXNjcmlwdGlvbjogaGVscGVyIHByb2dyYW1zIGZvciBkZWJpYW4vcnVsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjAxMC4wOC4yOApuYW1lOiBkZWJpYW4tYXJjaGl2ZS1rZXlyaW5nCmRlc2NyaXB0aW9uOiBHbnVQRyBhcmNoaXZlIGtleXMgb2YgdGhlIERlYmlhbiBhcmNoaXZlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIwMTIuMDIuMjIKbmFtZTogZGViaWFuLWtleXJpbmcKZGVzY3JpcHRpb246IEdudVBHIGtleXMgb2YgRGViaWFuIERldmVsb3BlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC4yLjF1YnVudHUyCm5hbWU6IGRlYmlhbnV0aWxzCmRlc2NyaXB0aW9uOiBNaXNjZWxsYW5lb3VzIHV0aWxpdGllcyBzcGVjaWZpYyB0byBEZWJpYW4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjM5dWJ1bnR1MC4yCm5hbWU6IGRlYm9vdHN0cmFwCmRlc2NyaXB0aW9uOiBCb290c3RyYXAgYSBiYXNpYyBEZWJpYW4gc3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIyLjAtMHVidW50dTIKbmFtZTogZGVqYS1kdXAKZGVzY3JpcHRpb246IEJhY2sgdXAgeW91ciBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIwLTB1YnVudHUzCm5hbWU6IGRlc2t0b3AtZmlsZS11dGlscwpkZXNjcmlwdGlvbjogVXRpbGl0aWVzIGZvciAuZGVza3RvcCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0wdWJ1bnR1MQpuYW1lOiBkZXZoZWxwCmRlc2NyaXB0aW9uOiBHTk9NRSBkZXZlbG9wZXJzIGhlbHAgcHJvZ3JhbQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0wdWJ1bnR1MQpuYW1lOiBkZXZoZWxwLWNvbW1vbgpkZXNjcmlwdGlvbjogQ29tbW9uIGZpbGVzIGZvciBkZXZoZWxwIGFuZCBpdHMgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjExLjZ1YnVudHUxLjQKbmFtZTogZGV2c2NyaXB0cwpkZXNjcmlwdGlvbjogc2NyaXB0cyB0byBtYWtlIHRoZSBsaWZlIG9mIGEgRGViaWFuIFBhY2thZ2UgbWFpbnRhaW5lciBlYXNpZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi43LjEwMi0wdWJ1bnR1My43Cm5hbWU6IGRoLWFwcGFybW9yCmRlc2NyaXB0aW9uOiBBcHBBcm1vciBkZWJoZWxwZXIgcm91dGluZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC41OXVidW50dTEKbmFtZTogZGgtbWFrZQpkZXNjcmlwdGlvbjogdG9vbCB0aGF0IGNvbnZlcnRzIHNvdXJjZSBhcmNoaXZlcyBpbnRvIERlYmlhbiBwYWNrYWdlIHNvdXJjZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxMTYKbmFtZTogZGgtdHJhbnNsYXRpb25zCmRlc2NyaXB0aW9uOiBkZWJoZWxwZXIgZXh0ZW5zaW9uIGZvciB0cmFuc2xhdGlvbiBzdXBwb3J0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOTcuMi01Cm5hbWU6IGRpYS1jb21tb24KZGVzY3JpcHRpb246IERpYWdyYW0gZWRpdG9yIChjb21tb24gZmlsZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOTcuMi01Cm5hbWU6IGRpYS1nbm9tZQpkZXNjcmlwdGlvbjogRGlhZ3JhbSBlZGl0b3IgKEdOT01FIHZlcnNpb24pCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOTcuMi01Cm5hbWU6IGRpYS1saWJzCmRlc2NyaXB0aW9uOiBEaWFncmFtIGVkaXRvciAobGlicmFyeSBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMi4xdWJ1bnR1MgpuYW1lOiBkaWN0aW9uYXJpZXMtY29tbW9uCmRlc2NyaXB0aW9uOiBDb21tb24gdXRpbGl0aWVzIGZvciBzcGVsbGluZyBkaWN0aW9uYXJ5IHRvb2xzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNTQtMQpuYW1lOiBkaWZmc3RhdApkZXNjcmlwdGlvbjogcHJvZHVjZXMgZ3JhcGggb2YgY2hhbmdlcyBpbnRyb2R1Y2VkIGJ5IGEgZGlmZiBmaWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My4yLTF1YnVudHUxCm5hbWU6IGRpZmZ1dGlscwpkZXNjcmlwdGlvbjogRmlsZSBjb21wYXJpc29uIHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguMgpuYW1lOiBkaXN0cm8taW5mbwpkZXNjcmlwdGlvbjogcHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRpc3RyaWJ1dGlvbnMnIHJlbGVhc2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOHVidW50dTAuMgpuYW1lOiBkaXN0cm8taW5mby1kYXRhCmRlc2NyaXB0aW9uOiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGlzdHJpYnV0aW9ucycgcmVsZWFzZXMgKGRhdGEgZmlsZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMi4wLjMtMXVidW50dTMuMQpuYW1lOiBka21zCmRlc2NyaXB0aW9uOiBEeW5hbWljIEtlcm5lbCBNb2R1bGUgU3VwcG9ydCBGcmFtZXdvcmsKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xMS00Cm5hbWU6IGRtaWRlY29kZQpkZXNjcmlwdGlvbjogU01CSU9TL0RNSSB0YWJsZSBkZWNvZGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS4wMi40OC00dWJ1bnR1Ny4xCm5hbWU6IGRtc2V0dXAKZGVzY3JpcHRpb246IFRoZSBMaW51eCBLZXJuZWwgRGV2aWNlIE1hcHBlciB1c2Vyc3BhY2UgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQuMwpuYW1lOiBkbXotY3Vyc29yLXRoZW1lCmRlc2NyaXB0aW9uOiBTdHlsZSBuZXV0cmFsLCBzY2FsYWJsZSBjdXJzb3IgdGhlbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi41OS00Cm5hbWU6IGRuc21hc3EtYmFzZQpkZXNjcmlwdGlvbjogU21hbGwgY2FjaGluZyBETlMgcHJveHkgYW5kIERIQ1AvVEZUUCBzZXJ2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTo5LjguMS5kZnNnLlAxLTR1YnVudHUwLjUKbmFtZTogZG5zdXRpbHMKZGVzY3JpcHRpb246IENsaWVudHMgcHJvdmlkZWQgd2l0aCBCSU5ECgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMwpuYW1lOiBkb2MtYmFzZQpkZXNjcmlwdGlvbjogdXRpbGl0aWVzIHRvIG1hbmFnZSBvbmxpbmUgZG9jdW1lbnRhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjUtN3VidW50dTEKbmFtZTogZG9jYm9vay14bWwKZGVzY3JpcHRpb246IHN0YW5kYXJkIFhNTCBkb2N1bWVudGF0aW9uIHN5c3RlbSBmb3Igc29mdHdhcmUgYW5kIHN5c3RlbXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS43Ni4xK2Rmc2ctMXVidW50dTEKbmFtZTogZG9jYm9vay14c2wKZGVzY3JpcHRpb246IHN0eWxlc2hlZXRzIGZvciBwcm9jZXNzaW5nIERvY0Jvb2sgWE1MIHRvIHZhcmlvdXMgb3V0cHV0IGZvcm1hdHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMi0wdWJ1bnR1MX5yZXY0Nzl+cHJlY2lzZTEKbmFtZTogZG9pdApkZXNjcmlwdGlvbjogQXV0b21hdGlvbiBUb29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4xMi0xdWJ1bnR1MQpuYW1lOiBkb3Nmc3Rvb2xzCmRlc2NyaXB0aW9uOiB1dGlsaXRpZXMgZm9yIG1ha2luZyBhbmQgY2hlY2tpbmcgTVMtRE9TIEZBVCBmaWxlc3lzdGVtcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjE2LjEuMnVidW50dTcuMQpuYW1lOiBkcGtnCmRlc2NyaXB0aW9uOiBEZWJpYW4gcGFja2FnZSBtYW5hZ2VtZW50IHN5c3RlbQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjE2LjEuMnVidW50dTcuMQpuYW1lOiBkcGtnLWRldgpkZXNjcmlwdGlvbjogRGViaWFuIHBhY2thZ2UgZGV2ZWxvcG1lbnQgdG9vbHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjYuMnVidW50dTEKbmFtZTogZHB1dApkZXNjcmlwdGlvbjogRGViaWFuIHBhY2thZ2UgdXBsb2FkIHRvb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjErcmVwYWNrLTEKbmFtZTogZHJvYm8tdXRpbHMKZGVzY3JpcHRpb246IG1hbmFnZSBkYXRhIHJvYm90aWNzIHN0b3JhZ2UgdW5pdHMgKGRyb2JvcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjE4LTB1YnVudHUzLjEKbmFtZTogZHVwbGljaXR5CmRlc2NyaXB0aW9uOiBlbmNyeXB0ZWQgYmFuZHdpZHRoLWVmZmljaWVudCBiYWNrdXAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNy4xLTEwCm5hbWU6IGR2ZCtydy10b29scwpkZXNjcmlwdGlvbjogRFZEKy1SVy9SIHRvb2xzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNDItMXVidW50dTIKbmFtZTogZTJmc2xpYnMKZGVzY3JpcHRpb246IGV4dDIvZXh0My9leHQ0IGZpbGUgc3lzdGVtIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjQyLTF1YnVudHUyCm5hbWU6IGUyZnNwcm9ncwpkZXNjcmlwdGlvbjogZXh0Mi9leHQzL2V4dDQgZmlsZSBzeXN0ZW0gdXRpbGl0aWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMC45LjItMnVidW50dTIKbmFtZTogZWJ0YWJsZXMKZGVzY3JpcHRpb246IEV0aGVybmV0IGJyaWRnZSBmcmFtZSB0YWJsZSBhZG1pbmlzdHJhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjUtMwpuYW1lOiBlZApkZXNjcmlwdGlvbjogY2xhc3NpYyBVTklYIGxpbmUgZWRpdG9yCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMS41K2RlYjErY3ZzMjAwODExMDQtOQpuYW1lOiBlamVjdApkZXNjcmlwdGlvbjogZWplY3RzIENEcyBhbmQgb3BlcmF0ZXMgQ0QtQ2hhbmdlcnMgdW5kZXIgTGludXgKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjIuMy0wdWJ1bnR1MQpuYW1lOiBlbXBhdGh5CmRlc2NyaXB0aW9uOiBHTk9NRSBtdWx0aS1wcm90b2NvbCBjaGF0IGFuZCBjYWxsIGNsaWVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMi4zLTB1YnVudHUxCm5hbWU6IGVtcGF0aHktY29tbW9uCmRlc2NyaXB0aW9uOiBHTk9NRSBtdWx0aS1wcm90b2NvbCBjaGF0IGFuZCBjYWxsIGNsaWVudCAoY29tbW9uIGZpbGVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjYuMC03Cm5hbWU6IGVuY2hhbnQKZGVzY3JpcHRpb246IFdyYXBwZXIgZm9yIHZhcmlvdXMgc3BlbGwgY2hlY2tlciBlbmdpbmVzIChiaW5hcnkgcHJvZ3JhbXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS40LjYtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBlbmlnbWFpbApkZXNjcmlwdGlvbjogR1BHIHN1cHBvcnQgZm9yIFRodW5kZXJiaXJkIGFuZCBEZWJpYW4gSWNlZG92ZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMi0wdWJ1bnR1MS4xCm5hbWU6IGVvZwpkZXNjcmlwdGlvbjogRXllIG9mIEdOT01FIGdyYXBoaWNzIHZpZXdlciBwcm9ncmFtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi40MS0xMGJ1aWxkMwpuYW1lOiBlc291bmQtY29tbW9uCmRlc2NyaXB0aW9uOiBFbmxpZ2h0ZW5lZCBTb3VuZCBEYWVtb24gLSBDb21tb24gZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS40Ni4wMi0wdWJ1bnR1MQpuYW1lOiBlc3BlYWsKZGVzY3JpcHRpb246IE11bHRpLWxpbmd1YWwgc29mdHdhcmUgc3BlZWNoIHN5bnRoZXNpemVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNDYuMDItMHVidW50dTEKbmFtZTogZXNwZWFrLWRhdGEKZGVzY3JpcHRpb246IE11bHRpLWxpbmd1YWwgc29mdHdhcmUgc3BlZWNoIHN5bnRoZXNpemVyOiBzcGVlY2ggZGF0YSBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuMS0xCm5hbWU6IGV0aHRvb2wKZGVzY3JpcHRpb246IGRpc3BsYXkgb3IgY2hhbmdlIEV0aGVybmV0IGRldmljZSBzZXR0aW5ncwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuMH5ienI1MTYtMHVidW50dTMuMQpuYW1lOiBldWNhMm9vbHMKZGVzY3JpcHRpb246IG1hbmFnaW5nIGNsb3VkIGluc3RhbmNlcyBmb3IgRXVjYWx5cHR1cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMC0wdWJ1bnR1MS40Cm5hbWU6IGV2aW5jZQpkZXNjcmlwdGlvbjogRG9jdW1lbnQgKFBvc3RTY3JpcHQsIFBERikgdmlld2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4wLTB1YnVudHUxLjQKbmFtZTogZXZpbmNlLWNvbW1vbgpkZXNjcmlwdGlvbjogRG9jdW1lbnQgKFBvc3RTY3JpcHQsIFBERikgdmlld2VyIC0gY29tbW9uIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMC4yCm5hbWU6IGV2b2x1c3BlbmNpbApkZXNjcmlwdGlvbjogRXZvbHVzIFBlbmNpbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMy0wdWJ1bnR1NwpuYW1lOiBldm9sdXRpb24tZGF0YS1zZXJ2ZXIKZGVzY3JpcHRpb246IGV2b2x1dGlvbiBkYXRhYmFzZSBiYWNrZW5kIHNlcnZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMy0wdWJ1bnR1NwpuYW1lOiBldm9sdXRpb24tZGF0YS1zZXJ2ZXItY29tbW9uCmRlc2NyaXB0aW9uOiBhcmNoaXRlY3R1cmUgaW5kZXBlbmRlbnQgZmlsZXMgZm9yIEV2b2x1dGlvbiBEYXRhIFNlcnZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0NgpuYW1lOiBleGFtcGxlLWNvbnRlbnQKZGVzY3JpcHRpb246IFVidW50dSBleGFtcGxlIGNvbnRlbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4zLjItNQpuYW1lOiBmYWJyaWMKZGVzY3JpcHRpb246IFNpbXBsZSBQeXRob25pYyByZW1vdGUgZGVwbG95bWVudCB0b29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMTguMi0xCm5hbWU6IGZha2Vyb290CmRlc2NyaXB0aW9uOiB0b29sIGZvciBzaW11bGF0aW5nIHN1cGVydXNlciBwcml2aWxlZ2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6MC44LjQtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBmZm1wZWcKZGVzY3JpcHRpb246IE11bHRpbWVkaWEgcGxheWVyLCBzZXJ2ZXIsIGVuY29kZXIgYW5kIHRyYW5zY29kZXIgKHRyYW5zaXRpb25hbCBwYWNrYWdlKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjA5LTIKbmFtZTogZmlsZQpkZXNjcmlwdGlvbjogRGV0ZXJtaW5lcyBmaWxlIHR5cGUgdXNpbmcgIm1hZ2ljIiBudW1iZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxCm5hbWU6IGZpbGUtcm9sbGVyCmRlc2NyaXB0aW9uOiBhcmNoaXZlIG1hbmFnZXIgZm9yIEdOT01FCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuNC4yLTR1YnVudHUxCm5hbWU6IGZpbmR1dGlscwpkZXNjcmlwdGlvbjogdXRpbGl0aWVzIGZvciBmaW5kaW5nIGZpbGVzLS1maW5kLCB4YXJncwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOC4wLjErYnVpbGQxLTB1YnVudHUwLjEyLjA0LjEKbmFtZTogZmlyZWZveApkZXNjcmlwdGlvbjogU2FmZSBhbmQgZWFzeSB3ZWIgYnJvd3NlciBmcm9tIE1vemlsbGEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTguMC4xK2J1aWxkMS0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IGZpcmVmb3gtZ2xvYmFsbWVudQpkZXNjcmlwdGlvbjogVW5pdHkgYXBwbWVudSBpbnRlZ3JhdGlvbiBmb3IgRmlyZWZveAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOC4wLjErYnVpbGQxLTB1YnVudHUwLjEyLjA0LjEKbmFtZTogZmlyZWZveC1nbm9tZS1zdXBwb3J0CmRlc2NyaXB0aW9uOiBTYWZlIGFuZCBlYXN5IHdlYiBicm93c2VyIGZyb20gTW96aWxsYSAtIEdOT01FIHN1cHBvcnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40Cm5hbWU6IGZpcmVmb3gtbGF1bmNocGFkLXBsdWdpbgpkZXNjcmlwdGlvbjogTGF1bmNocGFkIGZpcmVmb3ggaW50ZWdyYXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTguMC4xK2J1aWxkMS0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IGZpcmVmb3gtbG9jYWxlLWVuCmRlc2NyaXB0aW9uOiBFbmdsaXNoIGxhbmd1YWdlIHBhY2sgZm9yIEZpcmVmb3gKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTEuMi4yMDIuMjYxdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IGZsYXNocGx1Z2luLWluc3RhbGxlcgpkZXNjcmlwdGlvbjogQWRvYmUgRmxhc2ggUGxheWVyIHBsdWdpbiBpbnN0YWxsZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi41LjM1LTEwdWJ1bnR1MwpuYW1lOiBmbGV4CmRlc2NyaXB0aW9uOiBBIGZhc3QgbGV4aWNhbCBhbmFseXplciBnZW5lcmF0b3IuCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi44LTIKbmFtZTogZm9sa3MtY29tbW9uCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IHRvIGFnZ3JlZ2F0ZXMgcGVvcGxlIGludG8gbWV0YWNvbnRhY3RzIChjb21tb24gZmlsZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuOC4wLTN1YnVudHU5LjEKbmFtZTogZm9udGNvbmZpZwpkZXNjcmlwdGlvbjogZ2VuZXJpYyBmb250IGNvbmZpZ3VyYXRpb24gbGlicmFyeSAtIHN1cHBvcnQgYmluYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi44LjAtM3VidW50dTkuMQpuYW1lOiBmb250Y29uZmlnLWNvbmZpZwpkZXNjcmlwdGlvbjogZ2VuZXJpYyBmb250IGNvbmZpZ3VyYXRpb24gbGlicmFyeSAtIGNvbmZpZ3VyYXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wMSttcnktMwpuYW1lOiBmb250cy1rYWNzdApkZXNjcmlwdGlvbjogS0FDU1QgZnJlZSBUcnVlVHlwZSBBcmFiaWMgZm9udHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4wK3N2bjExODQ2LTIKbmFtZTogZm9udHMta2Fjc3Qtb25lCmRlc2NyaXB0aW9uOiBUcnVlVHlwZSBmb250IGRlc2lnbmVkIGZvciBBcmFiaWMgbGFuZ3VhZ2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4wLTV1YnVudHUxCm5hbWU6IGZvbnRzLWtobWVyb3MtY29yZQpkZXNjcmlwdGlvbjogS2htZXJPUyBVbmljb2RlIGZvbnRzIGZvciB0aGUgS2htZXIgbGFuZ3VhZ2Ugb2YgQ2FtYm9kaWEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4wLjIwMDYwMjI2LTgKbmFtZTogZm9udHMtbGFvCmRlc2NyaXB0aW9uOiBUcnVlVHlwZSBmb250IGZvciBMYW8gbGFuZ3VhZ2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wNy4wLTJ1YnVudHUwLjEKbmFtZTogZm9udHMtbGliZXJhdGlvbgpkZXNjcmlwdGlvbjogRm9udHMgd2l0aCB0aGUgc2FtZSBtZXRyaWNzIGFzIFRpbWVzLCBBcmlhbCBhbmQgQ291cmllcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAxMC0yCm5hbWU6IGZvbnRzLW5hbnVtCmRlc2NyaXB0aW9uOiBOYW51bSBLb3JlYW4gZm9udHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxMDIuMitMaWJPMy41LjQtMHVidW50dTEuMQpuYW1lOiBmb250cy1vcGVuc3ltYm9sCmRlc2NyaXB0aW9uOiBPcGVuU3ltYm9sIFRydWVUeXBlIGZvbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMDAzLjAyLjAxLTV1YnVudHUxCm5hbWU6IGZvbnRzLXRha2FvLXBnb3RoaWMKZGVzY3JpcHRpb246IEphcGFuZXNlIFRydWVUeXBlIGZvbnQgc2V0LCBUYWthbyBQIEdvdGhpYyBGb250cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuNC4xNy0xdWJ1bnR1MQpuYW1lOiBmb250cy10aGFpLXRsd2cKZGVzY3JpcHRpb246IFRoYWkgZm9udHMgbWFpbnRhaW5lZCBieSBUTFdHIChtZXRhIHBhY2thZ2UpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC40LjE3LTF1YnVudHUxCm5hbWU6IGZvbnRzLXRsd2ctZ2FydWRhCmRlc2NyaXB0aW9uOiBUaGFpIEdhcnVkYSBmb250CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC40LjE3LTF1YnVudHUxCm5hbWU6IGZvbnRzLXRsd2cta2lubmFyaQpkZXNjcmlwdGlvbjogVGhhaSBLaW5uYXJpIGZvbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjQuMTctMXVidW50dTEKbmFtZTogZm9udHMtdGx3Zy1sb21hCmRlc2NyaXB0aW9uOiBUaGFpIExvbWEgZm9udAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuNC4xNy0xdWJ1bnR1MQpuYW1lOiBmb250cy10bHdnLW1vbm8KZGVzY3JpcHRpb246IFRoYWkgVGx3Z01vbm8gZm9udAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuNC4xNy0xdWJ1bnR1MQpuYW1lOiBmb250cy10bHdnLW5vcmFzaQpkZXNjcmlwdGlvbjogVGhhaSBOb3Jhc2kgZm9udAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuNC4xNy0xdWJ1bnR1MQpuYW1lOiBmb250cy10bHdnLXB1cmlzYQpkZXNjcmlwdGlvbjogVGhhaSBQdXJpc2EgZm9udAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuNC4xNy0xdWJ1bnR1MQpuYW1lOiBmb250cy10bHdnLXNhd2FzZGVlCmRlc2NyaXB0aW9uOiBUaGFpIFNhd2FzZGVlIGZvbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjQuMTctMXVidW50dTEKbmFtZTogZm9udHMtdGx3Zy10eXBld3JpdGVyCmRlc2NyaXB0aW9uOiBUaGFpIFRsd2dUeXBld3JpdGVyIGZvbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjQuMTctMXVidW50dTEKbmFtZTogZm9udHMtdGx3Zy10eXBpc3QKZGVzY3JpcHRpb246IFRoYWkgVGx3Z1R5cGlzdCBmb250CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC40LjE3LTF1YnVudHUxCm5hbWU6IGZvbnRzLXRsd2ctdHlwbwpkZXNjcmlwdGlvbjogVGhhaSBUbHdnVHlwbyBmb250CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC40LjE3LTF1YnVudHUxCm5hbWU6IGZvbnRzLXRsd2ctdW1wdXNoCmRlc2NyaXB0aW9uOiBUaGFpIFVtcHVzaCBmb250CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC40LjE3LTF1YnVudHUxCm5hbWU6IGZvbnRzLXRsd2ctd2FyZWUKZGVzY3JpcHRpb246IFRoYWkgV2FyZWUgZm9udAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyMDEyMDMyMi0wdWJ1bnR1MQpuYW1lOiBmb29tYXRpYy1kYi1jb21wcmVzc2VkLXBwZHMKZGVzY3JpcHRpb246IE9wZW5QcmludGluZyBwcmludGVyIHN1cHBvcnQgLSBDb21wcmVzc2VkIFBQRHMgZGVyaXZlZCBmcm9tIHRoZSBkYXRhYmFzZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjAuOC0ydWJ1bnR1MQpuYW1lOiBmb29tYXRpYy1kYi1lbmdpbmUKZGVzY3JpcHRpb246IE9wZW5QcmludGluZyBwcmludGVyIHN1cHBvcnQgLSBwcm9ncmFtcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjAuMTYtMHVidW50dTAuMgpuYW1lOiBmb29tYXRpYy1maWx0ZXJzCmRlc2NyaXB0aW9uOiBPcGVuUHJpbnRpbmcgcHJpbnRlciBzdXBwb3J0IC0gZmlsdGVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjYuMC0xdWJ1bnR1MwpuYW1lOiBmcmVlZ2x1dDMKZGVzY3JpcHRpb246IE9wZW5HTCBVdGlsaXR5IFRvb2xraXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi42LjAtMXVidW50dTMKbmFtZTogZnJlZWdsdXQzLWRldgpkZXNjcmlwdGlvbjogT3BlbkdMIFV0aWxpdHkgVG9vbGtpdCBkZXZlbG9wbWVudCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyMDA2MDIxOS0xCm5hbWU6IGZyZWVwYXRzCmRlc2NyaXB0aW9uOiBGcmVlIHBhdGNoIHNldCBmb3IgTUlESSBhdWRpbyBzeW50aGVzaXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjI1Cm5hbWU6IGZyaWVuZGx5LXJlY292ZXJ5CmRlc2NyaXB0aW9uOiBNYWtlIHJlY292ZXJ5IG1vcmUgdXNlci1mcmllbmRseQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyMDEwMTExOC0yCm5hbWU6IGZzd2ViY2FtCmRlc2NyaXB0aW9uOiBUaW55IGFuZCBmbGV4aWJsZSB3ZWJjYW0gcHJvZ3JhbQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE3LTI1Cm5hbWU6IGZ0cApkZXNjcmlwdGlvbjogY2xhc3NpY2FsIGZpbGUgdHJhbnNmZXIgY2xpZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuOC42LTJ1YnVudHUyCm5hbWU6IGZ1c2UKZGVzY3JpcHRpb246IEZpbGVzeXN0ZW0gaW4gVXNlcnNwYWNlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjUuMDZwcmVjaXNlMQpuYW1lOiBmd3RzCmRlc2NyaXB0aW9uOiBGaXJtV2FyZSBUZXN0IFN1aXRlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6NC42LjMtMXVidW50dTUKbmFtZTogZysrCmRlc2NyaXB0aW9uOiBHTlUgQysrIGNvbXBpbGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuNi4zLTF1YnVudHU1Cm5hbWU6IGcrKy00LjYKZGVzY3JpcHRpb246IEdOVSBDKysgY29tcGlsZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjEuOCtkZnNnLTAuMXVidW50dTEKbmFtZTogZ2F3awpkZXNjcmlwdGlvbjogR05VIGF3aywgYSBwYXR0ZXJuIHNjYW5uaW5nIGFuZCBwcm9jZXNzaW5nIGxhbmd1YWdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDYuNC4xLjEtMHVidW50dTMKbmFtZTogZ2NhbGN0b29sCmRlc2NyaXB0aW9uOiBHTk9NRSBkZXNrdG9wIGNhbGN1bGF0b3IKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjYuMy0xdWJ1bnR1NQpuYW1lOiBnY2MKZGVzY3JpcHRpb246IEdOVSBDIGNvbXBpbGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuNi4zLTF1YnVudHU1Cm5hbWU6IGdjYy00LjYKZGVzY3JpcHRpb246IEdOVSBDIGNvbXBpbGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuNi4zLTF1YnVudHU1Cm5hbWU6IGdjYy00LjYtYmFzZQpkZXNjcmlwdGlvbjogR0NDLCB0aGUgR05VIENvbXBpbGVyIENvbGxlY3Rpb24gKGJhc2UgcGFja2FnZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC42LjMtMXVidW50dTUKbmFtZTogZ2NjLTQuNi1iYXNlOmkzODYKZGVzY3JpcHRpb246IEdDQywgdGhlIEdOVSBDb21waWxlciBDb2xsZWN0aW9uIChiYXNlIHBhY2thZ2UpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi41LTB1YnVudHUyCm5hbWU6IGdjb25mLWRlZmF1bHRzLXNlcnZpY2UKZGVzY3JpcHRpb246IEdOT01FIGNvbmZpZ3VyYXRpb24gZGF0YWJhc2Ugc3lzdGVtIChzeXN0ZW0gZGVmYXVsdHMgc2VydmljZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjEtMXVidW50dTIKbmFtZTogZ2NvbmYtZWRpdG9yCmRlc2NyaXB0aW9uOiBlZGl0b3IgZm9yIHRoZSBHQ29uZiBjb25maWd1cmF0aW9uIHN5c3RlbQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuNS0wdWJ1bnR1MgpuYW1lOiBnY29uZi1zZXJ2aWNlCmRlc2NyaXB0aW9uOiBHTk9NRSBjb25maWd1cmF0aW9uIGRhdGFiYXNlIHN5c3RlbSAoRC1CdXMgc2VydmljZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjUtMHVidW50dTIKbmFtZTogZ2NvbmYtc2VydmljZS1iYWNrZW5kCmRlc2NyaXB0aW9uOiBHTk9NRSBjb25maWd1cmF0aW9uIGRhdGFiYXNlIHN5c3RlbSAoRC1CdXMgc2VydmljZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjUtMHVidW50dTIKbmFtZTogZ2NvbmYyCmRlc2NyaXB0aW9uOiBHTk9NRSBjb25maWd1cmF0aW9uIGRhdGFiYXNlIHN5c3RlbSAoc3VwcG9ydCB0b29scykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjUtMHVidW50dTIKbmFtZTogZ2NvbmYyLWNvbW1vbgpkZXNjcmlwdGlvbjogR05PTUUgY29uZmlndXJhdGlvbiBkYXRhYmFzZSBzeXN0ZW0gKGNvbW1vbiBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNy40LTIwMTIuMDQtMHVidW50dTIuMQpuYW1lOiBnZGIKZGVzY3JpcHRpb246IFRoZSBHTlUgRGVidWdnZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44LjVidWlsZDEKbmFtZTogZ2RlYmkKZGVzY3JpcHRpb246IHNpbXBsZSB0b29sIHRvIGluc3RhbGwgZGViIGZpbGVzIC0gR05PTUUgR1VJCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOC41YnVpbGQxCm5hbWU6IGdkZWJpLWNvcmUKZGVzY3JpcHRpb246IHNpbXBsZSB0b29sIHRvIGluc3RhbGwgZGViIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjEuZGZzZy0xdWJ1bnR1NApuYW1lOiBnZWFueQpkZXNjcmlwdGlvbjogZmFzdCBhbmQgbGlnaHR3ZWlnaHQgSURFCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjEuZGZzZy0xdWJ1bnR1NApuYW1lOiBnZWFueS1jb21tb24KZGVzY3JpcHRpb246IGZhc3QgYW5kIGxpZ2h0d2VpZ2h0IElERSAtLSBjb21tb24gZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yMS4xLmRmc2ctMgpuYW1lOiBnZWFueS1wbHVnaW4tdHJlZWJyb3dzZXIKZGVzY3JpcHRpb246IHRyZWUgYnJvd3NlciBwbHVnaW4gZm9yIEdlYW55CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjEuMS5kZnNnLTIKbmFtZTogZ2VhbnktcGx1Z2lucy1jb21tb24KZGVzY3JpcHRpb246IHNldCBvZiBwbHVnaW5zIGZvciBHZWFueSAodHJhbnNsYXRpb25zKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0wdWJ1bnR1MQpuYW1lOiBnZWRpdApkZXNjcmlwdGlvbjogb2ZmaWNpYWwgdGV4dCBlZGl0b3Igb2YgdGhlIEdOT01FIGRlc2t0b3AgZW52aXJvbm1lbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjEtMHVidW50dTEKbmFtZTogZ2VkaXQtY29tbW9uCmRlc2NyaXB0aW9uOiBvZmZpY2lhbCB0ZXh0IGVkaXRvciBvZiB0aGUgR05PTUUgZGVza3RvcCBlbnZpcm9ubWVudCAoc3VwcG9ydCBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogOToxLjEuMTEtMnVidW50dTIKbmFtZTogZ2VuaXNvaW1hZ2UKZGVzY3JpcHRpb246IENyZWF0ZXMgSVNPLTk2NjAgQ0QtUk9NIGZpbGVzeXN0ZW0gaW1hZ2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTIuMC0xdWJ1bnR1MTIKbmFtZTogZ2VvY2x1ZQpkZXNjcmlwdGlvbjogR2VvZ3JhcGhpYyBpbmZvcm1hdGlvbiBmcmFtZXdvcmsKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4wLjItMHVidW50dTYKbmFtZTogZ2VvY2x1ZS11YnVudHUtZ2VvaXAKZGVzY3JpcHRpb246IFByb3ZpZGUgcG9zaXRpb25pbmcgZm9yIEdlb0NsdWUgdmlhIFVidW50dSBHZW9JUCBzZXJ2aWNlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyMDExMTIyMC0xCm5hbWU6IGdlb2lwLWRhdGFiYXNlCmRlc2NyaXB0aW9uOiBJUCBsb29rdXAgY29tbWFuZCBsaW5lIHRvb2xzIHRoYXQgdXNlIHRoZSBHZW9JUCBsaWJyYXJ5IChjb3VudHJ5IGRhdGFiYXNlKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE4LjEuMS01dWJ1bnR1MwpuYW1lOiBnZXR0ZXh0CmRlc2NyaXB0aW9uOiBHTlUgSW50ZXJuYXRpb25hbGl6YXRpb24gdXRpbGl0aWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTguMS4xLTV1YnVudHUzCm5hbWU6IGdldHRleHQtYmFzZQpkZXNjcmlwdGlvbjogR05VIEludGVybmF0aW9uYWxpemF0aW9uIHV0aWxpdGllcyBmb3IgdGhlIGJhc2Ugc3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDkuMDV+ZGZzZy0wdWJ1bnR1NC4yCm5hbWU6IGdob3N0c2NyaXB0CmRlc2NyaXB0aW9uOiBpbnRlcnByZXRlciBmb3IgdGhlIFBvc3RTY3JpcHQgbGFuZ3VhZ2UgYW5kIGZvciBQREYKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogOS4wNX5kZnNnLTB1YnVudHU0LjIKbmFtZTogZ2hvc3RzY3JpcHQtY3VwcwpkZXNjcmlwdGlvbjogaW50ZXJwcmV0ZXIgZm9yIHRoZSBQb3N0U2NyaXB0IGxhbmd1YWdlIGFuZCBmb3IgUERGIC0gQ1VQUyBmaWx0ZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDkuMDV+ZGZzZy0wdWJ1bnR1NC4yCm5hbWU6IGdob3N0c2NyaXB0LXgKZGVzY3JpcHRpb246IGludGVycHJldGVyIGZvciB0aGUgUG9zdFNjcmlwdCBsYW5ndWFnZSBhbmQgZm9yIFBERiAtIFgxMSBzdXBwb3J0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNi4xMi0xdWJ1bnR1MS4yCm5hbWU6IGdpbXAKZGVzY3JpcHRpb246IFRoZSBHTlUgSW1hZ2UgTWFuaXB1bGF0aW9uIFByb2dyYW0KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi42LjEyLTF1YnVudHUxLjIKbmFtZTogZ2ltcC1kYXRhCmRlc2NyaXB0aW9uOiBEYXRhIGZpbGVzIGZvciBHSU1QCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi40LjEtMHVidW50dTEKbmFtZTogZ2lubgpkZXNjcmlwdGlvbjogR2VzdHVyZSBJbmplY3RvcjogTm8tR0VJUywgTm8tVG9vbGtpdHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjE1LTJ1YnVudHU5LjQKbmFtZTogZ2lyMS4yLWFjY291bnRzc2VydmljZS0xLjAKZGVzY3JpcHRpb246IEdPYmplY3QgaW50cm9zcGVjdGlvbiBkYXRhIGZvciBBY2NvdW50U2VydmljZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQuOTItMHVidW50dTEKbmFtZTogZ2lyMS4yLWFwcGluZGljYXRvcjMtMC4xCmRlc2NyaXB0aW9uOiBUeXBlbGliIGZpbGVzIGZvciBsaWJhcHBpbmRpY2F0b3IzLTEuCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4wLTB1YnVudHUxCm5hbWU6IGdpcjEuMi1hdGstMS4wCmRlc2NyaXB0aW9uOiBBVEsgYWNjZXNzaWJpbGl0eSB0b29sa2l0IChHT2JqZWN0IGludHJvc3BlY3Rpb24pCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4yLTB1YnVudHUwLjEKbmFtZTogZ2lyMS4yLWF0c3BpLTIuMApkZXNjcmlwdGlvbjogQXNzaXN0aXZlIFRlY2hub2xvZ3kgU2VydmljZSBQcm92aWRlciAoR09iamVjdCBpbnRyb3NwZWN0aW9uKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQuMi0xdWJ1bnR1MQpuYW1lOiBnaXIxLjItY2FyaWJvdS0xLjAKZGVzY3JpcHRpb246IEdPYmplY3QgaW50cm9zcGVjdGlvbiBmb3IgdGhlIENhcmlib3UgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEwLjYtMX5wcmVjaXNlMQpuYW1lOiBnaXIxLjItY2x1dHRlci0xLjAKZGVzY3JpcHRpb246IEdPYmplY3QgaW50cm9zcGVjdGlvbiBkYXRhIGZvciB0aGUgQ2x1dHRlciAxLjAgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEwLjAtMHVidW50dTIKbmFtZTogZ2lyMS4yLWNvZ2wtMS4wCmRlc2NyaXB0aW9uOiBHT2JqZWN0IGludHJvc3BlY3Rpb24gZGF0YSBmb3IgdGhlIENvZ2wgMS4wIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMC4wLTB1YnVudHUyCm5hbWU6IGdpcjEuMi1jb2dscGFuZ28tMS4wCmRlc2NyaXB0aW9uOiBHT2JqZWN0IGludHJvc3BlY3Rpb24gZGF0YSBmb3IgdGhlIENvZ2xQYW5nbyAxLjAgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMi0wdWJ1bnR1MC4xCm5hbWU6IGdpcjEuMi1kYnVzbWVudS1nbGliLTAuNApkZXNjcmlwdGlvbjogdHlwZWxpYiBmaWxlIGZvciBsaWJkYnVzbWVudS1nbGliNAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMi0wdWJ1bnR1MC4xCm5hbWU6IGdpcjEuMi1kYnVzbWVudS1ndGstMC40CmRlc2NyaXB0aW9uOiB0eXBlbGliIGZpbGUgZm9yIGxpYmRidXNtZW51LWd0azQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjEwLTB1YnVudHUxCm5hbWU6IGdpcjEuMi1kZWUtMS4wCmRlc2NyaXB0aW9uOiBHT2JqZWN0IGludHJvc3BlY3Rpb24gZGF0YSBmb3IgdGhlIERlZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi44LTIKbmFtZTogZ2lyMS4yLWZvbGtzLTAuNgpkZXNjcmlwdGlvbjogbGlicmFyeSB0byBhZ2dyZWdhdGVzIHBlb3BsZSBpbnRvIG1ldGFjb250YWN0cyAtIEdPYmplY3QtSW50cm9zcGVjdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMyLjAtMQpuYW1lOiBnaXIxLjItZnJlZWRlc2t0b3AKZGVzY3JpcHRpb246IEludHJvc3BlY3Rpb24gZGF0YSBmb3Igc29tZSBGcmVlRGVza3RvcCBjb21wb25lbnRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi41LTB1YnVudHUyCm5hbWU6IGdpcjEuMi1nY29uZi0yLjAKZGVzY3JpcHRpb246IEdOT01FIGNvbmZpZ3VyYXRpb24gZGF0YWJhc2Ugc3lzdGVtIChHT2JqZWN0LUludHJvc3BlY3Rpb24pCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxCm5hbWU6IGdpcjEuMi1nZGVza3RvcGVudW1zLTMuMApkZXNjcmlwdGlvbjogR09iamVjdCBpbnRyb3NwZWN0aW9uIGZvciBHU2V0dGluZ3MgZGVza3RvcC13aWRlIHNjaGVtYXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yNi4xLTEKbmFtZTogZ2lyMS4yLWdka3BpeGJ1Zi0yLjAKZGVzY3JpcHRpb246IEdESyBQaXhidWYgbGlicmFyeSAtIEdPYmplY3QtSW50cm9zcGVjdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuNC0xCm5hbWU6IGdpcjEuMi1nZWUtMS4wCmRlc2NyaXB0aW9uOiBHTGliIFRlbGVwYXRoeSBjb25uZWN0aW9uIG1hbmFnZXIgbGlicmFyeSAoR09iamVjdC1JbnRyb3NwZWN0aW9uKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMyLjAtMXVidW50dTEKbmFtZTogZ2lyMS4yLWdqc2RidXMtMS4wCmRlc2NyaXB0aW9uOiBHT2JqZWN0IGludHJvc3BlY3Rpb24gZGF0YSBmb3IgR0pTCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4wLjItMQpuYW1lOiBnaXIxLjItZ2tiZC0zLjAKZGVzY3JpcHRpb246IEdPYmplY3QgaW50cm9zcGVjdGlvbiBkYXRhIGZvciB0aGUgR25vbWVLYmQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMyLjAtMQpuYW1lOiBnaXIxLjItZ2xpYi0yLjAKZGVzY3JpcHRpb246IEludHJvc3BlY3Rpb24gZGF0YSBmb3IgR0xpYiwgR09iamVjdCwgR2lvIGFuZCBHTW9kdWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4wLTB1YnVudHUxCm5hbWU6IGdpcjEuMi1nbWVudS0zLjAKZGVzY3JpcHRpb246IEdPYmplY3QgaW50cm9zcGVjdGlvbiBkYXRhIGZvciB0aGUgR05PTUUgbWVudSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4yLTB1YnVudHU1Cm5hbWU6IGdpcjEuMi1nbm9tZWJsdWV0b290aC0xLjAKZGVzY3JpcHRpb246IEludHJvc3BlY3Rpb24gZGF0YSBmb3IgR25vbWVCbHVldG9vdGgKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjItMgpuYW1lOiBnaXIxLjItZ25vbWVrZXlyaW5nLTEuMApkZXNjcmlwdGlvbjogR05PTUUga2V5cmluZyBzZXJ2aWNlcyBsaWJyYXJ5IC0gaW50cm9zcGVjdGlvbiBkYXRhCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMzYtMXVidW50dTAuMQpuYW1lOiBnaXIxLjItZ3N0LXBsdWdpbnMtYmFzZS0wLjEwCmRlc2NyaXB0aW9uOiBEZXNjcmlwdGlvbjogR09iamVjdCBpbnRyb3NwZWN0aW9uIGRhdGEgZm9yIHRoZSBHU3RyZWFtZXIgUGx1Z2lucyBCYXNlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMC4zNi0xdWJ1bnR1MQpuYW1lOiBnaXIxLjItZ3N0cmVhbWVyLTAuMTAKZGVzY3JpcHRpb246IERlc2NyaXB0aW9uOiBHT2JqZWN0IGludHJvc3BlY3Rpb24gZGF0YSBmb3IgdGhlIEdTdHJlYW1lciBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjQuMTAtMHVidW50dTYKbmFtZTogZ2lyMS4yLWd0ay0yLjAKZGVzY3JpcHRpb246IEdUSysgZ3JhcGhpY2FsIHVzZXIgaW50ZXJmYWNlIGxpYnJhcnkgLS0gZ2lyIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4yLTB1YnVudHUwLjUKbmFtZTogZ2lyMS4yLWd0ay0zLjAKZGVzY3JpcHRpb246IEdUSysgZ3JhcGhpY2FsIHVzZXIgaW50ZXJmYWNlIGxpYnJhcnkgLS0gZ2lyIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4yLTB1YnVudHUxCm5hbWU6IGdpcjEuMi1ndGtzb3VyY2UtMy4wCmRlc2NyaXB0aW9uOiBnaXIgZmlsZXMgZm9yIHRoZSBHVEsrIHN5bnRheCBoaWdobGlnaHRpbmcgd2lkZ2V0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE3NS0wdWJ1bnR1OS4yCm5hbWU6IGdpcjEuMi1ndWRldi0xLjAKZGVzY3JpcHRpb246IGxpYmd1ZGV2LTEuMCBpbnRyb3NwZWN0aW9uIGRhdGEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjkyLTB1YnVudHUxCm5hbWU6IGdpcjEuMi1pbmRpY2F0ZS0wLjcKZGVzY3JpcHRpb246IFR5cGVsaWIgZmlsZSBmb3IgbGliaW5kaWNhdGU1CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOC4zLTB1YnVudHUwLjEyLjA0LjEKbmFtZTogZ2lyMS4yLWphdmFzY3JpcHRjb3JlZ3RrLTEuMApkZXNjcmlwdGlvbjogR09iamVjdCBpbnRyb3NwZWN0aW9uIGRhdGEgZm9yIHRoZSBHVEsrLWJhc2VkIEphdmFTY3JpcHRDb3JlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LjMtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBnaXIxLjItamF2YXNjcmlwdGNvcmVndGstMy4wCmRlc2NyaXB0aW9uOiBHT2JqZWN0IGludHJvc3BlY3Rpb24gZGF0YSBmb3IgdGhlIEdUSystYmFzZWQgSmF2YVNjcmlwdENvcmUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE0LjItMQpuYW1lOiBnaXIxLjItanNvbi0xLjAKZGVzY3JpcHRpb246IEdMaWIgSlNPTiBtYW5pcHVsYXRpb24gbGlicmFyeSAoaW50cm9zcGVjdGlvbiBkYXRhKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuNTYuMQpuYW1lOiBnaXIxLjItbGF1bmNocGFkLWludGVncmF0aW9uLTMuMApkZXNjcmlwdGlvbjogbGlicmFyeSBmb3IgbGF1bmNocGFkIGludGVncmF0aW9uIChnaXIgZmlsZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxCm5hbWU6IGdpcjEuMi1tdXR0ZXItMy4wCmRlc2NyaXB0aW9uOiBHT2JqZWN0IGludHJvc3BlY3Rpb24gZGF0YSBmb3IgTXV0dGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS40LjAtMHVidW50dTQuMgpuYW1lOiBnaXIxLjItbmV0d29ya21hbmFnZXItMS4wCmRlc2NyaXB0aW9uOiBHT2JqZWN0IGludHJvc3BlY3Rpb24gZGF0YSBmb3IgTmV0d29ya01hbmFnZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC43LjUtMQpuYW1lOiBnaXIxLjItbm90aWZ5LTAuNwpkZXNjcmlwdGlvbjogc2VuZHMgZGVza3RvcCBub3RpZmljYXRpb25zIHRvIGEgbm90aWZpY2F0aW9uIGRhZW1vbiAoSW50cm9zcGVjdGlvbiBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjQuMS0wdWJ1bnR1MS4xCm5hbWU6IGdpcjEuMi1wYW5lbGFwcGxldC00LjAKZGVzY3JpcHRpb246IEdPYmplY3QgaW50cm9zcGVjdGlvbiBmb3IgdGhlIEdOT01FIFBhbmVsIEFwcGxldCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMzAuMC0wdWJ1bnR1My4xCm5hbWU6IGdpcjEuMi1wYW5nby0xLjAKZGVzY3JpcHRpb246IExheW91dCBhbmQgcmVuZGVyaW5nIG9mIGludGVybmF0aW9uYWxpemVkIHRleHQgLSBnaXIgYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjAtMXVidW50dTEKbmFtZTogZ2lyMS4yLXBlYXMtMS4wCmRlc2NyaXB0aW9uOiBBcHBsaWNhdGlvbiBwbHVnaW4gbGlicmFyeSAoaW50cm9zcGVjdGlvbiBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMDQtMXVidW50dTEKbmFtZTogZ2lyMS4yLXBvbGtpdC0xLjAKZGVzY3JpcHRpb246IEdPYmplY3QgaW50cm9zcGVjdGlvbiBkYXRhIGZvciBQb2xpY3lLaXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi45Ni0wdWJ1bnR1NC4yCm5hbWU6IGdpcjEuMi1yYi0zLjAKZGVzY3JpcHRpb246IEdPYmplY3QgaW50cm9zcGVjdGlvbiBkYXRhIGZvciB0aGUgcmh5dGhtYm94IG11c2ljIHBsYXllcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjM4LjEtMQpuYW1lOiBnaXIxLjItc291cC0yLjQKZGVzY3JpcHRpb246IEdPYmplY3QgaW50cm9zcGVjdGlvbiBkYXRhIGZvciB0aGUgbGlic291cCBIVFRQIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xOC4wLTF1YnVudHUxCm5hbWU6IGdpcjEuMi10ZWxlcGF0aHlnbGliLTAuMTIKZGVzY3JpcHRpb246IEdMaWIgVGVsZXBhdGh5IGNvbm5lY3Rpb24gbWFuYWdlciBsaWJyYXJ5IChHT2JqZWN0LUludHJvc3BlY3Rpb24pCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC4wLTB1YnVudHUxCm5hbWU6IGdpcjEuMi10ZWxlcGF0aHlsb2dnZXItMC4yCmRlc2NyaXB0aW9uOiBUZWxlcGF0aHkgbG9nZ2VyIHNlcnZpY2UgLSBpbnRyb3NwZWN0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4xLTB1YnVudHUyMS4xCm5hbWU6IGdpcjEuMi10b3RlbS0xLjAKZGVzY3JpcHRpb246IEdPYmplY3QgaW50cm9zcGVjdGlvbiBkYXRhIGZvciBUb3RlbSBtZWRpYSBwbGF5ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjEtMQpuYW1lOiBnaXIxLjItdG90ZW0tcGxwYXJzZXItMS4wCmRlc2NyaXB0aW9uOiBHT2JqZWN0IGludHJvc3BlY3Rpb24gZGF0YSBmb3IgdGhlIFRvdGVtIFBsYXlsaXN0IFBhcnNlciBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4xLTB1YnVudHUxCm5hbWU6IGdpcjEuMi11YnVudHVvbmV1aS0zLjAKZGVzY3JpcHRpb246IFVidW50dSBPbmUgd2lkZ2V0IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjItMQpuYW1lOiBnaXIxLjItdW5pcXVlLTMuMApkZXNjcmlwdGlvbjogR09iamVjdCBpbnRyb3NwZWN0aW9uIGRhdGEgZm9yIHRoZSBVbmlxdWUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjEyLjAtMHVidW50dTEuMQpuYW1lOiBnaXIxLjItdW5pdHktNS4wCmRlc2NyaXB0aW9uOiBHT2JqZWN0IGludHJvc3BlY3Rpb24gZGF0YSBmb3IgdGhlIFVuaXR5IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjE1LTNnaXQxCm5hbWU6IGdpcjEuMi11cG93ZXJnbGliLTEuMApkZXNjcmlwdGlvbjogR09iamVjdCBpbnRyb3NwZWN0aW9uIGRhdGEgZm9yIHVwb3dlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuMzIuMS0wdWJ1bnR1MQpuYW1lOiBnaXIxLjItdnRlLTIuOTAKZGVzY3JpcHRpb246IEdPYmplY3QgaW50cm9zcGVjdGlvbiBkYXRhIGZvciB0aGUgVlRFIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LjMtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBnaXIxLjItd2Via2l0LTEuMApkZXNjcmlwdGlvbjogR09iamVjdCBpbnRyb3NwZWN0aW9uIGRhdGEgZm9yIHRoZSBXZWJLaXQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguMy0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IGdpcjEuMi13ZWJraXQtMy4wCmRlc2NyaXB0aW9uOiBHT2JqZWN0IGludHJvc3BlY3Rpb24gZGF0YSBmb3IgdGhlIFdlYktpdCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4wLTB1YnVudHUxCm5hbWU6IGdpcjEuMi13bmNrLTMuMApkZXNjcmlwdGlvbjogR09iamVjdCBpbnRyb3NwZWN0aW9uIGRhdGEgZm9yIHRoZSBXTkNLIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4yLjEtMXVidW50dTEKbmFtZTogZ2lyMS4yLXhrbC0xLjAKZGVzY3JpcHRpb246IFggS2V5Ym9hcmQgRXh0ZW5zaW9uIGhpZ2gtbGV2ZWwgQVBJIC0gaW50cm9zcGVjdGlvbiBkYXRhCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS43LjkuNS0xCm5hbWU6IGdpdApkZXNjcmlwdGlvbjogZmFzdCwgc2NhbGFibGUsIGRpc3RyaWJ1dGVkIHJldmlzaW9uIGNvbnRyb2wgc3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS43LjkuNS0xCm5hbWU6IGdpdC1jb3JlCmRlc2NyaXB0aW9uOiBmYXN0LCBzY2FsYWJsZSwgZGlzdHJpYnV0ZWQgcmV2aXNpb24gY29udHJvbCBzeXN0ZW0gKG9ic29sZXRlKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuNy45LjUtMQpuYW1lOiBnaXQtZW1haWwKZGVzY3JpcHRpb246IGZhc3QsIHNjYWxhYmxlLCBkaXN0cmlidXRlZCByZXZpc2lvbiBjb250cm9sIHN5c3RlbSAoZW1haWwgYWRkLW9uKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuNy45LjUtMQpuYW1lOiBnaXQtZ3VpCmRlc2NyaXB0aW9uOiBmYXN0LCBzY2FsYWJsZSwgZGlzdHJpYnV0ZWQgcmV2aXNpb24gY29udHJvbCBzeXN0ZW0gKEdVSSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjcuOS41LTEKbmFtZTogZ2l0LW1hbgpkZXNjcmlwdGlvbjogZmFzdCwgc2NhbGFibGUsIGRpc3RyaWJ1dGVkIHJldmlzaW9uIGNvbnRyb2wgc3lzdGVtIChtYW51YWwgcGFnZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS43LjkuNS0xCm5hbWU6IGdpdGsKZGVzY3JpcHRpb246IGZhc3QsIHNjYWxhYmxlLCBkaXN0cmlidXRlZCByZXZpc2lvbiBjb250cm9sIHN5c3RlbSAocmV2aXNpb24gdHJlZSB2aXN1YWxpemVyKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMyLjAtMXVidW50dTEKbmFtZTogZ2pzCmRlc2NyaXB0aW9uOiBNb3ppbGxhLWJhc2VkIGphdmFzY3JpcHQgYmluZGluZ3MgZm9yIHRoZSBHTk9NRSBwbGF0Zm9ybQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuMi02dWJ1bnR1MQpuYW1lOiBna3N1CmRlc2NyaXB0aW9uOiBncmFwaGljYWwgZnJvbnRlbmQgdG8gc3UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4xMi4xLTB1YnVudHUxCm5hbWU6IGdsYWRlCmRlc2NyaXB0aW9uOiBHVEsrIFVzZXIgSW50ZXJmYWNlIEJ1aWxkZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy44LjAtMHVidW50dTQKbmFtZTogZ2xhZGUtZ3RrMgpkZXNjcmlwdGlvbjogR1RLKyAyIFVzZXIgSW50ZXJmYWNlIEJ1aWxkZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zMi4xLTF1YnVudHUyCm5hbWU6IGdsaWItbmV0d29ya2luZwpkZXNjcmlwdGlvbjogbmV0d29yay1yZWxhdGVkIGdpb21vZHVsZXMgZm9yIEdMaWIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zMi4xLTF1YnVudHUyCm5hbWU6IGdsaWItbmV0d29ya2luZzppMzg2CmRlc2NyaXB0aW9uOiBuZXR3b3JrLXJlbGF0ZWQgZ2lvbW9kdWxlcyBmb3IgR0xpYgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMyLjEtMXVidW50dTIKbmFtZTogZ2xpYi1uZXR3b3JraW5nLWNvbW1vbgpkZXNjcmlwdGlvbjogbmV0d29yay1yZWxhdGVkIGdpb21vZHVsZXMgZm9yIEdMaWIgLSBkYXRhIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMzIuMS0xdWJ1bnR1MgpuYW1lOiBnbGliLW5ldHdvcmtpbmctc2VydmljZXMKZGVzY3JpcHRpb246IG5ldHdvcmstcmVsYXRlZCBnaW9tb2R1bGVzIGZvciBHTGliIC0gRC1CdXMgc2VydmljZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjAxMS4wOS0wdWJ1bnR1MQpuYW1lOiBnbG1hcmsyCmRlc2NyaXB0aW9uOiBPcGVuR0wgKEVTKSAyLjAgYmVuY2htYXJrCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIwMTEuMDktMHVidW50dTEKbmFtZTogZ2xtYXJrMi1kYXRhCmRlc2NyaXB0aW9uOiBkYXRhIGZpbGVzIGZvciB0aGUgZ2xtYXJrMiBPcGVuR0wgKEVTKSAyLjAgYmVuY2htYXJrCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIwMTEuMDktMHVidW50dTEKbmFtZTogZ2xtYXJrMi1lczIKZGVzY3JpcHRpb246IE9wZW5HTCAoRVMpIDIuMCBiZW5jaG1hcmsKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjEtMHVidW50dTEuMgpuYW1lOiBnbm9tZS1hY2Nlc3NpYmlsaXR5LXRoZW1lcwpkZXNjcmlwdGlvbjogYWNjZXNzaWJpbGl0eSB0aGVtZXMgZm9yIHRoZSBHTk9NRSBkZXNrdG9wCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxCm5hbWU6IGdub21lLWFwcGxldHMKZGVzY3JpcHRpb246IFZhcmlvdXMgYXBwbGV0cyBmb3IgdGhlIEdOT01FIHBhbmVsIC0gYmluYXJ5IGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxCm5hbWU6IGdub21lLWFwcGxldHMtZGF0YQpkZXNjcmlwdGlvbjogVmFyaW91cyBhcHBsZXRzIGZvciB0aGUgR05PTUUgcGFuZWwgLSBkYXRhIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4yLTB1YnVudHU1Cm5hbWU6IGdub21lLWJsdWV0b290aApkZXNjcmlwdGlvbjogR05PTUUgQmx1ZXRvb3RoIHRvb2xzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4wLTEKbmFtZTogZ25vbWUtY29udGFjdHMKZGVzY3JpcHRpb246IENvbnRhY3RzIG1hbmFnZXIgZm9yIEdOT01FCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My40LjItMHVidW50dTAuOApuYW1lOiBnbm9tZS1jb250cm9sLWNlbnRlcgpkZXNjcmlwdGlvbjogdXRpbGl0aWVzIHRvIGNvbmZpZ3VyZSB0aGUgR05PTUUgZGVza3RvcAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuNC4yLTB1YnVudHUwLjgKbmFtZTogZ25vbWUtY29udHJvbC1jZW50ZXItZGF0YQpkZXNjcmlwdGlvbjogY29uZmlndXJhdGlvbiBhcHBsZXRzIGZvciBHTk9NRSAtIGRhdGEgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjItMHVidW50dTAuMQpuYW1lOiBnbm9tZS1kZXNrdG9wMy1kYXRhCmRlc2NyaXB0aW9uOiBDb21tb24gZmlsZXMgZm9yIEdOT01FIGRlc2t0b3AgYXBwcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMi0ydWJ1bnR1NwpuYW1lOiBnbm9tZS1kaXNrLXV0aWxpdHkKZGVzY3JpcHRpb246IG1hbmFnZSBhbmQgY29uZmlndXJlIGRpc2sgZHJpdmVzIGFuZCBtZWRpYQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMC0xCm5hbWU6IGdub21lLWZvbnQtdmlld2VyCmRlc2NyaXB0aW9uOiBmb250IHZpZXdlciBmb3IgR05PTUUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjQuMS0wdWJ1bnR1Mi4yCm5hbWU6IGdub21lLWdhbWVzLWRhdGEKZGVzY3JpcHRpb246IGRhdGEgZmlsZXMgZm9yIHRoZSBHTk9NRSBnYW1lcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMC0wdWJ1bnR1MS4xCm5hbWU6IGdub21lLWljb24tdGhlbWUKZGVzY3JpcHRpb246IEdOT01FIERlc2t0b3AgaWNvbiB0aGVtZSAoc21hbGwgc3Vic2V0KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMC0wdWJ1bnR1MS4xCm5hbWU6IGdub21lLWljb24tdGhlbWUtZnVsbApkZXNjcmlwdGlvbjogR05PTUUgRGVza3RvcCBpY29uIHRoZW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4wLTEKbmFtZTogZ25vbWUtaWNvbi10aGVtZS1zeW1ib2xpYwpkZXNjcmlwdGlvbjogR05PTUUgZGVza3RvcCBpY29uIHRoZW1lIChzeW1ib2xpYyBpY29ucykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjItMnVidW50dTQKbmFtZTogZ25vbWUta2V5cmluZwpkZXNjcmlwdGlvbjogR05PTUUga2V5cmluZyBzZXJ2aWNlcyAoZGFlbW9uIGFuZCB0b29scykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjAtMHVidW50dTMuMQpuYW1lOiBnbm9tZS1tZWRpYQpkZXNjcmlwdGlvbjogR05PTUUgbWVkaWEgdXRpbGl0aWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4wLTB1YnVudHUxCm5hbWU6IGdub21lLW1lbnVzCmRlc2NyaXB0aW9uOiBHTk9NRSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZnJlZWRlc2t0b3AgbWVudSBzcGVjaWZpY2F0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC41LTEKbmFtZTogZ25vbWUtbXBsYXllcgpkZXNjcmlwdGlvbjogQSBHVEsrIGludGVyZmFjZSBmb3IgTVBsYXllcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0wdWJ1bnR1MQpuYW1lOiBnbm9tZS1uZXR0b29sCmRlc2NyaXB0aW9uOiBuZXR3b3JrIGluZm9ybWF0aW9uIHRvb2wgZm9yIEdOT01FCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4wLTB1YnVudHUxCm5hbWU6IGdub21lLW9ubGluZS1hY2NvdW50cwpkZXNjcmlwdGlvbjogR05PTUUgT25saW5lIEFjY291bnRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4yLTB1YnVudHUwLjEKbmFtZTogZ25vbWUtb3JjYQpkZXNjcmlwdGlvbjogU2NyaXB0YWJsZSBzY3JlZW4gcmVhZGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My40LjEtMHVidW50dTEuMQpuYW1lOiBnbm9tZS1wYW5lbApkZXNjcmlwdGlvbjogbGF1bmNoZXIgYW5kIGRvY2tpbmcgZmFjaWxpdHkgZm9yIEdOT01FCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My40LjEtMHVidW50dTEuMQpuYW1lOiBnbm9tZS1wYW5lbC1kYXRhCmRlc2NyaXB0aW9uOiBjb21tb24gZmlsZXMgZm9yIHRoZSBHTk9NRSBQYW5lbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMC0wdWJ1bnR1MS4xCm5hbWU6IGdub21lLXBvd2VyLW1hbmFnZXIKZGVzY3JpcHRpb246IHBvd2VyIG1hbmFnZW1lbnQgdG9vbCBmb3IgdGhlIEdOT01FIGRlc2t0b3AKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjEtMHVidW50dTEKbmFtZTogZ25vbWUtc2NyZWVuc2F2ZXIKZGVzY3JpcHRpb246IEdOT01FIHNjcmVlbiBzYXZlciBhbmQgbG9ja2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxCm5hbWU6IGdub21lLXNjcmVlbnNob3QKZGVzY3JpcHRpb246IHNjcmVlbnNob3QgYXBwbGljYXRpb24gZm9yIEdOT01FCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4xLTB1YnVudHU4Cm5hbWU6IGdub21lLXNlc3Npb24KZGVzY3JpcHRpb246IEdOT01FIFNlc3Npb24gTWFuYWdlciAtIEdOT01FIDMgc2Vzc2lvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMS0wdWJ1bnR1OApuYW1lOiBnbm9tZS1zZXNzaW9uLWJpbgpkZXNjcmlwdGlvbjogR05PTUUgU2Vzc2lvbiBNYW5hZ2VyIC0gTWluaW1hbCBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjgtM3VidW50dTMKbmFtZTogZ25vbWUtc2Vzc2lvbi1jYW5iZXJyYQpkZXNjcmlwdGlvbjogR05PTUUgc2Vzc2lvbiBsb2cgaW4gYW5kIGxvZyBvdXQgc291bmQgZXZlbnRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4xLTB1YnVudHU4Cm5hbWU6IGdub21lLXNlc3Npb24tY29tbW9uCmRlc2NyaXB0aW9uOiBHTk9NRSBTZXNzaW9uIE1hbmFnZXIgLSBjb21tb24gZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjEtMHVidW50dTgKbmFtZTogZ25vbWUtc2Vzc2lvbi1mYWxsYmFjawpkZXNjcmlwdGlvbjogR05PTUUgU2Vzc2lvbiBNYW5hZ2VyIC0gR05PTUUgZmFsbGJhY2sgc2Vzc2lvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMi0wdWJ1bnR1MC42Cm5hbWU6IGdub21lLXNldHRpbmdzLWRhZW1vbgpkZXNjcmlwdGlvbjogZGFlbW9uIGhhbmRsaW5nIHRoZSBHTk9NRSBzZXNzaW9uIHNldHRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUyCm5hbWU6IGdub21lLXNoZWxsCmRlc2NyaXB0aW9uOiBncmFwaGljYWwgc2hlbGwgZm9yIHRoZSBHTk9NRSBkZXNrdG9wCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUyCm5hbWU6IGdub21lLXNoZWxsLWNvbW1vbgpkZXNjcmlwdGlvbjogY29tbW9uIGZpbGVzIGZvciB0aGUgR05PTUUgZ3JhcGhpY2FsIHNoZWxsCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My40LjEtMHVidW50dTIuMgpuYW1lOiBnbm9tZS1zdWRva3UKZGVzY3JpcHRpb246IFN1ZG9rdSBwdXp6bGUgZ2FtZSBmb3IgR05PTUUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjEtMHVidW50dTEKbmFtZTogZ25vbWUtc3lzdGVtLWxvZwpkZXNjcmlwdGlvbjogc3lzdGVtIGxvZyB2aWV3ZXIgZm9yIEdOT01FCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxCm5hbWU6IGdub21lLXN5c3RlbS1tb25pdG9yCmRlc2NyaXB0aW9uOiBQcm9jZXNzIHZpZXdlciBhbmQgc3lzdGVtIHJlc291cmNlIG1vbml0b3IgZm9yIEdOT01FCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4wLTJ1YnVudHUxCm5hbWU6IGdub21lLXN5c3RlbS10b29scwpkZXNjcmlwdGlvbjogQ3Jvc3MtcGxhdGZvcm0gY29uZmlndXJhdGlvbiB1dGlsaXRpZXMgZm9yIEdOT01FCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLjEtMHVidW50dTEKbmFtZTogZ25vbWUtdGVybWluYWwKZGVzY3JpcHRpb246IEdOT01FIHRlcm1pbmFsIGVtdWxhdG9yIGFwcGxpY2F0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLjEtMHVidW50dTEKbmFtZTogZ25vbWUtdGVybWluYWwtZGF0YQpkZXNjcmlwdGlvbjogRGF0YSBmaWxlcyBmb3IgdGhlIEdOT01FIHRlcm1pbmFsIGVtdWxhdG9yCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxLjIKbmFtZTogZ25vbWUtdGhlbWVzLXN0YW5kYXJkCmRlc2NyaXB0aW9uOiBTdGFuZGFyZCBnbm9tZSB0aGVtZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4zLjQtMHVidW50dTEKbmFtZTogZ25vbWUtdHdlYWstdG9vbApkZXNjcmlwdGlvbjogdG9vbCB0byBhZGp1c3QgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgR05PTUUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjEtMQpuYW1lOiBnbm9tZS11c2VyLWd1aWRlCmRlc2NyaXB0aW9uOiBHTk9NRSB1c2VyJ3MgZ3VpZGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjItMHVidW50dTEKbmFtZTogZ25vbWUtdXNlci1zaGFyZQpkZXNjcmlwdGlvbjogVXNlciBsZXZlbCBwdWJsaWMgZmlsZSBzaGFyaW5nIHZpYSBXZWJEQVYgb3IgT2JleEZUUAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQuMC0xCm5hbWU6IGdub21lLXZpZGVvLWVmZmVjdHMKZGVzY3JpcHRpb246IEdOT01FIFZpZGVvIEVmZmVjdHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjQuMS0wdWJ1bnR1Mi4yCm5hbWU6IGdub21pbmUKZGVzY3JpcHRpb246IHBvcHVsYXIgbWluZXN3ZWVwZXIgcHV6emxlIGdhbWUgZm9yIEdOT01FCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4xMS0zdWJ1bnR1Mi4yCm5hbWU6IGdudXBnCmRlc2NyaXB0aW9uOiBHTlUgcHJpdmFjeSBndWFyZCAtIGEgZnJlZSBQR1AgcmVwbGFjZW1lbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjE3LTJ1YnVudHUyLjEyLjA0LjIKbmFtZTogZ251cGctYWdlbnQKZGVzY3JpcHRpb246IEdOVSBwcml2YWN5IGd1YXJkIC0gcGFzc3dvcmQgYWdlbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4xMC4yLjAtMQpuYW1lOiBnb29nbGUtdGFsa3BsdWdpbgpkZXNjcmlwdGlvbjogR29vZ2xlIFRhbGsgUGx1Z2luCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4xMS0zdWJ1bnR1Mi4yCm5hbWU6IGdwZ3YKZGVzY3JpcHRpb246IEdOVSBwcml2YWN5IGd1YXJkIC0gc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiB0b29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4wLTF+cHJlY2lzZTAKbmFtZTogZ3BvZGRlcgpkZXNjcmlwdGlvbjogcG9kY2FzdCBjbGllbnQgYW5kIGZlZWQgYWdncmVnYXRvcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI2LjMtMTB1YnVudHUxCm5hbWU6IGdyYXBodml6CmRlc2NyaXB0aW9uOiByaWNoIHNldCBvZiBncmFwaCBkcmF3aW5nIHRvb2xzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMTAtMQpuYW1lOiBncmVwCmRlc2NyaXB0aW9uOiBHTlUgZ3JlcCwgZWdyZXAgYW5kIGZncmVwCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMjEtNwpuYW1lOiBncm9mZi1iYXNlCmRlc2NyaXB0aW9uOiBHTlUgdHJvZmYgdGV4dC1mb3JtYXR0aW5nIHN5c3RlbSAoYmFzZSBzeXN0ZW0gY29tcG9uZW50cykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNy4xLTEwCm5hbWU6IGdyb3dpc29mcwpkZXNjcmlwdGlvbjogRFZEKy1SVy9SIHJlY29yZGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOTktMjF1YnVudHUzLjcKbmFtZTogZ3J1Yi1jb21tb24KZGVzY3JpcHRpb246IEdSYW5kIFVuaWZpZWQgQm9vdGxvYWRlciAoY29tbW9uIGZpbGVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYKbmFtZTogZ3J1Yi1nZnhwYXlsb2FkLWxpc3RzCmRlc2NyaXB0aW9uOiBHUlVCIGdmeHBheWxvYWQgYmxhY2tsaXN0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOTktMjF1YnVudHUzLjcKbmFtZTogZ3J1Yi1wYwpkZXNjcmlwdGlvbjogR1JhbmQgVW5pZmllZCBCb290bG9hZGVyLCB2ZXJzaW9uIDIgKFBDL0JJT1MgdmVyc2lvbikKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS45OS0yMXVidW50dTMuNwpuYW1lOiBncnViLXBjLWJpbgpkZXNjcmlwdGlvbjogR1JhbmQgVW5pZmllZCBCb290bG9hZGVyLCB2ZXJzaW9uIDIgKFBDL0JJT1MgYmluYXJpZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOTktMjF1YnVudHUzLjcKbmFtZTogZ3J1YjItY29tbW9uCmRlc2NyaXB0aW9uOiBHUmFuZCBVbmlmaWVkIEJvb3Rsb2FkZXIgKGNvbW1vbiBmaWxlcyBmb3IgdmVyc2lvbiAyKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIwMTAwMTAzLTMKbmFtZTogZ3MtY2prLXJlc291cmNlCmRlc2NyaXB0aW9uOiBSZXNvdXJjZSBmaWxlcyBmb3IgZ3MtY2prLCBnaG9zdHNjcmlwdCBDSkstVHJ1ZVR5cGUgZXh0ZW5zaW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxCm5hbWU6IGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMKZGVzY3JpcHRpb246IEdTZXR0aW5ncyBkZXNrb3Atd2lkZSBzY2hlbWFzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6OC4xMSt1cndjeXIxLjAuN35wcmU0NC00LjJ1YnVudHUxCm5hbWU6IGdzZm9udHMKZGVzY3JpcHRpb246IEZvbnRzIGZvciB0aGUgR2hvc3RzY3JpcHQgaW50ZXJwcmV0ZXIocykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yMgpuYW1lOiBnc2ZvbnRzLXgxMQpkZXNjcmlwdGlvbjogTWFrZSBHaG9zdHNjcmlwdCBmb250cyBhdmFpbGFibGUgdG8gWDExCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMzYtMXVidW50dTEKbmFtZTogZ3N0cmVhbWVyLXRvb2xzCmRlc2NyaXB0aW9uOiBUb29scyBmb3IgdXNlIHdpdGggR1N0cmVhbWVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMzYtMXVidW50dTAuMQpuYW1lOiBnc3RyZWFtZXIwLjEwLWFsc2EKZGVzY3JpcHRpb246IEdTdHJlYW1lciBwbHVnaW4gZm9yIEFMU0EKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMC4xMy0xCm5hbWU6IGdzdHJlYW1lcjAuMTAtZmZtcGVnCmRlc2NyaXB0aW9uOiBGRm1wZWcgcGx1Z2luIGZvciBHU3RyZWFtZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMC4zMS0xdWJ1bnR1MQpuYW1lOiBnc3RyZWFtZXIwLjEwLWdjb25mCmRlc2NyaXB0aW9uOiBHU3RyZWFtZXIgcGx1Z2luIGZvciBnZXR0aW5nIHRoZSBzaW5rL3NvdXJjZSBpbmZvcm1hdGlvbiBmcm9tIEdDb25mCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMTctMgpuYW1lOiBnc3RyZWFtZXIwLjEwLWdub25saW4KZGVzY3JpcHRpb246IG5vbi1saW5lYXIgZWRpdGluZyBtb2R1bGUgZm9yIEdTdHJlYW1lcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuMS0ydWJ1bnR1MQpuYW1lOiBnc3RyZWFtZXIwLjEwLW5pY2UKZGVzY3JpcHRpb246IElDRSBsaWJyYXJ5IChHU3RyZWFtZXIgcGx1Z2luKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEwLjIyLjMtMnVidW50dTIuMQpuYW1lOiBnc3RyZWFtZXIwLjEwLXBsdWdpbnMtYmFkCmRlc2NyaXB0aW9uOiBHU3RyZWFtZXIgcGx1Z2lucyBmcm9tIHRoZSAiYmFkIiBzZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMC4zNi0xdWJ1bnR1MC4xCm5hbWU6IGdzdHJlYW1lcjAuMTAtcGx1Z2lucy1iYXNlCmRlc2NyaXB0aW9uOiBHU3RyZWFtZXIgcGx1Z2lucyBmcm9tIHRoZSAiYmFzZSIgc2V0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMzYtMXVidW50dTAuMQpuYW1lOiBnc3RyZWFtZXIwLjEwLXBsdWdpbnMtYmFzZTppMzg2CmRlc2NyaXB0aW9uOiBHU3RyZWFtZXIgcGx1Z2lucyBmcm9tIHRoZSAiYmFzZSIgc2V0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMzYtMXVidW50dTAuMQpuYW1lOiBnc3RyZWFtZXIwLjEwLXBsdWdpbnMtYmFzZS1hcHBzCmRlc2NyaXB0aW9uOiBHU3RyZWFtZXIgaGVscGVyIHByb2dyYW1zIGZyb20gdGhlICJiYXNlIiBzZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMC4zMS0xdWJ1bnR1MQpuYW1lOiBnc3RyZWFtZXIwLjEwLXBsdWdpbnMtZ29vZApkZXNjcmlwdGlvbjogR1N0cmVhbWVyIHBsdWdpbnMgZnJvbSB0aGUgImdvb2QiIHNldAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEwLjMxLTF1YnVudHUxCm5hbWU6IGdzdHJlYW1lcjAuMTAtcGx1Z2lucy1nb29kOmkzODYKZGVzY3JpcHRpb246IEdTdHJlYW1lciBwbHVnaW5zIGZyb20gdGhlICJnb29kIiBzZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMC4xOC4zLTF1YnVudHUxCm5hbWU6IGdzdHJlYW1lcjAuMTAtcGx1Z2lucy11Z2x5CmRlc2NyaXB0aW9uOiBHU3RyZWFtZXIgcGx1Z2lucyBmcm9tIHRoZSAidWdseSIgc2V0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMzEtMXVidW50dTEKbmFtZTogZ3N0cmVhbWVyMC4xMC1wdWxzZWF1ZGlvCmRlc2NyaXB0aW9uOiBHU3RyZWFtZXIgcGx1Z2luIGZvciBQdWxzZUF1ZGlvCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMzYtMXVidW50dTEKbmFtZTogZ3N0cmVhbWVyMC4xMC10b29scwpkZXNjcmlwdGlvbjogVG9vbHMgZm9yIHVzZSB3aXRoIEdTdHJlYW1lcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEwLjM2LTF1YnVudHUwLjEKbmFtZTogZ3N0cmVhbWVyMC4xMC14CmRlc2NyaXB0aW9uOiBHU3RyZWFtZXIgcGx1Z2lucyBmb3IgWDExIGFuZCBQYW5nbwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEwLjM2LTF1YnVudHUwLjEKbmFtZTogZ3N0cmVhbWVyMC4xMC14OmkzODYKZGVzY3JpcHRpb246IEdTdHJlYW1lciBwbHVnaW5zIGZvciBYMTEgYW5kIFBhbmdvCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMy44LTQuMXVidW50dTEKbmFtZTogZ3RrLXJlY29yZG15ZGVza3RvcApkZXNjcmlwdGlvbjogR3JhcGhpY2FsIGZyb250ZW5kIGZvciByZWNvcmRNeURlc2t0b3Agc2NyZWVuY2FzdCB0b29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Mi4yMC4yLTF1YnVudHUxCm5hbWU6IGd0azItZW5naW5lcwpkZXNjcmlwdGlvbjogdGhlbWUgZW5naW5lcyBmb3IgR1RLKyAyLngKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToyLjIwLjItMXVidW50dTEKbmFtZTogZ3RrMi1lbmdpbmVzOmkzODYKZGVzY3JpcHRpb246IHRoZW1lIGVuZ2luZXMgZm9yIEdUSysgMi54CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOTguMi0wdWJ1bnR1MQpuYW1lOiBndGsyLWVuZ2luZXMtbXVycmluZQpkZXNjcmlwdGlvbjogY2Fpcm8tYmFzZWQgZ3RrKy0yLjAgdGhlbWUgZW5naW5lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOTguMi0wdWJ1bnR1MQpuYW1lOiBndGsyLWVuZ2luZXMtbXVycmluZTppMzg2CmRlc2NyaXB0aW9uOiBjYWlyby1iYXNlZCBndGsrLTIuMCB0aGVtZSBlbmdpbmUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjItMHVidW50dTEuMQpuYW1lOiBndGsyLWVuZ2luZXMtb3h5Z2VuOmkzODYKZGVzY3JpcHRpb246IE94eWdlbiB3aWRnZXQgdGhlbWUgZm9yIEdUSystYmFzZWQgYXBwbGljYXRpb25zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjQuMTAtMHVidW50dTYKbmFtZTogZ3RrMi1lbmdpbmVzLXBpeGJ1ZjppMzg2CmRlc2NyaXB0aW9uOiBwaXhidWYtYmFzZWQgdGhlbWUgZm9yIEdUSysgMi54CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4yLTB1YnVudHUxCm5hbWU6IGd0azMtZW5naW5lcy11bmljbwpkZXNjcmlwdGlvbjogVW5pY28gR3RrKyAzIHRoZW1lIGVuZ2luZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQwK2RzLTIKbmFtZTogZ3RrcGVyZgpkZXNjcmlwdGlvbjogR1RLKyBwZXJmb3JtYW5jZSBiZW5jaG1hcmsKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjQuMS4xLTB1YnVudHUxCm5hbWU6IGd1Y2hhcm1hcApkZXNjcmlwdGlvbjogVW5pY29kZSBjaGFyYWN0ZXIgcGlja2VyIGFuZCBmb250IGJyb3dzZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LjgrMS02dWJ1bnR1MgpuYW1lOiBndWlsZS0xLjgtbGlicwpkZXNjcmlwdGlvbjogQ29yZSBHdWlsZSBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMi4xLTB1YnVudHUxLjEKbmFtZTogZ3ZmcwpkZXNjcmlwdGlvbjogdXNlcnNwYWNlIHZpcnR1YWwgZmlsZXN5c3RlbSAtIEdJTyBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMi4xLTB1YnVudHUxLjEKbmFtZTogZ3ZmczppMzg2CmRlc2NyaXB0aW9uOiB1c2Vyc3BhY2UgdmlydHVhbCBmaWxlc3lzdGVtIC0gR0lPIG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEyLjEtMHVidW50dTEuMQpuYW1lOiBndmZzLWJhY2tlbmRzCmRlc2NyaXB0aW9uOiB1c2Vyc3BhY2UgdmlydHVhbCBmaWxlc3lzdGVtIC0gYmFja2VuZHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMi4xLTB1YnVudHUxLjEKbmFtZTogZ3Zmcy1iaW4KZGVzY3JpcHRpb246IHVzZXJzcGFjZSB2aXJ0dWFsIGZpbGVzeXN0ZW0gLSBiaW5hcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEyLjEtMHVidW50dTEuMQpuYW1lOiBndmZzLWNvbW1vbgpkZXNjcmlwdGlvbjogdXNlcnNwYWNlIHZpcnR1YWwgZmlsZXN5c3RlbSAtIGNvbW1vbiBkYXRhIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMTIuMS0wdWJ1bnR1MS4xCm5hbWU6IGd2ZnMtZGFlbW9ucwpkZXNjcmlwdGlvbjogdXNlcnNwYWNlIHZpcnR1YWwgZmlsZXN5c3RlbSAtIHNlcnZlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMi4xLTB1YnVudHUxLjEKbmFtZTogZ3Zmcy1mdXNlCmRlc2NyaXB0aW9uOiB1c2Vyc3BhY2UgdmlydHVhbCBmaWxlc3lzdGVtIC0gZnVzZSBzZXJ2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMi4xLTB1YnVudHUxLjEKbmFtZTogZ3Zmcy1saWJzCmRlc2NyaXB0aW9uOiB1c2Vyc3BhY2UgdmlydHVhbCBmaWxlc3lzdGVtIC0gcHJpdmF0ZSBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMi4xLTB1YnVudHUxLjEKbmFtZTogZ3Zmcy1saWJzOmkzODYKZGVzY3JpcHRpb246IHVzZXJzcGFjZSB2aXJ0dWFsIGZpbGVzeXN0ZW0gLSBwcml2YXRlIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMi0wdWJ1bnR1Mi4xCm5hbWU6IGd3aWJiZXIKZGVzY3JpcHRpb246IE9wZW4gc291cmNlIHNvY2lhbCBuZXR3b3JraW5nIGNsaWVudCBmb3IgR05PTUUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjItMHVidW50dTIuMQpuYW1lOiBnd2liYmVyLXNlcnZpY2UKZGVzY3JpcHRpb246IE9wZW4gc291cmNlIHNvY2lhbCBuZXR3b3JraW5nIGNsaWVudCBmb3IgR05PTUUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjItMHVidW50dTIuMQpuYW1lOiBnd2liYmVyLXNlcnZpY2UtZmFjZWJvb2sKZGVzY3JpcHRpb246IEZhY2Vib29rIHBsdWdpbiBmb3IgR3dpYmJlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMi0wdWJ1bnR1Mi4xCm5hbWU6IGd3aWJiZXItc2VydmljZS1pZGVudGljYQpkZXNjcmlwdGlvbjogSWRlbnRpLmNhIHBsdWdpbiBmb3IgR3dpYmJlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMi0wdWJ1bnR1Mi4xCm5hbWU6IGd3aWJiZXItc2VydmljZS10d2l0dGVyCmRlc2NyaXB0aW9uOiBUd2l0dGVyIHBsdWdpbiBmb3IgR3dpYmJlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjQtMXVidW50dTIKbmFtZTogZ3ppcApkZXNjcmlwdGlvbjogR05VIGNvbXByZXNzaW9uIHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1MTk0c3ZucHBhMX5wcmVjaXNlMQpuYW1lOiBoYW5kYnJha2UtZ3RrCmRlc2NyaXB0aW9uOiB2ZXJzYXRpbGUgRFZEIHJpcHBlciBhbmQgdmlkZW8gdHJhbnNjb2RlciAtIEdUSyBHVUkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLWJldGExNS01MQpuYW1lOiBoZGR0ZW1wCmRlc2NyaXB0aW9uOiBoYXJkIGRyaXZlIHRlbXBlcmF0dXJlIG1vbml0b3JpbmcgdXRpbGl0eQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA5LjM3LTB1YnVudHUzLjEKbmFtZTogaGRwYXJtCmRlc2NyaXB0aW9uOiB0dW5lIGhhcmQgZGlzayBwYXJhbWV0ZXJzIGZvciBoaWdoIHBlcmZvcm1hbmNlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEyLjUtMWJ1aWxkMQpuYW1lOiBoZWlybG9vbS1tYWlseApkZXNjcmlwdGlvbjogZmVhdHVyZS1yaWNoIEJTRCBtYWlsKDEpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNDAuNHVidW50dTEKbmFtZTogaGVscDJtYW4KZGVzY3JpcHRpb246IEF1dG9tYXRpYyBtYW5wYWdlIGdlbmVyYXRvcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIuMTItNApuYW1lOiBoZXhlZGl0CmRlc2NyaXB0aW9uOiB2aWV3IGFuZCBlZGl0IGZpbGVzIGluIGhleGFkZWNpbWFsIG9yIGluIEFTQ0lJCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTItMXVidW50dTIKbmFtZTogaGljb2xvci1pY29uLXRoZW1lCmRlc2NyaXB0aW9uOiBkZWZhdWx0IGZhbGxiYWNrIHRoZW1lIGZvciBGcmVlRGVza3RvcC5vcmcgaWNvbiB0aGVtZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wNnVidW50dTEKbmFtZTogaG9zdG5hbWUKZGVzY3JpcHRpb246IHV0aWxpdHkgdG8gc2V0L3Nob3cgdGhlIGhvc3QgbmFtZSBvciBkb21haW4gbmFtZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjEyLjItMXVidW50dTMuMQpuYW1lOiBocGxpcApkZXNjcmlwdGlvbjogSFAgTGludXggUHJpbnRpbmcgYW5kIEltYWdpbmcgU3lzdGVtIChIUExJUCkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4xMi4yLTF1YnVudHUzLjEKbmFtZTogaHBsaXAtZGF0YQpkZXNjcmlwdGlvbjogSFAgTGludXggUHJpbnRpbmcgYW5kIEltYWdpbmcgLSBkYXRhIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMy4yYS0xNQpuYW1lOiBodG1sMnRleHQKZGVzY3JpcHRpb246IGFkdmFuY2VkIEhUTUwgdG8gdGV4dCBjb252ZXJ0ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjEtMQpuYW1lOiBodG9wCmRlc2NyaXB0aW9uOiBpbnRlcmFjdGl2ZSBwcm9jZXNzZXMgdmlld2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNS4zLjExCm5hbWU6IGh1bWFuaXR5LWljb24tdGhlbWUKZGVzY3JpcHRpb246IEh1bWFuaXR5IEljb24gdGhlbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjAwNzA4MjktNHVidW50dTMKbmFtZTogaHVuc3BlbGwtZW4tdXMKZGVzY3JpcHRpb246IEVuZ2xpc2hfYW1lcmljYW4gZGljdGlvbmFyeSBmb3IgaHVuc3BlbGwKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yMzMtMXVidW50dTEKbmFtZTogaHdkYXRhCmRlc2NyaXB0aW9uOiBoYXJkd2FyZSBpZGVudGlmaWNhdGlvbiAvIGNvbmZpZ3VyYXRpb24gZGF0YQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjguMy0xCm5hbWU6IGh5cGhlbi1lbi11cwpkZXNjcmlwdGlvbjogVVMgRW5nbGlzaCBoeXBoZW5hdGlvbiBwYXR0ZXJucyBmb3IgTGlicmVPZmZpY2UvT3Blbk9mZmljZS5vcmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjAwOTA4MDh1YnVudHUzNgpuYW1lOiBpYTMyLWxpYnMKZGVzY3JpcHRpb246IGlhMzIgc2hhcmVkIGxpYnJhcmllcyAtIHRyYW5zaXRpb25hbCBwYWNrYWdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIwMDkwODA4dWJ1bnR1MzYKbmFtZTogaWEzMi1saWJzLW11bHRpYXJjaDppMzg2CmRlc2NyaXB0aW9uOiBNdWx0aS1hcmNoIHZlcnNpb25zIG9mIGZvcm1lciBpYTMyLWxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjQuMS0zdWJ1bnR1MQpuYW1lOiBpYnVzCmRlc2NyaXB0aW9uOiBJbnRlbGxpZ2VudCBJbnB1dCBCdXMgLSBjb3JlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4xLTN1YnVudHUxCm5hbWU6IGlidXMtZ3RrCmRlc2NyaXB0aW9uOiBJbnRlbGxpZ2VudCBJbnB1dCBCdXMgLSBHVEsrMiBzdXBwb3J0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4xLTN1YnVudHUxCm5hbWU6IGlidXMtZ3RrOmkzODYKZGVzY3JpcHRpb246IEludGVsbGlnZW50IElucHV0IEJ1cyAtIEdUSysyIHN1cHBvcnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS40LjEtM3VidW50dTEKbmFtZTogaWJ1cy1ndGszCmRlc2NyaXB0aW9uOiBJbnRlbGxpZ2VudCBJbnB1dCBCdXMgLSBHVEsrMyBzdXBwb3J0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4wLTEKbmFtZTogaWJ1cy1waW55aW4KZGVzY3JpcHRpb246IFBpbnlpbiBlbmdpbmUgZm9yIElCdXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS40LjAtMQpuYW1lOiBpYnVzLXBpbnlpbi1kYi1hbmRyb2lkCmRlc2NyaXB0aW9uOiBQaW55aW4gZW5naW5lIGZvciBJQnVzIC0gQW5kcm9pZCBkYXRhYmFzZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMuOS4yMDExMDgyNy0xdWJ1bnR1MQpuYW1lOiBpYnVzLXRhYmxlCmRlc2NyaXB0aW9uOiB0YWJsZSBlbmdpbmUgZm9yIElCdXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4zLTQKbmFtZTogaWNlY3JlYW0KZGVzY3JpcHRpb246IGxpZ2h0d2VpZ2h0IHN0cmVhbSBkb3dubG9hZCB1dGlsaXR5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDd1OS0yLjMuNC0wdWJ1bnR1MS4xMi4wNC4xCm5hbWU6IGljZWR0ZWEtNy1qcmUtamFtdm0KZGVzY3JpcHRpb246IEFsdGVybmF0aXZlIEpWTSBmb3IgT3BlbkpESywgdXNpbmcgSmFtVk0KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLTJ1YnVudHUxLjMKbmFtZTogaWNlZHRlYS03LXBsdWdpbgpkZXNjcmlwdGlvbjogd2ViIGJyb3dzZXIgcGx1Z2luIGJhc2VkIG9uIE9wZW5KREsgYW5kIEljZWRUZWEgdG8gZXhlY3V0ZSBKYXZhIGFwcGxldHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLTJ1YnVudHUxLjMKbmFtZTogaWNlZHRlYS1uZXR4CmRlc2NyaXB0aW9uOiBOZXRYIC0gaW1wbGVtZW50YXRpb24gb2YgdGhlIEphdmEgTmV0d29yayBMYXVuY2hpbmcgUHJvdG9jb2wgKEpOTFApCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi0ydWJ1bnR1MS4zCm5hbWU6IGljZWR0ZWEtbmV0eC1jb21tb24KZGVzY3JpcHRpb246IE5ldFggLSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgSmF2YSBOZXR3b3JrIExhdW5jaGluZyBQcm90b2NvbCAoSk5MUCkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC43fmJldGEydWJ1bnR1OApuYW1lOiBpZnVwZG93bgpkZXNjcmlwdGlvbjogaGlnaCBsZXZlbCB0b29scyB0byBjb25maWd1cmUgbmV0d29yayBpbnRlcmZhY2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMjB1YnVudHU1LjEKbmFtZTogaW0tc3dpdGNoCmRlc2NyaXB0aW9uOiBJbnB1dCBtZXRob2Qgc3dpdGNoIGZyYW1ld29yawoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4OjYuNi45LjctNXVidW50dTMuMgpuYW1lOiBpbWFnZW1hZ2ljawpkZXNjcmlwdGlvbjogaW1hZ2UgbWFuaXB1bGF0aW9uIHByb2dyYW1zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDg6Ni42LjkuNy01dWJ1bnR1My4yCm5hbWU6IGltYWdlbWFnaWNrLWNvbW1vbgpkZXNjcmlwdGlvbjogaW1hZ2UgbWFuaXB1bGF0aW9uIHByb2dyYW1zIC0tIGluZnJhc3RydWN0dXJlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMi4xMS0xCm5hbWU6IGluZGVudApkZXNjcmlwdGlvbjogQyBsYW5ndWFnZSBzb3VyY2UgY29kZSBmb3JtYXR0aW5nIHByb2dyYW0KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC41LjAtMHVidW50dTEKbmFtZTogaW5kaWNhdG9yLWFwcGxldC1jb21wbGV0ZQpkZXNjcmlwdGlvbjogQ2xvbmUgb2YgdGhlIEdOT01FIHBhbmVsIGluZGljYXRvciBhcHBsZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC41LjAtMHVidW50dTEKbmFtZTogaW5kaWNhdG9yLWFwcGxpY2F0aW9uCmRlc2NyaXB0aW9uOiBBcHBsaWNhdGlvbiBJbmRpY2F0b3JzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMy45Ny0wdWJ1bnR1MQpuYW1lOiBpbmRpY2F0b3ItYXBwbWVudQpkZXNjcmlwdGlvbjogSW5kaWNhdG9yIGZvciBhcHBsaWNhdGlvbiBtZW51cy4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjk0LTB1YnVudHUyCm5hbWU6IGluZGljYXRvci1kYXRldGltZQpkZXNjcmlwdGlvbjogU2ltcGxlIGNsb2NrCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4wLTB1YnVudHUyCm5hbWU6IGluZGljYXRvci1tZXNzYWdlcwpkZXNjcmlwdGlvbjogaW5kaWNhdG9yIHRoYXQgY29sbGVjdHMgbWVzc2FnZXMgdGhhdCBuZWVkIGEgcmVzcG9uc2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLTB1YnVudHUxCm5hbWU6IGluZGljYXRvci1wb3dlcgpkZXNjcmlwdGlvbjogSW5kaWNhdG9yIHNob3dpbmcgcG93ZXIgc3RhdGUuCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS42LTB1YnVudHUxCm5hbWU6IGluZGljYXRvci1wcmludGVycwpkZXNjcmlwdGlvbjogaW5kaWNhdG9yIHNob3dpbmcgYWN0aXZlIHByaW50IGpvYnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjk2LTB1YnVudHUxCm5hbWU6IGluZGljYXRvci1zZXNzaW9uCmRlc2NyaXB0aW9uOiBpbmRpY2F0b3Igc2hvd2luZyBzZXNzaW9uIG1hbmFnZW1lbnQsIHN0YXR1cyBhbmQgdXNlciBzd2l0Y2hpbmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44LjUuMC0wdWJ1bnR1Mi4xCm5hbWU6IGluZGljYXRvci1zb3VuZApkZXNjcmlwdGlvbjogU3lzdGVtIHNvdW5kIGluZGljYXRvci4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjAtMHVidW50dTIKbmFtZTogaW5kaWNhdG9yLXN0YXR1cy1wcm92aWRlci1tYzUKZGVzY3JpcHRpb246IGluZGljYXRvci1tZXNzYWdlcyBzdGF0dXMgcHJvdmlkZXIgZm9yIHRlbGVwYXRoeSBtaXNzaW9uLWNvbnRyb2wtNQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMC0wdWJ1bnR1MgpuYW1lOiBpbmRpY2F0b3Itc3RhdHVzLXByb3ZpZGVyLXBpZGdpbgpkZXNjcmlwdGlvbjogaW5kaWNhdG9yLW1lc3NhZ2VzIHN0YXR1cyBwcm92aWRlciBmb3IgcGlkZ2luCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDExLjExLjI4LTB1YnVudHUxLjIKbmFtZTogaW5kaWNhdG9yLXdlYXRoZXIKZGVzY3JpcHRpb246IGluZGljYXRvciB0aGF0IGRpc3BsYXlzIHdlYXRoZXIgaW5mb3JtYXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC4xM2EuZGZzZy4xLTh1YnVudHUyCm5hbWU6IGluZm8KZGVzY3JpcHRpb246IFN0YW5kYWxvbmUgR05VIEluZm8gZG9jdW1lbnRhdGlvbiBicm93c2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOTl1YnVudHUxMwpuYW1lOiBpbml0cmFtZnMtdG9vbHMKZGVzY3JpcHRpb246IHRvb2xzIGZvciBnZW5lcmF0aW5nIGFuIGluaXRyYW1mcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjk5dWJ1bnR1MTMKbmFtZTogaW5pdHJhbWZzLXRvb2xzLWJpbgpkZXNjcmlwdGlvbjogYmluYXJpZXMgdXNlZCBieSBpbml0cmFtZnMtdG9vbHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi44OGRzZi0xMy4xMHVidW50dTExLjEKbmFtZTogaW5pdHNjcmlwdHMKZGVzY3JpcHRpb246IHNjcmlwdHMgZm9yIGluaXRpYWxpemluZyBhbmQgc2h1dHRpbmcgZG93biB0aGUgc3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNDguMy4xLTF1YnVudHUxCm5hbWU6IGlua3NjYXBlCmRlc2NyaXB0aW9uOiB2ZWN0b3ItYmFzZWQgZHJhd2luZyBwcm9ncmFtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMC4yMDExMDEwNi0wdWJ1bnR1MQpuYW1lOiBpbnB1dC11dGlscwpkZXNjcmlwdGlvbjogdXRpbGl0aWVzIGZvciB0aGUgaW5wdXQgbGF5ZXIgb2YgdGhlIExpbnV4IGtlcm5lbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuNC4yLTEKbmFtZTogaW5wdXRhdHRhY2gKZGVzY3JpcHRpb246IHV0aWxpdHkgdG8gY29ubmVjdCBzZXJpYWwtYXR0YWNoZWQgcGVyaXBoZXJhbHMgdG8gdGhlIGlucHV0IHN1YnN5c3RlbQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjE0LjAtMi4xdWJ1bnR1MgpuYW1lOiBpbnNzZXJ2CmRlc2NyaXB0aW9uOiBUb29sIHRvIG9yZ2FuaXplIGJvb3Qgc2VxdWVuY2UgdXNpbmcgTFNCIGluaXQuZCBzY3JpcHQgZGVwZW5kZW5jaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuMTNhLmRmc2cuMS04dWJ1bnR1MgpuYW1lOiBpbnN0YWxsLWluZm8KZGVzY3JpcHRpb246IE1hbmFnZSBpbnN0YWxsZWQgZG9jdW1lbnRhdGlvbiBpbiBpbmZvIGZvcm1hdAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjItMQpuYW1lOiBpbnRlbC1ncHUtdG9vbHMKZGVzY3JpcHRpb246IHRvb2xzIGZvciBkZWJ1Z2dpbmcgdGhlIEludGVsIGdyYXBoaWNzIGRyaXZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjUwLjItMgpuYW1lOiBpbnRsdG9vbApkZXNjcmlwdGlvbjogVXRpbGl0eSBzY3JpcHRzIGZvciBpbnRlcm5hdGlvbmFsaXppbmcgWE1MCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMzUuMCsyMDA2MDcxMC4xCm5hbWU6IGludGx0b29sLWRlYmlhbgpkZXNjcmlwdGlvbjogSGVscCBpMThuIG9mIFJGQzgyMiBjb21wbGlhbnQgY29uZmlnIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDM5Ny0yCm5hbWU6IGlvem9uZTMKZGVzY3JpcHRpb246IEZpbGVzeXN0ZW0gYW5kIERpc2sgQmVuY2htYXJraW5nIFRvb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjUtMi4xCm5hbWU6IGlwZXJmCmRlc2NyaXB0aW9uOiBJbnRlcm5ldCBQcm90b2NvbCBiYW5kd2lkdGggbWVhc3VyaW5nIHRvb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjAxMTExMTctMXVidW50dTIKbmFtZTogaXByb3V0ZQpkZXNjcmlwdGlvbjogbmV0d29ya2luZyBhbmQgdHJhZmZpYyBjb250cm9sIHRvb2xzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4xMi0xdWJ1bnR1NApuYW1lOiBpcHRhYmxlcwpkZXNjcmlwdGlvbjogYWRtaW5pc3RyYXRpb24gdG9vbHMgZm9yIHBhY2tldCBmaWx0ZXJpbmcgYW5kIE5BVAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzOjIwMTAxMDA2LTF1YnVudHUxCm5hbWU6IGlwdXRpbHMtYXJwaW5nCmRlc2NyaXB0aW9uOiBUb29sIHRvIHNlbmQgSUNNUCBlY2hvIHJlcXVlc3RzIHRvIGFuIEFSUCBhZGRyZXNzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDM6MjAxMDEwMDYtMXVidW50dTEKbmFtZTogaXB1dGlscy1waW5nCmRlc2NyaXB0aW9uOiBUb29scyB0byB0ZXN0IHRoZSByZWFjaGFiaWxpdHkgb2YgbmV0d29yayBob3N0cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzOjIwMTAxMDA2LTF1YnVudHUxCm5hbWU6IGlwdXRpbHMtdHJhY2VwYXRoCmRlc2NyaXB0aW9uOiBUb29scyB0byB0cmFjZSB0aGUgbmV0d29yayBwYXRoIHRvIGEgcmVtb3RlIGhvc3QKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMi4xK2Rmc2ctMHVidW50dTEKbmFtZTogaXB5dGhvbgpkZXNjcmlwdGlvbjogZW5oYW5jZWQgaW50ZXJhY3RpdmUgUHl0aG9uIHNoZWxsCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNTYtMXVidW50dTQKbmFtZTogaXJxYmFsYW5jZQpkZXNjcmlwdGlvbjogRGFlbW9uIHRvIGJhbGFuY2UgaW50ZXJydXB0cyBmb3IgU01QIHN5c3RlbXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC4xLkVTVi1SNC0wdWJ1bnR1NS41Cm5hbWU6IGlzYy1kaGNwLWNsaWVudApkZXNjcmlwdGlvbjogSVNDIERIQ1AgY2xpZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuMS5FU1YtUjQtMHVidW50dTUuNQpuYW1lOiBpc2MtZGhjcC1jb21tb24KZGVzY3JpcHRpb246IGNvbW1vbiBmaWxlcyB1c2VkIGJ5IGFsbCB0aGUgaXNjLWRoY3AqIHBhY2thZ2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMzEtMQpuYW1lOiBpc28tY29kZXMKZGVzY3JpcHRpb246IElTTyBsYW5ndWFnZSwgdGVycml0b3J5LCBjdXJyZW5jeSwgc2NyaXB0IGNvZGVzIGFuZCB0aGVpciB0cmFuc2xhdGlvbnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLTEKbmFtZTogaXcKZGVzY3JpcHRpb246IHRvb2wgZm9yIGNvbmZpZ3VyaW5nIExpbnV4IHdpcmVsZXNzIGRldmljZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40M3VidW50dTIKbmFtZTogamF2YS1jb21tb24KZGVzY3JpcHRpb246IEJhc2Ugb2YgYWxsIEphdmEgcGFja2FnZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjctMHVidW50dTcuNApuYW1lOiBqb2NrZXktY29tbW9uCmRlc2NyaXB0aW9uOiB1c2VyIGludGVyZmFjZSBhbmQgZGVza3RvcCBpbnRlZ3JhdGlvbiBmb3IgZHJpdmVyIG1hbmFnZW1lbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjctMHVidW50dTcuNApuYW1lOiBqb2NrZXktZ3RrCmRlc2NyaXB0aW9uOiBHTk9NRSB1c2VyIGludGVyZmFjZSBhbmQgZGVza3RvcCBpbnRlZ3JhdGlvbiBmb3IgZHJpdmVyIG1hbmFnZW1lbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjEtNHVidW50dTEKbmFtZToganBlZ3BpeGkKZGVzY3JpcHRpb246IFJlbW92ZSBob3Qgc3BvdHMgZnJvbSBKUEVHIGltYWdlcyB3aXRoIG1pbmltYWwgcXVhbGl0eSBsb3NzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4wLjErYnpyNjA4LTBqdWp1Mn5wcmVjaXNlMQpuYW1lOiBqdWp1CmRlc2NyaXB0aW9uOiBuZXh0IGdlbmVyYXRpb24gc2VydmljZSBvcmNoZXN0cmF0aW9uIHN5c3RlbQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjE1LjItM3VidW50dTQKbmFtZToga2JkCmRlc2NyaXB0aW9uOiBMaW51eCBjb25zb2xlIGZvbnQgYW5kIGtleXRhYmxlIHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEyK2dpdDIwMDkwMjE3LTF1YnVudHUxOQpuYW1lOiBrZXJuZWxvb3BzLWRhZW1vbgpkZXNjcmlwdGlvbjoga2VybmVsIG9vcHMgdHJhY2tlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjcwdWJ1bnR1NQpuYW1lOiBrZXlib2FyZC1jb25maWd1cmF0aW9uCmRlc2NyaXB0aW9uOiBzeXN0ZW0td2lkZSBrZXlib2FyZCBwcmVmZXJlbmNlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjUuMjUtMXVidW50dTIKbmFtZToga2xpYmMtdXRpbHMKZGVzY3JpcHRpb246IHNtYWxsIHV0aWxpdGllcyBidWlsdCB3aXRoIGtsaWJjIGZvciBlYXJseSBib290CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMTArZGZzZ35iZXRhMS0ydWJ1bnR1MC4zCm5hbWU6IGtyYjUtbG9jYWxlcwpkZXNjcmlwdGlvbjogSW50ZXJuYXRpb25hbGl6YXRpb24gc3VwcG9ydCBmb3IgTUlUIEtlcmJlcm9zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4wK2dpdC0zLjU1ZjZjODgtMHVidW50dTEKbmFtZToga3ZtLWlweGUKZGVzY3JpcHRpb246IFBYRSBST00ncyBmb3IgS1ZNCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEyLjA1LTB1YnVudHUxLjEyLjA0Cm5hbWU6IGxhbmRzY2FwZS1jbGllbnQtdWktaW5zdGFsbApkZXNjcmlwdGlvbjogVGhlIExhbmRzY2FwZSBhZG1pbmlzdHJhdGlvbiBzeXN0ZW0gY2xpZW50IC0gVUkgaW5zdGFsbGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MTIuMDQrMjAxMjA4MDEKbmFtZTogbGFuZ3VhZ2UtcGFjay1lbgpkZXNjcmlwdGlvbjogdHJhbnNsYXRpb24gdXBkYXRlcyBmb3IgbGFuZ3VhZ2UgRW5nbGlzaAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEyLjA0KzIwMTIwODAxCm5hbWU6IGxhbmd1YWdlLXBhY2stZW4tYmFzZQpkZXNjcmlwdGlvbjogdHJhbnNsYXRpb25zIGZvciBsYW5ndWFnZSBFbmdsaXNoCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MTIuMDQrMjAxMjA4MDEKbmFtZTogbGFuZ3VhZ2UtcGFjay1nbm9tZS1lbgpkZXNjcmlwdGlvbjogR05PTUUgdHJhbnNsYXRpb24gdXBkYXRlcyBmb3IgbGFuZ3VhZ2UgRW5nbGlzaAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEyLjA0KzIwMTIwODAxCm5hbWU6IGxhbmd1YWdlLXBhY2stZ25vbWUtZW4tYmFzZQpkZXNjcmlwdGlvbjogR05PTUUgdHJhbnNsYXRpb25zIGZvciBsYW5ndWFnZSBFbmdsaXNoCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNzkKbmFtZTogbGFuZ3VhZ2Utc2VsZWN0b3ItY29tbW9uCmRlc2NyaXB0aW9uOiBMYW5ndWFnZSBzZWxlY3RvciBmb3IgVWJ1bnR1CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNzkKbmFtZTogbGFuZ3VhZ2Utc2VsZWN0b3ItZ25vbWUKZGVzY3JpcHRpb246IExhbmd1YWdlIHNlbGVjdG9yIGZvciBVYnVudHUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMy43dWJ1bnR1MgpuYW1lOiBsYXB0b3AtZGV0ZWN0CmRlc2NyaXB0aW9uOiBhdHRlbXB0IHRvIGRldGVjdCBhIGxhcHRvcAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuNTYuMQpuYW1lOiBsYXVuY2hwYWQtaW50ZWdyYXRpb24KZGVzY3JpcHRpb246IGxhdW5jaHBhZCBpbnRlZ3JhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMuMS0wdWJ1bnR1MQpuYW1lOiBsZHRwCmRlc2NyaXB0aW9uOiBHTlUvTGludXggRGVza3RvcCBUZXN0aW5nIFByb2plY3QgKEdOVS9MRFRQKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0NDQtMXVidW50dTEKbmFtZTogbGVzcwpkZXNjcmlwdGlvbjogcGFnZXIgcHJvZ3JhbSBzaW1pbGFyIHRvIG1vcmUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjk1LjItMQpuYW1lOiBsZXNzdGlmMgpkZXNjcmlwdGlvbjogT1NGL01vdGlmIDIuMSBpbXBsZW1lbnRhdGlvbiByZWxlYXNlZCB1bmRlciBMR1BMCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNy40LTE2YnVpbGQxCm5hbWU6IGxpYmE1Mi0wLjcuNApkZXNjcmlwdGlvbjogbGlicmFyeSBmb3IgZGVjb2RpbmcgQVRTQyBBLzUyIHN0cmVhbXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS40cDUtMzl1YnVudHUxCm5hbWU6IGxpYmFhMQpkZXNjcmlwdGlvbjogQVNDSUkgYXJ0IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS40cDUtMzl1YnVudHUxCm5hbWU6IGxpYmFhMTppMzg2CmRlc2NyaXB0aW9uOiBBU0NJSSBhcnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMuMC00Cm5hbWU6IGxpYmFhY3MwCmRlc2NyaXB0aW9uOiBmcmVlLWFuZC1saWJyZSBpbXBsZW1lbnRhdGlvbiBvZiBBQUNTCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4xNS0ydWJ1bnR1OS40Cm5hbWU6IGxpYmFjY291bnRzc2VydmljZTAKZGVzY3JpcHRpb246IHF1ZXJ5IGFuZCBtYW5pcHVsYXRlIHVzZXIgYWNjb3VudCBpbmZvcm1hdGlvbiAtIHNoYXJlZCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjUxLTV1YnVudHUxCm5hbWU6IGxpYmFjbDEKZGVzY3JpcHRpb246IEFjY2VzcyBjb250cm9sIGxpc3Qgc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjUxLTV1YnVudHUxCm5hbWU6IGxpYmFjbDE6aTM4NgpkZXNjcmlwdGlvbjogQWNjZXNzIGNvbnRyb2wgbGlzdCBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMuMTA5LTJ1YnVudHUxCm5hbWU6IGxpYmFpbzEKZGVzY3JpcHRpb246IExpbnV4IGtlcm5lbCBBSU8gYWNjZXNzIGxpYnJhcnkgLSBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMuMTA5LTJ1YnVudHUxCm5hbWU6IGxpYmFpbzE6aTM4NgpkZXNjcmlwdGlvbjogTGludXgga2VybmVsIEFJTyBhY2Nlc3MgbGlicmFyeSAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMTkuMDItMgpuYW1lOiBsaWJhbGdvcml0aG0tZGlmZi1wZXJsCmRlc2NyaXB0aW9uOiBtb2R1bGUgdG8gZmluZCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMDQtMmJ1aWxkMgpuYW1lOiBsaWJhbGdvcml0aG0tZGlmZi14cy1wZXJsCmRlc2NyaXB0aW9uOiBtb2R1bGUgdG8gZmluZCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGZpbGVzIChYUyBhY2NlbGVyYXRlZCkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4wOC0yCm5hbWU6IGxpYmFsZ29yaXRobS1tZXJnZS1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIG1vZHVsZSBmb3IgdGhyZWUtd2F5IG1lcmdlIG9mIHRleHR1YWwgZGF0YQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuNC4wLTJ1YnVudHUzCm5hbWU6IGxpYmFtZDIuMi4wCmRlc2NyaXB0aW9uOiBhcHByb3hpbWF0ZSBtaW5pbXVtIGRlZ3JlZSBvcmRlcmluZyBsaWJyYXJ5IGZvciBzcGFyc2UgbWF0cmljZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMXVidW50dTIKbmFtZTogbGliYW8tY29tbW9uCmRlc2NyaXB0aW9uOiBDcm9zcyBQbGF0Zm9ybSBBdWRpbyBPdXRwdXQgTGlicmFyeSAoQ29tbW9uIGZpbGVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMC0xdWJ1bnR1MgpuYW1lOiBsaWJhbzQ6aTM4NgpkZXNjcmlwdGlvbjogQ3Jvc3MgUGxhdGZvcm0gQXVkaW8gT3V0cHV0IExpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi43LjEwMi0wdWJ1bnR1My43Cm5hbWU6IGxpYmFwcGFybW9yMQpkZXNjcmlwdGlvbjogY2hhbmdlaGF0IEFwcEFybW9yIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjkyLTB1YnVudHUxCm5hbWU6IGxpYmFwcGluZGljYXRvcjEKZGVzY3JpcHRpb246IEFwcGxpY2F0aW9uIEluZGljYXRvcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjkyLTB1YnVudHUxCm5hbWU6IGxpYmFwcGluZGljYXRvcjMtMQpkZXNjcmlwdGlvbjogQXBwbGljYXRpb24gSW5kaWNhdG9ycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguMTZ+ZXhwMTJ1YnVudHUxMC43Cm5hbWU6IGxpYmFwdC1pbnN0MS40CmRlc2NyaXB0aW9uOiBkZWIgcGFja2FnZSBmb3JtYXQgcnVudGltZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS4yNWJ1aWxkMgpuYW1lOiBsaWJhcHQtcGtnLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgaW50ZXJmYWNlIHRvIGxpYmFwdC1wa2cKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44LjE2fmV4cDEydWJ1bnR1MTAuNwpuYW1lOiBsaWJhcHQtcGtnNC4xMgpkZXNjcmlwdGlvbjogcGFja2FnZSBtYW5hZ21lbnQgcnVudGltZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4zLTZ1YnVudHUxCm5hbWU6IGxpYmFyY2hpdmUxMgpkZXNjcmlwdGlvbjogTXVsdGktZm9ybWF0IGFyY2hpdmUgYW5kIGNvbXByZXNzaW9uIGxpYnJhcnkgKHNoYXJlZCBsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMuMjEtMXVidW50dTAuMQpuYW1lOiBsaWJhcnQtMi4wLTIKZGVzY3JpcHRpb246IExpYnJhcnkgb2YgZnVuY3Rpb25zIGZvciAyRCBncmFwaGljcyAtIHJ1bnRpbWUgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS42fmdpdDIwMTIwMzExLmRmc2cuMS0yCm5hbWU6IGxpYmFzbjEtOC1oZWltZGFsCmRlc2NyaXB0aW9uOiBIZWltZGFsIEtlcmJlcm9zIC0gQVNOLjEgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjZ+Z2l0MjAxMjAzMTEuZGZzZy4xLTIKbmFtZTogbGliYXNuMS04LWhlaW1kYWw6aTM4NgpkZXNjcmlwdGlvbjogSGVpbWRhbCBLZXJiZXJvcyAtIEFTTi4xIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjI1LTF1YnVudHUxMC4xCm5hbWU6IGxpYmFzb3VuZDIKZGVzY3JpcHRpb246IHNoYXJlZCBsaWJyYXJ5IGZvciBBTFNBIGFwcGxpY2F0aW9ucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMjUtMXVidW50dTEwLjEKbmFtZTogbGliYXNvdW5kMjppMzg2CmRlc2NyaXB0aW9uOiBzaGFyZWQgbGlicmFyeSBmb3IgQUxTQSBhcHBsaWNhdGlvbnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjI1LTF1YnVudHUxCm5hbWU6IGxpYmFzb3VuZDItcGx1Z2lucwpkZXNjcmlwdGlvbjogQUxTQSBsaWJyYXJ5IGFkZGl0aW9uYWwgcGx1Z2lucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMjUtMXVidW50dTEKbmFtZTogbGliYXNvdW5kMi1wbHVnaW5zOmkzODYKZGVzY3JpcHRpb246IEFMU0EgbGlicmFyeSBhZGRpdGlvbmFsIHBsdWdpbnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42MC43fjIwMTEwNzA3LTEKbmFtZTogbGliYXNwZWxsMTUKZGVzY3JpcHRpb246IEdOVSBBc3BlbGwgc3BlbGwtY2hlY2tlciBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMC4wLTMKbmFtZTogbGliYXNzNApkZXNjcmlwdGlvbjogbGlicmFyeSBmb3IgU1NBL0FTUyBzdWJ0aXRsZXMgcmVuZGVyaW5nCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMC4yLTF1YnVudHUxCm5hbWU6IGxpYmFzc3VhbjAKZGVzY3JpcHRpb246IElQQyBsaWJyYXJ5IGZvciB0aGUgR251UEcgY29tcG9uZW50cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjgtNApuYW1lOiBsaWJhc3luY25zMApkZXNjcmlwdGlvbjogQXN5bmNocm9ub3VzIG5hbWUgc2VydmljZSBxdWVyeSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOC00Cm5hbWU6IGxpYmFzeW5jbnMwOmkzODYKZGVzY3JpcHRpb246IEFzeW5jaHJvbm91cyBuYW1lIHNlcnZpY2UgcXVlcnkgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE4LTMKbmFtZTogbGliYXRhc21hcnQ0CmRlc2NyaXB0aW9uOiBBVEEgUy5NLkEuUi5ULiByZWFkaW5nIGFuZCBwYXJzaW5nIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi40LjAtMXVidW50dTIKbmFtZTogbGliYXRrLWFkYXB0b3IKZGVzY3JpcHRpb246IGF0LXNwaTItYXRrCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4wLTF1YnVudHUyCm5hbWU6IGxpYmF0ay1hZGFwdG9yLXNjaGVtYXMKZGVzY3JpcHRpb246IGF0LXNwaTItYXRrIEdTZXR0aW5ncyBzY2hlbWFzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMzAuNC0wdWJ1bnR1MgpuYW1lOiBsaWJhdGstd3JhcHBlci1qYXZhCmRlc2NyaXB0aW9uOiBBbiBBVEsgaW1wbGVtZW50YXRpb24gZm9yIEphdmEgdXNpbmcgSk5JCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMzAuNC0wdWJ1bnR1MgpuYW1lOiBsaWJhdGstd3JhcHBlci1qYXZhLWpuaQpkZXNjcmlwdGlvbjogQW4gQVRLIGltcGxlbWVudGF0aW9uIGZvciBKYXZhIHVzaW5nIEpOSSAoam5pIGJpbmRpbmdzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMC0wdWJ1bnR1MQpuYW1lOiBsaWJhdGsxLjAtMApkZXNjcmlwdGlvbjogQVRLIGFjY2Vzc2liaWxpdHkgdG9vbGtpdAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMC0wdWJ1bnR1MQpuYW1lOiBsaWJhdGsxLjAtMDppMzg2CmRlc2NyaXB0aW9uOiBBVEsgYWNjZXNzaWJpbGl0eSB0b29sa2l0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4wLTB1YnVudHUxCm5hbWU6IGxpYmF0azEuMC1kYXRhCmRlc2NyaXB0aW9uOiBDb21tb24gZmlsZXMgZm9yIHRoZSBBVEsgYWNjZXNzaWJpbGl0eSB0b29sa2l0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4wLTB1YnVudHUxCm5hbWU6IGxpYmF0azEuMC1kZXYKZGVzY3JpcHRpb246IERldmVsb3BtZW50IGZpbGVzIGZvciB0aGUgQVRLIGFjY2Vzc2liaWxpdHkgdG9vbGtpdAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMC0wdWJ1bnR1MQpuYW1lOiBsaWJhdGsxLjAtZG9jCmRlc2NyaXB0aW9uOiBEb2N1bWVudGF0aW9uIGZpbGVzIGZvciB0aGUgQVRLIHRvb2xraXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yMi42LTF1YnVudHUxCm5hbWU6IGxpYmF0a21tLTEuNi0xCmRlc2NyaXB0aW9uOiBDKysgd3JhcHBlcnMgZm9yIEFUSyBhY2Nlc3NpYmlsaXR5IHRvb2xraXQgKHNoYXJlZCBsaWJyYXJpZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4yLTB1YnVudHUwLjEKbmFtZTogbGliYXRzcGkyLjAtMApkZXNjcmlwdGlvbjogQXNzaXN0aXZlIFRlY2hub2xvZ3kgU2VydmljZSBQcm92aWRlciBJbnRlcmZhY2UgLSBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjIuNC40Ni01dWJ1bnR1MQpuYW1lOiBsaWJhdHRyMQpkZXNjcmlwdGlvbjogRXh0ZW5kZWQgYXR0cmlidXRlIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Mi40LjQ2LTV1YnVudHUxCm5hbWU6IGxpYmF0dHIxOmkzODYKZGVzY3JpcHRpb246IEV4dGVuZGVkIGF0dHJpYnV0ZSBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjkuMy00Cm5hbWU6IGxpYmF1ZGlvMgpkZXNjcmlwdGlvbjogTmV0d29yayBBdWRpbyBTeXN0ZW0gLSBzaGFyZWQgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOS4zLTQKbmFtZTogbGliYXVkaW8yOmkzODYKZGVzY3JpcHRpb246IE5ldHdvcmsgQXVkaW8gU3lzdGVtIC0gc2hhcmVkIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMuMy0yCm5hbWU6IGxpYmF1ZGlvZmlsZTEKZGVzY3JpcHRpb246IE9wZW4tc291cmNlIHZlcnNpb24gb2YgU0dJJ3MgYXVkaW9maWxlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjMtMgpuYW1lOiBsaWJhdWRpb2ZpbGUxOmkzODYKZGVzY3JpcHRpb246IE9wZW4tc291cmNlIHZlcnNpb24gb2YgU0dJJ3MgYXVkaW9maWxlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xNTAwLTEKbmFtZTogbGliYXV0aGVuLXNhc2wtcGVybApkZXNjcmlwdGlvbjogQXV0aGVuOjpTQVNMIC0gU0FTTCBBdXRoZW50aWNhdGlvbiBmcmFtZXdvcmsKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDowLjguNC0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IGxpYmF2LXRvb2xzCmRlc2NyaXB0aW9uOiBNdWx0aW1lZGlhIHBsYXllciwgc2VydmVyLCBlbmNvZGVyIGFuZCB0cmFuc2NvZGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4zMC01dWJ1bnR1MgpuYW1lOiBsaWJhdmFoaS1jbGllbnQzCmRlc2NyaXB0aW9uOiBBdmFoaSBjbGllbnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMzAtNXVidW50dTIKbmFtZTogbGliYXZhaGktY2xpZW50MzppMzg2CmRlc2NyaXB0aW9uOiBBdmFoaSBjbGllbnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMzAtNXVidW50dTIKbmFtZTogbGliYXZhaGktY29tbW9uLWRhdGEKZGVzY3JpcHRpb246IEF2YWhpIGNvbW1vbiBkYXRhIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4zMC01dWJ1bnR1MgpuYW1lOiBsaWJhdmFoaS1jb21tb24tZGF0YTppMzg2CmRlc2NyaXB0aW9uOiBBdmFoaSBjb21tb24gZGF0YSBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMzAtNXVidW50dTIKbmFtZTogbGliYXZhaGktY29tbW9uMwpkZXNjcmlwdGlvbjogQXZhaGkgY29tbW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjMwLTV1YnVudHUyCm5hbWU6IGxpYmF2YWhpLWNvbW1vbjM6aTM4NgpkZXNjcmlwdGlvbjogQXZhaGkgY29tbW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjMwLTV1YnVudHUyCm5hbWU6IGxpYmF2YWhpLWNvcmU3CmRlc2NyaXB0aW9uOiBBdmFoaSdzIGVtYmVkZGFibGUgbUROUy9ETlMtU0QgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMzAtNXVidW50dTIKbmFtZTogbGliYXZhaGktZ2xpYjEKZGVzY3JpcHRpb246IEF2YWhpIGdsaWIgaW50ZWdyYXRpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMzAtNXVidW50dTIKbmFtZTogbGliYXZhaGktZ29iamVjdDAKZGVzY3JpcHRpb246IEF2YWhpIEdPYmplY3QgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMzAtNXVidW50dTIKbmFtZTogbGliYXZhaGktdWktZ3RrMy0wCmRlc2NyaXB0aW9uOiBBdmFoaSBHVEsrIFVzZXIgaW50ZXJmYWNlIGxpYnJhcnkgZm9yIEdUSzMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC41LjMtMXVidW50dTIKbmFtZTogbGliYXZjMTM5NC0wCmRlc2NyaXB0aW9uOiBjb250cm9sIElFRUUgMTM5NCBhdWRpby92aWRlbyBkZXZpY2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNS4zLTF1YnVudHUyCm5hbWU6IGxpYmF2YzEzOTQtMDppMzg2CmRlc2NyaXB0aW9uOiBjb250cm9sIElFRUUgMTM5NCBhdWRpby92aWRlbyBkZXZpY2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6MC44LjQtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBsaWJhdmNvZGVjNTMKZGVzY3JpcHRpb246IExpYmF2IGNvZGVjIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDowLjguNC0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IGxpYmF2ZGV2aWNlNTMKZGVzY3JpcHRpb246IExpYmF2IGRldmljZSBoYW5kbGluZyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6MC44LjQtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBsaWJhdmZpbHRlcjIKZGVzY3JpcHRpb246IExpYmF2IHZpZGVvIGZpbHRlcmluZyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6MC44LjQtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBsaWJhdmZvcm1hdDUzCmRlc2NyaXB0aW9uOiBMaWJhdiBmaWxlIGZvcm1hdCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6MC44LjQtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBsaWJhdnV0aWw1MQpkZXNjcmlwdGlvbjogTGliYXYgdXRpbGl0eSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMC4yMi0xLjEKbmFtZTogbGliYmFibC0wLjAtMApkZXNjcmlwdGlvbjogRHluYW1pYywgYW55IHRvIGFueSwgcGl4ZWwgZm9ybWF0IGNvbnZlcnNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuMTI0LjItMHVidW50dTEKbmFtZTogbGliYmFtZjAKZGVzY3JpcHRpb246IFdpbmRvdyBtYXRjaGluZyBsaWJyYXJ5IC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjEyNC4yLTB1YnVudHUxCm5hbWU6IGxpYmJhbWYzLTAKZGVzY3JpcHRpb246IFdpbmRvdyBtYXRjaGluZyBsaWJyYXJ5IC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yMy0xYnVpbGQzCm5hbWU6IGxpYmJmYjAKZGVzY3JpcHRpb246IGJmYiBwcm90b2NvbCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6OS44LjEuZGZzZy5QMS00dWJ1bnR1MC41Cm5hbWU6IGxpYmJpbmQ5LTgwCmRlc2NyaXB0aW9uOiBCSU5EOSBTaGFyZWQgTGlicmFyeSB1c2VkIGJ5IEJJTkQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNy4xLTFidWlsZDIKbmFtZTogbGliYml0LXZlY3Rvci1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIG1vZHVsZSBmb3IgYml0IHZlY3RvcnMgYW5kIG1vcmUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjIwMTEwNDE5LTJ1YnVudHUxCm5hbWU6IGxpYmJsYXMzZ2YKZGVzY3JpcHRpb246IEJhc2ljIExpbmVhciBBbGdlYnJhIFJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbnMsIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjAuMS0xdWJ1bnR1MwpuYW1lOiBsaWJibGtpZDEKZGVzY3JpcHRpb246IGJsb2NrIGRldmljZSBpZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuOTgtMnVidW50dTcKbmFtZTogbGliYmx1ZXRvb3RoMwpkZXNjcmlwdGlvbjogTGlicmFyeSB0byB1c2UgdGhlIEJsdWVaIExpbnV4IEJsdWV0b290aCBzdGFjawoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuMi4xK2dpdDIwMTExMjA4LjYzZTMwOGQtMwpuYW1lOiBsaWJibHVyYXkxCmRlc2NyaXB0aW9uOiBCbHUtcmF5IGRpc2MgcGxheWJhY2sgc3VwcG9ydCBsaWJyYXJ5IChzaGFyZWQgbGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zMi4xLTB1YnVudHUxLjEKbmFtZTogbGliYm9ub2JvMi0wCmRlc2NyaXB0aW9uOiBCb25vYm8gQ09SQkEgaW50ZXJmYWNlcyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMzIuMS0wdWJ1bnR1MS4xCm5hbWU6IGxpYmJvbm9ibzItY29tbW9uCmRlc2NyaXB0aW9uOiBCb25vYm8gQ09SQkEgaW50ZXJmYWNlcyBsaWJyYXJ5IC0tIHN1cHBvcnQgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yNC41LTB1YnVudHUxLjEKbmFtZTogbGliYm9ub2JvdWkyLTAKZGVzY3JpcHRpb246IFRoZSBCb25vYm8gVUkgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI0LjUtMHVidW50dTEuMQpuYW1lOiBsaWJib25vYm91aTItY29tbW9uCmRlc2NyaXB0aW9uOiBUaGUgQm9ub2JvIFVJIGxpYnJhcnkgLS0gY29tbW9uIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNDYuMS03dWJ1bnR1MwpuYW1lOiBsaWJib29zdC1zZXJpYWxpemF0aW9uMS40Ni4xCmRlc2NyaXB0aW9uOiBzZXJpYWxpemF0aW9uIGxpYnJhcnkgZm9yIEMrKwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0wdWJ1bnR1MS4xCm5hbWU6IGxpYmJyYXNlcm8tbWVkaWEzLTEKZGVzY3JpcHRpb246IENEL0RWRCBidXJuaW5nIGxpYnJhcnkgZm9yIEdOT01FIC0gcnVudGltZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjMtMXVidW50dTUKbmFtZTogbGliYnJsYXBpMC41CmRlc2NyaXB0aW9uOiBicmFpbGxlIGRpc3BsYXkgYWNjZXNzIHZpYSBCUkxUVFkgLSBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMuMC0yCm5hbWU6IGxpYmJzZDAKZGVzY3JpcHRpb246IHV0aWxpdHkgZnVuY3Rpb25zIGZyb20gQlNEIHN5c3RlbXMgLSBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuOC0xCm5hbWU6IGxpYmJ1cm40CmRlc2NyaXB0aW9uOiBsaWJyYXJ5IHRvIHByb3ZpZGUgQ0QvRFZEIHdyaXRpbmcgZnVuY3Rpb25zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC42LTEKbmFtZTogbGliYnoyLTEuMApkZXNjcmlwdGlvbjogaGlnaC1xdWFsaXR5IGJsb2NrLXNvcnRpbmcgZmlsZSBjb21wcmVzc29yIGxpYnJhcnkgLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC42LTEKbmFtZTogbGliYnoyLTEuMDppMzg2CmRlc2NyaXB0aW9uOiBoaWdoLXF1YWxpdHkgYmxvY2stc29ydGluZyBmaWxlIGNvbXByZXNzb3IgbGlicmFyeSAtIHJ1bnRpbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xNS0wdWJ1bnR1MTAuMwpuYW1lOiBsaWJjLWJpbgpkZXNjcmlwdGlvbjogRW1iZWRkZWQgR05VIEMgTGlicmFyeTogQmluYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xNS0wdWJ1bnR1MTAuMwpuYW1lOiBsaWJjLWRldi1iaW4KZGVzY3JpcHRpb246IEVtYmVkZGVkIEdOVSBDIExpYnJhcnk6IERldmVsb3BtZW50IGJpbmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMTUtMHVidW50dTEwLjMKbmFtZTogbGliYzYKZGVzY3JpcHRpb246IEVtYmVkZGVkIEdOVSBDIExpYnJhcnk6IFNoYXJlZCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xNS0wdWJ1bnR1MTAuMwpuYW1lOiBsaWJjNjppMzg2CmRlc2NyaXB0aW9uOiBFbWJlZGRlZCBHTlUgQyBMaWJyYXJ5OiBTaGFyZWQgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMTUtMHVidW50dTEwLjMKbmFtZTogbGliYzYtZGV2CmRlc2NyaXB0aW9uOiBFbWJlZGRlZCBHTlUgQyBMaWJyYXJ5OiBEZXZlbG9wbWVudCBMaWJyYXJpZXMgYW5kIEhlYWRlciBGaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjk5LmJldGExNy0yLjF1YnVudHUyCm5hbWU6IGxpYmNhY2EwCmRlc2NyaXB0aW9uOiBjb2xvdXIgQVNDSUkgYXJ0IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45OS5iZXRhMTctMi4xdWJ1bnR1MgpuYW1lOiBsaWJjYWNhMDppMzg2CmRlc2NyaXB0aW9uOiBjb2xvdXIgQVNDSUkgYXJ0IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMC4yLTYuMXVidW50dTMKbmFtZTogbGliY2Fpcm8tZ29iamVjdDIKZGVzY3JpcHRpb246IFRoZSBDYWlybyAyRCB2ZWN0b3IgZ3JhcGhpY3MgbGlicmFyeSAoR09iamVjdCBsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEwLjItNi4xdWJ1bnR1MwpuYW1lOiBsaWJjYWlyby1nb2JqZWN0MjppMzg2CmRlc2NyaXB0aW9uOiBUaGUgQ2Fpcm8gMkQgdmVjdG9yIGdyYXBoaWNzIGxpYnJhcnkgKEdPYmplY3QgbGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wODEtMWJ1aWxkMgpuYW1lOiBsaWJjYWlyby1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIGludGVyZmFjZSB0byB0aGUgQ2Fpcm8gZ3JhcGhpY3MgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEwLjItNi4xdWJ1bnR1MwpuYW1lOiBsaWJjYWlyby1zY3JpcHQtaW50ZXJwcmV0ZXIyCmRlc2NyaXB0aW9uOiBUaGUgQ2Fpcm8gMkQgdmVjdG9yIGdyYXBoaWNzIGxpYnJhcnkgKHNjcmlwdCBpbnRlcnByZXRlcikKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMC4yLTYuMXVidW50dTMKbmFtZTogbGliY2Fpcm8yCmRlc2NyaXB0aW9uOiBUaGUgQ2Fpcm8gMkQgdmVjdG9yIGdyYXBoaWNzIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMC4yLTYuMXVidW50dTMKbmFtZTogbGliY2Fpcm8yOmkzODYKZGVzY3JpcHRpb246IFRoZSBDYWlybyAyRCB2ZWN0b3IgZ3JhcGhpY3MgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEwLjItNi4xdWJ1bnR1MwpuYW1lOiBsaWJjYWlybzItZGV2CmRlc2NyaXB0aW9uOiBEZXZlbG9wbWVudCBmaWxlcyBmb3IgdGhlIENhaXJvIDJEIGdyYXBoaWNzIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMC4wLTF1YnVudHUxCm5hbWU6IGxpYmNhaXJvbW0tMS4wLTEKZGVzY3JpcHRpb246IEMrKyB3cmFwcGVycyBmb3IgQ2Fpcm8gKHNoYXJlZCBsaWJyYXJpZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4zLTB1YnVudHU3Cm5hbWU6IGxpYmNhbWVsLTEuMi0yOQpkZXNjcmlwdGlvbjogRXZvbHV0aW9uIE1JTUUgbWVzc2FnZSBoYW5kbGluZyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjgtM3VidW50dTMKbmFtZTogbGliY2FuYmVycmEtZ3RrLW1vZHVsZQpkZXNjcmlwdGlvbjogdHJhbnNsYXRlcyBHVEsrIHdpZGdldHMgc2lnbmFscyB0byBldmVudCBzb3VuZHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yOC0zdWJ1bnR1MwpuYW1lOiBsaWJjYW5iZXJyYS1ndGstbW9kdWxlOmkzODYKZGVzY3JpcHRpb246IHRyYW5zbGF0ZXMgR1RLKyB3aWRnZXRzIHNpZ25hbHMgdG8gZXZlbnQgc291bmRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjgtM3VidW50dTMKbmFtZTogbGliY2FuYmVycmEtZ3RrMApkZXNjcmlwdGlvbjogR1RLKyBoZWxwZXIgZm9yIHBsYXlpbmcgd2lkZ2V0IGV2ZW50IHNvdW5kcyB3aXRoIGxpYmNhbmJlcnJhCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjgtM3VidW50dTMKbmFtZTogbGliY2FuYmVycmEtZ3RrMDppMzg2CmRlc2NyaXB0aW9uOiBHVEsrIGhlbHBlciBmb3IgcGxheWluZyB3aWRnZXQgZXZlbnQgc291bmRzIHdpdGggbGliY2FuYmVycmEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yOC0zdWJ1bnR1MwpuYW1lOiBsaWJjYW5iZXJyYS1ndGszLTAKZGVzY3JpcHRpb246IEdUSysgMy4wIGhlbHBlciBmb3IgcGxheWluZyB3aWRnZXQgZXZlbnQgc291bmRzIHdpdGggbGliY2FuYmVycmEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yOC0zdWJ1bnR1MwpuYW1lOiBsaWJjYW5iZXJyYS1ndGszLW1vZHVsZQpkZXNjcmlwdGlvbjogdHJhbnNsYXRlcyBHVEszIHdpZGdldHMgc2lnbmFscyB0byBldmVudCBzb3VuZHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yOC0zdWJ1bnR1MwpuYW1lOiBsaWJjYW5iZXJyYS1wdWxzZQpkZXNjcmlwdGlvbjogUHVsc2VBdWRpbyBiYWNrZW5kIGZvciBsaWJjYW5iZXJyYQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjI4LTN1YnVudHUzCm5hbWU6IGxpYmNhbmJlcnJhMApkZXNjcmlwdGlvbjogc2ltcGxlIGFic3RyYWN0IGludGVyZmFjZSBmb3IgcGxheWluZyBldmVudCBzb3VuZHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yOC0zdWJ1bnR1MwpuYW1lOiBsaWJjYW5iZXJyYTA6aTM4NgpkZXNjcmlwdGlvbjogc2ltcGxlIGFic3RyYWN0IGludGVyZmFjZSBmb3IgcGxheWluZyBldmVudCBzb3VuZHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjYtMXVidW50dTEKbmFtZTogbGliY2FwLW5nMApkZXNjcmlwdGlvbjogQW4gYWx0ZXJuYXRlIFBPU0lYIGNhcGFiaWxpdGllcyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Mi4yMi0xdWJ1bnR1MwpuYW1lOiBsaWJjYXAyCmRlc2NyaXB0aW9uOiBzdXBwb3J0IGZvciBnZXR0aW5nL3NldHRpbmcgUE9TSVguMWUgY2FwYWJpbGl0aWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Mi4yMi0xdWJ1bnR1MwpuYW1lOiBsaWJjYXAyOmkzODYKZGVzY3JpcHRpb246IHN1cHBvcnQgZm9yIGdldHRpbmcvc2V0dGluZyBQT1NJWC4xZSBjYXBhYmlsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToyLjIyLTF1YnVudHUzCm5hbWU6IGxpYmNhcDItYmluCmRlc2NyaXB0aW9uOiBiYXNpYyB1dGlsaXR5IHByb2dyYW1zIGZvciB1c2luZyBjYXBhYmlsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjEyLjIwMDcxMTI3LTB1YnVudHUxMQpuYW1lOiBsaWJjYXBpMjAtMzppMzg2CmRlc2NyaXB0aW9uOiBsaWJyYXJpZXMgZm9yIENBUEkgc3VwcG9ydAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQuMi0xdWJ1bnR1MQpuYW1lOiBsaWJjYXJpYm91LWNvbW1vbgpkZXNjcmlwdGlvbjogQ29uZmlndXJhYmxlIG9uIHNjcmVlbiBrZXlib2FyZCB3aXRoIHNjYW5uaW5nIG1vZGUgLSBjb21tb24gZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjItMXVidW50dTEKbmFtZTogbGliY2FyaWJvdTAKZGVzY3JpcHRpb246IENvbmZpZ3VyYWJsZSBvbiBzY3JlZW4ga2V5Ym9hcmQgd2l0aCBzY2FubmluZyBtb2RlIC0gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA2LjA0LTEKbmFtZTogbGliY2FycC1jbGFuLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgZW5oYW5jZW1lbnQgdG8gQ2FycCBlcnJvciBsb2dnaW5nIGZhY2lsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45OS4xMnAyLTEwYnVpbGQxCm5hbWU6IGxpYmNkYXVkaW8xCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciBjb250cm9sbGluZyBhIENELVJPTSB3aGVuIHBsYXlpbmcgYXVkaW8gQ0RzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMy4yLTNmYWtlc3luYzEKbmFtZTogbGliY2RkYjIKZGVzY3JpcHRpb246IGxpYnJhcnkgdG8gYWNjZXNzIENEREIgZGF0YSAtIHJ1bnRpbWUgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44My0xCm5hbWU6IGxpYmNkaW8tY2RkYTEKZGVzY3JpcHRpb246IGxpYnJhcnkgdG8gcmVhZCBhbmQgY29udHJvbCBkaWdpdGFsIGF1ZGlvIENEcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjgzLTEKbmFtZTogbGliY2Rpby1wYXJhbm9pYTEKZGVzY3JpcHRpb246IGxpYnJhcnkgdG8gcmVhZCBkaWdpdGFsIGF1ZGlvIENEcyB3aXRoIGVycm9yIGNvcnJlY3Rpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44My0xCm5hbWU6IGxpYmNkaW8xMwpkZXNjcmlwdGlvbjogbGlicmFyeSB0byByZWFkIGFuZCBjb250cm9sIENELVJPTQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjEwLjIrZGViaWFuLTEwdWJ1bnR1MQpuYW1lOiBsaWJjZHBhcmFub2lhMApkZXNjcmlwdGlvbjogYXVkaW8gZXh0cmFjdGlvbiB0b29sIGZvciBzYW1wbGluZyBDRHMgKGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMTAuMitkZWJpYW4tMTB1YnVudHUxCm5hbWU6IGxpYmNkcGFyYW5vaWEwOmkzODYKZGVzY3JpcHRpb246IGF1ZGlvIGV4dHJhY3Rpb24gdG9vbCBmb3Igc2FtcGxpbmcgQ0RzIChsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI2LjMtMTB1YnVudHUxCm5hbWU6IGxpYmNkdDQKZGVzY3JpcHRpb246IHJpY2ggc2V0IG9mIGdyYXBoIGRyYXdpbmcgdG9vbHMgLSBjZHQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjcuMS0xCm5hbWU6IGxpYmNlbHQwLTAKZGVzY3JpcHRpb246IFRoZSBDRUxUIGNvZGVjIHJ1bnRpbWUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI2LjMtMTB1YnVudHUxCm5hbWU6IGxpYmNncmFwaDUKZGVzY3JpcHRpb246IHJpY2ggc2V0IG9mIGdyYXBoIGRyYXdpbmcgdG9vbHMgLSBjZ3JhcGggbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0wdWJ1bnR1Mi4xCm5hbWU6IGxpYmNoZWVzZS1ndGsyMQpkZXNjcmlwdGlvbjogdG9vbCB0byB0YWtlIHBpY3R1cmVzIGFuZCB2aWRlb3MgZnJvbSB5b3VyIHdlYmNhbSAtIHdpZGdldHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjEtMHVidW50dTIuMQpuYW1lOiBsaWJjaGVlc2UzCmRlc2NyaXB0aW9uOiB0b29sIHRvIHRha2UgcGljdHVyZXMgYW5kIHZpZGVvcyBmcm9tIHlvdXIgd2ViY2FtIC0gYmFzZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC41LTIKbmFtZTogbGliY2stY29ubmVjdG9yMApkZXNjcmlwdGlvbjogQ29uc29sZUtpdCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zNC0xCm5hbWU6IGxpYmNsYXNzLWFjY2Vzc29yLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgbW9kdWxlIHRoYXQgYXV0b21hdGljYWxseSBnZW5lcmF0ZXMgYWNjZXNzb3JzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMzYtMwpuYW1lOiBsaWJjbGFzcy1pc2EtcGVybApkZXNjcmlwdGlvbjogcmVwb3J0IHRoZSBzZWFyY2ggcGF0aCBmb3IgYSBjbGFzcydzIElTQSB0cmVlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMzEtMWJ1aWxkMwpuYW1lOiBsaWJjbG9uZS1wZXJsCmRlc2NyaXB0aW9uOiByZWN1cnNpdmVseSBjb3B5IFBlcmwgZGF0YXR5cGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMTAuNi0xfnByZWNpc2UxCm5hbWU6IGxpYmNsdXR0ZXItMS4wLTAKZGVzY3JpcHRpb246IE9wZW4gR0wgYmFzZWQgaW50ZXJhY3RpdmUgY2FudmFzIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMC42LTF+cHJlY2lzZTEKbmFtZTogbGliY2x1dHRlci0xLjAtY29tbW9uCmRlc2NyaXB0aW9uOiBPcGVuIEdMIGJhc2VkIGludGVyYWN0aXZlIGNhbnZhcyBsaWJyYXJ5IChjb21tb24gZmlsZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNS40LTB1YnVudHUyCm5hbWU6IGxpYmNsdXR0ZXItZ3N0LTEuMC0wCmRlc2NyaXB0aW9uOiBPcGVuIEdMIGJhc2VkIGludGVyYWN0aXZlIGNhbnZhcyBsaWJyYXJ5IEdTdHJlYW1lciBlbGVtZW50cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIuMC0wdWJ1bnR1MQpuYW1lOiBsaWJjbHV0dGVyLWd0ay0xLjAtMApkZXNjcmlwdGlvbjogT3BlbiBHTCBiYXNlZCBpbnRlcmFjdGl2ZSBjYW52YXMgbGlicmFyeSBHVEsrIHdpZGdldAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuNC0yYnVpbGQxCm5hbWU6IGxpYmNsdXR0ZXItaW1jb250ZXh0LTAuMS0wCmRlc2NyaXB0aW9uOiBPcGVuIEdMIGJhc2VkIGludGVyYWN0aXZlIGNhbnZhcyBsaWJyYXJ5IElNQ29udGV4dCBmcmFtZXdvcmsKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4wLjIuMS0ydWJ1bnR1MwpuYW1lOiBsaWJjbHV0dGVyZ2VzdHVyZS0wLjAuMi0wCmRlc2NyaXB0aW9uOiBPcGVuIEdMIGJhc2VkIGludGVyYWN0aXZlIGNhbnZhcyBsaWJyYXJ5IEdlc3R1cmUgZnJhbWV3b3JrCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS4wLTEKbmFtZTogbGliY21pcy0wLjItMApkZXNjcmlwdGlvbjogQ01JUyBwcm90b2NvbCBjbGllbnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEwLjAtMHVidW50dTIKbmFtZTogbGliY29nbC1jb21tb24KZGVzY3JpcHRpb246IE9iamVjdCBvcmllbnRlZCBHTC9HTEVTIEFic3RyYWN0aW9uL1V0aWxpdHkgTGF5ZXIgKGNvbW1vbiBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMC4wLTB1YnVudHUyCm5hbWU6IGxpYmNvZ2wtcGFuZ28wCmRlc2NyaXB0aW9uOiBPYmplY3Qgb3JpZW50ZWQgR0wvR0xFUyBBYnN0cmFjdGlvbi9VdGlsaXR5IExheWVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMTAuMC0wdWJ1bnR1MgpuYW1lOiBsaWJjb2dsOQpkZXNjcmlwdGlvbjogT2JqZWN0IG9yaWVudGVkIEdML0dMRVMgQWJzdHJhY3Rpb24vVXRpbGl0eSBMYXllcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuMTYtMnVidW50dTAuMQpuYW1lOiBsaWJjb2xvcmQxCmRlc2NyaXB0aW9uOiBzeXN0ZW0gc2VydmljZSB0byBtYW5hZ2UgZGV2aWNlIGNvbG91ciBwcm9maWxlcyAtLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNDItMXVidW50dTIKbmFtZTogbGliY29tZXJyMgpkZXNjcmlwdGlvbjogY29tbW9uIGVycm9yIGRlc2NyaXB0aW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS40Mi0xdWJ1bnR1MgpuYW1lOiBsaWJjb21lcnIyOmkzODYKZGVzY3JpcHRpb246IGNvbW1vbiBlcnJvciBkZXNjcmlwdGlvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC0xCm5hbWU6IGxpYmNvbW1vbi1zZW5zZS1wZXJsCmRlc2NyaXB0aW9uOiBtb2R1bGUgdGhhdCBpbXBsZW1lbnRzIHNvbWUgc2FuZSBkZWZhdWx0cyBmb3IgUGVybCBwcm9ncmFtcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuNy4wfmJ6cjQyOC0wdWJ1bnR1NgpuYW1lOiBsaWJjb21waXpjb25maWcwCmRlc2NyaXB0aW9uOiBTZXR0aW5ncyBsaWJyYXJ5IGZvciBwbHVnaW5zIC0gT3BlbkNvbXBvc2l0aW5nIFByb2plY3QKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41MC0yCm5hbWU6IGxpYmNvbmZpZy1maWxlLXBlcmwKZGVzY3JpcHRpb246IFBhcnNlcyBzaW1wbGUgY29uZmlndXJhdGlvbiBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuNS0xCm5hbWU6IGxpYmNyb2NvMwpkZXNjcmlwdGlvbjogQ2FzY2FkaW5nIFN0eWxlIFNoZWV0IChDU1MpIHBhcnNpbmcgYW5kIG1hbmlwdWxhdGlvbiB0b29sa2l0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi41LTEKbmFtZTogbGliY3JvY28zOmkzODYKZGVzY3JpcHRpb246IENhc2NhZGluZyBTdHlsZSBTaGVldCAoQ1NTKSBwYXJzaW5nIGFuZCBtYW5pcHVsYXRpb24gdG9vbGtpdAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMtMTAKbmFtZTogbGliY3J5cHQtcGFzc3dkbWQ1LXBlcmwKZGVzY3JpcHRpb246IGludGVyb3BlcmFibGUgTUQ1LWJhc2VkIGNyeXB0KCkgZm9yIHBlcmwKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC41Ny0ydWJ1bnR1MQpuYW1lOiBsaWJjcnlwdC1zc2xlYXktcGVybApkZXNjcmlwdGlvbjogU3VwcG9ydCBmb3IgaHR0cHMgcHJvdG9jb2wgaW4gTFdQCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS40LjEtMnVidW50dTQKbmFtZTogbGliY3J5cHRzZXR1cDQKZGVzY3JpcHRpb246IGRpc2sgZW5jcnlwdGlvbiBzdXBwb3J0IC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjB+Z2l0MjAxMTA3MTUuZmRkMmYxOS00LjEKbmFtZTogbGliY3J5c3RhbGhkMwpkZXNjcmlwdGlvbjogQ3J5c3RhbCBIRCBWaWRlbyBEZWNvZGVyIChzaGFyZWQgbGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41LjMtMHVidW50dTYKbmFtZTogbGliY3VwczIKZGVzY3JpcHRpb246IENvbW1vbiBVTklYIFByaW50aW5nIFN5c3RlbSh0bSkgLSBDb3JlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41LjMtMHVidW50dTYKbmFtZTogbGliY3VwczI6aTM4NgpkZXNjcmlwdGlvbjogQ29tbW9uIFVOSVggUHJpbnRpbmcgU3lzdGVtKHRtKSAtIENvcmUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjUuMy0wdWJ1bnR1NgpuYW1lOiBsaWJjdXBzY2dpMQpkZXNjcmlwdGlvbjogQ29tbW9uIFVOSVggUHJpbnRpbmcgU3lzdGVtKHRtKSAtIENHSSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNS4zLTB1YnVudHU2Cm5hbWU6IGxpYmN1cHNkcml2ZXIxCmRlc2NyaXB0aW9uOiBDb21tb24gVU5JWCBQcmludGluZyBTeXN0ZW0odG0pIC0gRHJpdmVyIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjE4LTB1YnVudHUwLjEKbmFtZTogbGliY3Vwc2ZpbHRlcnMxCmRlc2NyaXB0aW9uOiBPcGVuUHJpbnRpbmcgQ1VQUyBGaWx0ZXJzIC0gU2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41LjMtMHVidW50dTYKbmFtZTogbGliY3Vwc2ltYWdlMgpkZXNjcmlwdGlvbjogQ29tbW9uIFVOSVggUHJpbnRpbmcgU3lzdGVtKHRtKSAtIFJhc3RlciBpbWFnZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNS4zLTB1YnVudHU2Cm5hbWU6IGxpYmN1cHNpbWFnZTI6aTM4NgpkZXNjcmlwdGlvbjogQ29tbW9uIFVOSVggUHJpbnRpbmcgU3lzdGVtKHRtKSAtIFJhc3RlciBpbWFnZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNS4zLTB1YnVudHU2Cm5hbWU6IGxpYmN1cHNtaW1lMQpkZXNjcmlwdGlvbjogQ29tbW9uIFVOSVggUHJpbnRpbmcgU3lzdGVtKHRtKSAtIE1JTUUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjUuMy0wdWJ1bnR1NgpuYW1lOiBsaWJjdXBzcHBkYzEKZGVzY3JpcHRpb246IENvbW1vbiBVTklYIFByaW50aW5nIFN5c3RlbSh0bSkgLSBQUEQgbWFuaXB1bGF0aW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNy4yMi4wLTN1YnVudHU0Cm5hbWU6IGxpYmN1cmwzCmRlc2NyaXB0aW9uOiBNdWx0aS1wcm90b2NvbCBmaWxlIHRyYW5zZmVyIGxpYnJhcnkgKE9wZW5TU0wpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDcuMjIuMC0zdWJ1bnR1NApuYW1lOiBsaWJjdXJsMzppMzg2CmRlc2NyaXB0aW9uOiBNdWx0aS1wcm90b2NvbCBmaWxlIHRyYW5zZmVyIGxpYnJhcnkgKE9wZW5TU0wpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDcuMjIuMC0zdWJ1bnR1NApuYW1lOiBsaWJjdXJsMy1nbnV0bHMKZGVzY3JpcHRpb246IE11bHRpLXByb3RvY29sIGZpbGUgdHJhbnNmZXIgbGlicmFyeSAoR251VExTKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA3LjIyLjAtM3VidW50dTQKbmFtZTogbGliY3VybDMtbnNzCmRlc2NyaXB0aW9uOiBNdWx0aS1wcm90b2NvbCBmaWxlIHRyYW5zZmVyIGxpYnJhcnkgKE5TUykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xNC0yCm5hbWU6IGxpYmRhZW1vbjAKZGVzY3JpcHRpb246IGxpZ2h0d2VpZ2h0IEMgbGlicmFyeSBmb3IgZGFlbW9ucyAtIHJ1bnRpbWUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA2LjMtMQpuYW1lOiBsaWJkYXRlLWNhbGMtcGVybApkZXNjcmlwdGlvbjogUGVybCBsaWJyYXJ5IGZvciBhY2Nlc3NpbmcgZGF0ZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNi4yLTFidWlsZDEKbmFtZTogbGliZGF0ZS1jYWxjLXhzLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgbGlicmFyeSBmb3IgYWNjZXNzaW5nIGRhdGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDYuMjUtMQpuYW1lOiBsaWJkYXRlLW1hbmlwLXBlcmwKZGVzY3JpcHRpb246IG1vZHVsZSBmb3IgbWFuaXB1bGF0aW5nIGRhdGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi41LTMKbmFtZTogbGliZGF0cmllMQpkZXNjcmlwdGlvbjogRG91YmxlLWFycmF5IHRyaWUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuNS0zCm5hbWU6IGxpYmRhdHJpZTE6aTM4NgpkZXNjcmlwdGlvbjogRG91YmxlLWFycmF5IHRyaWUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjEuMjUtMTFidWlsZDEKbmFtZTogbGliZGI1LjEKZGVzY3JpcHRpb246IEJlcmtlbGV5IHY1LjEgRGF0YWJhc2UgTGlicmFyaWVzIFtydW50aW1lXQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjEuMjUtMTFidWlsZDEKbmFtZTogbGliZGI1LjE6aTM4NgpkZXNjcmlwdGlvbjogQmVya2VsZXkgdjUuMSBEYXRhYmFzZSBMaWJyYXJpZXMgW3J1bnRpbWVdCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4xOC0xdWJ1bnR1MS4zCm5hbWU6IGxpYmRidXMtMS0zCmRlc2NyaXB0aW9uOiBzaW1wbGUgaW50ZXJwcm9jZXNzIG1lc3NhZ2luZyBzeXN0ZW0gKGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4xOC0xdWJ1bnR1MS4zCm5hbWU6IGxpYmRidXMtMS0zOmkzODYKZGVzY3JpcHRpb246IHNpbXBsZSBpbnRlcnByb2Nlc3MgbWVzc2FnaW5nIHN5c3RlbSAobGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45OC0xdWJ1bnR1MQpuYW1lOiBsaWJkYnVzLWdsaWItMS0yCmRlc2NyaXB0aW9uOiBzaW1wbGUgaW50ZXJwcm9jZXNzIG1lc3NhZ2luZyBzeXN0ZW0gKEdMaWItYmFzZWQgc2hhcmVkIGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOTgtMXVidW50dTEKbmFtZTogbGliZGJ1cy1nbGliLTEtMjppMzg2CmRlc2NyaXB0aW9uOiBzaW1wbGUgaW50ZXJwcm9jZXNzIG1lc3NhZ2luZyBzeXN0ZW0gKEdMaWItYmFzZWQgc2hhcmVkIGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4yLTB1YnVudHUwLjEKbmFtZTogbGliZGJ1c21lbnUtZ2xpYjQKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIHBhc3NpbmcgbWVudXMgb3ZlciBEQnVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4yLTB1YnVudHUwLjEKbmFtZTogbGliZGJ1c21lbnUtZ3RrMy00CmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciBwYXNzaW5nIG1lbnVzIG92ZXIgREJ1cyAtIEdUSysgdmVyc2lvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMi0wdWJ1bnR1MC4xCm5hbWU6IGxpYmRidXNtZW51LWd0azQKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIHBhc3NpbmcgbWVudXMgb3ZlciBEQnVzIC0gR1RLKyB2ZXJzaW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS4yLTB1YnVudHUxCm5hbWU6IGxpYmRidXNtZW51LXF0MgpkZXNjcmlwdGlvbjogUXQgaW1wbGVtZW50YXRpb24gb2YgdGhlIERCdXNNZW51IHByb3RvY29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMi4wLTIKbmFtZTogbGliZGMxMzk0LTIyCmRlc2NyaXB0aW9uOiBoaWdoIGxldmVsIHByb2dyYW1taW5nIGludGVyZmFjZSBmb3IgSUVFRTEzOTQgZGlnaXRhbCBjYW1lcmEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4wLjUtNQpuYW1lOiBsaWJkY2EwCmRlc2NyaXB0aW9uOiBkZWNvZGluZyBsaWJyYXJ5IGZvciBEVFMgQ29oZXJlbnQgQWNvdXN0aWNzIHN0cmVhbXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMi4wLTB1YnVudHUxLjEKbmFtZTogbGliZGNvbmYtZGJ1cy0xLTAKZGVzY3JpcHRpb246IHNpbXBsZSBjb25maWd1cmF0aW9uIHN0b3JhZ2Ugc3lzdGVtIC0gRC1CdXMgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjAuMC4xMTA3MjItMHVidW50dTQKbmFtZTogbGliZGNvbmYtcXQwCmRlc2NyaXB0aW9uOiBkY29uZiBRdCBiaW5kaW5ncyAobGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMi4wLTB1YnVudHUxLjEKbmFtZTogbGliZGNvbmYwCmRlc2NyaXB0aW9uOiBzaW1wbGUgY29uZmlndXJhdGlvbiBzdG9yYWdlIHN5c3RlbSAtIHJ1bnRpbWUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuOS43LjEyLTB1YnVudHUxCm5hbWU6IGxpYmRlY29yYXRpb24wCmRlc2NyaXB0aW9uOiBDb21waXogd2luZG93IGRlY29yYXRpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMTAtMHVidW50dTEKbmFtZTogbGliZGVlLTEuMC00CmRlc2NyaXB0aW9uOiBtb2RlbCB0byBzeW5jaHJvbml6ZSBtdXRpcGxlIGluc3RhbmNlcyBvdmVyIERCdXMgLSBzaGFyZWQgbGliCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxCm5hbWU6IGxpYmRldmhlbHAtMy0wCmRlc2NyaXB0aW9uOiBMaWJyYXJ5IHByb3ZpZGluZyBkb2N1bWVudGF0aW9uIGJyb3dzZXIgZnVuY3Rpb25hbGl0eQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMDIuNDgtNHVidW50dTcuMQpuYW1lOiBsaWJkZXZtYXBwZXItZXZlbnQxLjAyLjEKZGVzY3JpcHRpb246IFRoZSBMaW51eCBLZXJuZWwgRGV2aWNlIE1hcHBlciB1c2Vyc3BhY2UgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMDIuNDgtNHVidW50dTcuMQpuYW1lOiBsaWJkZXZtYXBwZXIxLjAyLjEKZGVzY3JpcHRpb246IFRoZSBMaW51eCBLZXJuZWwgRGV2aWNlIE1hcHBlciB1c2Vyc3BhY2UgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAzK2Rmc2ctMQpuYW1lOiBsaWJkaWdlc3QtaG1hYy1wZXJsCmRlc2NyaXB0aW9uOiBtb2R1bGUgZm9yIGNyZWF0aW5nIHN0YW5kYXJkIG1lc3NhZ2UgaW50ZWdyaXR5IGNoZWNrcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMi00YnVpbGQxCm5hbWU6IGxpYmRpcmFjLWVuY29kZXIwCmRlc2NyaXB0aW9uOiBvcGVuIGFuZCByb3lhbHR5IGZyZWUgaGlnaCBxdWFsaXR5IGNvZGVjIC0gZW5jb2RlciBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4xMC4wLTQuM3VidW50dTEKbmFtZTogbGliZGlyZWN0ZmItMS4yLTkKZGVzY3JpcHRpb246IGRpcmVjdCBmcmFtZSBidWZmZXIgZ3JhcGhpY3MgLSBzaGFyZWQgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi4yLTMKbmFtZTogbGliZGlzY2lkMApkZXNjcmlwdGlvbjogTGlicmFyeSBmb3IgY3JlYXRpbmcgTXVzaWNCcmFpbnogRGlzY0lEcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjUuMjQtOQpuYW1lOiBsaWJkanZ1bGlicmUtdGV4dApkZXNjcmlwdGlvbjogTGluZ3Vpc3RpYyBzdXBwb3J0IGZpbGVzIGZvciBsaWJkanZ1bGlicmUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy41LjI0LTkKbmFtZTogbGliZGp2dWxpYnJlMjEKZGVzY3JpcHRpb246IFJ1bnRpbWUgc3VwcG9ydCBmb3IgdGhlIERqVnUgaW1hZ2UgZm9ybWF0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuOS4xNC0xCm5hbWU6IGxpYmRtYXBzaGFyaW5nLTMuMC0yCmRlc2NyaXB0aW9uOiBETUFQIGNsaWVudCBhbmQgc2VydmVyIGxpYnJhcnkgLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6OS44LjEuZGZzZy5QMS00dWJ1bnR1MC41Cm5hbWU6IGxpYmRuczgxCmRlc2NyaXB0aW9uOiBETlMgU2hhcmVkIExpYnJhcnkgdXNlZCBieSBCSU5ECgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4xMy0zCm5hbWU6IGxpYmRvdGNvbmYxLjAKZGVzY3JpcHRpb246IENvbmZpZ3VyYXRpb24gZmlsZSBwYXJzZXIgbGlicmFyeSAtIHJ1bnRpbWUgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xNi4xLjJ1YnVudHU3LjEKbmFtZTogbGliZHBrZy1wZXJsCmRlc2NyaXB0aW9uOiBEcGtnIHBlcmwgbW9kdWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMzItMXVidW50dTEKbmFtZTogbGliZHJtLWRldgpkZXNjcmlwdGlvbjogVXNlcnNwYWNlIGludGVyZmFjZSB0byBrZXJuZWwgRFJNIHNlcnZpY2VzIC0tIGRldmVsb3BtZW50IGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4zMi0xdWJ1bnR1MQpuYW1lOiBsaWJkcm0taW50ZWwxCmRlc2NyaXB0aW9uOiBVc2Vyc3BhY2UgaW50ZXJmYWNlIHRvIGludGVsLXNwZWNpZmljIGtlcm5lbCBEUk0gc2VydmljZXMgLS0gcnVudGltZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMzItMXVidW50dTEKbmFtZTogbGliZHJtLWludGVsMTppMzg2CmRlc2NyaXB0aW9uOiBVc2Vyc3BhY2UgaW50ZXJmYWNlIHRvIGludGVsLXNwZWNpZmljIGtlcm5lbCBEUk0gc2VydmljZXMgLS0gcnVudGltZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMzItMXVidW50dTEKbmFtZTogbGliZHJtLW5vdXZlYXUxYQpkZXNjcmlwdGlvbjogVXNlcnNwYWNlIGludGVyZmFjZSB0byBub3V2ZWF1LXNwZWNpZmljIGtlcm5lbCBEUk0gc2VydmljZXMgLS0gcnVudGltZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMzItMXVidW50dTEKbmFtZTogbGliZHJtLW5vdXZlYXUxYTppMzg2CmRlc2NyaXB0aW9uOiBVc2Vyc3BhY2UgaW50ZXJmYWNlIHRvIG5vdXZlYXUtc3BlY2lmaWMga2VybmVsIERSTSBzZXJ2aWNlcyAtLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4zMi0xdWJ1bnR1MQpuYW1lOiBsaWJkcm0tcmFkZW9uMQpkZXNjcmlwdGlvbjogVXNlcnNwYWNlIGludGVyZmFjZSB0byByYWRlb24tc3BlY2lmaWMga2VybmVsIERSTSBzZXJ2aWNlcyAtLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4zMi0xdWJ1bnR1MQpuYW1lOiBsaWJkcm0tcmFkZW9uMTppMzg2CmRlc2NyaXB0aW9uOiBVc2Vyc3BhY2UgaW50ZXJmYWNlIHRvIHJhZGVvbi1zcGVjaWZpYyBrZXJuZWwgRFJNIHNlcnZpY2VzIC0tIHJ1bnRpbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi40LjMyLTF1YnVudHUxCm5hbWU6IGxpYmRybTIKZGVzY3JpcHRpb246IFVzZXJzcGFjZSBpbnRlcmZhY2UgdG8ga2VybmVsIERSTSBzZXJ2aWNlcyAtLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4zMi0xdWJ1bnR1MQpuYW1lOiBsaWJkcm0yOmkzODYKZGVzY3JpcHRpb246IFVzZXJzcGFjZSBpbnRlcmZhY2UgdG8ga2VybmVsIERSTSBzZXJ2aWNlcyAtLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4wLTN1YnVudHUxCm5hbWU6IGxpYmR2NApkZXNjcmlwdGlvbjogc29mdHdhcmUgbGlicmFyeSBmb3IgRFYgZm9ybWF0IGRpZ2l0YWwgdmlkZW8gKHJ1bnRpbWUgbGliKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMC0zdWJ1bnR1MQpuYW1lOiBsaWJkdjQ6aTM4NgpkZXNjcmlwdGlvbjogc29mdHdhcmUgbGlicmFyeSBmb3IgRFYgZm9ybWF0IGRpZ2l0YWwgdmlkZW8gKHJ1bnRpbWUgbGliKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuMi0xCm5hbWU6IGxpYmR2YnBzaTcKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIE1QRUcgVFMgYW5kIERWQiBQU0kgdGFibGVzIGRlY29kaW5nIGFuZCBnZW5lcmF0aW5nCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4xMi0wLjBtZWRpYnVudHUxCm5hbWU6IGxpYmR2ZGNzczIKZGVzY3JpcHRpb246IFNpbXBsZSBmb3VuZGF0aW9uIGZvciByZWFkaW5nIERWRHMgLSBydW50aW1lIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjIuMC0xCm5hbWU6IGxpYmR2ZG5hdjQKZGVzY3JpcHRpb246IERWRCBuYXZpZ2F0aW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC4yLjAtMXVidW50dTMKbmFtZTogbGliZHZkcmVhZDQKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIHJlYWRpbmcgRFZEcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMy0wdWJ1bnR1NwpuYW1lOiBsaWJlYmFja2VuZC0xLjItMQpkZXNjcmlwdGlvbjogVXRpbGl0eSBsaWJyYXJ5IGZvciBldm9sdXRpb24gZGF0YSBzZXJ2ZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4yLTIKbmFtZTogbGliZWJtbDMKZGVzY3JpcHRpb246IGFjY2VzcyBsaWJyYXJ5IGZvciB0aGUgRUJNTCBmb3JtYXQgKHNoYXJlZCBsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMy0wdWJ1bnR1NwpuYW1lOiBsaWJlYm9vay0xLjItMTIKZGVzY3JpcHRpb246IENsaWVudCBsaWJyYXJ5IGZvciBldm9sdXRpb24gYWRkcmVzcyBib29rcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMy0wdWJ1bnR1NwpuYW1lOiBsaWJlY2FsLTEuMi0xMApkZXNjcmlwdGlvbjogQ2xpZW50IGxpYnJhcnkgZm9yIGV2b2x1dGlvbiBjYWxlbmRhcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjMtMHVidW50dTcKbmFtZTogbGliZWRhdGEtYm9vay0xLjItMTEKZGVzY3JpcHRpb246IEJhY2tlbmQgbGlicmFyeSBmb3IgZXZvbHV0aW9uIGFkZHJlc3MgYm9va3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjMtMHVidW50dTcKbmFtZTogbGliZWRhdGEtY2FsLTEuMi0xMwpkZXNjcmlwdGlvbjogQmFja2VuZCBsaWJyYXJ5IGZvciBldm9sdXRpb24gY2FsZW5kYXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4zLTB1YnVudHU3Cm5hbWU6IGxpYmVkYXRhc2VydmVyLTEuMi0xNQpkZXNjcmlwdGlvbjogVXRpbGl0eSBsaWJyYXJ5IGZvciBldm9sdXRpb24gZGF0YSBzZXJ2ZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4zLTB1YnVudHU3Cm5hbWU6IGxpYmVkYXRhc2VydmVydWktMy4wLTEKZGVzY3JpcHRpb246IEdVSSB1dGlsaXR5IGxpYnJhcnkgZm9yIGV2b2x1dGlvbiBkYXRhIHNlcnZlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xMS0yMDA4MDYxNC0zdWJ1bnR1MgpuYW1lOiBsaWJlZGl0MgpkZXNjcmlwdGlvbjogQlNEIGVkaXRsaW5lIGFuZCBoaXN0b3J5IGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjAuNC0wdWJ1bnR1MC4zCm5hbWU6IGxpYmVnbDEtbWVzYQpkZXNjcmlwdGlvbjogZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRUdMIEFQSSAtLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDguMC40LTB1YnVudHUwLjMKbmFtZTogbGliZWdsMS1tZXNhLWRldgpkZXNjcmlwdGlvbjogZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRUdMIEFQSSAtLSBkZXZlbG9wbWVudCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjAuNC0wdWJ1bnR1MC4zCm5hbWU6IGxpYmVnbDEtbWVzYS1kcml2ZXJzCmRlc2NyaXB0aW9uOiBmcmVlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBFR0wgQVBJIC0tIGhhcmR3YXJlIGRyaXZlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xNTItMXVidW50dTMKbmFtZTogbGliZWxmMQpkZXNjcmlwdGlvbjogbGlicmFyeSB0byByZWFkIGFuZCB3cml0ZSBFTEYgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xNTItMXVidW50dTMKbmFtZTogbGliZWxmMTppMzg2CmRlc2NyaXB0aW9uOiBsaWJyYXJ5IHRvIHJlYWQgYW5kIHdyaXRlIEVMRiBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE4NS0xCm5hbWU6IGxpYmVtYWlsLXZhbGlkLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgbW9kdWxlIGZvciBjaGVja2luZyB0aGUgdmFsaWRpdHkgb2YgSW50ZXJuZXQgZW1haWwgYWRkcmVzc2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMTMtNApuYW1lOiBsaWJlbmNhMApkZXNjcmlwdGlvbjogRXh0cmVtZWx5IE5haXZlIENoYXJzZXQgQW5hbHlzZXIgLSBzaGFyZWQgbGlicmFyeSBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjYuMC03Cm5hbWU6IGxpYmVuY2hhbnQxYzJhCmRlc2NyaXB0aW9uOiBXcmFwcGVyIGxpYnJhcnkgZm9yIHZhcmlvdXMgc3BlbGwgY2hlY2tlciBlbmdpbmVzIChydW50aW1lIGxpYnMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMDItMgpuYW1lOiBsaWJlbmNvZGUtbG9jYWxlLXBlcmwKZGVzY3JpcHRpb246IHV0aWxpdHkgdG8gZGV0ZXJtaW5lIHRoZSBsb2NhbGUgZW5jb2RpbmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjZ+ZXhwMXVidW50dTEKbmFtZTogbGliZXB0MS40LjEyCmRlc2NyaXB0aW9uOiBIaWdoLWxldmVsIGxpYnJhcnkgZm9yIG1hbmFnaW5nIERlYmlhbiBwYWNrYWdlIGluZm9ybWF0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTctMQpuYW1lOiBsaWJlcnJvci1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIG1vZHVsZSBmb3IgZXJyb3IvZXhjZXB0aW9uIGhhbmRsaW5nIGluIGFuIE9PLWlzaCB3YXkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjQxLTEwYnVpbGQzCm5hbWU6IGxpYmVzZDAKZGVzY3JpcHRpb246IEVubGlnaHRlbmVkIFNvdW5kIERhZW1vbiAtIFNoYXJlZCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjQxLTEwYnVpbGQzCm5hbWU6IGxpYmVzZDA6aTM4NgpkZXNjcmlwdGlvbjogRW5saWdodGVuZWQgU291bmQgRGFlbW9uIC0gU2hhcmVkIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjQ2LjAyLTB1YnVudHUxCm5hbWU6IGxpYmVzcGVhazEKZGVzY3JpcHRpb246IE11bHRpLWxpbmd1YWwgc29mdHdhcmUgc3BlZWNoIHN5bnRoZXNpemVyOiBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuMTYtc3RhYmxlLTEKbmFtZTogbGliZXZlbnQtMi4wLTUKZGVzY3JpcHRpb246IEFzeW5jaHJvbm91cyBldmVudCBub3RpZmljYXRpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMC0wdWJ1bnR1MS40Cm5hbWU6IGxpYmV2aW5jZTMtMwpkZXNjcmlwdGlvbjogRG9jdW1lbnQgKFBvc3RTY3JpcHQsIFBERikgcmVuZGVyaW5nIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjAtMQpuYW1lOiBsaWJleGVtcGkzCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IHRvIHBhcnNlIFhNUCBtZXRhZGF0YSAoTGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjIwLTJ1YnVudHUwLjEKbmFtZTogbGliZXhpZjEyCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IHRvIHBhcnNlIEVYSUYgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjIwLTJ1YnVudHUwLjEKbmFtZTogbGliZXhpZjEyOmkzODYKZGVzY3JpcHRpb246IGxpYnJhcnkgdG8gcGFyc2UgRVhJRiBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIyLTIKbmFtZTogbGliZXhpdjItMTEKZGVzY3JpcHRpb246IEVYSUYvSVBUQyBtZXRhZGF0YSBtYW5pcHVsYXRpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuMS03LjJ1YnVudHUxLjEKbmFtZTogbGliZXhwYXQxCmRlc2NyaXB0aW9uOiBYTUwgcGFyc2luZyBDIGxpYnJhcnkgLSBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjEtNy4ydWJ1bnR1MS4xCm5hbWU6IGxpYmV4cGF0MTppMzg2CmRlc2NyaXB0aW9uOiBYTUwgcGFyc2luZyBDIGxpYnJhcnkgLSBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjEtNy4ydWJ1bnR1MS4xCm5hbWU6IGxpYmV4cGF0MS1kZXYKZGVzY3JpcHRpb246IFhNTCBwYXJzaW5nIEMgbGlicmFyeSAtIGRldmVsb3BtZW50IGtpdAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjUxLkQwMDEtMQpuYW1lOiBsaWJleHBsYWluMzAKZGVzY3JpcHRpb246IGxpYnJhcnkgb2Ygc3lzY2FsbC1zcGVjaWZpYyBzdHJlcnJvciByZXBsYWNlbWVudHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4wMi0yCm5hbWU6IGxpYmV4cG9ydGVyLWxpdGUtcGVybApkZXNjcmlwdGlvbjogbGlnaHR3ZWlnaHQgc3Vic2V0IG9mIEV4cG9ydGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTF1YnVudHUxCm5hbWU6IGxpYmV4dHRleHRjYXQtZGF0YQpkZXNjcmlwdGlvbjogTGFuZ3VhZ2UgZGV0ZWN0aW9uIGxpYnJhcnkgLSBkYXRhIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTF1YnVudHUxCm5hbWU6IGxpYmV4dHRleHRjYXQwCmRlc2NyaXB0aW9uOiBMYW5ndWFnZSBkZXRlY3Rpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMwNC0xCm5hbWU6IGxpYmV4dHV0aWxzLWRlcGVuZHMtcGVybApkZXNjcmlwdGlvbjogUGVybCBtb2R1bGUgZm9yIGJ1aWxkaW5nIGV4dGVuc2lvbnMgdGhhdCBkZXBlbmQgb24gb3RoZXIgZXh0ZW5zaW9ucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEyLTEKbmFtZTogbGliZXh0dXRpbHMtcGtnY29uZmlnLXBlcmwKZGVzY3JpcHRpb246IHNpbXBsaXN0aWMgcGVybCBpbnRlcmZhY2UgdG8gcGtnLWNvbmZpZwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjctNwpuYW1lOiBsaWJmYWFkMgpkZXNjcmlwdGlvbjogZnJlZXdhcmUgQWR2YW5jZWQgQXVkaW8gRGVjb2RlciAtIHJ1bnRpbWUgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xLjItMHVidW50dTEKbmFtZTogbGliZmFyc3RyZWFtLTAuMS0wCmRlc2NyaXB0aW9uOiBBdWRpby9WaWRlbyBjb21tdW5pY2F0aW9ucyBmcmFtZXdvcms6IGNvcmUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMTF+cmMxLTUKbmFtZTogbGliZmZpLWRldgpkZXNjcmlwdGlvbjogRm9yZWlnbiBGdW5jdGlvbiBJbnRlcmZhY2UgbGlicmFyeSAoZGV2ZWxvcG1lbnQgZmlsZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4xMX5yYzEtNQpuYW1lOiBsaWJmZmk2CmRlc2NyaXB0aW9uOiBGb3JlaWduIEZ1bmN0aW9uIEludGVyZmFjZSBsaWJyYXJ5IHJ1bnRpbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjExfnJjMS01Cm5hbWU6IGxpYmZmaTY6aTM4NgpkZXNjcmlwdGlvbjogRm9yZWlnbiBGdW5jdGlvbiBJbnRlcmZhY2UgbGlicmFyeSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMy0xdWJ1bnR1MQpuYW1lOiBsaWJmZnR3My0zCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciBjb21wdXRpbmcgRmFzdCBGb3VyaWVyIFRyYW5zZm9ybXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4wMy0xZmFrZXN5bmMxCm5hbWU6IGxpYmZpbGUtYmFzZWRpci1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIG1vZHVsZSB0byB1c2UgdGhlIGZyZWVkZXNrdG9wIGJhc2VkaXIgc3BlY2lmaWNhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjM4LTEKbmFtZTogbGliZmlsZS1jb3B5LXJlY3Vyc2l2ZS1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIGV4dGVuc2lvbiBmb3IgcmVjdXJzaXZlbHkgY29weWluZyBmaWxlcyBhbmQgZGlyZWN0b3JpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4wNC0zCm5hbWU6IGxpYmZpbGUtZGVza3RvcGVudHJ5LXBlcmwKZGVzY3JpcHRpb246IFBlcmwgbW9kdWxlIHRvIGhhbmRsZSBmcmVlZGVza3RvcCAuZGVza3RvcCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA2LjAzLTEKbmFtZTogbGliZmlsZS1saXN0aW5nLXBlcmwKZGVzY3JpcHRpb246IG1vZHVsZSB0byBwYXJzZSBkaXJlY3RvcnkgbGlzdGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xNS0yCm5hbWU6IGxpYmZpbGUtbWltZWluZm8tcGVybApkZXNjcmlwdGlvbjogUGVybCBtb2R1bGUgdG8gZGV0ZXJtaW5lIGZpbGUgdHlwZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wOC0xCm5hbWU6IGxpYmZpbGUtd2hpY2gtcGVybApkZXNjcmlwdGlvbjogUGVybCBtb2R1bGUgZm9yIHNlYXJjaGluZyBwYXRocyBmb3IgZXhlY3V0YWJsZSBwcm9ncmFtcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjUuMzUtMTB1YnVudHUzCm5hbWU6IGxpYmZsLWRldgpkZXNjcmlwdGlvbjogc3RhdGljIGxpYnJhcnkgZm9yIGZsZXggKGEgZmFzdCBsZXhpY2FsIGFuYWx5emVyIGdlbmVyYXRvcikuCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4xLTYKbmFtZTogbGliZmxhYysrNgpkZXNjcmlwdGlvbjogRnJlZSBMb3NzbGVzcyBBdWRpbyBDb2RlYyAtIEMrKyBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjEtNgpuYW1lOiBsaWJmbGFjOApkZXNjcmlwdGlvbjogRnJlZSBMb3NzbGVzcyBBdWRpbyBDb2RlYyAtIHJ1bnRpbWUgQyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4xLTYKbmFtZTogbGliZmxhYzg6aTM4NgpkZXNjcmlwdGlvbjogRnJlZSBMb3NzbGVzcyBBdWRpbyBDb2RlYyAtIHJ1bnRpbWUgQyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC1yZWxlYXNlLTQKbmFtZTogbGliZmxpdGUxCmRlc2NyaXB0aW9uOiBTbWFsbCBydW4tdGltZSBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZSAtIHNoYXJlZCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjgtMgpuYW1lOiBsaWJmb2xrcy1lZHMyNQpkZXNjcmlwdGlvbjogRXZvbHV0aW9uLWRhdGEtc2VydmVyIGJhY2tlbmQgZm9yIGxpYmZvbGtzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi44LTIKbmFtZTogbGliZm9sa3MtdGVsZXBhdGh5MjUKZGVzY3JpcHRpb246IFRlbGVwYXRoeSBiYWNrZW5kIGZvciBsaWJmb2xrcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuOC0yCm5hbWU6IGxpYmZvbGtzMjUKZGVzY3JpcHRpb246IGxpYnJhcnkgdG8gYWdncmVnYXRlcyBwZW9wbGUgaW50byBtZXRhY29udGFjdHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yMC0xCm5hbWU6IGxpYmZvbnQtYWZtLXBlcmwKZGVzY3JpcHRpb246IEZvbnQ6OkFGTSAtIEludGVyZmFjZSB0byBBZG9iZSBGb250IE1ldHJpY3MgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi44LjAtM3VidW50dTkuMQpuYW1lOiBsaWJmb250Y29uZmlnMQpkZXNjcmlwdGlvbjogZ2VuZXJpYyBmb250IGNvbmZpZ3VyYXRpb24gbGlicmFyeSAtIHJ1bnRpbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi44LjAtM3VidW50dTkuMQpuYW1lOiBsaWJmb250Y29uZmlnMTppMzg2CmRlc2NyaXB0aW9uOiBnZW5lcmljIGZvbnQgY29uZmlndXJhdGlvbiBsaWJyYXJ5IC0gcnVudGltZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjguMC0zdWJ1bnR1OS4xCm5hbWU6IGxpYmZvbnRjb25maWcxLWRldgpkZXNjcmlwdGlvbjogZ2VuZXJpYyBmb250IGNvbmZpZ3VyYXRpb24gbGlicmFyeSAtIGRldmVsb3BtZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4xLjAtMQpuYW1lOiBsaWJmb250ZW5jMQpkZXNjcmlwdGlvbjogWDExIGZvbnQgZW5jb2RpbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjIuNC0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IGxpYmZyYW1lNgpkZXNjcmlwdGlvbjogVG91Y2ggRnJhbWUgTGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjE1LjEtMQpuYW1lOiBsaWJmcmVlaW1hZ2UtZGV2CmRlc2NyaXB0aW9uOiBTdXBwb3J0IGxpYnJhcnkgZm9yIGdyYXBoaWNzIGltYWdlIGZvcm1hdHMgKGRldmVsb3BtZW50IGZpbGVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjE1LjEtMQpuYW1lOiBsaWJmcmVlaW1hZ2UzCmRlc2NyaXB0aW9uOiBTdXBwb3J0IGxpYnJhcnkgZm9yIGdyYXBoaWNzIGltYWdlIGZvcm1hdHMgKGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4xLTF1YnVudHUyLjIKbmFtZTogbGliZnJlZXJkcC1wbHVnaW5zLXN0YW5kYXJkCmRlc2NyaXB0aW9uOiBSRFAgY2xpZW50IGZvciBXaW5kb3dzIFRlcm1pbmFsIFNlcnZpY2VzIChwbHVnaW5zKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMS0xdWJ1bnR1Mi4yCm5hbWU6IGxpYmZyZWVyZHAxCmRlc2NyaXB0aW9uOiBSRFAgY2xpZW50IGZvciBXaW5kb3dzIFRlcm1pbmFsIFNlcnZpY2VzIChsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuOC0xdWJ1bnR1Mi4xCm5hbWU6IGxpYmZyZWV0eXBlNgpkZXNjcmlwdGlvbjogRnJlZVR5cGUgMiBmb250IGVuZ2luZSwgc2hhcmVkIGxpYnJhcnkgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi40LjgtMXVidW50dTIuMQpuYW1lOiBsaWJmcmVldHlwZTY6aTM4NgpkZXNjcmlwdGlvbjogRnJlZVR5cGUgMiBmb250IGVuZ2luZSwgc2hhcmVkIGxpYnJhcnkgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi40LjgtMXVidW50dTIuMQpuYW1lOiBsaWJmcmVldHlwZTYtZGV2CmRlc2NyaXB0aW9uOiBGcmVlVHlwZSAyIGZvbnQgZW5naW5lLCBkZXZlbG9wbWVudCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE5LjItMQpuYW1lOiBsaWJmcmliaWRpMApkZXNjcmlwdGlvbjogRnJlZSBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgVW5pY29kZSBCaURpIGFsZ29yaXRobQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMC4zLTEKbmFtZTogbGliZnM2CmRlc2NyaXB0aW9uOiBYMTEgRm9udCBTZXJ2aWNlcyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuOC42LTJ1YnVudHUyCm5hbWU6IGxpYmZ1c2UyCmRlc2NyaXB0aW9uOiBGaWxlc3lzdGVtIGluIFVzZXJzcGFjZSAobGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yNS4wNnByZWNpc2UxCm5hbWU6IGxpYmZ3dHMxCmRlc2NyaXB0aW9uOiBGaXJtV2FyZSBUZXN0IFN1aXRlIGNvcmUgc3VwcG9ydCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjUuMDZwcmVjaXNlMQpuYW1lOiBsaWJmd3RzYWNwaWNhMQpkZXNjcmlwdGlvbjogRmlybVdhcmUgVGVzdCBTdWl0ZSBBQ1BJQ0EgY29yZSBidWlsdCBmb3IgYWNwaWV4ZWMgZnVuY3Rpb25hbGl0eQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjI1LjA2cHJlY2lzZTEKbmFtZTogbGliZnd0c2lhc2wxCmRlc2NyaXB0aW9uOiBGaXJtV2FyZSBUZXN0IFN1aXRlIEFDUElDQSBjb3JlIGJ1aWx0IGZvciBpYXNsIGZ1bmN0aW9uYWxpdHkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjItMHVidW50dTAuNQpuYW1lOiBsaWJnYWlsLTMtMApkZXNjcmlwdGlvbjogR05PTUUgQWNjZXNzaWJpbGl0eSBJbXBsZW1lbnRhdGlvbiBMaWJyYXJ5IC0tIHNoYXJlZCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yNC4xMC0wdWJ1bnR1NgpuYW1lOiBsaWJnYWlsLWNvbW1vbgpkZXNjcmlwdGlvbjogR05PTUUgQWNjZXNzaWJpbGl0eSBJbXBsZW1lbnRhdGlvbiBMaWJyYXJ5IC0tIGNvbW1vbiBtb2R1bGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjQuMTAtMHVidW50dTYKbmFtZTogbGliZ2FpbC1jb21tb246aTM4NgpkZXNjcmlwdGlvbjogR05PTUUgQWNjZXNzaWJpbGl0eSBJbXBsZW1lbnRhdGlvbiBMaWJyYXJ5IC0tIGNvbW1vbiBtb2R1bGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjQuMTAtMHVidW50dTYKbmFtZTogbGliZ2FpbDE4CmRlc2NyaXB0aW9uOiBHTk9NRSBBY2Nlc3NpYmlsaXR5IEltcGxlbWVudGF0aW9uIExpYnJhcnkgLS0gc2hhcmVkIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI0LjEwLTB1YnVudHU2Cm5hbWU6IGxpYmdhaWwxODppMzg2CmRlc2NyaXB0aW9uOiBHTk9NRSBBY2Nlc3NpYmlsaXR5IEltcGxlbWVudGF0aW9uIExpYnJhcnkgLS0gc2hhcmVkIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjAuNC0wdWJ1bnR1MC4zCm5hbWU6IGxpYmdibTEKZGVzY3JpcHRpb246IGdlbmVyaWMgYnVmZmVyIG1hbmFnZW1lbnQgQVBJIC0tIHJ1bnRpbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTo3LjEtOHVidW50dTAuMTIuMDQuMQpuYW1lOiBsaWJnYzFjMgpkZXNjcmlwdGlvbjogY29uc2VydmF0aXZlIGdhcmJhZ2UgY29sbGVjdG9yIGZvciBDIGFuZCBDKysKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTo0LjYuMy0xdWJ1bnR1NQpuYW1lOiBsaWJnY2MxCmRlc2NyaXB0aW9uOiBHQ0Mgc3VwcG9ydCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6NC42LjMtMXVidW50dTUKbmFtZTogbGliZ2NjMTppMzg2CmRlc2NyaXB0aW9uOiBHQ0Mgc3VwcG9ydCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4yLTJ1YnVudHU0Cm5hbWU6IGxpYmdjay0xLTAKZGVzY3JpcHRpb246IEdsaWIgd3JhcHBlciBsaWJyYXJ5IGZvciBQS0NTIzExIC0gcnVudGltZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuNS0wdWJ1bnR1MgpuYW1lOiBsaWJnY29uZi0yLTQKZGVzY3JpcHRpb246IEdOT01FIGNvbmZpZ3VyYXRpb24gZGF0YWJhc2Ugc3lzdGVtIChzaGFyZWQgbGlicmFyaWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuNS0wdWJ1bnR1MgpuYW1lOiBsaWJnY29uZi0yLTQ6aTM4NgpkZXNjcmlwdGlvbjogR05PTUUgY29uZmlndXJhdGlvbiBkYXRhYmFzZSBzeXN0ZW0gKHNoYXJlZCBsaWJyYXJpZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi41LTB1YnVudHUyCm5hbWU6IGxpYmdjb25mMi00CmRlc2NyaXB0aW9uOiBHTk9NRSBjb25maWd1cmF0aW9uIGRhdGFiYXNlIHN5c3RlbSAoZHVtbXkgcGFja2FnZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjItMnVidW50dTQKbmFtZTogbGliZ2NyLTMtMQpkZXNjcmlwdGlvbjogTGlicmFyeSBmb3IgQ3J5cHRvIFVJIHJlbGF0ZWQgdGFzayAtIHJ1bnRpbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjItMnVidW50dTQKbmFtZTogbGliZ2NyLTMtY29tbW9uCmRlc2NyaXB0aW9uOiBMaWJyYXJ5IGZvciBDcnlwdG8gVUkgcmVsYXRlZCB0YXNrIC0gY29tbW9uIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNS4wLTN1YnVudHUwLjEKbmFtZTogbGliZ2NyeXB0MTEKZGVzY3JpcHRpb246IExHUEwgQ3J5cHRvIGxpYnJhcnkgLSBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41LjAtM3VidW50dTAuMQpuYW1lOiBsaWJnY3J5cHQxMTppMzg2CmRlc2NyaXB0aW9uOiBMR1BMIENyeXB0byBsaWJyYXJ5IC0gcnVudGltZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMC4zNn5yYzF+ZGZzZy02dWJ1bnR1MgpuYW1lOiBsaWJnZDIteHBtCmRlc2NyaXB0aW9uOiBHRCBHcmFwaGljcyBMaWJyYXJ5IHZlcnNpb24gMgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuMzZ+cmMxfmRmc2ctNnVidW50dTIKbmFtZTogbGliZ2QyLXhwbTppMzg2CmRlc2NyaXB0aW9uOiBHRCBHcmFwaGljcyBMaWJyYXJ5IHZlcnNpb24gMgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEyLjAtMQpuYW1lOiBsaWJnZGF0YS1jb21tb24KZGVzY3JpcHRpb246IExpYnJhcnkgZm9yIGFjY2Vzc2luZyBHRGF0YSB3ZWJzZXJ2aWNlcyAtIGNvbW1vbiBkYXRhIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTIuMC0xCm5hbWU6IGxpYmdkYXRhMTMKZGVzY3JpcHRpb246IExpYnJhcnkgZm9yIGFjY2Vzc2luZyBHRGF0YSB3ZWJzZXJ2aWNlcyAtIHNoYXJlZCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LjMtMTAKbmFtZTogbGliZ2RibTMKZGVzY3JpcHRpb246IEdOVSBkYm0gZGF0YWJhc2Ugcm91dGluZXMgKHJ1bnRpbWUgdmVyc2lvbikKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LjMtMTAKbmFtZTogbGliZ2RibTM6aTM4NgpkZXNjcmlwdGlvbjogR05VIGRibSBkYXRhYmFzZSByb3V0aW5lcyAocnVudGltZSB2ZXJzaW9uKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI2LjEtMQpuYW1lOiBsaWJnZGstcGl4YnVmMi4wLTAKZGVzY3JpcHRpb246IEdESyBQaXhidWYgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI2LjEtMQpuYW1lOiBsaWJnZGstcGl4YnVmMi4wLTA6aTM4NgpkZXNjcmlwdGlvbjogR0RLIFBpeGJ1ZiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjYuMS0xCm5hbWU6IGxpYmdkay1waXhidWYyLjAtY29tbW9uCmRlc2NyaXB0aW9uOiBHREsgUGl4YnVmIGxpYnJhcnkgLSBkYXRhIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjYuMS0xCm5hbWU6IGxpYmdkay1waXhidWYyLjAtZGV2CmRlc2NyaXB0aW9uOiBHREsgUGl4YnVmIGxpYnJhcnkgKGRldmVsb3BtZW50IGZpbGVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMi0ydWJ1bnR1NwpuYW1lOiBsaWJnZHUtZ3RrMApkZXNjcmlwdGlvbjogR1RLKyBzdGFuZGFyZCBkaWFsb2cgbGlicmFyeSBmb3IgbGliZ2R1CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4yLTJ1YnVudHU3Cm5hbWU6IGxpYmdkdTAKZGVzY3JpcHRpb246IEdPYmplY3QgYmFzZWQgRGlzayBVdGlsaXR5IExpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjQtMQpuYW1lOiBsaWJnZWUyCmRlc2NyaXB0aW9uOiBHT2JqZWN0IGJhc2VkIGNvbGxlY3Rpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjAuMjItMnVidW50dTMKbmFtZTogbGliZ2VnbC0wLjAtMApkZXNjcmlwdGlvbjogR2VuZXJpYyBHcmFwaGljcyBMaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMi45LjItMHVidW50dTEKbmFtZTogbGliZ2VpczEKZGVzY3JpcHRpb246IEdlc3R1cmUgZW5naW5lIGludGVyZmFjZSBzdXBwb3J0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTIuMC0xdWJ1bnR1MTIKbmFtZTogbGliZ2VvY2x1ZTAKZGVzY3JpcHRpb246IEMgQVBJIGZvciBHZW9DbHVlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC44K2Rmc2ctMgpuYW1lOiBsaWJnZW9pcDEKZGVzY3JpcHRpb246IG5vbi1ETlMgSVAtdG8tY291bnRyeSByZXNvbHZlciBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTguMS4xLTV1YnVudHUzCm5hbWU6IGxpYmdldHRleHRwbzAKZGVzY3JpcHRpb246IEdOVSBJbnRlcm5hdGlvbmFsaXphdGlvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTguMS4xLTV1YnVudHUzCm5hbWU6IGxpYmdldHRleHRwbzA6aTM4NgpkZXNjcmlwdGlvbjogR05VIEludGVybmF0aW9uYWxpemF0aW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjEtMWJ1aWxkMQpuYW1lOiBsaWJnZXhpdjItMQpkZXNjcmlwdGlvbjogR09iamVjdC1iYXNlZCB3cmFwcGVyIGFyb3VuZCB0aGUgRXhpdjIgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjYuMy0xdWJ1bnR1NQpuYW1lOiBsaWJnZm9ydHJhbjMKZGVzY3JpcHRpb246IFJ1bnRpbWUgbGlicmFyeSBmb3IgR05VIEZvcnRyYW4gYXBwbGljYXRpb25zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuMS42LTl1YnVudHUxCm5hbWU6IGxpYmdpZjQKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIEdJRiBpbWFnZXMgKGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNi4xMi0xdWJ1bnR1MS4yCm5hbWU6IGxpYmdpbXAyLjAKZGVzY3JpcHRpb246IExpYnJhcmllcyBmb3IgdGhlIEdOVSBJbWFnZSBNYW5pcHVsYXRpb24gUHJvZ3JhbQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMyLjAtMQpuYW1lOiBsaWJnaXJlcG9zaXRvcnktMS4wLTEKZGVzY3JpcHRpb246IExpYnJhcnkgZm9yIGhhbmRsaW5nIEdPYmplY3QgaW50cm9zcGVjdGlvbiBkYXRhIChydW50aW1lIGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMzIuMC0xdWJ1bnR1MQpuYW1lOiBsaWJnanMwYwpkZXNjcmlwdGlvbjogTW96aWxsYS1iYXNlZCBqYXZhc2NyaXB0IGJpbmRpbmdzIGZvciB0aGUgR05PTUUgcGxhdGZvcm0KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjEzfnByZTEtNXVidW50dTIKbmFtZTogbGliZ2tzdTItMApkZXNjcmlwdGlvbjogbGlicmFyeSBwcm92aWRpbmcgc3UgYW5kIHN1ZG8gZnVuY3Rpb25hbGl0eQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjAuNC0wdWJ1bnR1MC4zCm5hbWU6IGxpYmdsMS1tZXNhLWRldgpkZXNjcmlwdGlvbjogZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgT3BlbkdMIEFQSSAtLSBHTFggZGV2ZWxvcG1lbnQgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogOC4wLjQtMHVidW50dTAuMwpuYW1lOiBsaWJnbDEtbWVzYS1kcmkKZGVzY3JpcHRpb246IGZyZWUgaW1wbGVtZW50YXRpb24gb2YgdGhlIE9wZW5HTCBBUEkgLS0gRFJJIG1vZHVsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogOC4wLjQtMHVidW50dTAuMwpuYW1lOiBsaWJnbDEtbWVzYS1kcmk6aTM4NgpkZXNjcmlwdGlvbjogZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgT3BlbkdMIEFQSSAtLSBEUkkgbW9kdWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjAuNC0wdWJ1bnR1MC4zCm5hbWU6IGxpYmdsMS1tZXNhLWdseApkZXNjcmlwdGlvbjogZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgT3BlbkdMIEFQSSAtLSBHTFggcnVudGltZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjAuNC0wdWJ1bnR1MC4zCm5hbWU6IGxpYmdsMS1tZXNhLWdseDppMzg2CmRlc2NyaXB0aW9uOiBmcmVlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBPcGVuR0wgQVBJIC0tIEdMWCBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Mi42LjQtMXVidW50dTEuMQpuYW1lOiBsaWJnbGFkZTItMApkZXNjcmlwdGlvbjogbGlicmFyeSB0byBsb2FkIC5nbGFkZSBmaWxlcyBhdCBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Mi42LjQtMXVidW50dTEuMQpuYW1lOiBsaWJnbGFkZTItZGV2CmRlc2NyaXB0aW9uOiBkZXZlbG9wbWVudCBmaWxlcyBmb3IgbGliZ2xhZGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy44LjAtMHVidW50dTQKbmFtZTogbGliZ2xhZGV1aS0xLTExCmRlc2NyaXB0aW9uOiBHVEsrIFVzZXIgSW50ZXJmYWNlIEJ1aWxkIGNvcmUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjEyLjEtMHVidW50dTEKbmFtZTogbGliZ2xhZGV1aS0yLTAKZGVzY3JpcHRpb246IEdUSysgVXNlciBJbnRlcmZhY2UgQnVpbGQgY29yZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMTIuMS0wdWJ1bnR1MQpuYW1lOiBsaWJnbGFkZXVpLWNvbW1vbgpkZXNjcmlwdGlvbjogR1RLKyBVc2VyIEludGVyZmFjZSBCdWlsZCBjb3JlIGxpYnJhcnkgKGNvbW1vbiBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogOC4wLjQtMHVidW50dTAuMwpuYW1lOiBsaWJnbGFwaS1tZXNhCmRlc2NyaXB0aW9uOiBmcmVlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBHTCBBUEkgLS0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogOC4wLjQtMHVidW50dTAuMwpuYW1lOiBsaWJnbGFwaS1tZXNhOmkzODYKZGVzY3JpcHRpb246IGZyZWUgaW1wbGVtZW50YXRpb24gb2YgdGhlIEdMIEFQSSAtLSBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjAuNC0wdWJ1bnR1MC4zCm5hbWU6IGxpYmdsZXMyLW1lc2EKZGVzY3JpcHRpb246IGZyZWUgaW1wbGVtZW50YXRpb24gb2YgdGhlIE9wZW5HTHxFUyAyLnggQVBJIC0tIHJ1bnRpbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogOC4wLjQtMHVidW50dTAuMwpuYW1lOiBsaWJnbGVzMi1tZXNhLWRldgpkZXNjcmlwdGlvbjogZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgT3BlbkdMfEVTIDIueCBBUEkgLS0gZGV2ZWxvcG1lbnQgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41LjcuaXMuMS41LjItMXVidW50dTQKbmFtZTogbGliZ2xldzEuNQpkZXNjcmlwdGlvbjogVGhlIE9wZW5HTCBFeHRlbnNpb24gV3JhbmdsZXIgLSBydW50aW1lIGVudmlyb25tZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNS43LmlzLjEuNS4yLTF1YnVudHU0Cm5hbWU6IGxpYmdsZXcxLjUtZGV2CmRlc2NyaXB0aW9uOiBUaGUgT3BlbkdMIEV4dGVuc2lvbiBXcmFuZ2xlciAtIGRldmVsb3BtZW50IGVudmlyb25tZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNi4wLTQKbmFtZTogbGliZ2xldzEuNgpkZXNjcmlwdGlvbjogT3BlbkdMIEV4dGVuc2lvbiBXcmFuZ2xlciAtIHJ1bnRpbWUgZW52aXJvbm1lbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS42LjAtNApuYW1lOiBsaWJnbGV3bXgxLjYKZGVzY3JpcHRpb246IE9wZW5HTCBFeHRlbnNpb24gV3JhbmdsZXIgLSBydW50aW1lIGVudmlyb25tZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS4yNDEtMQpuYW1lOiBsaWJnbGliLXBlcmwKZGVzY3JpcHRpb246IGludGVyZmFjZSB0byB0aGUgR0xpYiBhbmQgR09iamVjdCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zMi4zLTB1YnVudHUxCm5hbWU6IGxpYmdsaWIyLjAtMApkZXNjcmlwdGlvbjogR0xpYiBsaWJyYXJ5IG9mIEMgcm91dGluZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zMi4zLTB1YnVudHUxCm5hbWU6IGxpYmdsaWIyLjAtMDppMzg2CmRlc2NyaXB0aW9uOiBHTGliIGxpYnJhcnkgb2YgQyByb3V0aW5lcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMyLjMtMHVidW50dTEKbmFtZTogbGliZ2xpYjIuMC1iaW4KZGVzY3JpcHRpb246IFByb2dyYW1zIGZvciB0aGUgR0xpYiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMzIuMy0wdWJ1bnR1MQpuYW1lOiBsaWJnbGliMi4wLWRhdGEKZGVzY3JpcHRpb246IENvbW1vbiBmaWxlcyBmb3IgR0xpYiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMzIuMy0wdWJ1bnR1MQpuYW1lOiBsaWJnbGliMi4wLWRldgpkZXNjcmlwdGlvbjogRGV2ZWxvcG1lbnQgZmlsZXMgZm9yIHRoZSBHTGliIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zMi4zLTB1YnVudHUxCm5hbWU6IGxpYmdsaWIyLjAtZG9jCmRlc2NyaXB0aW9uOiBEb2N1bWVudGF0aW9uIGZpbGVzIGZvciB0aGUgR0xpYiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMzIuMC0wdWJ1bnR1MQpuYW1lOiBsaWJnbGlibW0tMi40LTFjMmEKZGVzY3JpcHRpb246IEMrKyB3cmFwcGVyIGZvciB0aGUgR0xpYiB0b29sa2l0IChzaGFyZWQgbGlicmFyaWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjAuNC0wdWJ1bnR1MC4zCm5hbWU6IGxpYmdsdTEtbWVzYQpkZXNjcmlwdGlvbjogTWVzYSBPcGVuR0wgdXRpbGl0eSBsaWJyYXJ5IChHTFUpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDguMC40LTB1YnVudHUwLjMKbmFtZTogbGliZ2x1MS1tZXNhOmkzODYKZGVzY3JpcHRpb246IE1lc2EgT3BlbkdMIHV0aWxpdHkgbGlicmFyeSAoR0xVKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjAuNC0wdWJ1bnR1MC4zCm5hbWU6IGxpYmdsdTEtbWVzYS1kZXYKZGVzY3JpcHRpb246IE1lc2EgT3BlbkdMIHV0aWxpdHkgbGlicmFyeSAtLSBkZXZlbG9wbWVudCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjUuNS0yCm5hbWU6IGxpYmdtZTAKZGVzY3JpcHRpb246IFBsYXliYWNrIGxpYnJhcnkgZm9yIHZpZGVvIGdhbWUgbXVzaWMgZmlsZXMgLSBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjYuNy0xCm5hbWU6IGxpYmdtaW1lLTIuNi0wCmRlc2NyaXB0aW9uOiBNSU1FIG1lc3NhZ2UgcGFyc2VyIGFuZCBjcmVhdG9yIGxpYnJhcnkgLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC41LTEKbmFtZTogbGliZ21saWIwCmRlc2NyaXB0aW9uOiBnbm9tZS1tcGxheWVyIGxpYnJhcnkgKHNoYXJlZCBsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjUuMC4yK2Rmc2ctMnVidW50dTEKbmFtZTogbGliZ21wMTAKZGVzY3JpcHRpb246IE11bHRpcHJlY2lzaW9uIGFyaXRobWV0aWMgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuNS0xCm5hbWU6IGxpYmdtdGswCmRlc2NyaXB0aW9uOiBnbm9tZS1tcGxheWVyIHRvb2xraXQgKHNoYXJlZCBsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuNS0xCm5hbWU6IGxpYmdtdGswLWRhdGEKZGVzY3JpcHRpb246IGdub21lLW1wbGF5ZXIgdG9vbGtpdCAoY29tbW9uIGZpbGVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMi0wdWJ1bnR1NQpuYW1lOiBsaWJnbm9tZS1ibHVldG9vdGg4CmRlc2NyaXB0aW9uOiBHTk9NRSBCbHVldG9vdGggdG9vbHMgLSBzdXBwb3J0IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjQuMi0wdWJ1bnR1MC44Cm5hbWU6IGxpYmdub21lLWNvbnRyb2wtY2VudGVyMQpkZXNjcmlwdGlvbjogdXRpbGl0aWVzIHRvIGNvbmZpZ3VyZSB0aGUgR05PTUUgZGVza3RvcAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMi0wdWJ1bnR1MC4xCm5hbWU6IGxpYmdub21lLWRlc2t0b3AtMy0yCmRlc2NyaXB0aW9uOiBVdGlsaXR5IGxpYnJhcnkgZm9yIGxvYWRpbmcgLmRlc2t0b3AgZmlsZXMgLSBydW50aW1lIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4yLTIKbmFtZTogbGliZ25vbWUta2V5cmluZy1jb21tb24KZGVzY3JpcHRpb246IEdOT01FIGtleXJpbmcgc2VydmljZXMgbGlicmFyeSAtIGRhdGEgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjItMgpuYW1lOiBsaWJnbm9tZS1rZXlyaW5nMApkZXNjcmlwdGlvbjogR05PTUUga2V5cmluZyBzZXJ2aWNlcyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4yLTIKbmFtZTogbGliZ25vbWUta2V5cmluZzA6aTM4NgpkZXNjcmlwdGlvbjogR05PTUUga2V5cmluZyBzZXJ2aWNlcyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4wLTEKbmFtZTogbGliZ25vbWUtbWVkaWEtcHJvZmlsZXMtMy4wLTAKZGVzY3JpcHRpb246IEdOT01FIE1lZGlhIFByb2ZpbGVzIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjAtMHVidW50dTEKbmFtZTogbGliZ25vbWUtbWVudS0zLTAKZGVzY3JpcHRpb246IEdOT01FIGltcGxlbWVudGF0aW9uIG9mIHRoZSBmcmVlZGVza3RvcCBtZW51IHNwZWNpZmljYXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjEtMHVidW50dTcKbmFtZTogbGliZ25vbWUtbWVudTIKZGVzY3JpcHRpb246IEdOT01FIGltcGxlbWVudGF0aW9uIG9mIHRoZSBmcmVlZGVza3RvcCBtZW51IHNwZWNpZmljYXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zMi4xLTJ1YnVudHUxLjEKbmFtZTogbGliZ25vbWUyLTAKZGVzY3JpcHRpb246IFRoZSBHTk9NRSBsaWJyYXJ5IC0gcnVudGltZSBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMyLjEtMnVidW50dTEuMQpuYW1lOiBsaWJnbm9tZTItYmluCmRlc2NyaXB0aW9uOiBUaGUgR05PTUUgbGlicmFyeSAtIGJpbmFyeSBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAwMi0yYnVpbGQzCm5hbWU6IGxpYmdub21lMi1jYW52YXMtcGVybApkZXNjcmlwdGlvbjogUGVybCBpbnRlcmZhY2UgdG8gdGhlIEdOT01FIGNhbnZhcyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMzIuMS0ydWJ1bnR1MS4xCm5hbWU6IGxpYmdub21lMi1jb21tb24KZGVzY3JpcHRpb246IFRoZSBHTk9NRSBsaWJyYXJ5IC0gY29tbW9uIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMDQ0LTQKbmFtZTogbGliZ25vbWUyLWdjb25mLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgaW50ZXJmYWNlIHRvIHRoZSBHTk9NRSBHQ29uZiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMDQyLTJidWlsZDMKbmFtZTogbGliZ25vbWUyLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgaW50ZXJmYWNlIHRvIHRoZSBHTk9NRSBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wODEtM2J1aWxkMQpuYW1lOiBsaWJnbm9tZTItdmZzLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgaW50ZXJmYWNlIHRvIHRoZSAyLnggc2VyaWVzIG9mIHRoZSBHTk9NRSBWRlMgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE2LTJidWlsZDIKbmFtZTogbGliZ25vbWUyLXduY2stcGVybApkZXNjcmlwdGlvbjogUGVybCBpbnRlcmZhY2UgdG8gdGhlIFdpbmRvdyBOYXZpZ2F0b3IgQ29uc3RydWN0aW9uIEtpdAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMwLjMtMXVidW50dTEuMQpuYW1lOiBsaWJnbm9tZWNhbnZhczItMApkZXNjcmlwdGlvbjogcG93ZXJmdWwgb2JqZWN0LW9yaWVudGVkIGRpc3BsYXkgZW5naW5lIC0gcnVudGltZSBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMwLjMtMXVidW50dTEuMQpuYW1lOiBsaWJnbm9tZWNhbnZhczItY29tbW9uCmRlc2NyaXB0aW9uOiBwb3dlcmZ1bCBvYmplY3Qtb3JpZW50ZWQgZGlzcGxheSBlbmdpbmUgLSBjb21tb24gZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjAuMi0xCm5hbWU6IGxpYmdub21la2JkLWNvbW1vbgpkZXNjcmlwdGlvbjogR05PTUUgbGlicmFyeSB0byBtYW5hZ2Uga2V5Ym9hcmQgY29uZmlndXJhdGlvbiAtIGNvbW1vbiBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMC4yLTEKbmFtZTogbGliZ25vbWVrYmQ3CmRlc2NyaXB0aW9uOiBHTk9NRSBsaWJyYXJ5IHRvIG1hbmFnZSBrZXlib2FyZCBjb25maWd1cmF0aW9uIC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yNC41LTJ1YnVudHUyCm5hbWU6IGxpYmdub21ldWktMApkZXNjcmlwdGlvbjogR05PTUUgdXNlciBpbnRlcmZhY2UgbGlicmFyeSAtIHJ1bnRpbWUgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yNC41LTJ1YnVudHUyCm5hbWU6IGxpYmdub21ldWktY29tbW9uCmRlc2NyaXB0aW9uOiBHTk9NRSB1c2VyIGludGVyZmFjZSBsaWJyYXJ5IC0gY29tbW9uIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Mi4yNC40LTF1YnVudHUyLjEKbmFtZTogbGliZ25vbWV2ZnMyLTAKZGVzY3JpcHRpb246IEdOT01FIFZpcnR1YWwgRmlsZSBTeXN0ZW0gKHJ1bnRpbWUgbGlicmFyaWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjIuMjQuNC0xdWJ1bnR1Mi4xCm5hbWU6IGxpYmdub21ldmZzMi1jb21tb24KZGVzY3JpcHRpb246IEdOT01FIFZpcnR1YWwgRmlsZSBTeXN0ZW0gKGNvbW1vbiBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToyLjI0LjQtMXVidW50dTIuMQpuYW1lOiBsaWJnbm9tZXZmczItZXh0cmEKZGVzY3JpcHRpb246IEdOT01FIFZpcnR1YWwgRmlsZSBTeXN0ZW0gKGV4dHJhIG1vZHVsZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMTIuMTQtNXVidW50dTMuMQpuYW1lOiBsaWJnbnV0bHMyNgpkZXNjcmlwdGlvbjogR05VIFRMUyBsaWJyYXJ5IC0gcnVudGltZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMTIuMTQtNXVidW50dTMuMQpuYW1lOiBsaWJnbnV0bHMyNjppMzg2CmRlc2NyaXB0aW9uOiBHTlUgVExTIGxpYnJhcnkgLSBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjAtMHVidW50dTEKbmFtZTogbGliZ29hLTEuMC0wCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciBHTk9NRSBPbmxpbmUgQWNjb3VudHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjAtMHVidW50dTEKbmFtZTogbGliZ29hLTEuMC1jb21tb24KZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIEdOT01FIE9ubGluZSBBY2NvdW50cyAtIGNvbW1vbiBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjYuMy0xdWJ1bnR1NQpuYW1lOiBsaWJnb21wMQpkZXNjcmlwdGlvbjogR0NDIE9wZW5NUCAoR09NUCkgc3VwcG9ydCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuNi4zLTF1YnVudHU1Cm5hbWU6IGxpYmdvbXAxOmkzODYKZGVzY3JpcHRpb246IEdDQyBPcGVuTVAgKEdPTVApIHN1cHBvcnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjA2LTFidWlsZDIKbmFtZTogbGliZ29vLWNhbnZhcy1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIGludGVyZmFjZSB0byB0aGUgR29vQ2FudmFzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTUtMQpuYW1lOiBsaWJnb29jYW52YXMtY29tbW9uCmRlc2NyaXB0aW9uOiB0cmFuc2xhdGlvbnMgZm9yIGdvb2NhbnZhcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE1LTEKbmFtZTogbGliZ29vY2FudmFzMwpkZXNjcmlwdGlvbjogY2FudmFzIHdpZGdldCBmb3IgR1RLKyB0aGF0IHVzZXMgdGhlIGNhaXJvIDJEIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMC0ydWJ1bnR1MQpuYW1lOiBsaWJncGctZXJyb3IwCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciBjb21tb24gZXJyb3IgdmFsdWVzIGFuZCBtZXNzYWdlcyBpbiBHbnVQRyBjb21wb25lbnRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMTAtMnVidW50dTEKbmFtZTogbGliZ3BnLWVycm9yMDppMzg2CmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciBjb21tb24gZXJyb3IgdmFsdWVzIGFuZCBtZXNzYWdlcyBpbiBHbnVQRyBjb21wb25lbnRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4wLTEuNHVidW50dTIKbmFtZTogbGliZ3BnbWUxMQpkZXNjcmlwdGlvbjogR1BHTUUgLSBHbnVQRyBNYWRlIEVhc3kKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi40LjEzLTF1YnVudHUxLjIKbmFtZTogbGliZ3Bob3RvMi0yCmRlc2NyaXB0aW9uOiBncGhvdG8yIGRpZ2l0YWwgY2FtZXJhIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi40LjEzLTF1YnVudHUxLjIKbmFtZTogbGliZ3Bob3RvMi0yOmkzODYKZGVzY3JpcHRpb246IGdwaG90bzIgZGlnaXRhbCBjYW1lcmEgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMTMtMXVidW50dTEuMgpuYW1lOiBsaWJncGhvdG8yLWwxMG4KZGVzY3JpcHRpb246IGdwaG90bzIgZGlnaXRhbCBjYW1lcmEgbGlicmFyeSAtIGxvY2FsaXplZCBtZXNzYWdlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMTMtMXVidW50dTEuMgpuYW1lOiBsaWJncGhvdG8yLXBvcnQwCmRlc2NyaXB0aW9uOiBncGhvdG8yIGRpZ2l0YWwgY2FtZXJhIHBvcnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMTMtMXVidW50dTEuMgpuYW1lOiBsaWJncGhvdG8yLXBvcnQwOmkzODYKZGVzY3JpcHRpb246IGdwaG90bzIgZGlnaXRhbCBjYW1lcmEgcG9ydCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMjAuNC00Cm5hbWU6IGxpYmdwbTIKZGVzY3JpcHRpb246IEdlbmVyYWwgUHVycG9zZSBNb3VzZSAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMjAuNC00Cm5hbWU6IGxpYmdwbTI6aTM4NgpkZXNjcmlwdGlvbjogR2VuZXJhbCBQdXJwb3NlIE1vdXNlIC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44LjItNApuYW1lOiBsaWJncG9kLWNvbW1vbgpkZXNjcmlwdGlvbjogY29tbW9uIGZpbGVzIGZvciBsaWJncG9kCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOC4yLTQKbmFtZTogbGliZ3BvZDQKZGVzY3JpcHRpb246IGxpYnJhcnkgdG8gcmVhZCBhbmQgd3JpdGUgc29uZ3MgYW5kIGFydHdvcmsgdG8gYW4gaVBvZAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuNi0wdWJ1bnR1MC4xMi4wNC4wMQpuYW1lOiBsaWJncmFpbDUKZGVzY3JpcHRpb246IEdlc3R1cmUgUmVjb2duaXRpb24gQW5kIEluc3RhbnRpYXRpb24gTGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI2LjMtMTB1YnVudHUxCm5hbWU6IGxpYmdyYXBoNApkZXNjcmlwdGlvbjogcmljaCBzZXQgb2YgZ3JhcGggZHJhd2luZyB0b29scyAtIGdyYXBoIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjUtMHVidW50dTF+MTIuMDQuMQpuYW1lOiBsaWJncmlwMApkZXNjcmlwdGlvbjogcHJvdmlkZXMgbXVsdGl0b3VjaCBnZXN0dXJlcyB0byBHVEsrIGFwcHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogOS4wNX5kZnNnLTB1YnVudHU0LjIKbmFtZTogbGliZ3M5CmRlc2NyaXB0aW9uOiBpbnRlcnByZXRlciBmb3IgdGhlIFBvc3RTY3JpcHQgbGFuZ3VhZ2UgYW5kIGZvciBQREYgLSBMaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDkuMDV+ZGZzZy0wdWJ1bnR1NC4yCm5hbWU6IGxpYmdzOS1jb21tb24KZGVzY3JpcHRpb246IGludGVycHJldGVyIGZvciB0aGUgUG9zdFNjcmlwdCBsYW5ndWFnZSBhbmQgZm9yIFBERiAtIGNvbW1vbiBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjE1K2Rmc2ctMWJ1aWxkMQpuYW1lOiBsaWJnc2wwbGRibApkZXNjcmlwdGlvbjogR05VIFNjaWVudGlmaWMgTGlicmFyeSAoR1NMKSAtLSBsaWJyYXJ5IHBhY2thZ2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjEzLTMKbmFtZTogbGliZ3NtMQpkZXNjcmlwdGlvbjogU2hhcmVkIGxpYnJhcmllcyBmb3IgR1NNIHNwZWVjaCBjb21wcmVzc29yCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuOC40LTIKbmFtZTogbGliZ3NvYXAxCmRlc2NyaXB0aW9uOiBSdW50aW1lIGxpYnJhcmllcyBmb3IgZ1NPQVAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMCtkZnNnfmJldGExLTJ1YnVudHUwLjMKbmFtZTogbGliZ3NzYXBpLWtyYjUtMgpkZXNjcmlwdGlvbjogTUlUIEtlcmJlcm9zIHJ1bnRpbWUgbGlicmFyaWVzIC0ga3JiNSBHU1MtQVBJIE1lY2hhbmlzbQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEwK2Rmc2d+YmV0YTEtMnVidW50dTAuMwpuYW1lOiBsaWJnc3NhcGkta3JiNS0yOmkzODYKZGVzY3JpcHRpb246IE1JVCBLZXJiZXJvcyBydW50aW1lIGxpYnJhcmllcyAtIGtyYjUgR1NTLUFQSSBNZWNoYW5pc20KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS42fmdpdDIwMTIwMzExLmRmc2cuMS0yCm5hbWU6IGxpYmdzc2FwaTMtaGVpbWRhbApkZXNjcmlwdGlvbjogSGVpbWRhbCBLZXJiZXJvcyAtIEdTU0FQSSBzdXBwb3J0IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS42fmdpdDIwMTIwMzExLmRmc2cuMS0yCm5hbWU6IGxpYmdzc2FwaTMtaGVpbWRhbDppMzg2CmRlc2NyaXB0aW9uOiBIZWltZGFsIEtlcmJlcm9zIC0gR1NTQVBJIHN1cHBvcnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEyLjEtMgpuYW1lOiBsaWJnc3NkcC0xLjAtMwpkZXNjcmlwdGlvbjogR09iamVjdC1iYXNlZCBsaWJyYXJ5IGZvciBTU0RQCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMjIuMy0ydWJ1bnR1Mi4xCm5hbWU6IGxpYmdzdHJlYW1lci1wbHVnaW5zLWJhZDAuMTAtMApkZXNjcmlwdGlvbjogR1N0cmVhbWVyIHNoYXJlZCBsaWJyYXJpZXMgZnJvbSB0aGUgImJhZCIgc2V0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMzYtMXVidW50dTAuMQpuYW1lOiBsaWJnc3RyZWFtZXItcGx1Z2lucy1iYXNlMC4xMC0wCmRlc2NyaXB0aW9uOiBHU3RyZWFtZXIgbGlicmFyaWVzIGZyb20gdGhlICJiYXNlIiBzZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMC4zNi0xdWJ1bnR1MC4xCm5hbWU6IGxpYmdzdHJlYW1lci1wbHVnaW5zLWJhc2UwLjEwLTA6aTM4NgpkZXNjcmlwdGlvbjogR1N0cmVhbWVyIGxpYnJhcmllcyBmcm9tIHRoZSAiYmFzZSIgc2V0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMzYtMXVidW50dTEKbmFtZTogbGliZ3N0cmVhbWVyMC4xMC0wCmRlc2NyaXB0aW9uOiBDb3JlIEdTdHJlYW1lciBsaWJyYXJpZXMgYW5kIGVsZW1lbnRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAuMzYtMXVidW50dTEKbmFtZTogbGliZ3N0cmVhbWVyMC4xMC0wOmkzODYKZGVzY3JpcHRpb246IENvcmUgR1N0cmVhbWVyIGxpYnJhcmllcyBhbmQgZWxlbWVudHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjItMHVidW50dTAuNQpuYW1lOiBsaWJndGstMy0wCmRlc2NyaXB0aW9uOiBHVEsrIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4yLTB1YnVudHUwLjUKbmFtZTogbGliZ3RrLTMtYmluCmRlc2NyaXB0aW9uOiBwcm9ncmFtcyBmb3IgdGhlIEdUSysgZ3JhcGhpY2FsIHVzZXIgaW50ZXJmYWNlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjItMHVidW50dTAuNQpuYW1lOiBsaWJndGstMy1jb21tb24KZGVzY3JpcHRpb246IGNvbW1vbiBmaWxlcyBmb3IgdGhlIEdUSysgZ3JhcGhpY2FsIHVzZXIgaW50ZXJmYWNlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjItMHVidW50dTAuNQpuYW1lOiBsaWJndGstMy1kZXYKZGVzY3JpcHRpb246IGRldmVsb3BtZW50IGZpbGVzIGZvciB0aGUgR1RLKyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4yLTB1YnVudHUwLjUKbmFtZTogbGliZ3RrLTMtZG9jCmRlc2NyaXB0aW9uOiBkb2N1bWVudGF0aW9uIGZvciB0aGUgR1RLKyBncmFwaGljYWwgdXNlciBpbnRlcmZhY2UgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjUuMC0xdWJ1bnR1MQpuYW1lOiBsaWJndGstdm5jLTIuMC0wCmRlc2NyaXB0aW9uOiBWTkMgdmlld2VyIHdpZGdldCBmb3IgR1RLKzMgKHJ1bnRpbWUgbGlicmFyaWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjA1LTFidWlsZDIKbmFtZTogbGliZ3RrMi1pbWFnZXZpZXctcGVybApkZXNjcmlwdGlvbjogUGVybCBiaW5kaW5ncyBmb3IgdGhlIEd0a0ltYWdlVmlldyBpbWFnZSB2aWV3ZXIgd2lkZ2V0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS4yMjMtMWJ1aWxkMwpuYW1lOiBsaWJndGsyLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgaW50ZXJmYWNlIHRvIHRoZSAyLnggc2VyaWVzIG9mIHRoZSBHaW1wIFRvb2xraXQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjA1LTFidWlsZDIKbmFtZTogbGliZ3RrMi11bmlxdWUtcGVybApkZXNjcmlwdGlvbjogbW9kdWxlIGZvciBzaW5nbGUgaW5zdGFuY2UgYXBwbGljYXRpb25zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjQuMTAtMHVidW50dTYKbmFtZTogbGliZ3RrMi4wLTAKZGVzY3JpcHRpb246IEdUSysgZ3JhcGhpY2FsIHVzZXIgaW50ZXJmYWNlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yNC4xMC0wdWJ1bnR1NgpuYW1lOiBsaWJndGsyLjAtMDppMzg2CmRlc2NyaXB0aW9uOiBHVEsrIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjQuMTAtMHVidW50dTYKbmFtZTogbGliZ3RrMi4wLWJpbgpkZXNjcmlwdGlvbjogcHJvZ3JhbXMgZm9yIHRoZSBHVEsrIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjQuMTAtMHVidW50dTYKbmFtZTogbGliZ3RrMi4wLWNvbW1vbgpkZXNjcmlwdGlvbjogY29tbW9uIGZpbGVzIGZvciB0aGUgR1RLKyBncmFwaGljYWwgdXNlciBpbnRlcmZhY2UgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI0LjEwLTB1YnVudHU2Cm5hbWU6IGxpYmd0azIuMC1kZXYKZGVzY3JpcHRpb246IGRldmVsb3BtZW50IGZpbGVzIGZvciB0aGUgR1RLKyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNi40LTEKbmFtZTogbGliZ3RraW1hZ2V2aWV3MApkZXNjcmlwdGlvbjogaW1hZ2Ugdmlld2VyIHdpZGdldCBmb3IgR1RLKwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjIuMjQuMi0xdWJ1bnR1MQpuYW1lOiBsaWJndGttbS0yLjQtMWMyYQpkZXNjcmlwdGlvbjogQysrIHdyYXBwZXJzIGZvciBHVEsrIChzaGFyZWQgbGlicmFyaWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMC0wdWJ1bnR1MQpuYW1lOiBsaWJndGttbS0zLjAtMQpkZXNjcmlwdGlvbjogQysrIHdyYXBwZXJzIGZvciBHVEsrIChzaGFyZWQgbGlicmFyaWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMi0wdWJ1bnR1MQpuYW1lOiBsaWJndGtzb3VyY2V2aWV3LTMuMC0wCmRlc2NyaXB0aW9uOiBzaGFyZWQgbGlicmFyaWVzIGZvciB0aGUgR1RLKyBzeW50YXggaGlnaGxpZ2h0aW5nIHdpZGdldAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMi0wdWJ1bnR1MQpuYW1lOiBsaWJndGtzb3VyY2V2aWV3LTMuMC1jb21tb24KZGVzY3JpcHRpb246IGNvbW1vbiBmaWxlcyBmb3IgdGhlIEdUSysgc3ludGF4IGhpZ2hsaWdodGluZyB3aWRnZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xMC41LTB1YnVudHUzCm5hbWU6IGxpYmd0a3NvdXJjZXZpZXcyLjAtMApkZXNjcmlwdGlvbjogc2hhcmVkIGxpYnJhcmllcyBmb3IgdGhlIEdUSysgc3ludGF4IGhpZ2hsaWdodGluZyB3aWRnZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xMC41LTB1YnVudHUzCm5hbWU6IGxpYmd0a3NvdXJjZXZpZXcyLjAtY29tbW9uCmRlc2NyaXB0aW9uOiBjb21tb24gZmlsZXMgZm9yIHRoZSBHVEsrIHN5bnRheCBoaWdobGlnaHRpbmcgd2lkZ2V0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4wfmhnMjAxMTA4MTQtMQpuYW1lOiBsaWJndGtzcGVsbC0zLTAKZGVzY3JpcHRpb246IHNwZWxsLWNoZWNraW5nIGFkZG9uIGZvciBHVEsncyBUZXh0VmlldyB3aWRnZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjE2LTF1YnVudHU1Cm5hbWU6IGxpYmd0a3NwZWxsMApkZXNjcmlwdGlvbjogYSBzcGVsbC1jaGVja2luZyBhZGRvbiBmb3IgR1RLJ3MgVGV4dFZpZXcgd2lkZ2V0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjguNC0yCm5hbWU6IGxpYmd0b3AyLTcKZGVzY3JpcHRpb246IGd0b3Agc3lzdGVtIG1vbml0b3JpbmcgbGlicmFyeSAoc2hhcmVkKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI4LjQtMgpuYW1lOiBsaWJndG9wMi1jb21tb24KZGVzY3JpcHRpb246IGd0b3Agc3lzdGVtIG1vbml0b3JpbmcgbGlicmFyeSAoY29tbW9uKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuNC4xLjEtMHVidW50dTEKbmFtZTogbGliZ3VjaGFybWFwLTItOTAtNwpkZXNjcmlwdGlvbjogVW5pY29kZSBicm93c2VyIHdpZGdldCBsaWJyYXJ5IChzaGFyZWQgbGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxNzUtMHVidW50dTkuMgpuYW1lOiBsaWJndWRldi0xLjAtMApkZXNjcmlwdGlvbjogR09iamVjdC1iYXNlZCB3cmFwcGVyIGxpYnJhcnkgZm9yIGxpYnVkZXYKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxNzUtMHVidW50dTkuMgpuYW1lOiBsaWJndWRldi0xLjAtMDppMzg2CmRlc2NyaXB0aW9uOiBHT2JqZWN0LWJhc2VkIHdyYXBwZXIgbGlicmFyeSBmb3IgbGlidWRldgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE4LjEtMgpuYW1lOiBsaWJndXBucC0xLjAtNApkZXNjcmlwdGlvbjogR09iamVjdC1iYXNlZCBsaWJyYXJ5IGZvciBVUG5QCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi4xLTIKbmFtZTogbGliZ3VwbnAtaWdkLTEuMC00CmRlc2NyaXB0aW9uOiBsaWJyYXJ5IHRvIGhhbmRsZSBVUG5QIElHRCBwb3J0IG1hcHBpbmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4yLjh+cHJlMS0wdWJ1bnR1Mi4xCm5hbWU6IGxpYmd1dGVucHJpbnQyCmRlc2NyaXB0aW9uOiBydW50aW1lIGZvciB0aGUgR3V0ZW5wcmludCBwcmludGVyIGRyaXZlciBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjYuMy0xMHVidW50dTEKbmFtZTogbGliZ3ZjNQpkZXNjcmlwdGlvbjogcmljaCBzZXQgb2YgZ3JhcGggZHJhd2luZyB0b29scyAtIGd2YyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNS4wLTF1YnVudHUxCm5hbWU6IGxpYmd2bmMtMS4wLTAKZGVzY3JpcHRpb246IFZOQyBnb2JqZWN0IHdyYXBwZXIgKHJ1bnRpbWUgbGlicmFyaWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI2LjMtMTB1YnVudHUxCm5hbWU6IGxpYmd2cHIxCmRlc2NyaXB0aW9uOiByaWNoIHNldCBvZiBncmFwaCBkcmF3aW5nIHRvb2xzIC0gZ3ZwciBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxCm5hbWU6IGxpYmd3ZWF0aGVyLTMtMApkZXNjcmlwdGlvbjogR1dlYXRoZXIgc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjEtMHVidW50dTEKbmFtZTogbGliZ3dlYXRoZXItY29tbW9uCmRlc2NyaXB0aW9uOiBHV2VhdGhlciBjb21tb24gZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjItMHVidW50dTIuMQpuYW1lOiBsaWJnd2liYmVyLWd0azIKZGVzY3JpcHRpb246IEd3aWJiZXIgR1RLIFdpZGdldHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjItMHVidW50dTIuMQpuYW1lOiBsaWJnd2liYmVyMgpkZXNjcmlwdGlvbjogR3dpYmJlciAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNn5naXQyMDEyMDMxMS5kZnNnLjEtMgpuYW1lOiBsaWJoY3J5cHRvNC1oZWltZGFsCmRlc2NyaXB0aW9uOiBIZWltZGFsIEtlcmJlcm9zIC0gY3J5cHRvIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS42fmdpdDIwMTIwMzExLmRmc2cuMS0yCm5hbWU6IGxpYmhjcnlwdG80LWhlaW1kYWw6aTM4NgpkZXNjcmlwdGlvbjogSGVpbWRhbCBLZXJiZXJvcyAtIGNyeXB0byBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNn5naXQyMDEyMDMxMS5kZnNnLjEtMgpuYW1lOiBsaWJoZWltYmFzZTEtaGVpbWRhbApkZXNjcmlwdGlvbjogSGVpbWRhbCBLZXJiZXJvcyAtIEJhc2UgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjZ+Z2l0MjAxMjAzMTEuZGZzZy4xLTIKbmFtZTogbGliaGVpbWJhc2UxLWhlaW1kYWw6aTM4NgpkZXNjcmlwdGlvbjogSGVpbWRhbCBLZXJiZXJvcyAtIEJhc2UgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjZ+Z2l0MjAxMjAzMTEuZGZzZy4xLTIKbmFtZTogbGliaGVpbW50bG0wLWhlaW1kYWwKZGVzY3JpcHRpb246IEhlaW1kYWwgS2VyYmVyb3MgLSBOVExNIHN1cHBvcnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjZ+Z2l0MjAxMjAzMTEuZGZzZy4xLTIKbmFtZTogbGliaGVpbW50bG0wLWhlaW1kYWw6aTM4NgpkZXNjcmlwdGlvbjogSGVpbWRhbCBLZXJiZXJvcyAtIE5UTE0gc3VwcG9ydCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMTIuMi0xdWJ1bnR1My4xCm5hbWU6IGxpYmhwbXVkMApkZXNjcmlwdGlvbjogSFAgTXVsdGktUG9pbnQgVHJhbnNwb3J0IERyaXZlciAoaHBtdWQpIHJ1bi10aW1lIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA2LjAwLTEKbmFtZTogbGliaHRtbC1mb3JtLXBlcmwKZGVzY3JpcHRpb246IG1vZHVsZSB0aGF0IHJlcHJlc2VudHMgYW4gSFRNTCBmb3JtIGVsZW1lbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xMC0xCm5hbWU6IGxpYmh0bWwtZm9ybWF0LXBlcmwKZGVzY3JpcHRpb246IG1vZHVsZSBmb3IgdHJhbnNmb3JtaW5nIEhUTUwgaW50byB2YXJpb3VzIGZvcm1hdHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy42OS0xYnVpbGQxCm5hbWU6IGxpYmh0bWwtcGFyc2VyLXBlcmwKZGVzY3JpcHRpb246IGNvbGxlY3Rpb24gb2YgbW9kdWxlcyB0aGF0IHBhcnNlIEhUTUwgdGV4dCBkb2N1bWVudHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yMC0yCm5hbWU6IGxpYmh0bWwtdGFnc2V0LXBlcmwKZGVzY3JpcHRpb246IERhdGEgdGFibGVzIHBlcnRhaW5pbmcgdG8gSFRNTAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjItMQpuYW1lOiBsaWJodG1sLXRyZWUtcGVybApkZXNjcmlwdGlvbjogUGVybCBtb2R1bGUgdG8gcmVwcmVzZW50IGFuZCBjcmVhdGUgSFRNTCBzeW50YXggdHJlZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNi4wMC0yCm5hbWU6IGxpYmh0dHAtY29va2llcy1wZXJsCmRlc2NyaXB0aW9uOiBIVFRQIGNvb2tpZSBqYXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDYuMDAtMQpuYW1lOiBsaWJodHRwLWRhZW1vbi1wZXJsCmRlc2NyaXB0aW9uOiBzaW1wbGUgaHR0cCBzZXJ2ZXIgY2xhc3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNi4wMC0xCm5hbWU6IGxpYmh0dHAtZGF0ZS1wZXJsCmRlc2NyaXB0aW9uOiBtb2R1bGUgb2YgZGF0ZSBjb252ZXJzaW9uIHJvdXRpbmVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDYuMDEtMQpuYW1lOiBsaWJodHRwLW1lc3NhZ2UtcGVybApkZXNjcmlwdGlvbjogcGVybCBpbnRlcmZhY2UgdG8gSFRUUCBzdHlsZSBtZXNzYWdlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA2LjAwLTIKbmFtZTogbGliaHR0cC1uZWdvdGlhdGUtcGVybApkZXNjcmlwdGlvbjogaW1wbGVtZW50YXRpb24gb2YgY29udGVudCBuZWdvdGlhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQ0LTEKbmFtZTogbGliaHR0cC1zZXJ2ZXItc2ltcGxlLXBlcmwKZGVzY3JpcHRpb246IHNpbXBsZSBzdGFuZC1hbG9uZSBIVFRQIHNlcnZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMuMi00Cm5hbWU6IGxpYmh1bnNwZWxsLTEuMy0wCmRlc2NyaXB0aW9uOiBzcGVsbCBjaGVja2VyIGFuZCBtb3JwaG9sb2dpY2FsIGFuYWx5emVyIChzaGFyZWQgbGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS42fmdpdDIwMTIwMzExLmRmc2cuMS0yCm5hbWU6IGxpYmh4NTA5LTUtaGVpbWRhbApkZXNjcmlwdGlvbjogSGVpbWRhbCBLZXJiZXJvcyAtIFg1MDkgc3VwcG9ydCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNn5naXQyMDEyMDMxMS5kZnNnLjEtMgpuYW1lOiBsaWJoeDUwOS01LWhlaW1kYWw6aTM4NgpkZXNjcmlwdGlvbjogSGVpbWRhbCBLZXJiZXJvcyAtIFg1MDkgc3VwcG9ydCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuOC4zLTEKbmFtZTogbGliaHlwaGVuMApkZXNjcmlwdGlvbjogQUxUTGludXggaHlwaGVuYXRpb24gbGlicmFyeSAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4xLTN1YnVudHUxCm5hbWU6IGxpYmlidXMtMS4wLTAKZGVzY3JpcHRpb246IEludGVsbGlnZW50IElucHV0IEJ1cyAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4xLTN1YnVudHUxCm5hbWU6IGxpYmlidXMtMS4wLTA6aTM4NgpkZXNjcmlwdGlvbjogSW50ZWxsaWdlbnQgSW5wdXQgQnVzIC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40OC0xdWJ1bnR1MwpuYW1lOiBsaWJpY2FsMApkZXNjcmlwdGlvbjogaUNhbGVuZGFyIGxpYnJhcnkgaW1wbGVtZW50YXRpb24gaW4gQyAocnVudGltZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjAuNy0yYnVpbGQxCm5hbWU6IGxpYmljZS1kZXYKZGVzY3JpcHRpb246IFgxMSBJbnRlci1DbGllbnQgRXhjaGFuZ2UgbGlicmFyeSAoZGV2ZWxvcG1lbnQgaGVhZGVycykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjAuNy0yYnVpbGQxCm5hbWU6IGxpYmljZTYKZGVzY3JpcHRpb246IFgxMSBJbnRlci1DbGllbnQgRXhjaGFuZ2UgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMC43LTJidWlsZDEKbmFtZTogbGliaWNlNjppMzg2CmRlc2NyaXB0aW9uOiBYMTEgSW50ZXItQ2xpZW50IEV4Y2hhbmdlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC44LjEuMS0zCm5hbWU6IGxpYmljdTQ4CmRlc2NyaXB0aW9uOiBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xNS4xYi0xMGJ1aWxkMgpuYW1lOiBsaWJpZDN0YWcwCmRlc2NyaXB0aW9uOiBJRDMgdGFnIHJlYWRpbmcgbGlicmFyeSBmcm9tIHRoZSBNQUQgcHJvamVjdAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguMTQtMC4ydWJ1bnR1MgpuYW1lOiBsaWJpZGwtY29tbW9uCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciBwYXJzaW5nIENPUkJBIElETCBmaWxlcyAoY29tbW9uIGZpbGVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguMTQtMC4ydWJ1bnR1MgpuYW1lOiBsaWJpZGwwCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciBwYXJzaW5nIENPUkJBIElETCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIzLTIKbmFtZTogbGliaWRuMTEKZGVzY3JpcHRpb246IEdOVSBMaWJpZG4gbGlicmFyeSwgaW1wbGVtZW50YXRpb24gb2YgSUVURiBJRE4gc3BlY2lmaWNhdGlvbnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yMy0yCm5hbWU6IGxpYmlkbjExOmkzODYKZGVzY3JpcHRpb246IEdOVSBMaWJpZG4gbGlicmFyeSwgaW1wbGVtZW50YXRpb24gb2YgSUVURiBJRE4gc3BlY2lmaWNhdGlvbnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjQtMHVidW50dTEKbmFtZTogbGliaWRvMy0wLjEtMApkZXNjcmlwdGlvbjogU2hhcmVkIGxpYnJhcnkgcHJvdmlkaW5nIGV4dHJhIGd0ayBtZW51IGl0ZW1zIGZvciBkaXNwbGF5IGluCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4wLTAuMXVidW50dTEKbmFtZTogbGliaWVjNjE4ODMtMApkZXNjcmlwdGlvbjogYW4gcGFydGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBJRUMgNjE4ODMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjAtMC4xdWJ1bnR1MQpuYW1lOiBsaWJpZWM2MTg4My0wOmkzODYKZGVzY3JpcHRpb246IGFuIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgSUVDIDYxODgzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi4xMS0xMGJ1aWxkMQpuYW1lOiBsaWJpZWVlMTI4NC0zCmRlc2NyaXB0aW9uOiBjcm9zcy1wbGF0Zm9ybSBsaWJyYXJ5IGZvciBwYXJhbGxlbCBwb3J0IGFjY2VzcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuMTEtMTBidWlsZDEKbmFtZTogbGliaWVlZTEyODQtMzppMzg2CmRlc2NyaXB0aW9uOiBjcm9zcy1wbGF0Zm9ybSBsaWJyYXJ5IGZvciBwYXJhbGxlbCBwb3J0IGFjY2VzcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjM1LTgKbmFtZTogbGliaWpzLTAuMzUKZGVzY3JpcHRpb246IElKUyByYXN0ZXIgaW1hZ2UgdHJhbnNwb3J0IHByb3RvY29sOiBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMS0zYnVpbGQyCm5hbWU6IGxpYmlsbWJhc2U2CmRlc2NyaXB0aW9uOiBzZXZlcmFsIHV0aWxpdHkgbGlicmFyaWVzIGZyb20gSUxNIHVzZWQgYnkgT3BlbkVYUgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMS00Cm5hbWU6IGxpYmltb2JpbGVkZXZpY2UyCmRlc2NyaXB0aW9uOiBMaWJyYXJ5IGZvciBjb21tdW5pY2F0aW5nIHdpdGggdGhlIGlQaG9uZSBhbmQgaVBvZCBUb3VjaAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuOTItMHVidW50dTEKbmFtZTogbGliaW5kaWNhdGUtZ3RrMwpkZXNjcmlwdGlvbjogbGlicmFyeSBmb3IgcmFpc2luZyBpbmRpY2F0b3JzIHZpYSBEQnVzIC0gR1RLKyBiaW5kaW5ncwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuOTItMHVidW50dTEKbmFtZTogbGliaW5kaWNhdGU1CmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciByYWlzaW5nIGluZGljYXRvcnMgdmlhIERCdXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjAtMHVidW50dTIKbmFtZTogbGliaW5kaWNhdG9yLW1lc3NhZ2VzLXN0YXR1cy1wcm92aWRlcjEKZGVzY3JpcHRpb246IGluZGljYXRvciBzdGF0dXMgcHJvdmlkZXIgLSBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjUuMC0wdWJ1bnR1MQpuYW1lOiBsaWJpbmRpY2F0b3IzLTcKZGVzY3JpcHRpb246IHBhbmVsIGluZGljYXRvciBhcHBsZXQgLSBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjUuMC0wdWJ1bnR1MQpuYW1lOiBsaWJpbmRpY2F0b3I3CmRlc2NyaXB0aW9uOiBwYW5lbCBpbmRpY2F0b3IgYXBwbGV0IC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjA4LTFidWlsZDIKbmFtZTogbGliaW8tcHR5LXBlcmwKZGVzY3JpcHRpb246IFBlcmwgbW9kdWxlIGZvciBwc2V1ZG8gdHR5IElPCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNjktMgpuYW1lOiBsaWJpby1zb2NrZXQtaW5ldDYtcGVybApkZXNjcmlwdGlvbjogb2JqZWN0IGludGVyZmFjZSBmb3IgQUZfSU5FVDYgZG9tYWluIHNvY2tldHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41My0xCm5hbWU6IGxpYmlvLXNvY2tldC1zc2wtcGVybApkZXNjcmlwdGlvbjogUGVybCBtb2R1bGUgaW1wbGVtZW50aW5nIG9iamVjdCBvcmllbnRlZCBpbnRlcmZhY2UgdG8gU1NMIHNvY2tldHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wOC0yCm5hbWU6IGxpYmlvLXN0cmluZy1wZXJsCmRlc2NyaXB0aW9uOiBFbXVsYXRlIElPOjpGaWxlIGludGVyZmFjZSBmb3IgaW4tY29yZSBzdHJpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMTEwLTUKbmFtZTogbGliaW8tc3RyaW5neS1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIG1vZHVsZXMgZm9yIElPIGZyb20gc2NhbGFycyBhbmQgYXJyYXlzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOTAtMQpuYW1lOiBsaWJpcGMtcnVuLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgbW9kdWxlIGZvciBydW5uaW5nIHByb2Nlc3NlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjkuOC4xLmRmc2cuUDEtNHVidW50dTAuNQpuYW1lOiBsaWJpc2M4MwpkZXNjcmlwdGlvbjogSVNDIFNoYXJlZCBMaWJyYXJ5IHVzZWQgYnkgQklORAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjkuOC4xLmRmc2cuUDEtNHVidW50dTAuNQpuYW1lOiBsaWJpc2NjYzgwCmRlc2NyaXB0aW9uOiBDb21tYW5kIENoYW5uZWwgTGlicmFyeSB1c2VkIGJ5IEJJTkQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTo5LjguMS5kZnNnLlAxLTR1YnVudHUwLjUKbmFtZTogbGliaXNjY2ZnODIKZGVzY3JpcHRpb246IENvbmZpZyBGaWxlIEhhbmRsaW5nIExpYnJhcnkgdXNlZCBieSBCSU5ECgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuODMtMQpuYW1lOiBsaWJpc285NjYwLTgKZGVzY3JpcHRpb246IGxpYnJhcnkgdG8gd29yayB3aXRoIElTTzk2NjAgZmlsZXN5c3RlbXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjYtMXVidW50dTEKbmFtZTogbGliaXNvZnM2CmRlc2NyaXB0aW9uOiBsaWJyYXJ5IHRvIGNyZWF0ZSBJU085NjYwIGltYWdlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzMH5wcmU5LTV1YnVudHUyCm5hbWU6IGxpYml3MzAKZGVzY3JpcHRpb246IFdpcmVsZXNzIHRvb2xzIC0gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjkuOH5kZnNnLjEtMXVidW50dTEKbmFtZTogbGliamFjay1qYWNrZDItMApkZXNjcmlwdGlvbjogSkFDSyBBdWRpbyBDb25uZWN0aW9uIEtpdCAobGlicmFyaWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjkuOH5kZnNnLjEtMXVidW50dTEKbmFtZTogbGliamFjay1qYWNrZDItMDppMzg2CmRlc2NyaXB0aW9uOiBKQUNLIEF1ZGlvIENvbm5lY3Rpb24gS2l0IChsaWJyYXJpZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOTAwLjEtMTMKbmFtZTogbGliamFzcGVyMQpkZXNjcmlwdGlvbjogSmFzUGVyIEpQRUctMjAwMCBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS45MDAuMS0xMwpuYW1lOiBsaWJqYXNwZXIxOmkzODYKZGVzY3JpcHRpb246IEphc1BlciBKUEVHLTIwMDAgcnVudGltZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOC4zLTB1YnVudHUwLjEyLjA0LjEKbmFtZTogbGliamF2YXNjcmlwdGNvcmVndGstMS4wLTAKZGVzY3JpcHRpb246IEphdmFzY3JpcHQgZW5naW5lIGxpYnJhcnkgZm9yIEdUSysKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LjMtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBsaWJqYXZhc2NyaXB0Y29yZWd0ay0zLjAtMApkZXNjcmlwdGlvbjogSmF2YXNjcmlwdCBlbmdpbmUgbGlicmFyeSBmb3IgR1RLKwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjExLTF1YnVudHUxCm5hbWU6IGxpYmpiaWcyZGVjMApkZXNjcmlwdGlvbjogSkJJRzIgZGVjb2RlciBsaWJyYXJ5IC0gc2hhcmVkIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuOTArc3ZuNzMzLTB1YnVudHU0LjEKbmFtZTogbGlianBlZy10dXJibzgKZGVzY3JpcHRpb246IElKRyBKUEVHIGNvbXBsaWFudCBydW50aW1lIGxpYnJhcnkuCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS45MCtzdm43MzMtMHVidW50dTQuMQpuYW1lOiBsaWJqcGVnLXR1cmJvODppMzg2CmRlc2NyaXB0aW9uOiBJSkcgSlBFRyBjb21wbGlhbnQgcnVudGltZSBsaWJyYXJ5LgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4Yy0ydWJ1bnR1NwpuYW1lOiBsaWJqcGVnOApkZXNjcmlwdGlvbjogSW5kZXBlbmRlbnQgSlBFRyBHcm91cCdzIEpQRUcgcnVudGltZSBsaWJyYXJ5IChkZXBlbmRlbmN5IHBhY2thZ2UpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDhjLTJ1YnVudHU3Cm5hbWU6IGxpYmpwZWc4OmkzODYKZGVzY3JpcHRpb246IEluZGVwZW5kZW50IEpQRUcgR3JvdXAncyBKUEVHIHJ1bnRpbWUgbGlicmFyeSAoZGVwZW5kZW5jeSBwYWNrYWdlKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjcuMS0xdWJ1bnR1MQpuYW1lOiBsaWJqcy1qcXVlcnkKZGVzY3JpcHRpb246IEphdmFTY3JpcHQgbGlicmFyeSBmb3IgZHluYW1pYyB3ZWIgYXBwbGljYXRpb25zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS42LTF1YnVudHUyCm5hbWU6IGxpYmpzLXVuZGVyc2NvcmUKZGVzY3JpcHRpb246IEphdmFTY3JpcHQncyBmdW5jdGlvbmFsIHByb2dyYW1taW5nIGhlbHBlciBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTQuMi0xCm5hbWU6IGxpYmpzb24tZ2xpYi0xLjAtMApkZXNjcmlwdGlvbjogR0xpYiBKU09OIG1hbmlwdWxhdGlvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNTMtMQpuYW1lOiBsaWJqc29uLXBlcmwKZGVzY3JpcHRpb246IG1vZHVsZSBmb3IgbWFuaXB1bGF0aW5nIEpTT04tZm9ybWF0dGVkIGRhdGEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zMjAtMWJ1aWxkMQpuYW1lOiBsaWJqc29uLXhzLXBlcmwKZGVzY3JpcHRpb246IG1vZHVsZSBmb3IgbWFuaXB1bGF0aW5nIEpTT04tZm9ybWF0dGVkIGRhdGEgKEMvWFMtYWNjZWxlcmF0ZWQpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS0xdWJ1bnR1MQpuYW1lOiBsaWJqc29uMApkZXNjcmlwdGlvbjogSlNPTiBtYW5pcHVsYXRpb24gbGlicmFyeSAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS0xdWJ1bnR1MQpuYW1lOiBsaWJqc29uMDppMzg2CmRlc2NyaXB0aW9uOiBKU09OIG1hbmlwdWxhdGlvbiBsaWJyYXJ5IC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xOS0xCm5hbWU6IGxpYmp0ZTEKZGVzY3JpcHRpb246IEppZ2RvIFRlbXBsYXRlIEV4cG9ydCAtIHJ1bnRpbWUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEwK2Rmc2d+YmV0YTEtMnVidW50dTAuMwpuYW1lOiBsaWJrNWNyeXB0bzMKZGVzY3JpcHRpb246IE1JVCBLZXJiZXJvcyBydW50aW1lIGxpYnJhcmllcyAtIENyeXB0byBMaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMTArZGZzZ35iZXRhMS0ydWJ1bnR1MC4zCm5hbWU6IGxpYms1Y3J5cHRvMzppMzg2CmRlc2NyaXB0aW9uOiBNSVQgS2VyYmVyb3MgcnVudGltZSBsaWJyYXJpZXMgLSBDcnlwdG8gTGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQuMS0xCm5hbWU6IGxpYmthdGUxCmRlc2NyaXB0aW9uOiBLYXRlIGlzIGEgY29kZWMgZm9yIGthcmFva2UgYW5kIHRleHQgZW5jYXBzdWxhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjUuMi0yCm5hbWU6IGxpYmtleXV0aWxzMQpkZXNjcmlwdGlvbjogTGludXggS2V5IE1hbmFnZW1lbnQgVXRpbGl0aWVzIChsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjUuMi0yCm5hbWU6IGxpYmtleXV0aWxzMTppMzg2CmRlc2NyaXB0aW9uOiBMaW51eCBLZXkgTWFuYWdlbWVudCBVdGlsaXRpZXMgKGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNS4yNS0xdWJ1bnR1MgpuYW1lOiBsaWJrbGliYwpkZXNjcmlwdGlvbjogbWluaW1hbCBsaWJjIHN1YnNldCBmb3IgdXNlIHdpdGggaW5pdHJhbWZzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4zMi0xdWJ1bnR1MQpuYW1lOiBsaWJrbXMxCmRlc2NyaXB0aW9uOiBVc2Vyc3BhY2UgaW50ZXJmYWNlIHRvIGtlcm5lbCBEUk0gYnVmZmVyIG1hbmFnZW1lbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjAwOS0xMXVidW50dTIKbmFtZTogbGlia3BhdGhzZWE1CmRlc2NyaXB0aW9uOiBUZVggTGl2ZTogcGF0aCBzZWFyY2ggbGlicmFyeSBmb3IgVGVYIChydW50aW1lIHBhcnQpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNn5naXQyMDEyMDMxMS5kZnNnLjEtMgpuYW1lOiBsaWJrcmI1LTI2LWhlaW1kYWwKZGVzY3JpcHRpb246IEhlaW1kYWwgS2VyYmVyb3MgLSBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS42fmdpdDIwMTIwMzExLmRmc2cuMS0yCm5hbWU6IGxpYmtyYjUtMjYtaGVpbWRhbDppMzg2CmRlc2NyaXB0aW9uOiBIZWltZGFsIEtlcmJlcm9zIC0gbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMTArZGZzZ35iZXRhMS0ydWJ1bnR1MC4zCm5hbWU6IGxpYmtyYjUtMwpkZXNjcmlwdGlvbjogTUlUIEtlcmJlcm9zIHJ1bnRpbWUgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMTArZGZzZ35iZXRhMS0ydWJ1bnR1MC4zCm5hbWU6IGxpYmtyYjUtMzppMzg2CmRlc2NyaXB0aW9uOiBNSVQgS2VyYmVyb3MgcnVudGltZSBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMCtkZnNnfmJldGExLTJ1YnVudHUwLjMKbmFtZTogbGlia3JiNXN1cHBvcnQwCmRlc2NyaXB0aW9uOiBNSVQgS2VyYmVyb3MgcnVudGltZSBsaWJyYXJpZXMgLSBTdXBwb3J0IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMCtkZnNnfmJldGExLTJ1YnVudHUwLjMKbmFtZTogbGlia3JiNXN1cHBvcnQwOmkzODYKZGVzY3JpcHRpb246IE1JVCBLZXJiZXJvcyBydW50aW1lIGxpYnJhcmllcyAtIFN1cHBvcnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjMuMS0xCm5hbWU6IGxpYmxhcGFjazNnZgpkZXNjcmlwdGlvbjogbGlicmFyeSBvZiBsaW5lYXIgYWxnZWJyYSByb3V0aW5lcyAzIC0gc2hhcmVkIHZlcnNpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xLjU2LjEKbmFtZTogbGlibGF1bmNocGFkLWludGVncmF0aW9uLTMuMC0xCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciBsYXVuY2hwYWQgaW50ZWdyYXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xLjU2LjEKbmFtZTogbGlibGF1bmNocGFkLWludGVncmF0aW9uLWNvbW1vbgpkZXNjcmlwdGlvbjogbGlicmFyeSBmb3IgbGF1bmNocGFkIGludGVncmF0aW9uIGNvbW1vbiBkYXRhCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS41Ni4xCm5hbWU6IGxpYmxhdW5jaHBhZC1pbnRlZ3JhdGlvbjEKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIGxhdW5jaHBhZCBpbnRlZ3JhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjE5LmRmc2ctMXVidW50dTMKbmFtZTogbGlibGNtczEKZGVzY3JpcHRpb246IExpdHRsZSBDTVMgY29sb3IgbWFuYWdlbWVudCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMTkuZGZzZy0xdWJ1bnR1MwpuYW1lOiBsaWJsY21zMTppMzg2CmRlc2NyaXB0aW9uOiBMaXR0bGUgQ01TIGNvbG9yIG1hbmFnZW1lbnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjIrZ2l0MjAxMTA2MjgtMnVidW50dTMKbmFtZTogbGlibGNtczItMgpkZXNjcmlwdGlvbjogTGl0dGxlIENNUyAyIGNvbG9yIG1hbmFnZW1lbnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMjgtMS4xdWJ1bnR1NC4yCm5hbWU6IGxpYmxkYXAtMi40LTIKZGVzY3JpcHRpb246IE9wZW5MREFQIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMjgtMS4xdWJ1bnR1NC4yCm5hbWU6IGxpYmxkYXAtMi40LTI6aTM4NgpkZXNjcmlwdGlvbjogT3BlbkxEQVAgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4xLTB1YnVudHUxLjEKbmFtZTogbGlibGlnaHRkbS1nb2JqZWN0LTEtMApkZXNjcmlwdGlvbjogTGlnaHRETSBHT2JqZWN0IGNsaWVudCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS4wLTB1YnVudHUxCm5hbWU6IGxpYmxpcmNjbGllbnQwCmRlc2NyaXB0aW9uOiBpbmZyYS1yZWQgcmVtb3RlIGNvbnRyb2wgc3VwcG9ydCAtIGNsaWVudCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMzMtMWJ1aWxkMQpuYW1lOiBsaWJsaXN0LW1vcmV1dGlscy1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIG1vZHVsZSB3aXRoIGFkZGl0aW9uYWwgbGlzdCBmdW5jdGlvbnMgbm90IGZvdW5kIGluIExpc3Q6OlV0aWwKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLTR1YnVudHUxCm5hbWU6IGxpYmxsdm0zLjAKZGVzY3JpcHRpb246IExvdy1MZXZlbCBWaXJ0dWFsIE1hY2hpbmUgKExMVk0pLCBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLTR1YnVudHUxCm5hbWU6IGxpYmxsdm0zLjA6aTM4NgpkZXNjcmlwdGlvbjogTG93LUxldmVsIFZpcnR1YWwgTWFjaGluZSAoTExWTSksIHJ1bnRpbWUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjA1LTdidWlsZDEKbmFtZTogbGlibG9jYWxlLWdldHRleHQtcGVybApkZXNjcmlwdGlvbjogbW9kdWxlIHVzaW5nIGxpYmMgZnVuY3Rpb25zIGZvciBpbnRlcm5hdGlvbmFsaXphdGlvbiBpbiBQZXJsCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMDktMwpuYW1lOiBsaWJsb2NrZmlsZS1iaW4KZGVzY3JpcHRpb246IHN1cHBvcnQgYmluYXJpZXMgZm9yIGFuZCBjbGkgdXRpbGl0aWVzIGJhc2VkIG9uIGxpYmxvY2tmaWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMDktMwpuYW1lOiBsaWJsb2NrZmlsZTEKZGVzY3JpcHRpb246IE5GUy1zYWZlIGxvY2tpbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMuMC0zCm5hbWU6IGxpYmxvdWlzLWRhdGEKZGVzY3JpcHRpb246IEJyYWlsbGUgdHJhbnNsYXRpb24gbGlicmFyeSAtIGRhdGEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zLjAtMwpuYW1lOiBsaWJsb3VpczIKZGVzY3JpcHRpb246IEJyYWlsbGUgdHJhbnNsYXRpb24gbGlicmFyeSAtIHNoYXJlZCBsaWJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC4xLTEuMQpuYW1lOiBsaWJscXItMS0wCmRlc2NyaXB0aW9uOiBjb252ZXJ0cyBwbGFpbiBhcnJheSBpbWFnZXMgaW50byBtdWx0aS1zaXplIHJlcHJlc2VudGF0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4yLTF1YnVudHUxCm5hbWU6IGxpYmx0ZGw3CmRlc2NyaXB0aW9uOiBBIHN5c3RlbSBpbmRlcGVuZGVudCBkbG9wZW4gd3JhcHBlciBmb3IgR05VIGxpYnRvb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi40LjItMXVidW50dTEKbmFtZTogbGlibHRkbDc6aTM4NgpkZXNjcmlwdGlvbjogQSBzeXN0ZW0gaW5kZXBlbmRlbnQgZGxvcGVuIHdyYXBwZXIgZm9yIEdOVSBsaWJ0b29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMS40LTEydWJ1bnR1MQpuYW1lOiBsaWJsdWE1LjEtMApkZXNjcmlwdGlvbjogU2hhcmVkIGxpYnJhcnkgZm9yIHRoZSBMdWEgaW50ZXJwcmV0ZXIgdmVyc2lvbiA1LjEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wMi42Ni00dWJ1bnR1Ny4xCm5hbWU6IGxpYmx2bTJhcHAyLjIKZGVzY3JpcHRpb246IExWTTIgYXBwbGljYXRpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA2LjAxLTEKbmFtZTogbGlibHdwLW1lZGlhdHlwZXMtcGVybApkZXNjcmlwdGlvbjogbW9kdWxlIHRvIGd1ZXNzIG1lZGlhIHR5cGUgZm9yIGEgZmlsZSBvciBhIFVSTAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA2LjAyLTEKbmFtZTogbGlibHdwLXByb3RvY29sLWh0dHBzLXBlcmwKZGVzY3JpcHRpb246IGh0dHBzIGRyaXZlciBmb3IgTFdQOjpVc2VyQWdlbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTo5LjguMS5kZnNnLlAxLTR1YnVudHUwLjUKbmFtZTogbGlibHdyZXM4MApkZXNjcmlwdGlvbjogTGlnaHR3ZWlnaHQgUmVzb2x2ZXIgTGlicmFyeSB1c2VkIGJ5IEJJTkQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4xLjFhbHBoYSsyMDExMDgwOS0zCm5hbWU6IGxpYmx6bWE1CmRlc2NyaXB0aW9uOiBYWi1mb3JtYXQgY29tcHJlc3Npb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjA2LTEKbmFtZTogbGlibHpvMi0yCmRlc2NyaXB0aW9uOiBkYXRhIGNvbXByZXNzaW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xNS4xYi03dWJ1bnR1MQpuYW1lOiBsaWJtYWQwCmRlc2NyaXB0aW9uOiBNUEVHIGF1ZGlvIGRlY29kZXIgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE1LjFiLTd1YnVudHUxCm5hbWU6IGxpYm1hZDA6aTM4NgpkZXNjcmlwdGlvbjogTVBFRyBhdWRpbyBkZWNvZGVyIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4wOS0yCm5hbWU6IGxpYm1hZ2ljMQpkZXNjcmlwdGlvbjogRmlsZSB0eXBlIGRldGVybWluYXRpb24gbGlicmFyeSB1c2luZyAibWFnaWMiIG51bWJlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogODo2LjYuOS43LTV1YnVudHUzLjIKbmFtZTogbGlibWFnaWNrKys0CmRlc2NyaXB0aW9uOiBvYmplY3Qtb3JpZW50ZWQgQysrIGludGVyZmFjZSB0byBJbWFnZU1hZ2ljawoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4OjYuNi45LjctNXVidW50dTMuMgpuYW1lOiBsaWJtYWdpY2tjb3JlNApkZXNjcmlwdGlvbjogbG93LWxldmVsIGltYWdlIG1hbmlwdWxhdGlvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDg6Ni42LjkuNy01dWJ1bnR1My4yCm5hbWU6IGxpYm1hZ2lja2NvcmU0LWV4dHJhCmRlc2NyaXB0aW9uOiBsb3ctbGV2ZWwgaW1hZ2UgbWFuaXB1bGF0aW9uIGxpYnJhcnkgLSBleHRyYSBjb2RlY3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogODo2LjYuOS43LTV1YnVudHUzLjIKbmFtZTogbGlibWFnaWNrd2FuZDQKZGVzY3JpcHRpb246IGltYWdlIG1hbmlwdWxhdGlvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNzkuMTYtMQpuYW1lOiBsaWJtYWlsLXNlbmRtYWlsLXBlcmwKZGVzY3JpcHRpb246IFNlbmQgZW1haWwgZnJvbSBhIHBlcmwgc2NyaXB0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMDgtMQpuYW1lOiBsaWJtYWlsdG9vbHMtcGVybApkZXNjcmlwdGlvbjogTWFuaXB1bGF0ZSBlbWFpbCBpbiBwZXJsIHByb2dyYW1zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMy4wLTEKbmFtZTogbGlibWF0cm9za2E1CmRlc2NyaXB0aW9uOiBleHRlbnNpYmxlIG9wZW4gc3RhbmRhcmQgYXVkaW8vdmlkZW8gY29udGFpbmVyIGZvcm1hdCAoc2hhcmVkIGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4yLTR1YnVudHUxCm5hbWU6IGxpYm1lYW53aGlsZTEKZGVzY3JpcHRpb246IG9wZW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIExvdHVzIFNhbWV0aW1lIENvbW11bml0eSBDbGllbnQgcHJvdG9jb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToyLjM0LjEtMXVidW50dTExCm5hbWU6IGxpYm1ldGFjaXR5LXByaXZhdGUwCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciB0aGUgTWV0YWNpdHkgd2luZG93IG1hbmFnZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjkuOS0xCm5hbWU6IGxpYm1oYXNoMgpkZXNjcmlwdGlvbjogTGlicmFyeSBmb3IgY3J5cHRvZ3JhcGhpYyBoYXNoaW5nIGFuZCBtZXNzYWdlIGF1dGhlbnRpY2F0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMS4xMi0yCm5hbWU6IGxpYm1pa21vZDIKZGVzY3JpcHRpb246IFBvcnRhYmxlIHNvdW5kIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4xLjEyLTIKbmFtZTogbGlibWlrbW9kMjppMzg2CmRlc2NyaXB0aW9uOiBQb3J0YWJsZSBzb3VuZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC40LTIuMWJ1aWxkMQpuYW1lOiBsaWJtaW1pYzAKZGVzY3JpcHRpb246IEEgdmlkZW8gY29kZWMgZm9yIE1pbWljIFYyLnggY29udGVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjYtM3VidW50dTEKbmFtZTogbGlibWluaXVwbnBjOApkZXNjcmlwdGlvbjogVVBuUCBJR0QgY2xpZW50IGxpZ2h0d2VpZ2h0IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTo1LjEyLjAtMHVidW50dTIuMQpuYW1lOiBsaWJtaXNzaW9uLWNvbnRyb2wtcGx1Z2luczAKZGVzY3JpcHRpb246IG1hbmFnZW1lbnQgZGFlbW9uIGZvciBUZWxlcGF0aHkgKGxpYnJhcnkgZm9yIHBsdWdpbnMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4yLTIKbmFtZTogbGlibW1zMApkZXNjcmlwdGlvbjogTU1TIHN0cmVhbSBwcm90b2NvbCBsaWJyYXJ5IC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjEwLTMKbmFtZTogbGlibW5nMQpkZXNjcmlwdGlvbjogTXVsdGlwbGUtaW1hZ2UgTmV0d29yayBHcmFwaGljcyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4xMC0zCm5hbWU6IGxpYm1uZzE6aTM4NgpkZXNjcmlwdGlvbjogTXVsdGlwbGUtaW1hZ2UgTmV0d29yayBHcmFwaGljcyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC44LjguNC0xCm5hbWU6IGxpYm1vZHBsdWcxCmRlc2NyaXB0aW9uOiBzaGFyZWQgbGlicmFyaWVzIGZvciBtb2QgbXVzaWMgYmFzZWQgb24gTW9kUGx1ZwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjIwLjEtMXVidW50dTMKbmFtZTogbGlibW91bnQxCmRlc2NyaXB0aW9uOiBibG9jayBkZXZpY2UgaWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguNS0xLjAuMC0wdWJ1bnR1OApuYW1lOiBsaWJtb3pqczE4NS0xLjAKZGVzY3JpcHRpb246IFNwaWRlcm1vbmtleSBqYXZhc2NyaXB0IGVuZ2luZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjk5LjMrcmVwYWNrMS0xCm5hbWU6IGxpYm1wM2xhbWUwCmRlc2NyaXB0aW9uOiBNUDMgZW5jb2RpbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjktNApuYW1lOiBsaWJtcGMyCmRlc2NyaXB0aW9uOiBtdWx0aXBsZSBwcmVjaXNpb24gY29tcGxleCBmbG9hdGluZy1wb2ludCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MC4xfnI0NTktMXVidW50dTEKbmFtZTogbGlibXBjZGVjNgpkZXNjcmlwdGlvbjogTXVzZVBhY2sgZGVjb2RlciAtIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjEtMwpuYW1lOiBsaWJtcGVnMi00CmRlc2NyaXB0aW9uOiBNUEVHMSBhbmQgTVBFRzIgdmlkZW8gZGVjb2RlciBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMS4wLTN1YnVudHUyCm5hbWU6IGxpYm1wZnI0CmRlc2NyaXB0aW9uOiBtdWx0aXBsZSBwcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgY29tcHV0YXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMi4xLTMuMnVidW50dTEKbmFtZTogbGlibXBnMTIzLTA6aTM4NgpkZXNjcmlwdGlvbjogTVBFRyBsYXllciAxLzIvMyBhdWRpbyBkZWNvZGVyIC0tIHJ1bnRpbWUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMC0ydWJ1bnR1MQpuYW1lOiBsaWJtdGRldjEKZGVzY3JpcHRpb246IE11bHRpdG91Y2ggUHJvdG9jb2wgVHJhbnNsYXRpb24gTGlicmFyeSAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4zLTF1YnVudHUwLjEKbmFtZTogbGlibXRwLWNvbW1vbgpkZXNjcmlwdGlvbjogTWVkaWEgVHJhbnNmZXIgUHJvdG9jb2wgKE1UUCkgY29tbW9uIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4zLTF1YnVudHUwLjEKbmFtZTogbGlibXRwLXJ1bnRpbWUKZGVzY3JpcHRpb246IE1lZGlhIFRyYW5zZmVyIFByb3RvY29sIChNVFApIHJ1bnRpbWUgdG9vbHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjMtMXVidW50dTAuMQpuYW1lOiBsaWJtdHA5CmRlc2NyaXB0aW9uOiBNZWRpYSBUcmFuc2ZlciBQcm90b2NvbCAoTVRQKSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjMtMWJ1aWxkMwpuYW1lOiBsaWJtdWx0aWNvYmV4MQpkZXNjcmlwdGlvbjogbXVsdGktcHJvdG9jb2wgY2FibGUgT0JFWCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4yLTIuMQpuYW1lOiBsaWJtdXNpY2JyYWluejMtNgpkZXNjcmlwdGlvbjogbGlicmFyeSB0byBhY2Nlc3MgdGhlIE11c2ljQnJhaW56Lm9yZyBkYXRhYmFzZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjAuMy0wdWJ1bnR1MC4xCm5hbWU6IGxpYm11c2ljYnJhaW56NC0zCmRlc2NyaXB0aW9uOiBMaWJyYXJ5IHRvIGFjY2VzcyB0aGUgTXVzaWNCcmFpbnoub3JnIGRhdGFiYXNlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxCm5hbWU6IGxpYm11dHRlcjAKZGVzY3JpcHRpb246IHdpbmRvdyBtYW5hZ2VyIGxpYnJhcnkgZnJvbSB0aGUgTXV0dGVyIHdpbmRvdyBtYW5hZ2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4zLTB1YnVudHUxCm5hbWU6IGxpYm14LTEuMC0yCmRlc2NyaXB0aW9uOiB0b29sa2l0IGZvciB0aGUgTW9ibGluIHVzZXIgZXhwZXJpZW5jZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjUuMjktMHVidW50dTAuMTIuMDQuMQpuYW1lOiBsaWJteXNxbGNsaWVudDE4OmkzODYKZGVzY3JpcHRpb246IE15U1FMIGRhdGFiYXNlIGNsaWVudCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS4yLjItMQpuYW1lOiBsaWJteXRoZXMtMS4yLTAKZGVzY3JpcHRpb246IHNpbXBsZSB0aGVzYXVydXMgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuNC4yLTB1YnVudHU2Cm5hbWU6IGxpYm5hdXRpbHVzLWV4dGVuc2lvbjFhCmRlc2NyaXB0aW9uOiBsaWJyYXJpZXMgZm9yIG5hdXRpbHVzIGNvbXBvbmVudHMgLSBydW50aW1lIHZlcnNpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS45LTQKbmFtZTogbGlibmN1cnNlczUKZGVzY3JpcHRpb246IHNoYXJlZCBsaWJyYXJpZXMgZm9yIHRlcm1pbmFsIGhhbmRsaW5nCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuOS00Cm5hbWU6IGxpYm5jdXJzZXM1OmkzODYKZGVzY3JpcHRpb246IHNoYXJlZCBsaWJyYXJpZXMgZm9yIHRlcm1pbmFsIGhhbmRsaW5nCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuOS00Cm5hbWU6IGxpYm5jdXJzZXN3NQpkZXNjcmlwdGlvbjogc2hhcmVkIGxpYnJhcmllcyBmb3IgdGVybWluYWwgaGFuZGxpbmcgKHdpZGUgY2hhcmFjdGVyIHN1cHBvcnQpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuOS00Cm5hbWU6IGxpYm5jdXJzZXN3NTppMzg2CmRlc2NyaXB0aW9uOiBzaGFyZWQgbGlicmFyaWVzIGZvciB0ZXJtaW5hbCBoYW5kbGluZyAod2lkZSBjaGFyYWN0ZXIgc3VwcG9ydCkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yOS42LTEKbmFtZTogbGlibmVvbjI3LWdudXRscwpkZXNjcmlwdGlvbjogSFRUUCBhbmQgV2ViREFWIGNsaWVudCBsaWJyYXJ5IChHbnVUTFMgZW5hYmxlZCkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjAtMWJ1aWxkMQpuYW1lOiBsaWJuZXQtZGJ1cy1wZXJsCmRlc2NyaXB0aW9uOiBFeHRlbnNpb24gZm9yIHRoZSBEQnVzIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNjYtMnVidW50dTMKbmFtZTogbGlibmV0LWRucy1wZXJsCmRlc2NyaXB0aW9uOiBQZXJmb3JtIEROUyBxdWVyaWVzIGZyb20gYSBQZXJsIHNjcmlwdAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjY5LTEKbmFtZTogbGlibmV0LWRvbWFpbi10bGQtcGVybApkZXNjcmlwdGlvbjogUGVybCBtb2R1bGUgZm9yIHJldHJpZXZpbmcgYSBsaXN0IG9mIGN1cnJlbnRseSBhdmFpbGFibGUgVExEcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA2LjAyLTEKbmFtZTogbGlibmV0LWh0dHAtcGVybApkZXNjcmlwdGlvbjogbW9kdWxlIHByb3ZpZGluZyBsb3ctbGV2ZWwgSFRUUCBjb25uZWN0aW9uIGNsaWVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjI1LTMKbmFtZTogbGlibmV0LWlwLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgZXh0ZW5zaW9uIGZvciBtYW5pcHVsYXRpbmcgSVB2NC9JUHY2IGFkZHJlc3NlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAxLTMKbmFtZTogbGlibmV0LXNtdHAtc3NsLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgbW9kdWxlIHByb3ZpZGluZyBTU0wgc3VwcG9ydCB0byBOZXQ6OlNNVFAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS40Mi0xYnVpbGQxCm5hbWU6IGxpYm5ldC1zc2xlYXktcGVybApkZXNjcmlwdGlvbjogUGVybCBtb2R1bGUgZm9yIFNlY3VyZSBTb2NrZXRzIExheWVyIChTU0wpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS4xLTF1YnVudHUxCm5hbWU6IGxpYm5ldGZpbHRlci1jb25udHJhY2szCmRlc2NyaXB0aW9uOiBOZXRmaWx0ZXIgbmV0bGluay1jb25udHJhY2sgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEwLjAtMTUKbmFtZTogbGlibmV0cGJtMTAKZGVzY3JpcHRpb246IEdyYXBoaWNzIGNvbnZlcnNpb24gdG9vbHMgc2hhcmVkIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQtMQpuYW1lOiBsaWJuZXR0bGU0CmRlc2NyaXB0aW9uOiBsb3cgbGV2ZWwgY3J5cHRvZ3JhcGhpYyBsaWJyYXJ5IChzeW1tZXRyaWMgYW5kIG9uZS13YXkgY3J5cHRvcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC41Mi4xMS0ydWJ1bnR1MTAKbmFtZTogbGlibmV3dDAuNTIKZGVzY3JpcHRpb246IE5vdCBFcmlrJ3MgV2luZG93aW5nIFRvb2xraXQgLSB0ZXh0IG1vZGUgd2luZG93aW5nIHdpdGggc2xhbmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjAtMQpuYW1lOiBsaWJuZm5ldGxpbmswCmRlc2NyaXB0aW9uOiBOZXRmaWx0ZXIgbmV0bGluayBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS4xLTJ1YnVudHUxCm5hbWU6IGxpYm5pY2UxMApkZXNjcmlwdGlvbjogSUNFIGxpYnJhcnkgKHNoYXJlZCBsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMy00dWJ1bnR1OQpuYW1lOiBsaWJuaWgtZGJ1czEKZGVzY3JpcHRpb246IE5JSCBELUJ1cyBCaW5kaW5ncyBMaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4zLTR1YnVudHU5Cm5hbWU6IGxpYm5paDEKZGVzY3JpcHRpb246IE5JSCBVdGlsaXR5IExpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjMtMnVidW50dTIKbmFtZTogbGlibmwtMy0yMDAKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIGRlYWxpbmcgd2l0aCBuZXRsaW5rIHNvY2tldHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjMtMnVidW50dTIKbmFtZTogbGlibmwtZ2VubC0zLTIwMApkZXNjcmlwdGlvbjogbGlicmFyeSBmb3IgZGVhbGluZyB3aXRoIG5ldGxpbmsgc29ja2V0cyAtIGdlbmVyaWMgbmV0bGluawoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMy0ydWJ1bnR1MgpuYW1lOiBsaWJubC1yb3V0ZS0zLTIwMApkZXNjcmlwdGlvbjogbGlicmFyeSBmb3IgZGVhbGluZyB3aXRoIG5ldGxpbmsgc29ja2V0cyAtIHJvdXRlIGludGVyZmFjZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuNC4wLTB1YnVudHU0LjIKbmFtZTogbGlibm0tZ2xpYi12cG4xCmRlc2NyaXB0aW9uOiBuZXR3b3JrIG1hbmFnZW1lbnQgZnJhbWV3b3JrIChHTGliIFZQTiBzaGFyZWQgbGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjQuMC0wdWJ1bnR1NC4yCm5hbWU6IGxpYm5tLWdsaWI0CmRlc2NyaXB0aW9uOiBuZXR3b3JrIG1hbmFnZW1lbnQgZnJhbWV3b3JrIChHTGliIHNoYXJlZCBsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuNC4xLTB1YnVudHUyCm5hbWU6IGxpYm5tLWd0ay1jb21tb24KZGVzY3JpcHRpb246IG5ldHdvcmsgbWFuYWdlbWVudCBmcmFtZXdvcmsgKGNvbW1vbiBmaWxlcyBmb3Igd2lmaSBhbmQgbW9iaWxlKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuNC4xLTB1YnVudHUyCm5hbWU6IGxpYm5tLWd0azAKZGVzY3JpcHRpb246IG5ldHdvcmsgbWFuYWdlbWVudCBmcmFtZXdvcmsgKEdOT01FIGRpYWxvZ3MgZm9yIHdpZmkgYW5kIG1vYmlsZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjQuMC0wdWJ1bnR1NC4yCm5hbWU6IGxpYm5tLXV0aWwyCmRlc2NyaXB0aW9uOiBuZXR3b3JrIG1hbmFnZW1lbnQgZnJhbWV3b3JrIChzaGFyZWQgbGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC43LjUtMQpuYW1lOiBsaWJub3RpZnktYmluCmRlc2NyaXB0aW9uOiBzZW5kcyBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgdG8gYSBub3RpZmljYXRpb24gZGFlbW9uIChVdGlsaXRpZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNy41LTEKbmFtZTogbGlibm90aWZ5NApkZXNjcmlwdGlvbjogc2VuZHMgZGVza3RvcCBub3RpZmljYXRpb25zIHRvIGEgbm90aWZpY2F0aW9uIGRhZW1vbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjkuNC0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IGxpYm5zcHI0CmRlc2NyaXB0aW9uOiBOZXRTY2FwZSBQb3J0YWJsZSBSdW50aW1lIExpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC45LjQtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBsaWJuc3ByNDppMzg2CmRlc2NyaXB0aW9uOiBOZXRTY2FwZSBQb3J0YWJsZSBSdW50aW1lIExpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC45LjQtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBsaWJuc3ByNC0wZApkZXNjcmlwdGlvbjogTmV0U2NhcGUgUG9ydGFibGUgUnVudGltZSBMaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAtMy4yCm5hbWU6IGxpYm5zcy1tZG5zCmRlc2NyaXB0aW9uOiBOU1MgbW9kdWxlIGZvciBNdWx0aWNhc3QgRE5TIG5hbWUgcmVzb2x1dGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjE0LjEtMGNrYmkxLjkzdWJ1bnR1LjAuMTIuMDQuMQpuYW1lOiBsaWJuc3MzCmRlc2NyaXB0aW9uOiBOZXR3b3JrIFNlY3VyaXR5IFNlcnZpY2UgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMTQuMS0wY2tiaTEuOTN1YnVudHUuMC4xMi4wNC4xCm5hbWU6IGxpYm5zczM6aTM4NgpkZXNjcmlwdGlvbjogTmV0d29yayBTZWN1cml0eSBTZXJ2aWNlIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjE0LjEtMGNrYmkxLjkzdWJ1bnR1LjAuMTIuMDQuMQpuYW1lOiBsaWJuc3MzLTFkCmRlc2NyaXB0aW9uOiBOZXR3b3JrIFNlY3VyaXR5IFNlcnZpY2UgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMC44fnJjMy0xCm5hbWU6IGxpYm51bWExCmRlc2NyaXB0aW9uOiBMaWJyYXJpZXMgZm9yIGNvbnRyb2xsaW5nIE5VTUEgcG9saWN5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMTQuMS0wdWJ1bnR1MQpuYW1lOiBsaWJudXgtMi4wLTAKZGVzY3JpcHRpb246IFZpc3VhbCByZW5kZXJpbmcgdG9vbGtpdCBmb3IgcmVhbC10aW1lIGFwcGxpY2F0aW9ucyAtIHNoYXJlZCBsaWIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xNC4xLTB1YnVudHUxCm5hbWU6IGxpYm51eC0yLjAtY29tbW9uCmRlc2NyaXB0aW9uOiBWaXN1YWwgcmVuZGVyaW5nIHRvb2xraXQgZm9yIHJlYWwtdGltZSBhcHBsaWNhdGlvbnMgLSBjb21tb24gZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjQtMwpuYW1lOiBsaWJvYXV0aDAKZGVzY3JpcHRpb246IEMgbGlicmFyeSBmb3IgaW1wbGVtZW50aW5nIE9BdXRoIDEuMAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIzLTFidWlsZDMKbmFtZTogbGlib2JleGZ0cDAKZGVzY3JpcHRpb246IG9iamVjdCBleGNoYW5nZSBmaWxlIHRyYW5zZmVyIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjE0cDItNXVidW50dTMKbmFtZTogbGlib2RiYzE6aTM4NgpkZXNjcmlwdGlvbjogT0RCQyBsaWJyYXJ5IGZvciBVbml4CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS4zLTQKbmFtZTogbGlib2ZhMApkZXNjcmlwdGlvbjogTGlicmFyeSBmb3IgYWNvdXN0aWMgZmluZ2VycHJpbnRpbmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjJ+ZGZzZy0xdWJ1bnR1MQpuYW1lOiBsaWJvZ2cwCmRlc2NyaXB0aW9uOiBPZ2cgYml0c3RyZWFtIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjJ+ZGZzZy0xdWJ1bnR1MQpuYW1lOiBsaWJvZ2cwOmkzODYKZGVzY3JpcHRpb246IE9nZyBiaXRzdHJlYW0gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE5LTEKbmFtZTogbGlib2xlLXN0b3JhZ2UtbGl0ZS1wZXJsCmRlc2NyaXB0aW9uOiBzaW1wbGUgY2xhc3MgZm9yIE9MRSBkb2N1bWVudCBpbnRlcmZhY2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjAtMQpuYW1lOiBsaWJvb2JzLTEtNQpkZXNjcmlwdGlvbjogR09iamVjdCBiYXNlZCBpbnRlcmZhY2UgdG8gc3lzdGVtLXRvb2xzLWJhY2tlbmRzIC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEzLTR1YnVudHUzCm5hbWU6IGxpYm9wZW5hbC1kYXRhCmRlc2NyaXB0aW9uOiBTb2Z0d2FyZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgT3BlbkFMIEFQSSAoZGF0YSBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEzLTR1YnVudHUzCm5hbWU6IGxpYm9wZW5hbDEKZGVzY3JpcHRpb246IFNvZnR3YXJlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBPcGVuQUwgQVBJIChzaGFyZWQgbGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEzLTR1YnVudHUzCm5hbWU6IGxpYm9wZW5hbDE6aTM4NgpkZXNjcmlwdGlvbjogU29mdHdhcmUgaW1wbGVtZW50YXRpb24gb2YgdGhlIE9wZW5BTCBBUEkgKHNoYXJlZCBsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMuMC0xCm5hbWU6IGxpYm9wZW5jYzEKZGVzY3JpcHRpb246IHNpbXBsaWZpZWQtdHJhZGl0aW9uYWwgY2hpbmVzZSBjb252ZXJzaW9uIGxpYnJhcnkgLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS4yLTEKbmFtZTogbGlib3BlbmNvcmUtYW1ybmIwCmRlc2NyaXB0aW9uOiBBZGFwdGl2ZSBNdWx0aSBSYXRlIHNwZWVjaCBjb2RlYyAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS4yLTEKbmFtZTogbGlib3BlbmNvcmUtYW1yd2IwCmRlc2NyaXB0aW9uOiBBZGFwdGl2ZSBNdWx0aS1SYXRlIC0gV2lkZWJhbmQgc3BlZWNoIGNvZGVjIC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zLjEtNwpuYW1lOiBsaWJvcGVuY3YtY2FsaWIzZDIuMwpkZXNjcmlwdGlvbjogY29tcHV0ZXIgdmlzaW9uIENhbWVyYSBDYWxpYnJhdGlvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMy4xLTcKbmFtZTogbGlib3BlbmN2LWNvcmUyLjMKZGVzY3JpcHRpb246IGNvbXB1dGVyIHZpc2lvbiBjb3JlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zLjEtNwpuYW1lOiBsaWJvcGVuY3YtZmVhdHVyZXMyZDIuMwpkZXNjcmlwdGlvbjogY29tcHV0ZXIgdmlzaW9uIEZlYXR1cmUgRGV0ZWN0aW9uIGFuZCBEZXNjcmlwdG9yIEV4dHJhY3Rpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMuMS03Cm5hbWU6IGxpYm9wZW5jdi1mbGFubjIuMwpkZXNjcmlwdGlvbjogY29tcHV0ZXIgdmlzaW9uIENsdXN0ZXJpbmcgYW5kIFNlYXJjaCBpbiBNdWx0aS1EaW1lbnNpb25hbCBzcGFjZXMgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMuMS03Cm5hbWU6IGxpYm9wZW5jdi1oaWdoZ3VpMi4zCmRlc2NyaXB0aW9uOiBjb21wdXRlciB2aXNpb24gSGlnaC1sZXZlbCBHVUkgYW5kIE1lZGlhIEkvTyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMy4xLTcKbmFtZTogbGlib3BlbmN2LWltZ3Byb2MyLjMKZGVzY3JpcHRpb246IGNvbXB1dGVyIHZpc2lvbiBJbWFnZSBQcm9jZXNzaW5nIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zLjEtNwpuYW1lOiBsaWJvcGVuY3YtbGVnYWN5Mi4zCmRlc2NyaXB0aW9uOiBjb21wdXRlciB2aXNpb24gbGVnYWN5IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zLjEtNwpuYW1lOiBsaWJvcGVuY3YtbWwyLjMKZGVzY3JpcHRpb246IGNvbXB1dGVyIHZpc2lvbiBNYWNoaW5lIExlYXJuaW5nIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zLjEtNwpuYW1lOiBsaWJvcGVuY3Ytb2JqZGV0ZWN0Mi4zCmRlc2NyaXB0aW9uOiBjb21wdXRlciB2aXNpb24gT2JqZWN0IERldGVjdGlvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMy4xLTcKbmFtZTogbGlib3BlbmN2LXZpZGVvMi4zCmRlc2NyaXB0aW9uOiBjb21wdXRlciB2aXNpb24gVmlkZW8gYW5hbHlzaXMgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjYuMS00LjEKbmFtZTogbGlib3BlbmV4cjYKZGVzY3JpcHRpb246IHJ1bnRpbWUgZmlsZXMgZm9yIHRoZSBPcGVuRVhSIGltYWdlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4zK2Rmc2ctNApuYW1lOiBsaWJvcGVuanBlZzIKZGVzY3JpcHRpb246IEpQRUcgMjAwMCBpbWFnZSBjb21wcmVzc2lvbi9kZWNvbXByZXNzaW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41LTJidWlsZDEKbmFtZTogbGlib3Blbm9iZXgxCmRlc2NyaXB0aW9uOiBPQkVYIHByb3RvY29sIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogOC4wLjQtMHVidW50dTAuMwpuYW1lOiBsaWJvcGVudmcxLW1lc2EKZGVzY3JpcHRpb246IGZyZWUgaW1wbGVtZW50YXRpb24gb2YgdGhlIE9wZW5WRyBBUEkgLS0gcnVudGltZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjIuMTQuMTktMC4xdWJ1bnR1MQpuYW1lOiBsaWJvcmJpdDIKZGVzY3JpcHRpb246IGxpYnJhcmllcyBmb3IgT1JCaXQyIC0gYSBDT1JCQSBPUkIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjQuMTYtMXVidW50dTIKbmFtZTogbGlib3JjLTAuNC0wCmRlc2NyaXB0aW9uOiBMaWJyYXJ5IG9mIE9wdGltaXplZCBJbm5lciBMb29wcyBSdW50aW1lIENvbXBpbGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC40LjE2LTF1YnVudHUyCm5hbWU6IGxpYm9yYy0wLjQtMDppMzg2CmRlc2NyaXB0aW9uOiBMaWJyYXJ5IG9mIE9wdGltaXplZCBJbm5lciBMb29wcyBSdW50aW1lIENvbXBpbGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi4xNi0wdWJ1bnR1MS4xCm5hbWU6IGxpYm92ZXJsYXktc2Nyb2xsYmFyLTAuMi0wCmRlc2NyaXB0aW9uOiBTY3JvbGxiYXIgb3ZlcmxheWVkIHdpZGdldCAtIHNoYXJlZCBsaWIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjE2LTB1YnVudHUxLjEKbmFtZTogbGlib3ZlcmxheS1zY3JvbGxiYXIzLTAuMi0wCmRlc2NyaXB0aW9uOiBTY3JvbGxiYXIgb3ZlcmxheWVkIHdpZGdldCAtIHNoYXJlZCBsaWIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMi0ydWJ1bnR1MQpuYW1lOiBsaWJwMTEta2l0MApkZXNjcmlwdGlvbjogTGlicmFyeSBmb3IgbG9hZGluZyBhbmQgY29vcmRpbmF0aW5nIGFjY2VzcyB0byBQS0NTIzExIG1vZHVsZXMgLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTItMnVidW50dTEKbmFtZTogbGlicDExLWtpdDA6aTM4NgpkZXNjcmlwdGlvbjogTGlicmFyeSBmb3IgbG9hZGluZyBhbmQgY29vcmRpbmF0aW5nIGFjY2VzcyB0byBQS0NTIzExIG1vZHVsZXMgLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNy4yLTR1YnVudHUzCm5hbWU6IGxpYnBhY2thZ2VraXQtZ2xpYjItMTQKZGVzY3JpcHRpb246IExpYnJhcnkgZm9yIGFjY2Vzc2luZyBQYWNrYWdlS2l0IHVzaW5nIEdMaWIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToyLjIyLTF1YnVudHUzCm5hbWU6IGxpYnBhbS1jYXAKZGVzY3JpcHRpb246IFBBTSBtb2R1bGUgZm9yIGltcGxlbWVudGluZyBjYXBhYmlsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjUtMgpuYW1lOiBsaWJwYW0tY2stY29ubmVjdG9yCmRlc2NyaXB0aW9uOiBDb25zb2xlS2l0IFBBTSBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjItMnVidW50dTQKbmFtZTogbGlicGFtLWdub21lLWtleXJpbmcKZGVzY3JpcHRpb246IFBBTSBtb2R1bGUgdG8gdW5sb2NrIHRoZSBHTk9NRSBrZXlyaW5nIHVwb24gbG9naW4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjMtN3VidW50dTIKbmFtZTogbGlicGFtLW1vZHVsZXMKZGVzY3JpcHRpb246IFBsdWdnYWJsZSBBdXRoZW50aWNhdGlvbiBNb2R1bGVzIGZvciBQQU0KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjMtN3VidW50dTIKbmFtZTogbGlicGFtLW1vZHVsZXMtYmluCmRlc2NyaXB0aW9uOiBQbHVnZ2FibGUgQXV0aGVudGljYXRpb24gTW9kdWxlcyBmb3IgUEFNIC0gaGVscGVyIGJpbmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4zLTd1YnVudHUyCm5hbWU6IGxpYnBhbS1ydW50aW1lCmRlc2NyaXB0aW9uOiBSdW50aW1lIHN1cHBvcnQgZm9yIHRoZSBQQU0gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMy03dWJ1bnR1MgpuYW1lOiBsaWJwYW0wZwpkZXNjcmlwdGlvbjogUGx1Z2dhYmxlIEF1dGhlbnRpY2F0aW9uIE1vZHVsZXMgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuNC4xLTB1YnVudHUxLjEKbmFtZTogbGlicGFuZWwtYXBwbGV0LTQtMApkZXNjcmlwdGlvbjogbGlicmFyeSBmb3IgR05PTUUgUGFuZWwgYXBwbGV0cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIyMi0xYnVpbGQxCm5hbWU6IGxpYnBhbmdvLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgbW9kdWxlIHRvIGxheW91dCBhbmQgcmVuZGVyIGludGVybmF0aW9uYWwgdGV4dAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMwLjAtMHVidW50dTMuMQpuYW1lOiBsaWJwYW5nbzEuMC0wCmRlc2NyaXB0aW9uOiBMYXlvdXQgYW5kIHJlbmRlcmluZyBvZiBpbnRlcm5hdGlvbmFsaXplZCB0ZXh0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMzAuMC0wdWJ1bnR1My4xCm5hbWU6IGxpYnBhbmdvMS4wLTA6aTM4NgpkZXNjcmlwdGlvbjogTGF5b3V0IGFuZCByZW5kZXJpbmcgb2YgaW50ZXJuYXRpb25hbGl6ZWQgdGV4dAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMwLjAtMHVidW50dTMuMQpuYW1lOiBsaWJwYW5nbzEuMC1kZXYKZGVzY3JpcHRpb246IERldmVsb3BtZW50IGZpbGVzIGZvciB0aGUgUGFuZ28KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4zMC4wLTB1YnVudHUzLjEKbmFtZTogbGlicGFuZ28xLjAtZG9jCmRlc2NyaXB0aW9uOiBEb2N1bWVudGF0aW9uIGZpbGVzIGZvciB0aGUgUGFuZ28KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yOC40LTF1YnVudHUxCm5hbWU6IGxpYnBhbmdvbW0tMS40LTEKZGVzY3JpcHRpb246IEMrKyBXcmFwcGVyIGZvciBwYW5nbyAoc2hhcmVkIGxpYnJhcmllcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjI0K25tdTFidWlsZDEKbmFtZTogbGlicGFwZXItdXRpbHMKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIGhhbmRsaW5nIHBhcGVyIGNoYXJhY3RlcmlzdGljcyAodXRpbGl0aWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMjQrbm11MWJ1aWxkMQpuYW1lOiBsaWJwYXBlcjEKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIGhhbmRsaW5nIHBhcGVyIGNoYXJhY3RlcmlzdGljcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAwNS0zCm5hbWU6IGxpYnBhcnNlLWRlYmNvbnRyb2wtcGVybApkZXNjcmlwdGlvbjogcGFyc2VyIGZvciBkZWJpYW4gY29udHJvbC1saWtlIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4wLTF1YnVudHUxCm5hbWU6IGxpYnBhcnNlLWRlYmlhbmNoYW5nZWxvZy1wZXJsCmRlc2NyaXB0aW9uOiBwYXJzZSBEZWJpYW4gY2hhbmdlbG9ncyBhbmQgb3V0cHV0IHRoZW0gaW4gb3RoZXIgZm9ybWF0cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjk2NTAwMStkZnNnLTEKbmFtZTogbGlicGFyc2UtcmVjZGVzY2VudC1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIG1vZHVsZSB0byBjcmVhdGUgYW5kIHVzZSByZWN1cnNpdmUtZGVzY2VudCBwYXJzZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMy04dWJ1bnR1NS4xCm5hbWU6IGxpYnBhcnRlZDBkZWJpYW4xCmRlc2NyaXB0aW9uOiBkaXNrIHBhcnRpdGlvbiBtYW5pcHVsYXRvciAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjQtMQpuYW1lOiBsaWJwYXRoLWNsYXNzLXBlcmwKZGVzY3JpcHRpb246IG1vZHVsZSBmb3IgY3Jvc3MtcGxhdGZvcm0gcGF0aCBzcGVjaWZpY2F0aW9uIG1hbmlwdWxhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI2LjMtMTB1YnVudHUxCm5hbWU6IGxpYnBhdGhwbGFuNApkZXNjcmlwdGlvbjogcmljaCBzZXQgb2YgZ3JhcGggZHJhd2luZyB0b29scyAtIHBhdGhwbGFuIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjEtMTAKbmFtZTogbGlicGNhcDAuOApkZXNjcmlwdGlvbjogc3lzdGVtIGludGVyZmFjZSBmb3IgdXNlci1sZXZlbCBwYWNrZXQgY2FwdHVyZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuMS44LTJ1YnVudHU1Cm5hbWU6IGxpYnBjaTMKZGVzY3JpcHRpb246IExpbnV4IFBDSSBVdGlsaXRpZXMgKHNoYXJlZCBsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEyLjkwMi0xCm5hbWU6IGxpYnBjaWFjY2VzczAKZGVzY3JpcHRpb246IEdlbmVyaWMgUENJIGFjY2VzcyBsaWJyYXJ5IGZvciBYCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTIuOTAyLTEKbmFtZTogbGlicGNpYWNjZXNzMDppMzg2CmRlc2NyaXB0aW9uOiBHZW5lcmljIFBDSSBhY2Nlc3MgbGlicmFyeSBmb3IgWAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjEyLTQKbmFtZTogbGlicGNyZTMKZGVzY3JpcHRpb246IFBlcmwgNSBDb21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbiBMaWJyYXJ5IC0gcnVudGltZSBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjEyLTQKbmFtZTogbGlicGNyZTM6aTM4NgpkZXNjcmlwdGlvbjogUGVybCA1IENvbXBhdGlibGUgUmVndWxhciBFeHByZXNzaW9uIExpYnJhcnkgLSBydW50aW1lIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDguMTItNApuYW1lOiBsaWJwY3JlMy1kZXYKZGVzY3JpcHRpb246IFBlcmwgNSBDb21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbiBMaWJyYXJ5IC0gZGV2ZWxvcG1lbnQgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogOC4xMi00Cm5hbWU6IGxpYnBjcmVjcHAwCmRlc2NyaXB0aW9uOiBQZXJsIDUgQ29tcGF0aWJsZSBSZWd1bGFyIEV4cHJlc3Npb24gTGlicmFyeSAtIEMrKyBydW50aW1lIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNy40LTJ1YnVudHUyCm5hbWU6IGxpYnBjc2NsaXRlMQpkZXNjcmlwdGlvbjogTWlkZGxld2FyZSB0byBhY2Nlc3MgYSBzbWFydCBjYXJkIHVzaW5nIFBDL1NDIChsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIuMC0xdWJ1bnR1MQpuYW1lOiBsaWJwZWFzLTEuMC0wCmRlc2NyaXB0aW9uOiBBcHBsaWNhdGlvbiBwbHVnaW4gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIuMC0xdWJ1bnR1MQpuYW1lOiBsaWJwZWFzLWNvbW1vbgpkZXNjcmlwdGlvbjogQXBwbGljYXRpb24gcGx1Z2luIGxpYnJhcnkgKGNvbW1vbiBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4xNC4yLTZ1YnVudHUyLjIKbmFtZTogbGlicGVybDUuMTQKZGVzY3JpcHRpb246IHNoYXJlZCBQZXJsIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjcuMHJlYWxseTQuNi4wLTB1YnVudHUxCm5hbWU6IGxpYnBob25vbjQKZGVzY3JpcHRpb246IG11bHRpbWVkaWEgZnJhbWV3b3JrIGZyb20gS0RFIC0gY29yZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4xLTEKbmFtZTogbGlicGlwZWxpbmUxCmRlc2NyaXB0aW9uOiBwaXBlbGluZSBtYW5pcHVsYXRpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjI0LjQtMQpuYW1lOiBsaWJwaXhtYW4tMS0wCmRlc2NyaXB0aW9uOiBwaXhlbC1tYW5pcHVsYXRpb24gbGlicmFyeSBmb3IgWCBhbmQgY2Fpcm8KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yNC40LTEKbmFtZTogbGlicGl4bWFuLTEtMDppMzg2CmRlc2NyaXB0aW9uOiBwaXhlbC1tYW5pcHVsYXRpb24gbGlicmFyeSBmb3IgWCBhbmQgY2Fpcm8KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yNC40LTEKbmFtZTogbGlicGl4bWFuLTEtZGV2CmRlc2NyaXB0aW9uOiBwaXhlbC1tYW5pcHVsYXRpb24gbGlicmFyeSBmb3IgWCBhbmQgY2Fpcm8gKGRldmVsb3BtZW50IGZpbGVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjA5LTEKbmFtZTogbGlicGtjczExLWhlbHBlcjEKZGVzY3JpcHRpb246IGxpYnJhcnkgdGhhdCBzaW1wbGlmaWVzIHRoZSBpbnRlcmFjdGlvbiB3aXRoIFBLQ1MjMTEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LTEKbmFtZTogbGlicGxpc3QxCmRlc2NyaXB0aW9uOiBMaWJyYXJ5IGZvciBoYW5kbGluZyBBcHBsZSBiaW5hcnkgYW5kIFhNTCBwcm9wZXJ0eSBsaXN0cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguMi0ydWJ1bnR1MzAKbmFtZTogbGlicGx5bW91dGgyCmRlc2NyaXB0aW9uOiBncmFwaGljYWwgYm9vdCBhbmltYXRpb24gYW5kIGxvZ2dlciAtIHNoYXJlZCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjQ2LTN1YnVudHU0Cm5hbWU6IGxpYnBuZzEyLTAKZGVzY3JpcHRpb246IFBORyBsaWJyYXJ5IC0gcnVudGltZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIuNDYtM3VidW50dTQKbmFtZTogbGlicG5nMTItMDppMzg2CmRlc2NyaXB0aW9uOiBQTkcgbGlicmFyeSAtIHJ1bnRpbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjQ2LTN1YnVudHU0Cm5hbWU6IGxpYnBuZzEyLWRldgpkZXNjcmlwdGlvbjogUE5HIGxpYnJhcnkgLSBkZXZlbG9wbWVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEwNC0xdWJ1bnR1MQpuYW1lOiBsaWJwb2xraXQtYWdlbnQtMS0wCmRlc2NyaXB0aW9uOiBQb2xpY3lLaXQgQXV0aGVudGljYXRpb24gQWdlbnQgQVBJCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTA0LTF1YnVudHUxCm5hbWU6IGxpYnBvbGtpdC1iYWNrZW5kLTEtMApkZXNjcmlwdGlvbjogUG9saWN5S2l0IGJhY2tlbmQgQVBJCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTA0LTF1YnVudHUxCm5hbWU6IGxpYnBvbGtpdC1nb2JqZWN0LTEtMApkZXNjcmlwdGlvbjogUG9saWN5S2l0IEF1dGhvcml6YXRpb24gQVBJCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTguNC0xdWJ1bnR1MwpuYW1lOiBsaWJwb3BwbGVyLWdsaWI4CmRlc2NyaXB0aW9uOiBQREYgcmVuZGVyaW5nIGxpYnJhcnkgKEdMaWItYmFzZWQgc2hhcmVkIGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTguNC0xdWJ1bnR1MwpuYW1lOiBsaWJwb3BwbGVyMTkKZGVzY3JpcHRpb246IFBERiByZW5kZXJpbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjE2LTN1YnVudHUxCm5hbWU6IGxpYnBvcHQwCmRlc2NyaXB0aW9uOiBsaWIgZm9yIHBhcnNpbmcgY21kbGluZSBwYXJhbWV0ZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE5K3N2bjIwMTExMTIxLTEKbmFtZTogbGlicG9ydGF1ZGlvMgpkZXNjcmlwdGlvbjogUG9ydGFibGUgYXVkaW8gSS9PIC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToyMDAtMHVidW50dTEKbmFtZTogbGlicG9ydG1pZGkwCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciByZWFsLXRpbWUgTUlESSBpbnB1dC9vdXRwdXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xfnN2bjIwMTAxMDEwLTMKbmFtZTogbGlicG9ydHNtZjAKZGVzY3JpcHRpb246IFBvcnRhYmxlIFN0YW5kYXJkIE1pZGkgRmlsZSBMaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6MC44LjQtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBsaWJwb3N0cHJvYzUyCmRlc2NyaXB0aW9uOiBMaWJhdiB2aWRlbyBwb3N0cHJvY2Vzc2luZyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNDUtMwpuYW1lOiBsaWJwcm9jLXByb2Nlc3N0YWJsZS1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIGxpYnJhcnkgZm9yIGFjY2Vzc2luZyBwcm9jZXNzIHRhYmxlIGluZm9ybWF0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMzAtMQpuYW1lOiBsaWJwcm9jLXNpbXBsZS1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIGludGVyZmFjZSB0byBsYXVuY2ggYW5kIGNvbnRyb2wgYmFja2dyb3VuZCBwcm9jZXNzZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi40LjEtMXVidW50dTIKbmFtZTogbGlicHJvdG9idWY3CmRlc2NyaXB0aW9uOiBwcm90b2NvbCBidWZmZXJzIEMrKyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4xLTF1YnVudHUyCm5hbWU6IGxpYnByb3RvYzcKZGVzY3JpcHRpb246IHByb3RvY29sIGJ1ZmZlcnMgY29tcGlsZXIgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQuNy0wdWJ1bnR1NC4xCm5hbWU6IGxpYnByb3h5MQpkZXNjcmlwdGlvbjogYXV0b21hdGljIHByb3h5IGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudCBsaWJyYXJ5IChzaGFyZWQpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC43LTB1YnVudHU0LjEKbmFtZTogbGlicHJveHkxOmkzODYKZGVzY3JpcHRpb246IGF1dG9tYXRpYyBwcm94eSBjb25maWd1cmF0aW9uIG1hbmFnZW1lbnQgbGlicmFyeSAoc2hhcmVkKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQuNy0wdWJ1bnR1NC4xCm5hbWU6IGxpYnByb3h5MS1wbHVnaW4tZ3NldHRpbmdzCmRlc2NyaXB0aW9uOiBhdXRvbWF0aWMgcHJveHkgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50IGxpYnJhcnkgKEdTZXR0aW5ncyBwbHVnaW4pCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC43LTB1YnVudHU0LjEKbmFtZTogbGlicHJveHkxLXBsdWdpbi1uZXR3b3JrbWFuYWdlcgpkZXNjcmlwdGlvbjogYXV0b21hdGljIHByb3h5IGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudCBsaWJyYXJ5IChOZXR3b3JrIE1hbmFnZXIgcGx1Z2luKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuNy0xNnVidW50dTMKbmFtZTogbGlicHRoMjAKZGVzY3JpcHRpb246IFRoZSBHTlUgUG9ydGFibGUgVGhyZWFkcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMtMwpuYW1lOiBsaWJwdGhyZWFkLXN0dWJzMApkZXNjcmlwdGlvbjogcHRocmVhZCBzdHVicyBub3QgcHJvdmlkZWQgYnkgbmF0aXZlIGxpYmMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLTMKbmFtZTogbGlicHRocmVhZC1zdHViczAtZGV2CmRlc2NyaXB0aW9uOiBwdGhyZWFkIHN0dWJzIG5vdCBwcm92aWRlZCBieSBuYXRpdmUgbGliYywgZGV2ZWxvcG1lbnQgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEtMHVidW50dTE1LjIKbmFtZTogbGlicHVsc2UtbWFpbmxvb3AtZ2xpYjAKZGVzY3JpcHRpb246IFB1bHNlQXVkaW8gY2xpZW50IGxpYnJhcmllcyAoZ2xpYiBzdXBwb3J0KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMS0wdWJ1bnR1MTUuMgpuYW1lOiBsaWJwdWxzZS1tYWlubG9vcC1nbGliMDppMzg2CmRlc2NyaXB0aW9uOiBQdWxzZUF1ZGlvIGNsaWVudCBsaWJyYXJpZXMgKGdsaWIgc3VwcG9ydCkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEtMHVidW50dTE1LjIKbmFtZTogbGlicHVsc2UwCmRlc2NyaXB0aW9uOiBQdWxzZUF1ZGlvIGNsaWVudCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEtMHVidW50dTE1LjIKbmFtZTogbGlicHVsc2UwOmkzODYKZGVzY3JpcHRpb246IFB1bHNlQXVkaW8gY2xpZW50IGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMS0wdWJ1bnR1MTUuMgpuYW1lOiBsaWJwdWxzZWRzcApkZXNjcmlwdGlvbjogUHVsc2VBdWRpbyBPU1MgcHJlLWxvYWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMS0wdWJ1bnR1MTUuMgpuYW1lOiBsaWJwdWxzZWRzcDppMzg2CmRlc2NyaXB0aW9uOiBQdWxzZUF1ZGlvIE9TUyBwcmUtbG9hZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Mi4xMC4zLTB1YnVudHUxLjEKbmFtZTogbGlicHVycGxlLWJpbgpkZXNjcmlwdGlvbjogbXVsdGktcHJvdG9jb2wgaW5zdGFudCBtZXNzYWdpbmcgbGlicmFyeSAtIGV4dHJhIHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjIuMTAuMy0wdWJ1bnR1MS4xCm5hbWU6IGxpYnB1cnBsZTAKZGVzY3JpcHRpb246IG11bHRpLXByb3RvY29sIGluc3RhbnQgbWVzc2FnaW5nIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBsaWJweXNpZGUtcHkzLTEuMQpkZXNjcmlwdGlvbjogUHl0aG9uMyBiaW5kaW5ncyBmb3IgUXQgNCAoYmFzZSBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBsaWJweXNpZGUxLjEKZGVzY3JpcHRpb246IFB5dGhvbiBiaW5kaW5ncyBmb3IgUXQgNCAoYmFzZSBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi43LjMtMHVidW50dTMuMQpuYW1lOiBsaWJweXRob24yLjcKZGVzY3JpcHRpb246IFNoYXJlZCBQeXRob24gcnVudGltZSBsaWJyYXJ5ICh2ZXJzaW9uIDIuNykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjMtMHVidW50dTMuMgpuYW1lOiBsaWJweXRob24zLjIKZGVzY3JpcHRpb246IFNoYXJlZCBQeXRob24gcnVudGltZSBsaWJyYXJ5ICh2ZXJzaW9uIDMuMikKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC1kYnVzCmRlc2NyaXB0aW9uOiBRdCA0IEQtQnVzIG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogbGlicXQ0LWRidXM6aTM4NgpkZXNjcmlwdGlvbjogUXQgNCBELUJ1cyBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC1kZWNsYXJhdGl2ZQpkZXNjcmlwdGlvbjogUXQgNCBEZWNsYXJhdGl2ZSBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC1kZWNsYXJhdGl2ZTppMzg2CmRlc2NyaXB0aW9uOiBRdCA0IERlY2xhcmF0aXZlIG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogbGlicXQ0LWRlY2xhcmF0aXZlLWdlc3R1cmVzCmRlc2NyaXB0aW9uOiBRdCA0IGdlc3R1cmVzIFFNTCBwbHVnaW4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC1kZWNsYXJhdGl2ZS1wYXJ0aWNsZXMKZGVzY3JpcHRpb246IFF0IDQgcGFydGljbGVzIFFNTCBwbHVnaW4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC1kZXNpZ25lcgpkZXNjcmlwdGlvbjogUXQgNCBkZXNpZ25lciBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC1kZXNpZ25lcjppMzg2CmRlc2NyaXB0aW9uOiBRdCA0IGRlc2lnbmVyIG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogbGlicXQ0LWRldgpkZXNjcmlwdGlvbjogUXQgNCBkZXZlbG9wbWVudCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogbGlicXQ0LWhlbHAKZGVzY3JpcHRpb246IFF0IDQgaGVscCBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC1uZXR3b3JrCmRlc2NyaXB0aW9uOiBRdCA0IG5ldHdvcmsgbW9kdWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6NC44LjEtMHVidW50dTQuMwpuYW1lOiBsaWJxdDQtbmV0d29yazppMzg2CmRlc2NyaXB0aW9uOiBRdCA0IG5ldHdvcmsgbW9kdWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6NC44LjEtMHVidW50dTQuMwpuYW1lOiBsaWJxdDQtb3BlbmdsCmRlc2NyaXB0aW9uOiBRdCA0IE9wZW5HTCBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC1vcGVuZ2w6aTM4NgpkZXNjcmlwdGlvbjogUXQgNCBPcGVuR0wgbW9kdWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6NC44LjEtMHVidW50dTQuMwpuYW1lOiBsaWJxdDQtb3BlbmdsLWRldgpkZXNjcmlwdGlvbjogUXQgNCBPcGVuR0wgbGlicmFyeSBkZXZlbG9wbWVudCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogbGlicXQ0LXF0M3N1cHBvcnQKZGVzY3JpcHRpb246IFF0IDMgY29tcGF0aWJpbGl0eSBsaWJyYXJ5IGZvciBRdCA0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6NC44LjEtMHVidW50dTQuMwpuYW1lOiBsaWJxdDQtcXQzc3VwcG9ydDppMzg2CmRlc2NyaXB0aW9uOiBRdCAzIGNvbXBhdGliaWxpdHkgbGlicmFyeSBmb3IgUXQgNAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogbGlicXQ0LXNjcmlwdApkZXNjcmlwdGlvbjogUXQgNCBzY3JpcHQgbW9kdWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6NC44LjEtMHVidW50dTQuMwpuYW1lOiBsaWJxdDQtc2NyaXB0OmkzODYKZGVzY3JpcHRpb246IFF0IDQgc2NyaXB0IG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogbGlicXQ0LXNjcmlwdHRvb2xzCmRlc2NyaXB0aW9uOiBRdCA0IHNjcmlwdCB0b29scyBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC1zY3JpcHR0b29sczppMzg2CmRlc2NyaXB0aW9uOiBRdCA0IHNjcmlwdCB0b29scyBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC1zcWwKZGVzY3JpcHRpb246IFF0IDQgU1FMIG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogbGlicXQ0LXNxbDppMzg2CmRlc2NyaXB0aW9uOiBRdCA0IFNRTCBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC1zcWwtbXlzcWw6aTM4NgpkZXNjcmlwdGlvbjogUXQgNCBNeVNRTCBkYXRhYmFzZSBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC1zcWwtc3FsaXRlCmRlc2NyaXB0aW9uOiBRdCA0IFNRTGl0ZSAzIGRhdGFiYXNlIGRyaXZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogbGlicXQ0LXN2ZwpkZXNjcmlwdGlvbjogUXQgNCBTVkcgbW9kdWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6NC44LjEtMHVidW50dTQuMwpuYW1lOiBsaWJxdDQtc3ZnOmkzODYKZGVzY3JpcHRpb246IFF0IDQgU1ZHIG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogbGlicXQ0LXRlc3QKZGVzY3JpcHRpb246IFF0IDQgdGVzdCBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC10ZXN0OmkzODYKZGVzY3JpcHRpb246IFF0IDQgdGVzdCBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC13ZWJraXQKZGVzY3JpcHRpb246IHRyYW5zaXRpb25hbCBwYWNrYWdlIGZvciBRdCA0IFdlYktpdCBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC14bWwKZGVzY3JpcHRpb246IFF0IDQgWE1MIG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogbGlicXQ0LXhtbDppMzg2CmRlc2NyaXB0aW9uOiBRdCA0IFhNTCBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0NC14bWxwYXR0ZXJucwpkZXNjcmlwdGlvbjogUXQgNCBYTUwgcGF0dGVybnMgbW9kdWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6NC44LjEtMHVidW50dTQuMwpuYW1lOiBsaWJxdDQteG1scGF0dGVybnM6aTM4NgpkZXNjcmlwdGlvbjogUXQgNCBYTUwgcGF0dGVybnMgbW9kdWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuNi4zLTN1YnVudHUyCm5hbWU6IGxpYnF0YXNzaXN0YW50Y2xpZW50NApkZXNjcmlwdGlvbjogUXQgQXNzaXN0YW50IGNsaWVudCBsaWJyYXJ5IChydW50aW1lKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuNC0wdWJ1bnR1MQpuYW1lOiBsaWJxdGJhbWYxCmRlc2NyaXB0aW9uOiBRdCBiaW5kaW5nIGFuZCBRTUwgcGx1Z2luIGZvciBiYW1mIC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0Y29yZTQKZGVzY3JpcHRpb246IFF0IDQgY29yZSBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0Y29yZTQ6aTM4NgpkZXNjcmlwdGlvbjogUXQgNCBjb3JlIG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuNC0wdWJ1bnR1MQpuYW1lOiBsaWJxdGRlZTIKZGVzY3JpcHRpb246IFF0IGJpbmRpbmcgYW5kIFFNTCBwbHVnaW4gZm9yIERlZSAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS0wdWJ1bnR1NQpuYW1lOiBsaWJxdGdjb25mMQpkZXNjcmlwdGlvbjogUXQgYmluZGluZyBhbmQgUU1MIHBsdWdpbiBmb3IgR0NvbmYgLSBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogbGlicXRndWk0CmRlc2NyaXB0aW9uOiBRdCA0IEdVSSBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IGxpYnF0Z3VpNDppMzg2CmRlc2NyaXB0aW9uOiBRdCA0IEdVSSBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjEtMXVidW50dTQKbmFtZTogbGlicXR3ZWJraXQtZGV2CmRlc2NyaXB0aW9uOiBXZWIgY29udGVudCBlbmdpbmUgbGlicmFyeSBmb3IgUXQgLSBkZXZlbG9wbWVudCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjIuMS0xdWJ1bnR1NApuYW1lOiBsaWJxdHdlYmtpdC1xbWx3ZWJraXRwbHVnaW4KZGVzY3JpcHRpb246IFF0IFdlYktpdCBRTUwgcGx1Z2luCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMi4xLTF1YnVudHU0Cm5hbWU6IGxpYnF0d2Via2l0NApkZXNjcmlwdGlvbjogV2ViIGNvbnRlbnQgZW5naW5lIGxpYnJhcnkgZm9yIFF0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMi4xLTF1YnVudHU0Cm5hbWU6IGxpYnF0d2Via2l0NDppMzg2CmRlc2NyaXB0aW9uOiBXZWIgY29udGVudCBlbmdpbmUgbGlicmFyeSBmb3IgUXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC42LjMtMXVidW50dTUKbmFtZTogbGlicXVhZG1hdGgwCmRlc2NyaXB0aW9uOiBHQ0MgUXVhZC1QcmVjaXNpb24gTWF0aCBMaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC4yLTEKbmFtZTogbGlicXV2aS1zY3JpcHRzCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciBwYXJzaW5nIHZpZGVvIGRvd25sb2FkIGxpbmtzIChMdWEgc2NyaXB0cykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjAtMQpuYW1lOiBsaWJxdXZpNwpkZXNjcmlwdGlvbjogbGlicmFyeSBmb3IgcGFyc2luZyB2aWRlbyBkb3dubG9hZCBsaW5rcyAocnVudGltZSBsaWJyYXJpZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNDEtMXVidW50dTIuMQpuYW1lOiBsaWJyYWRvczIKZGVzY3JpcHRpb246IFJBRE9TIGRpc3RyaWJ1dGVkIG9iamVjdCBzdG9yZSBjbGllbnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuNi0xCm5hbWU6IGxpYnJhcHRvcjItMApkZXNjcmlwdGlvbjogUmFwdG9yIDIgUkRGIHN5bnRheCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOC4xLTUKbmFtZTogbGlicmFyaWFuMApkZXNjcmlwdGlvbjogRG9jdW1lbnRhdGlvbiBtZXRhLWRhdGEgbGlicmFyeSAobGlicmFyeSBwYWNrYWdlKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuMjgtMQpuYW1lOiBsaWJyYXNxYWwzCmRlc2NyaXB0aW9uOiBSYXNxYWwgUkRGIHF1ZXJ5IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjctMXVidW50dTEKbmFtZTogbGlicmF3MTM5NC0xMQpkZXNjcmlwdGlvbjogbGlicmFyeSBmb3IgZGlyZWN0IGFjY2VzcyB0byBJRUVFIDEzOTQgYnVzIChha2EgRmlyZVdpcmUpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMC43LTF1YnVudHUxCm5hbWU6IGxpYnJhdzEzOTQtMTE6aTM4NgpkZXNjcmlwdGlvbjogbGlicmFyeSBmb3IgZGlyZWN0IGFjY2VzcyB0byBJRUVFIDEzOTQgYnVzIChha2EgRmlyZVdpcmUpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTQuNC0wdWJ1bnR1MgpuYW1lOiBsaWJyYXc1CmRlc2NyaXB0aW9uOiByYXcgaW1hZ2UgZGVjb2RlciBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNDEtMXVidW50dTIuMQpuYW1lOiBsaWJyYmQxCmRlc2NyaXB0aW9uOiBSQURPUyBibG9jayBkZXZpY2UgY2xpZW50IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjE0LTEKbmFtZTogbGlicmRmMApkZXNjcmlwdGlvbjogUmVkbGFuZCBSZXNvdXJjZSBEZXNjcmlwdGlvbiBGcmFtZXdvcmsgKFJERikgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA2LjItOApuYW1lOiBsaWJyZWFkbGluZTYKZGVzY3JpcHRpb246IEdOVSByZWFkbGluZSBhbmQgaGlzdG9yeSBsaWJyYXJpZXMsIHJ1bi10aW1lIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjM1LTIKbmFtZTogbGlicmVnZXhwLWFzc2VtYmxlLXBlcmwKZGVzY3JpcHRpb246IEFzc2VtYmxlIG11bHRpcGxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgaW50byBhIHNpbmdsZSBSRQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuNS40LTB1YnVudHUxLjEKbmFtZTogbGlicmVvZmZpY2UtYmFzZS1jb3JlCmRlc2NyaXB0aW9uOiBvZmZpY2UgcHJvZHVjdGl2aXR5IHN1aXRlIC0tIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My41LjQtMHVidW50dTEuMQpuYW1lOiBsaWJyZW9mZmljZS1jYWxjCmRlc2NyaXB0aW9uOiBvZmZpY2UgcHJvZHVjdGl2aXR5IHN1aXRlIC0tIHNwcmVhZHNoZWV0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My41LjQtMHVidW50dTEuMQpuYW1lOiBsaWJyZW9mZmljZS1jb21tb24KZGVzY3JpcHRpb246IG9mZmljZSBwcm9kdWN0aXZpdHkgc3VpdGUgLS0gYXJjaC1pbmRlcGVuZGVudCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuNS40LTB1YnVudHUxLjEKbmFtZTogbGlicmVvZmZpY2UtY29yZQpkZXNjcmlwdGlvbjogb2ZmaWNlIHByb2R1Y3Rpdml0eSBzdWl0ZSAtLSBhcmNoLWRlcGVuZGVudCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuNS40LTB1YnVudHUxLjEKbmFtZTogbGlicmVvZmZpY2UtZHJhdwpkZXNjcmlwdGlvbjogb2ZmaWNlIHByb2R1Y3Rpdml0eSBzdWl0ZSAtLSBkcmF3aW5nCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My41LjQtMHVidW50dTEuMQpuYW1lOiBsaWJyZW9mZmljZS1lbWFpbG1lcmdlCmRlc2NyaXB0aW9uOiBvZmZpY2UgcHJvZHVjdGl2aXR5IHN1aXRlIC0tIGVtYWlsIG1haWwgbWVyZ2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjUuNC0wdWJ1bnR1MS4xCm5hbWU6IGxpYnJlb2ZmaWNlLWdub21lCmRlc2NyaXB0aW9uOiBvZmZpY2UgcHJvZHVjdGl2aXR5IHN1aXRlIC0tIEdOT01FIGludGVncmF0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My41LjQtMHVidW50dTEuMQpuYW1lOiBsaWJyZW9mZmljZS1ndGsKZGVzY3JpcHRpb246IG9mZmljZSBwcm9kdWN0aXZpdHkgc3VpdGUgLS0gR1RLKyBpbnRlZ3JhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuNS40LTB1YnVudHUxLjEKbmFtZTogbGlicmVvZmZpY2UtaGVscC1lbi11cwpkZXNjcmlwdGlvbjogb2ZmaWNlIHByb2R1Y3Rpdml0eSBzdWl0ZSAtLSBFbmdsaXNoX2FtZXJpY2FuIGhlbHAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjUuNC0wdWJ1bnR1MS4xCm5hbWU6IGxpYnJlb2ZmaWNlLWltcHJlc3MKZGVzY3JpcHRpb246IG9mZmljZSBwcm9kdWN0aXZpdHkgc3VpdGUgLS0gcHJlc2VudGF0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My41LjQtMHVidW50dTEuMQpuYW1lOiBsaWJyZW9mZmljZS1tYXRoCmRlc2NyaXB0aW9uOiBvZmZpY2UgcHJvZHVjdGl2aXR5IHN1aXRlIC0tIGVxdWF0aW9uIGVkaXRvcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuNS40LTB1YnVudHUxLjEKbmFtZTogbGlicmVvZmZpY2Utc3R5bGUtaHVtYW4KZGVzY3JpcHRpb246IG9mZmljZSBwcm9kdWN0aXZpdHkgc3VpdGUgLS0gSHVtYW4gc3ltYm9sIHN0eWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My41LjQtMHVidW50dTEuMQpuYW1lOiBsaWJyZW9mZmljZS1zdHlsZS10YW5nbwpkZXNjcmlwdGlvbjogb2ZmaWNlIHByb2R1Y3Rpdml0eSBzdWl0ZSAtLSBUYW5nbyBzeW1ib2wgc3R5bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjUuNC0wdWJ1bnR1MS4xCm5hbWU6IGxpYnJlb2ZmaWNlLXdyaXRlcgpkZXNjcmlwdGlvbjogb2ZmaWNlIHByb2R1Y3Rpdml0eSBzdWl0ZSAtLSB3b3JkIHByb2Nlc3NvcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjEuMS0xMgpuYW1lOiBsaWJyZXNpZC1idWlsZGVyMGMyYQpkZXNjcmlwdGlvbjogU0lEIGNoaXAgZW11bGF0aW9uIGNsYXNzIGJhc2VkIG9uIHJlc2lkCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNy4xMi0xdWJ1bnR1MgpuYW1lOiBsaWJyZXN0LTAuNy0wCmRlc2NyaXB0aW9uOiBSRVNUIHNlcnZpY2UgYWNjZXNzIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi45Ni0wdWJ1bnR1NC4yCm5hbWU6IGxpYnJoeXRobWJveC1jb3JlNQpkZXNjcmlwdGlvbjogc3VwcG9ydCBsaWJyYXJ5IGZvciB0aGUgcmh5dGhtYm94IG11c2ljIHBsYXllcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjZ+Z2l0MjAxMjAzMTEuZGZzZy4xLTIKbmFtZTogbGlicm9rZW4xOC1oZWltZGFsCmRlc2NyaXB0aW9uOiBIZWltZGFsIEtlcmJlcm9zIC0gcm9rZW4gc3VwcG9ydCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNn5naXQyMDEyMDMxMS5kZnNnLjEtMgpuYW1lOiBsaWJyb2tlbjE4LWhlaW1kYWw6aTM4NgpkZXNjcmlwdGlvbjogSGVpbWRhbCBLZXJiZXJvcyAtIHJva2VuIHN1cHBvcnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjM2LjEtMHVidW50dTEKbmFtZTogbGlicnN2ZzItMgpkZXNjcmlwdGlvbjogU0FYLWJhc2VkIHJlbmRlcmVyIGxpYnJhcnkgZm9yIFNWRyBmaWxlcyAocnVudGltZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zNi4xLTB1YnVudHUxCm5hbWU6IGxpYnJzdmcyLTI6aTM4NgpkZXNjcmlwdGlvbjogU0FYLWJhc2VkIHJlbmRlcmVyIGxpYnJhcnkgZm9yIFNWRyBmaWxlcyAocnVudGltZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zNi4xLTB1YnVudHUxCm5hbWU6IGxpYnJzdmcyLWJpbgpkZXNjcmlwdGlvbjogY29tbWFuZC1saW5lIGFuZCBncmFwaGljYWwgdmlld2VycyBmb3IgU1ZHIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMzYuMS0wdWJ1bnR1MQpuYW1lOiBsaWJyc3ZnMi1jb21tb24KZGVzY3JpcHRpb246IFNBWC1iYXNlZCByZW5kZXJlciBsaWJyYXJ5IGZvciBTVkcgZmlsZXMgKGV4dHJhIHJ1bnRpbWUpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMzYuMS0wdWJ1bnR1MQpuYW1lOiBsaWJyc3ZnMi1jb21tb246aTM4NgpkZXNjcmlwdGlvbjogU0FYLWJhc2VkIHJlbmRlcmVyIGxpYnJhcnkgZm9yIFNWRyBmaWxlcyAoZXh0cmEgcnVudGltZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjctOGJ1aWxkMQpuYW1lOiBsaWJyc3luYzEKZGVzY3JpcHRpb246IHJzeW5jIHJlbW90ZS1kZWx0YSBhbGdvcml0aG0gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjR+MjAxMTA3MTEuZ2l0YzI4ZjFiYWItMQpuYW1lOiBsaWJydG1wMApkZXNjcmlwdGlvbjogdG9vbGtpdCBmb3IgUlRNUCBzdHJlYW1zIChzaGFyZWQgbGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi40fjIwMTEwNzExLmdpdGMyOGYxYmFiLTEKbmFtZTogbGlicnRtcDA6aTM4NgpkZXNjcmlwdGlvbjogdG9vbGtpdCBmb3IgUlRNUCBzdHJlYW1zIChzaGFyZWQgbGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xLjgtNApuYW1lOiBsaWJzYW1wbGVyYXRlMApkZXNjcmlwdGlvbjogQXVkaW8gc2FtcGxlIHJhdGUgY29udmVyc2lvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS44LTQKbmFtZTogbGlic2FtcGxlcmF0ZTA6aTM4NgpkZXNjcmlwdGlvbjogQXVkaW8gc2FtcGxlIHJhdGUgY29udmVyc2lvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4yMi03dWJ1bnR1MQpuYW1lOiBsaWJzYW5lCmRlc2NyaXB0aW9uOiBBUEkgbGlicmFyeSBmb3Igc2Nhbm5lcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjIyLTd1YnVudHUxCm5hbWU6IGxpYnNhbmU6aTM4NgpkZXNjcmlwdGlvbjogQVBJIGxpYnJhcnkgZm9yIHNjYW5uZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4yMi03dWJ1bnR1MQpuYW1lOiBsaWJzYW5lLWNvbW1vbgpkZXNjcmlwdGlvbjogQVBJIGxpYnJhcnkgZm9yIHNjYW5uZXJzIC0tIGRvY3VtZW50YXRpb24gYW5kIHN1cHBvcnQgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4xMi4yLTF1YnVudHUzLjEKbmFtZTogbGlic2FuZS1ocGFpbwpkZXNjcmlwdGlvbjogSFAgU0FORSBiYWNrZW5kIGZvciBtdWx0aS1mdW5jdGlvbiBwZXJpcGhlcmFscwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjEuMjUuZGZzZzEtM3VidW50dTAuMQpuYW1lOiBsaWJzYXNsMi0yCmRlc2NyaXB0aW9uOiBDeXJ1cyBTQVNMIC0gYXV0aGVudGljYXRpb24gYWJzdHJhY3Rpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjEuMjUuZGZzZzEtM3VidW50dTAuMQpuYW1lOiBsaWJzYXNsMi0yOmkzODYKZGVzY3JpcHRpb246IEN5cnVzIFNBU0wgLSBhdXRoZW50aWNhdGlvbiBhYnN0cmFjdGlvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMS4yNS5kZnNnMS0zdWJ1bnR1MC4xCm5hbWU6IGxpYnNhc2wyLW1vZHVsZXMKZGVzY3JpcHRpb246IEN5cnVzIFNBU0wgLSBwbHVnZ2FibGUgYXV0aGVudGljYXRpb24gbW9kdWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjEuMjUuZGZzZzEtM3VidW50dTAuMQpuYW1lOiBsaWJzYXNsMi1tb2R1bGVzOmkzODYKZGVzY3JpcHRpb246IEN5cnVzIFNBU0wgLSBwbHVnZ2FibGUgYXV0aGVudGljYXRpb24gbW9kdWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMTEtMQpuYW1lOiBsaWJzY2hyb2VkaW5nZXItMS4wLTAKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIGVuY29kaW5nL2RlY29kaW5nIG9mIERpcmFjIHZpZGVvIHN0cmVhbXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjEwLTMKbmFtZTogbGlic2RsLWltYWdlMS4yCmRlc2NyaXB0aW9uOiBpbWFnZSBsb2FkaW5nIGxpYnJhcnkgZm9yIFNpbXBsZSBEaXJlY3RNZWRpYSBMYXllciAxLjIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjEwLTMKbmFtZTogbGlic2RsLWltYWdlMS4yOmkzODYKZGVzY3JpcHRpb246IGltYWdlIGxvYWRpbmcgbGlicmFyeSBmb3IgU2ltcGxlIERpcmVjdE1lZGlhIExheWVyIDEuMgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIuMTEtNwpuYW1lOiBsaWJzZGwtbWl4ZXIxLjIKZGVzY3JpcHRpb246IE1peGVyIGxpYnJhcnkgZm9yIFNpbXBsZSBEaXJlY3RNZWRpYSBMYXllciAxLjIsIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIuMTEtNwpuYW1lOiBsaWJzZGwtbWl4ZXIxLjI6aTM4NgpkZXNjcmlwdGlvbjogTWl4ZXIgbGlicmFyeSBmb3IgU2ltcGxlIERpcmVjdE1lZGlhIExheWVyIDEuMiwgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi43LTUKbmFtZTogbGlic2RsLW5ldDEuMjppMzg2CmRlc2NyaXB0aW9uOiBOZXR3b3JrIGxpYnJhcnkgZm9yIFNpbXBsZSBEaXJlY3RNZWRpYSBMYXllciAxLjIsIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuOS0xLjF1YnVudHUxCm5hbWU6IGxpYnNkbC10dGYyLjAtMApkZXNjcmlwdGlvbjogdHRmIGxpYnJhcnkgZm9yIFNpbXBsZSBEaXJlY3RNZWRpYSBMYXllciB3aXRoIEZyZWVUeXBlIDIgc3VwcG9ydAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuOS0xLjF1YnVudHUxCm5hbWU6IGxpYnNkbC10dGYyLjAtMDppMzg2CmRlc2NyaXB0aW9uOiB0dGYgbGlicmFyeSBmb3IgU2ltcGxlIERpcmVjdE1lZGlhIExheWVyIHdpdGggRnJlZVR5cGUgMiBzdXBwb3J0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4xNC02LjR1YnVudHUzCm5hbWU6IGxpYnNkbDEuMmRlYmlhbgpkZXNjcmlwdGlvbjogU2ltcGxlIERpcmVjdE1lZGlhIExheWVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4xNC02LjR1YnVudHUzCm5hbWU6IGxpYnNkbDEuMmRlYmlhbjppMzg2CmRlc2NyaXB0aW9uOiBTaW1wbGUgRGlyZWN0TWVkaWEgTGF5ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xLjAtNC4xdWJ1bnR1MQpuYW1lOiBsaWJzZWxpbnV4MQpkZXNjcmlwdGlvbjogU0VMaW51eCBydW50aW1lIHNoYXJlZCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xLjAtNC4xdWJ1bnR1MQpuYW1lOiBsaWJzZWxpbnV4MTppMzg2CmRlc2NyaXB0aW9uOiBTRUxpbnV4IHJ1bnRpbWUgc2hhcmVkIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuMy4xLTJ1YnVudHUxCm5hbWU6IGxpYnNlbnNvcnM0CmRlc2NyaXB0aW9uOiBsaWJyYXJ5IHRvIHJlYWQgdGVtcGVyYXR1cmUvdm9sdGFnZS9mYW4gc2Vuc29ycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMzLTEKbmFtZTogbGlic2d1dGlsczItMgpkZXNjcmlwdGlvbjogdXRpbGl0aWVzIGZvciBkZXZpY2VzIHVzaW5nIHRoZSBTQ1NJIGNvbW1hbmQgc2V0IChzaGFyZWQgbGlicmFyaWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMC0yCm5hbWU6IGxpYnNoaWJva2VuLXB5My0xLjEKZGVzY3JpcHRpb246IENQeXRob24zIGJpbmRpbmdzIGdlbmVyYXRvciBmb3IgQysrIGxpYnJhcmllcyAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4wLTIKbmFtZTogbGlic2hpYm9rZW4xLjEKZGVzY3JpcHRpb246IENQeXRob24gYmluZGluZ3MgZ2VuZXJhdG9yIGZvciBDKysgbGlicmFyaWVzIC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjItN3VidW50dTEKbmFtZTogbGlic2hvdXQzCmRlc2NyaXB0aW9uOiBNUDMvT2dnIFZvcmJpcyBicm9hZGNhc3Qgc3RyZWFtaW5nIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjItN3VidW50dTEKbmFtZTogbGlic2hvdXQzOmkzODYKZGVzY3JpcHRpb246IE1QMy9PZ2cgVm9yYmlzIGJyb2FkY2FzdCBzdHJlYW1pbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjM2LjU5LTUKbmFtZTogbGlic2lkcGxheTEKZGVzY3JpcHRpb246IFNJRCAoTU9TIDY1ODEpIGVtdWxhdGlvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMS4xLTEyCm5hbWU6IGxpYnNpZHBsYXkyCmRlc2NyaXB0aW9uOiBTSUQgKE1PUyA2NTgxKSBlbXVsYXRpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjIuMTAtMHVidW50dTIKbmFtZTogbGlic2lnYysrLTIuMC0wYzJhCmRlc2NyaXB0aW9uOiB0eXBlLXNhZmUgU2lnbmFsIEZyYW1ld29yayBmb3IgQysrIC0gcnVudGltZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjktNHVidW50dTIKbmFtZTogbGlic2lnc2VndjIKZGVzY3JpcHRpb246IExpYnJhcnkgZm9yIGhhbmRsaW5nIHBhZ2UgZmF1bHRzIGluIGEgcG9ydGFibGUgd2F5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMi40LTN1YnVudHUxCm5hbWU6IGxpYnNsYW5nMgpkZXNjcmlwdGlvbjogUy1MYW5nIHByb2dyYW1taW5nIGxpYnJhcnkgLSBydW50aW1lIHZlcnNpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjQtM3VidW50dTEKbmFtZTogbGlic2xhbmcyOmkzODYKZGVzY3JpcHRpb246IFMtTGFuZyBwcm9ncmFtbWluZyBsaWJyYXJ5IC0gcnVudGltZSB2ZXJzaW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4xLTcuOHVidW50dTEKbmFtZTogbGlic2xwMQpkZXNjcmlwdGlvbjogT3BlblNMUCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjYrZGZzZzEtMQpuYW1lOiBsaWJzbHYyLTkKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIHNpbXBsZSB1c2Ugb2YgTFYyIHBsdWdpbnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjIuMC0yYnVpbGQxCm5hbWU6IGxpYnNtLWRldgpkZXNjcmlwdGlvbjogWDExIFNlc3Npb24gTWFuYWdlbWVudCBsaWJyYXJ5IChkZXZlbG9wbWVudCBoZWFkZXJzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMi4wLTJidWlsZDEKbmFtZTogbGlic202CmRlc2NyaXB0aW9uOiBYMTEgU2Vzc2lvbiBNYW5hZ2VtZW50IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjIuMC0yYnVpbGQxCm5hbWU6IGxpYnNtNjppMzg2CmRlc2NyaXB0aW9uOiBYMTEgU2Vzc2lvbiBNYW5hZ2VtZW50IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjozLjYuMy0ydWJ1bnR1Mi4zCm5hbWU6IGxpYnNtYmNsaWVudApkZXNjcmlwdGlvbjogc2hhcmVkIGxpYnJhcnkgZm9yIGNvbW11bmljYXRpb24gd2l0aCBTTUIvQ0lGUyBzZXJ2ZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC41K2N2czIwMDMwODI0LTQKbmFtZTogbGlic21wZWcwCmRlc2NyaXB0aW9uOiBTREwgTVBFRyBQbGF5ZXIgTGlicmFyeSAtIHNoYXJlZCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjI1LTQKbmFtZTogbGlic25kZmlsZTEKZGVzY3JpcHRpb246IExpYnJhcnkgZm9yIHJlYWRpbmcvd3JpdGluZyBhdWRpbyBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMjUtNApuYW1lOiBsaWJzbmRmaWxlMTppMzg2CmRlc2NyaXB0aW9uOiBMaWJyYXJ5IGZvciByZWFkaW5nL3dyaXRpbmcgYXVkaW8gZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS40LjN+ZGZzZy0yLjR1YnVudHUxLjEKbmFtZTogbGlic25tcC1iYXNlCmRlc2NyaXB0aW9uOiBTTk1QIChTaW1wbGUgTmV0d29yayBNYW5hZ2VtZW50IFByb3RvY29sKSBNSUJzIGFuZCBkb2N1bWVudGF0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuNC4zfmRmc2ctMi40dWJ1bnR1MS4xCm5hbWU6IGxpYnNubXAxNQpkZXNjcmlwdGlvbjogU05NUCAoU2ltcGxlIE5ldHdvcmsgTWFuYWdlbWVudCBQcm90b2NvbCkgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIzLTFidWlsZDIKbmFtZTogbGlic29ja2V0Ni1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIGV4dGVuc2lvbnMgZm9yIElQdjYKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xLjE3LTEuMQpuYW1lOiBsaWJzb25pYzAKZGVzY3JpcHRpb246IFNpbXBsZSBsaWJyYXJ5IHRvIHNwZWVkIHVwIG9yIHNsb3cgZG93biBzcGVlY2gKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wMi0xCm5hbWU6IGxpYnNvcnQtbmF0dXJhbGx5LXBlcmwKZGVzY3JpcHRpb246IFNvcnQgbmF0dXJhbGx5IC0gc29ydCBsZXhpY2FsbHkgZXhjZXB0IGZvciBudW1lcmljYWwgcGFydHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS42LjAtMmJ1aWxkMQpuYW1lOiBsaWJzb3VuZHRvdWNoMApkZXNjcmlwdGlvbjogU291bmQgc3RyZXRjaGluZyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMzguMS0xCm5hbWU6IGxpYnNvdXAtZ25vbWUyLjQtMQpkZXNjcmlwdGlvbjogSFRUUCBsaWJyYXJ5IGltcGxlbWVudGF0aW9uIGluIEMgLS0gR05PTUUgc3VwcG9ydCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMzguMS0xCm5hbWU6IGxpYnNvdXAtZ25vbWUyLjQtMTppMzg2CmRlc2NyaXB0aW9uOiBIVFRQIGxpYnJhcnkgaW1wbGVtZW50YXRpb24gaW4gQyAtLSBHTk9NRSBzdXBwb3J0IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zOC4xLTEKbmFtZTogbGlic291cDIuNC0xCmRlc2NyaXB0aW9uOiBIVFRQIGxpYnJhcnkgaW1wbGVtZW50YXRpb24gaW4gQyAtLSBTaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjM4LjEtMQpuYW1lOiBsaWJzb3VwMi40LTE6aTM4NgpkZXNjcmlwdGlvbjogSFRUUCBsaWJyYXJ5IGltcGxlbWVudGF0aW9uIGluIEMgLS0gU2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTQuMy4yLTMKbmFtZTogbGlic294LWZtdC1hbHNhCmRlc2NyaXB0aW9uOiBTb1ggYWxzYSBmb3JtYXQgSS9PIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTQuMy4yLTMKbmFtZTogbGlic294LWZtdC1iYXNlCmRlc2NyaXB0aW9uOiBNaW5pbWFsIHNldCBvZiBTb1ggZm9ybWF0IGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxNC4zLjItMwpuYW1lOiBsaWJzb3gxYgpkZXNjcmlwdGlvbjogU29YIGxpYnJhcnkgb2YgYXVkaW8gZWZmZWN0cyBhbmQgcHJvY2Vzc2luZwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjAuNn5wcmUxOC0yYnVpbGQxCm5hbWU6IGxpYnNwYW5kc3AyCmRlc2NyaXB0aW9uOiBUZWxlcGhvbnkgc2lnbmFsIHByb2Nlc3NpbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuNi0xYnVpbGQxCm5hbWU6IGxpYnNwZWN0cmUxCmRlc2NyaXB0aW9uOiBMaWJyYXJ5IGZvciByZW5kZXJpbmcgUG9zdFNjcmlwdCBkb2N1bWVudHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC43LjEtNnVidW50dTMKbmFtZTogbGlic3BlZWNoZDIKZGVzY3JpcHRpb246IFNwZWVjaCBEaXNwYXRjaGVyOiBTaGFyZWQgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMn5yYzEtM3VidW50dTIKbmFtZTogbGlic3BlZXgxCmRlc2NyaXB0aW9uOiBUaGUgU3BlZXggY29kZWMgcnVudGltZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMn5yYzEtM3VidW50dTIKbmFtZTogbGlic3BlZXgxOmkzODYKZGVzY3JpcHRpb246IFRoZSBTcGVleCBjb2RlYyBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yfnJjMS0zdWJ1bnR1MgpuYW1lOiBsaWJzcGVleGRzcDEKZGVzY3JpcHRpb246IFRoZSBTcGVleCBleHRlbmRlZCBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yfnJjMS0zdWJ1bnR1MgpuYW1lOiBsaWJzcGVleGRzcDE6aTM4NgpkZXNjcmlwdGlvbjogVGhlIFNwZWV4IGV4dGVuZGVkIHJ1bnRpbWUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjM3LTEKbmFtZTogbGlic3ByZWFkc2hlZXQtd3JpdGVleGNlbC1wZXJsCmRlc2NyaXB0aW9uOiBtb2R1bGUgdG8gY3JlYXRlIEV4Y2VsIHNwcmVhZHNoZWV0cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjguMTctN2Zha2VzeW5jMWJ1aWxkMQpuYW1lOiBsaWJzcWxpdGUwCmRlc2NyaXB0aW9uOiBTUUxpdGUgc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy43LjktMnVidW50dTEuMQpuYW1lOiBsaWJzcWxpdGUzLTAKZGVzY3JpcHRpb246IFNRTGl0ZSAzIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNy45LTJ1YnVudHUxLjEKbmFtZTogbGlic3FsaXRlMy0wOmkzODYKZGVzY3JpcHRpb246IFNRTGl0ZSAzIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNDItMXVidW50dTIKbmFtZTogbGlic3MyCmRlc2NyaXB0aW9uOiBjb21tYW5kLWxpbmUgaW50ZXJmYWNlIHBhcnNpbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjUuMi0xdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IGxpYnNzaC00CmRlc2NyaXB0aW9uOiB0aW55IEMgU1NIIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjEtNHVidW50dTUuNQpuYW1lOiBsaWJzc2wtZGV2CmRlc2NyaXB0aW9uOiBTU0wgZGV2ZWxvcG1lbnQgbGlicmFyaWVzLCBoZWFkZXIgZmlsZXMgYW5kIGRvY3VtZW50YXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjEtNHVidW50dTUuNQpuYW1lOiBsaWJzc2wtZG9jCmRlc2NyaXB0aW9uOiBTU0wgZGV2ZWxvcG1lbnQgZG9jdW1lbnRhdGlvbiBkb2N1bWVudGF0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS44by03dWJ1bnR1My4xCm5hbWU6IGxpYnNzbDAuOS44OmkzODYKZGVzY3JpcHRpb246IFNTTCBzaGFyZWQgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4xLTR1YnVudHU1LjUKbmFtZTogbGlic3NsMS4wLjAKZGVzY3JpcHRpb246IFNTTCBzaGFyZWQgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4xLTR1YnVudHU1LjUKbmFtZTogbGlic3NsMS4wLjA6aTM4NgpkZXNjcmlwdGlvbjogU1NMIHNoYXJlZCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMi0xdWJ1bnR1MQpuYW1lOiBsaWJzdGFydHVwLW5vdGlmaWNhdGlvbjAKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIHByb2dyYW0gbGF1bmNoIGZlZWRiYWNrIChzaGFyZWQgbGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjMuNi0yNXVidW50dTEKbmFtZTogbGlic3RkYysrNTppMzg2CmRlc2NyaXB0aW9uOiBUaGUgR05VIFN0YW5kYXJkIEMrKyBMaWJyYXJ5IHYzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuNi4zLTF1YnVudHU1Cm5hbWU6IGxpYnN0ZGMrKzYKZGVzY3JpcHRpb246IEdOVSBTdGFuZGFyZCBDKysgTGlicmFyeSB2MwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjYuMy0xdWJ1bnR1NQpuYW1lOiBsaWJzdGRjKys2OmkzODYKZGVzY3JpcHRpb246IEdOVSBTdGFuZGFyZCBDKysgTGlicmFyeSB2MwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjYuMy0xdWJ1bnR1NQpuYW1lOiBsaWJzdGRjKys2LTQuNi1kZXYKZGVzY3JpcHRpb246IEdOVSBTdGFuZGFyZCBDKysgTGlicmFyeSB2MyAoZGV2ZWxvcG1lbnQgZmlsZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMDUtMWJ1aWxkMgpuYW1lOiBsaWJzdWItbmFtZS1wZXJsCmRlc2NyaXB0aW9uOiBtb2R1bGUgZm9yIGFzc2lnbmluZyBhIG5ldyBuYW1lIHRvIHJlZmVyZW5jZWQgc3ViCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS40LjMtMzEKbmFtZTogbGlic3ZnYTEKZGVzY3JpcHRpb246IGNvbnNvbGUgU1ZHQSBkaXNwbGF5IGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjE2LTIKbmFtZTogbGlic3dpdGNoLXBlcmwKZGVzY3JpcHRpb246IHN3aXRjaCBzdGF0ZW1lbnQgZm9yIFBlcmwKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDowLjguNC0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IGxpYnN3c2NhbGUyCmRlc2NyaXB0aW9uOiBMaWJhdiB2aWRlbyBzY2FsaW5nIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjItMHVidW50dTEKbmFtZTogbGlic3luY2RhZW1vbi0xLjAtMQpkZXNjcmlwdGlvbjogVWJ1bnR1IE9uZSBzeW5jaHJvbml6YXRpb24gZGFlbW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS40LTIKbmFtZTogbGlic3lzLWhvc3RuYW1lLWxvbmctcGVybApkZXNjcmlwdGlvbjogRmlndXJlIG91dCB0aGUgbG9uZyAoZnVsbHktcXVhbGlmaWVkKSBob3N0bmFtZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjEuMCtyZXBhY2stMQpuYW1lOiBsaWJzeXNmczIKZGVzY3JpcHRpb246IGludGVyZmFjZSBsaWJyYXJ5IHRvIHN5c2ZzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMS4yLTMuNHVidW50dTEKbmFtZTogbGlidDEtNQpkZXNjcmlwdGlvbjogVHlwZSAxIGZvbnQgcmFzdGVyaXplciBsaWJyYXJ5IC0gcnVudGltZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjctMXVidW50dTUKbmFtZTogbGlidGFnMS12YW5pbGxhCmRlc2NyaXB0aW9uOiBhdWRpbyBtZXRhLWRhdGEgbGlicmFyeSAtIHZhbmlsbGEgZmxhdm91cgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjctMXVidW50dTUKbmFtZTogbGlidGFnMS12YW5pbGxhOmkzODYKZGVzY3JpcHRpb246IGF1ZGlvIG1ldGEtZGF0YSBsaWJyYXJ5IC0gdmFuaWxsYSBmbGF2b3VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNy0xdWJ1bnR1NQpuYW1lOiBsaWJ0YWcxYzJhCmRlc2NyaXB0aW9uOiBhdWRpbyBtZXRhLWRhdGEgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjctMXVidW50dTUKbmFtZTogbGlidGFnMWMyYTppMzg2CmRlc2NyaXB0aW9uOiBhdWRpbyBtZXRhLWRhdGEgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuNy0zCm5hbWU6IGxpYnRhbGxvYzIKZGVzY3JpcHRpb246IGhpZXJhcmNoaWNhbCBwb29sIGJhc2VkIG1lbW9yeSBhbGxvY2F0b3IKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjExLTgKbmFtZTogbGlidGFyMApkZXNjcmlwdGlvbjogQyBsaWJyYXJ5IGZvciBtYW5pcHVsYXRpbmcgdGFyIGFyY2hpdmVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMTAtMXVidW50dTEuMQpuYW1lOiBsaWJ0YXNuMS0zCmRlc2NyaXB0aW9uOiBNYW5hZ2UgQVNOLjEgc3RydWN0dXJlcyAocnVudGltZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xMC0xdWJ1bnR1MS4xCm5hbWU6IGxpYnRhc24xLTM6aTM4NgpkZXNjcmlwdGlvbjogTWFuYWdlIEFTTi4xIHN0cnVjdHVyZXMgKHJ1bnRpbWUpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi45LTQKbmFtZTogbGlidGRiMQpkZXNjcmlwdGlvbjogVHJpdmlhbCBEYXRhYmFzZSAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi45LTQKbmFtZTogbGlidGRiMTppMzg2CmRlc2NyaXB0aW9uOiBUcml2aWFsIERhdGFiYXNlIC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjAtMHVidW50dTEKbmFtZTogbGlidGVsZXBhdGh5LWZhcnN0cmVhbTIKZGVzY3JpcHRpb246IEdsdWUgbGlicmFyeSBiZXR3ZWVuIHRlbGVwYXRoeSBhbmQgZmFyc3RyZWFtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTguMC0xdWJ1bnR1MQpuYW1lOiBsaWJ0ZWxlcGF0aHktZ2xpYjAKZGVzY3JpcHRpb246IFRlbGVwYXRoeSBmcmFtZXdvcmsgLSBHTGliIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjAtMHVidW50dTEKbmFtZTogbGlidGVsZXBhdGh5LWxvZ2dlcjIKZGVzY3JpcHRpb246IFRlbGVwYXRoeSBsb2dnZXIgc2VydmljZSAtIHV0aWxpdHkgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjA0LTdidWlsZDEKbmFtZTogbGlidGV4dC1jaGFyd2lkdGgtcGVybApkZXNjcmlwdGlvbjogZ2V0IGRpc3BsYXkgd2lkdGhzIG9mIGNoYXJhY3RlcnMgb24gdGhlIHRlcm1pbmFsCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNy01Cm5hbWU6IGxpYnRleHQtaWNvbnYtcGVybApkZXNjcmlwdGlvbjogY29udmVydHMgYmV0d2VlbiBjaGFyYWN0ZXIgc2V0cyBpbiBQZXJsCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMDYtNwpuYW1lOiBsaWJ0ZXh0LXdyYXBpMThuLXBlcmwKZGVzY3JpcHRpb246IGludGVybmF0aW9uYWxpemVkIHN1YnN0aXR1dGUgb2YgVGV4dDo6V3JhcAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuMTYtMwpuYW1lOiBsaWJ0aGFpLWRhdGEKZGVzY3JpcHRpb246IERhdGEgZmlsZXMgZm9yIFRoYWkgbGFuZ3VhZ2Ugc3VwcG9ydCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS4xNi0zCm5hbWU6IGxpYnRoYWkwCmRlc2NyaXB0aW9uOiBUaGFpIGxhbmd1YWdlIHN1cHBvcnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuMTYtMwpuYW1lOiBsaWJ0aGFpMDppMzg2CmRlc2NyaXB0aW9uOiBUaGFpIGxhbmd1YWdlIHN1cHBvcnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMStkZnNnLjEtM3VidW50dTIKbmFtZTogbGlidGhlb3JhMApkZXNjcmlwdGlvbjogVGhlIFRoZW9yYSBWaWRlbyBDb21wcmVzc2lvbiBDb2RlYwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMStkZnNnLjEtM3VidW50dTIKbmFtZTogbGlidGhlb3JhMDppMzg2CmRlc2NyaXB0aW9uOiBUaGUgVGhlb3JhIFZpZGVvIENvbXByZXNzaW9uIENvZGVjCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIwMDkxMjIzY3ZzLTF1YnVudHUyCm5hbWU6IGxpYnRpZHktMC45OS0wCmRlc2NyaXB0aW9uOiBIVE1MIHN5bnRheCBjaGVja2VyIGFuZCByZWZvcm1hdHRlciAtIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yMS0yCm5hbWU6IGxpYnRpZS1peGhhc2gtcGVybApkZXNjcmlwdGlvbjogb3JkZXJlZCBhc3NvY2lhdGl2ZSBhcnJheXMgZm9yIFBlcmwKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy45LjUtMnVidW50dTEuNApuYW1lOiBsaWJ0aWZmNApkZXNjcmlwdGlvbjogVGFnIEltYWdlIEZpbGUgRm9ybWF0IChUSUZGKSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuOS41LTJ1YnVudHUxLjQKbmFtZTogbGlidGlmZjQ6aTM4NgpkZXNjcmlwdGlvbjogVGFnIEltYWdlIEZpbGUgRm9ybWF0IChUSUZGKSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMjAwMC0xCm5hbWU6IGxpYnRpbWVkYXRlLXBlcmwKZGVzY3JpcHRpb246IGNvbGxlY3Rpb24gb2YgbW9kdWxlcyB0byBtYW5pcHVsYXRlIGRhdGUvdGltZSBpbmZvcm1hdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMuMgpuYW1lOiBsaWJ0aW1lem9uZW1hcDEKZGVzY3JpcHRpb246IEdUSyszIHRpbWV6b25lIG1hcCB3aWRnZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS45LTQKbmFtZTogbGlidGluZm81CmRlc2NyaXB0aW9uOiBzaGFyZWQgbG93LWxldmVsIHRlcm1pbmZvIGxpYnJhcnkgZm9yIHRlcm1pbmFsIGhhbmRsaW5nCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuOS00Cm5hbWU6IGxpYnRpbmZvNTppMzg2CmRlc2NyaXB0aW9uOiBzaGFyZWQgbG93LWxldmVsIHRlcm1pbmZvIGxpYnJhcnkgZm9yIHRlcm1pbmFsIGhhbmRsaW5nCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTEKbmFtZTogbGlidG90ZW0tcGxwYXJzZXIxNwpkZXNjcmlwdGlvbjogVG90ZW0gUGxheWxpc3QgUGFyc2VyIGxpYnJhcnkgLSBydW50aW1lIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4xLTB1YnVudHUyMS4xCm5hbWU6IGxpYnRvdGVtMApkZXNjcmlwdGlvbjogTWFpbiBsaWJyYXJ5IGZvciB0aGUgVG90ZW0gbWVkaWEgcGxheWVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC0xMApuYW1lOiBsaWJ0cy0wLjAtMApkZXNjcmlwdGlvbjogdG91Y2ggc2NyZWVuIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjEzLTFidWlsZDEKbmFtZTogbGlidHdvbGFtZTAKZGVzY3JpcHRpb246IE1QRUcgQXVkaW8gTGF5ZXIgMiBlbmNvZGluZyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4xLTB1YnVudHUxCm5hbWU6IGxpYnVidW50dW9uZXVpLTMuMC0xCmRlc2NyaXB0aW9uOiBVYnVudHUgT25lIHdpZGdldCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE3NS0wdWJ1bnR1OS4yCm5hbWU6IGxpYnVkZXYwCmRlc2NyaXB0aW9uOiB1ZGV2IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTc1LTB1YnVudHU5LjIKbmFtZTogbGlidWRldjA6aTM4NgpkZXNjcmlwdGlvbjogdWRldiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My40LjAtMnVidW50dTMKbmFtZTogbGlidW1mcGFjazUuNC4wCmRlc2NyaXB0aW9uOiBzcGFyc2UgTFUgZmFjdG9yaXphdGlvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS42LTQKbmFtZTogbGlidW5pcXVlLTEuMC0wCmRlc2NyaXB0aW9uOiBMaWJyYXJ5IGZvciB3cml0aW5nIHNpbmdsZSBpbnN0YW5jZSBhcHBsaWNhdGlvbnMgLSBzaGFyZWQgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4yLTEKbmFtZTogbGlidW5pcXVlLTMuMC0wCmRlc2NyaXB0aW9uOiBMaWJyYXJ5IGZvciB3cml0aW5nIHNpbmdsZSBpbnN0YW5jZSBhcHBsaWNhdGlvbnMgLSBzaGFyZWQgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS4zLTUKbmFtZTogbGlidW5pc3RyaW5nMApkZXNjcmlwdGlvbjogVW5pY29kZSBzdHJpbmcgbGlicmFyeSBmb3IgQwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuMy01Cm5hbWU6IGxpYnVuaXN0cmluZzA6aTM4NgpkZXNjcmlwdGlvbjogVW5pY29kZSBzdHJpbmcgbGlicmFyeSBmb3IgQwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjEyLjAtMHVidW50dTEuMgpuYW1lOiBsaWJ1bml0eS0yZC1wcml2YXRlMApkZXNjcmlwdGlvbjogVW5pdHkgMkQgc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4xOC4wLTB1YnVudHUxCm5hbWU6IGxpYnVuaXR5LWNvcmUtNS4wLTUKZGVzY3JpcHRpb246IENvcmUgbGlicmFyeSBmb3IgdGhlIFVuaXR5IGludGVyZmFjZS4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC4wLjQtMHVidW50dTIKbmFtZTogbGlidW5pdHktbWlzYzQKZGVzY3JpcHRpb246IE1pc2NlbGxhbmVvdXMgZnVuY3Rpb25zIGZvciBVbml0eSAtIHNoYXJlZCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMTIuMC0wdWJ1bnR1MS4xCm5hbWU6IGxpYnVuaXR5OQpkZXNjcmlwdGlvbjogYmluZGluZyB0byBnZXQgcGxhY2VzIGludG8gdGhlIGxhdW5jaGVyIC0gc2hhcmVkIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjYuNi01LjEKbmFtZTogbGlidXBucDMKZGVzY3JpcHRpb246IFBvcnRhYmxlIFNESyBmb3IgVVBuUCBEZXZpY2VzLCB2ZXJzaW9uIDEuNiAoc2hhcmVkIGxpYnJhcmllcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjE1LTNnaXQxCm5hbWU6IGxpYnVwb3dlci1nbGliMQpkZXNjcmlwdGlvbjogYWJzdHJhY3Rpb24gZm9yIHBvd2VyIG1hbmFnZW1lbnQgLSBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjU5LTEKbmFtZTogbGlidXJpLXBlcmwKZGVzY3JpcHRpb246IG1vZHVsZSB0byBtYW5pcHVsYXRlIGFuZCBhY2Nlc3MgVVJJIHN0cmluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjowLjEuMTItMjAKbmFtZTogbGlidXNiLTAuMS00CmRlc2NyaXB0aW9uOiB1c2Vyc3BhY2UgVVNCIHByb2dyYW1taW5nIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjowLjEuMTItMjAKbmFtZTogbGlidXNiLTAuMS00OmkzODYKZGVzY3JpcHRpb246IHVzZXJzcGFjZSBVU0IgcHJvZ3JhbW1pbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMC45fnJjMy0ydWJ1bnR1MQpuYW1lOiBsaWJ1c2ItMS4wLTAKZGVzY3JpcHRpb246IHVzZXJzcGFjZSBVU0IgcHJvZ3JhbW1pbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuNy0yCm5hbWU6IGxpYnVzYm11eGQxCmRlc2NyaXB0aW9uOiBVU0IgbXVsdGlwbGV4b3IgZGFlbW9uIGZvciBpUGhvbmUgYW5kIGlQb2QgVG91Y2ggZGV2aWNlcyAtIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjUtNApuYW1lOiBsaWJ1dGVtcHRlcjAKZGVzY3JpcHRpb246IEEgcHJpdmlsZWdlZCBoZWxwZXIgZm9yIHV0bXAvd3RtcCB1cGRhdGVzIChydW50aW1lKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuOS0wdWJ1bnR1MQpuYW1lOiBsaWJ1dG91Y2gtZXZlbXUxCmRlc2NyaXB0aW9uOiBLZXJuZWxJbnB1dCBFdmVudCBEZXZpY2UgRW11bGF0aW9uIExpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjMtMHVidW50dTEKbmFtZTogbGlidXRvdWNoLWZyYW1lMQpkZXNjcmlwdGlvbjogVG91Y2ggRnJhbWUgTGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjIuOS0wdWJ1bnR1MwpuYW1lOiBsaWJ1dG91Y2gtZ2VpczEKZGVzY3JpcHRpb246IEdlc3R1cmUgZW5naW5lIGludGVyZmFjZSBzdXBwb3J0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC41LTB1YnVudHUxCm5hbWU6IGxpYnV0b3VjaC1ncmFpbDEKZGVzY3JpcHRpb246IEdlc3R1cmUgUmVjb2duaXRpb24gQW5kIEluc3RhbnRpYXRpb24gTGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjAyLTR1YnVudHUxCm5hbWU6IGxpYnV1aWQtcGVybApkZXNjcmlwdGlvbjogUGVybCBleHRlbnNpb24gZm9yIHVzaW5nIFVVSUQgaW50ZXJmYWNlcyBhcyBkZWZpbmVkIGluIGUyZnNwcm9ncwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjIwLjEtMXVidW50dTMKbmFtZTogbGlidXVpZDEKZGVzY3JpcHRpb246IFVuaXZlcnNhbGx5IFVuaXF1ZSBJRCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjAuMS0xdWJ1bnR1MwpuYW1lOiBsaWJ1dWlkMTppMzg2CmRlc2NyaXB0aW9uOiBVbml2ZXJzYWxseSBVbmlxdWUgSUQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguNi0xdWJ1bnR1MgpuYW1lOiBsaWJ2NGwtMApkZXNjcmlwdGlvbjogQ29sbGVjdGlvbiBvZiB2aWRlbzRsaW51eCBzdXBwb3J0IGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguNi0xdWJ1bnR1MgpuYW1lOiBsaWJ2NGwtMDppMzg2CmRlc2NyaXB0aW9uOiBDb2xsZWN0aW9uIG9mIHZpZGVvNGxpbnV4IHN1cHBvcnQgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOC42LTF1YnVudHUyCm5hbWU6IGxpYnY0bGNvbnZlcnQwCmRlc2NyaXB0aW9uOiBWaWRlbzRsaW51eCBmcmFtZSBmb3JtYXQgY29udmVyc2lvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOC42LTF1YnVudHUyCm5hbWU6IGxpYnY0bGNvbnZlcnQwOmkzODYKZGVzY3JpcHRpb246IFZpZGVvNGxpbnV4IGZyYW1lIGZvcm1hdCBjb252ZXJzaW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjE1LTQKbmFtZTogbGlidmEteDExLTEKZGVzY3JpcHRpb246IFZpZGVvIEFjY2VsZXJhdGlvbiAoVkEpIEFQSSBmb3IgTGludXggLS0gWDExIHJ1bnRpbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjE1LTQKbmFtZTogbGlidmExCmRlc2NyaXB0aW9uOiBWaWRlbyBBY2NlbGVyYXRpb24gKFZBKSBBUEkgZm9yIExpbnV4IC0tIHJ1bnRpbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xLTEKbmFtZTogbGlidmFtcC1ob3N0c2RrMwpkZXNjcmlwdGlvbjogaGVscGVyIGxpYnJhcnkgZm9yIFZhbXAgaG9zdHMgd3JpdHRlbiBpbiBDKysKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC43LjIzLTQuMXVidW50dTEKbmFtZTogbGlidmNkaW5mbzAKZGVzY3JpcHRpb246IGxpYnJhcnkgdG8gZXh0cmFjdCBpbmZvcm1hdGlvbiBmcm9tIFZpZGVvQ0QKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjEtM3VidW50dTEuMQpuYW1lOiBsaWJ2ZHBhdTEKZGVzY3JpcHRpb246IFZpZGVvIERlY29kZSBhbmQgUHJlc2VudGF0aW9uIEFQSSBmb3IgVW5peCAobGlicmFyaWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuOC0ydWJ1bnR1MTcuNQpuYW1lOiBsaWJ2aXJ0LWJpbgpkZXNjcmlwdGlvbjogcHJvZ3JhbXMgZm9yIHRoZSBsaWJ2aXJ0IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjgtMnVidW50dTE3LjUKbmFtZTogbGlidmlydDAKZGVzY3JpcHRpb246IGxpYnJhcnkgZm9yIGludGVyZmFjaW5nIHdpdGggZGlmZmVyZW50IHZpcnR1YWxpemF0aW9uIHN5c3RlbXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjAtNApuYW1lOiBsaWJ2aXN1YWwtMC40LTAKZGVzY3JpcHRpb246IEF1ZGlvIHZpc3VhbGl6YXRpb24gZnJhbWV3b3JrCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC4wLTQKbmFtZTogbGlidmlzdWFsLTAuNC0wOmkzODYKZGVzY3JpcHRpb246IEF1ZGlvIHZpc3VhbGl6YXRpb24gZnJhbWV3b3JrCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC4wLmRmc2cuMS03Cm5hbWU6IGxpYnZpc3VhbC0wLjQtcGx1Z2lucwpkZXNjcmlwdGlvbjogQXVkaW8gdmlzdWFsaXphdGlvbiBmcmFtZXdvcmsgcGx1Z2lucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQuMC5kZnNnLjEtNwpuYW1lOiBsaWJ2aXN1YWwtMC40LXBsdWdpbnM6aTM4NgpkZXNjcmlwdGlvbjogQXVkaW8gdmlzdWFsaXphdGlvbiBmcmFtZXdvcmsgcGx1Z2lucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuNS0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IGxpYnZsYzUKZGVzY3JpcHRpb246IG11bHRpbWVkaWEgcGxheWVyIGFuZCBzdHJlYW1lciBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMC41LTB1YnVudHUwLjEyLjA0LjEKbmFtZTogbGlidmxjY29yZTUKZGVzY3JpcHRpb246IGJhc2UgbGlicmFyeSBmb3IgVkxDIGFuZCBpdHMgbW9kdWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuOC4yLTJ1YnVudHUxCm5hbWU6IGxpYnZuY3NlcnZlcjAKZGVzY3JpcHRpb246IEFQSSB0byB3cml0ZSBvbmUncyBvd24gdm5jIHNlcnZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuMS0yCm5hbWU6IGxpYnZvLWFhY2VuYzAKZGVzY3JpcHRpb246IFZpc3VhbE9uIEFBQyBlbmNvZGVyIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xLjEtMgpuYW1lOiBsaWJ2by1hbXJ3YmVuYzAKZGVzY3JpcHRpb246IFZpc3VhbE9uIEFNUi1XQiBlbmNvZGVyIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4zLjItMXVidW50dTMKbmFtZTogbGlidm9yYmlzMGEKZGVzY3JpcHRpb246IFRoZSBWb3JiaXMgR2VuZXJhbCBBdWRpbyBDb21wcmVzc2lvbiBDb2RlYyAoRGVjb2RlciBsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMuMi0xdWJ1bnR1MwpuYW1lOiBsaWJ2b3JiaXMwYTppMzg2CmRlc2NyaXB0aW9uOiBUaGUgVm9yYmlzIEdlbmVyYWwgQXVkaW8gQ29tcHJlc3Npb24gQ29kZWMgKERlY29kZXIgbGlicmFyeSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4zLjItMXVidW50dTMKbmFtZTogbGlidm9yYmlzZW5jMgpkZXNjcmlwdGlvbjogVGhlIFZvcmJpcyBHZW5lcmFsIEF1ZGlvIENvbXByZXNzaW9uIENvZGVjIChFbmNvZGVyIGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMy4yLTF1YnVudHUzCm5hbWU6IGxpYnZvcmJpc2VuYzI6aTM4NgpkZXNjcmlwdGlvbjogVGhlIFZvcmJpcyBHZW5lcmFsIEF1ZGlvIENvbXByZXNzaW9uIENvZGVjIChFbmNvZGVyIGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMy4yLTF1YnVudHUzCm5hbWU6IGxpYnZvcmJpc2ZpbGUzCmRlc2NyaXB0aW9uOiBUaGUgVm9yYmlzIEdlbmVyYWwgQXVkaW8gQ29tcHJlc3Npb24gQ29kZWMgKEhpZ2ggTGV2ZWwgQVBJKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMuMi0xdWJ1bnR1MwpuYW1lOiBsaWJ2b3JiaXNmaWxlMzppMzg2CmRlc2NyaXB0aW9uOiBUaGUgVm9yYmlzIEdlbmVyYWwgQXVkaW8gQ29tcHJlc3Npb24gQ29kZWMgKEhpZ2ggTGV2ZWwgQVBJKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMC0xCm5hbWU6IGxpYnZweDEKZGVzY3JpcHRpb246IFZQOCB2aWRlbyBjb2RlYyAoc2hhcmVkIGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC4zMi4xLTB1YnVudHUxCm5hbWU6IGxpYnZ0ZS0yLjkwLTkKZGVzY3JpcHRpb246IFRlcm1pbmFsIGVtdWxhdG9yIHdpZGdldCBmb3IgR1RLKyAzLjAgLSBydW50aW1lIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC4zMi4xLTB1YnVudHUxCm5hbWU6IGxpYnZ0ZS0yLjkwLWNvbW1vbgpkZXNjcmlwdGlvbjogVGVybWluYWwgZW11bGF0b3Igd2lkZ2V0IGZvciBHVEsrIDMuMCAtIGNvbW1vbiBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuMjguMi0zdWJ1bnR1MgpuYW1lOiBsaWJ2dGUtY29tbW9uCmRlc2NyaXB0aW9uOiBUZXJtaW5hbCBlbXVsYXRvciB3aWRnZXQgZm9yIEdUSysgMi54IC0gY29tbW9uIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC4yOC4yLTN1YnVudHUyCm5hbWU6IGxpYnZ0ZTkKZGVzY3JpcHRpb246IFRlcm1pbmFsIGVtdWxhdG9yIHdpZGdldCBmb3IgR1RLKyAyLjAgLSBydW50aW1lIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC0xdWJ1bnR1MQpuYW1lOiBsaWJ3YWNvbS1jb21tb24KZGVzY3JpcHRpb246IFdhY29tIG1vZGVsIGZlYXR1cmUgcXVlcnkgbGlicmFyeSAoY29tbW9uIGZpbGVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQtMXVidW50dTEKbmFtZTogbGlid2Fjb20yCmRlc2NyaXB0aW9uOiBXYWNvbSBtb2RlbCBmZWF0dXJlIHF1ZXJ5IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC42MC4xLTIKbmFtZTogbGlid2F2cGFjazEKZGVzY3JpcHRpb246IGF1ZGlvIGNvZGVjIChsb3NzeSBhbmQgbG9zc2xlc3MpIC0gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjYwLjEtMgpuYW1lOiBsaWJ3YXZwYWNrMTppMzg2CmRlc2NyaXB0aW9uOiBhdWRpbyBjb2RlYyAobG9zc3kgYW5kIGxvc3NsZXNzKSAtIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45NS4yK2dpdH4yMDEyMDkwMy0xdWJ1bnR1NQpuYW1lOiBsaWJ3YXlsYW5kMApkZXNjcmlwdGlvbjogd2F5bGFuZCBjb21wb3NpdG9yIGluZnJhc3RydWN0dXJlIC0gc2hhcmVkIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjMuNi4zLTJ1YnVudHUyLjMKbmFtZTogbGlid2JjbGllbnQwCmRlc2NyaXB0aW9uOiBTYW1iYSB3aW5iaW5kIGNsaWVudCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOC4zLTB1YnVudHUwLjEyLjA0LjEKbmFtZTogbGlid2Via2l0Z3RrLTEuMC0wCmRlc2NyaXB0aW9uOiBXZWIgY29udGVudCBlbmdpbmUgbGlicmFyeSBmb3IgR1RLKwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguMy0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IGxpYndlYmtpdGd0ay0xLjAtY29tbW9uCmRlc2NyaXB0aW9uOiBXZWIgY29udGVudCBlbmdpbmUgbGlicmFyeSBmb3IgR1RLKyAtIGRhdGEgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LjMtMHVidW50dTAuMTIuMDQuMQpuYW1lOiBsaWJ3ZWJraXRndGstMy4wLTAKZGVzY3JpcHRpb246IFdlYiBjb250ZW50IGVuZ2luZSBsaWJyYXJ5IGZvciBHVEsrCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOC4zLTB1YnVudHUwLjEyLjA0LjEKbmFtZTogbGlid2Via2l0Z3RrLTMuMC1jb21tb24KZGVzY3JpcHRpb246IFdlYiBjb250ZW50IGVuZ2luZSBsaWJyYXJ5IGZvciBHVEsrIC0gZGF0YSBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuMy40LTIuMQpuYW1lOiBsaWJ3aWxkbWlkaS1jb25maWcKZGVzY3JpcHRpb246IHNvZnR3YXJlIE1JREkgcGxheWVyIGNvbmZpZ3VyYXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjMuNC0yLjEKbmFtZTogbGlid2lsZG1pZGkxCmRlc2NyaXB0aW9uOiBzb2Z0d2FyZSBNSURJIHBsYXllciBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNn5naXQyMDEyMDMxMS5kZnNnLjEtMgpuYW1lOiBsaWJ3aW5kMC1oZWltZGFsCmRlc2NyaXB0aW9uOiBIZWltZGFsIEtlcmJlcm9zIC0gc3RyaW5ncHJlcCBpbXBsZW1lbnRhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjZ+Z2l0MjAxMjAzMTEuZGZzZy4xLTIKbmFtZTogbGlid2luZDAtaGVpbWRhbDppMzg2CmRlc2NyaXB0aW9uOiBIZWltZGFsIEtlcmJlcm9zIC0gc3RyaW5ncHJlcCBpbXBsZW1lbnRhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuOC40LTEwdWJ1bnR1MQpuYW1lOiBsaWJ3bWYtYmluCmRlc2NyaXB0aW9uOiBXaW5kb3dzIG1ldGFmaWxlIGNvbnZlcnNpb24gdG9vbHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjguNC0xMHVidW50dTEKbmFtZTogbGlid21mMC4yLTcKZGVzY3JpcHRpb246IFdpbmRvd3MgbWV0YWZpbGUgY29udmVyc2lvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi44LjQtMTB1YnVudHUxCm5hbWU6IGxpYndtZjAuMi03LWd0awpkZXNjcmlwdGlvbjogV2luZG93cyBtZXRhZmlsZSBjb252ZXJzaW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjAtMHVidW50dTEKbmFtZTogbGlid25jay0zLTAKZGVzY3JpcHRpb246IFdpbmRvdyBOYXZpZ2F0b3IgQ29uc3RydWN0aW9uIEtpdCAtIHJ1bnRpbWUgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjAtMHVidW50dTEKbmFtZTogbGlid25jay0zLWNvbW1vbgpkZXNjcmlwdGlvbjogV2luZG93IE5hdmlnYXRvciBDb25zdHJ1Y3Rpb24gS2l0IC0gY29tbW9uIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Mi4zMC43LTB1YnVudHUxCm5hbWU6IGxpYnduY2stY29tbW9uCmRlc2NyaXB0aW9uOiBXaW5kb3cgTmF2aWdhdG9yIENvbnN0cnVjdGlvbiBLaXQgLSBjb21tb24gZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToyLjMwLjctMHVidW50dTEKbmFtZTogbGlid25jazIyCmRlc2NyaXB0aW9uOiBXaW5kb3cgTmF2aWdhdG9yIENvbnN0cnVjdGlvbiBLaXQgLSBydW50aW1lIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS40LTEKbmFtZTogbGlid3BkLTAuOS05CmRlc2NyaXB0aW9uOiBMaWJyYXJ5IGZvciBoYW5kbGluZyBXb3JkUGVyZmVjdCBkb2N1bWVudHMgKHNoYXJlZCBsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuMS0xCm5hbWU6IGxpYndwZy0wLjItMgpkZXNjcmlwdGlvbjogV29yZFBlcmZlY3QgZ3JhcGhpY3MgaW1wb3J0L2NvbnZlcnQgbGlicmFyeSAoc2hhcmVkIGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi40LTEKbmFtZTogbGlid3BzLTAuMi0yCmRlc2NyaXB0aW9uOiBXb3JrcyB0ZXh0IGZpbGUgZm9ybWF0IGltcG9ydCBmaWx0ZXIgbGlicmFyeSAoc2hhcmVkIGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDcuNi5xLTIxCm5hbWU6IGxpYndyYXAwCmRlc2NyaXB0aW9uOiBXaWV0c2UgVmVuZW1hJ3MgVENQIHdyYXBwZXJzIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNy42LnEtMjEKbmFtZTogbGlid3JhcDA6aTM4NgpkZXNjcmlwdGlvbjogV2lldHNlIFZlbmVtYSdzIFRDUCB3cmFwcGVycyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNzEtMQpuYW1lOiBsaWJ3d3ctbWVjaGFuaXplLXBlcmwKZGVzY3JpcHRpb246IG1vZHVsZSB0byBhdXRvbWF0ZSBpbnRlcmFjdGlvbiB3aXRoIHdlYnNpdGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDYuMDMtMQpuYW1lOiBsaWJ3d3ctcGVybApkZXNjcmlwdGlvbjogc2ltcGxlIGFuZCBjb25zaXN0ZW50IGludGVyZmFjZSB0byB0aGUgd29ybGQtd2lkZSB3ZWIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNi4wMS0xCm5hbWU6IGxpYnd3dy1yb2JvdHJ1bGVzLXBlcmwKZGVzY3JpcHRpb246IGRhdGFiYXNlIG9mIHJvYm90cy50eHQtZGVyaXZlZCBwZXJtaXNzaW9ucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjguMTIuMS02dWJ1bnR1MgpuYW1lOiBsaWJ3eGJhc2UyLjgtMApkZXNjcmlwdGlvbjogd3hCYXNlIGxpYnJhcnkgKHJ1bnRpbWUpIC0gbm9uLUdVSSBzdXBwb3J0IGNsYXNzZXMgb2Ygd3hXaWRnZXRzIHRvb2xraXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi44LjEyLjEtNnVidW50dTIKbmFtZTogbGlid3hndGsyLjgtMApkZXNjcmlwdGlvbjogd3hXaWRnZXRzIENyb3NzLXBsYXRmb3JtIEMrKyBHVUkgdG9vbGtpdCAoR1RLKyBydW50aW1lKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuNC45OS4xLTB1YnVudHUyCm5hbWU6IGxpYngxMS02CmRlc2NyaXB0aW9uOiBYMTEgY2xpZW50LXNpZGUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuNC45OS4xLTB1YnVudHUyCm5hbWU6IGxpYngxMS02OmkzODYKZGVzY3JpcHRpb246IFgxMSBjbGllbnQtc2lkZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS40Ljk5LjEtMHVidW50dTIKbmFtZTogbGlieDExLWRhdGEKZGVzY3JpcHRpb246IFgxMSBjbGllbnQtc2lkZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS40Ljk5LjEtMHVidW50dTIKbmFtZTogbGlieDExLWRldgpkZXNjcmlwdGlvbjogWDExIGNsaWVudC1zaWRlIGxpYnJhcnkgKGRldmVsb3BtZW50IGhlYWRlcnMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS40Ljk5LjEtMHVidW50dTIKbmFtZTogbGlieDExLWRvYwpkZXNjcmlwdGlvbjogWDExIGNsaWVudC1zaWRlIGxpYnJhcnkgKGRldmVsb3BtZW50IGRvY3VtZW50YXRpb24pCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNTYtMgpuYW1lOiBsaWJ4MTEtcHJvdG9jb2wtcGVybApkZXNjcmlwdGlvbjogUGVybCBtb2R1bGUgZm9yIHRoZSBYIFdpbmRvdyBTeXN0ZW0gUHJvdG9jb2wsIHZlcnNpb24gMTEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjQuOTkuMS0wdWJ1bnR1MgpuYW1lOiBsaWJ4MTEteGNiLWRldgpkZXNjcmlwdGlvbjogWGxpYi9YQ0IgaW50ZXJmYWNlIGxpYnJhcnkgKGRldmVsb3BtZW50IGhlYWRlcnMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS40Ljk5LjEtMHVidW50dTIKbmFtZTogbGlieDExLXhjYjEKZGVzY3JpcHRpb246IFhsaWIvWENCIGludGVyZmFjZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS40Ljk5LjEtMHVidW50dTIKbmFtZTogbGlieDExLXhjYjE6aTM4NgpkZXNjcmlwdGlvbjogWGxpYi9YQ0IgaW50ZXJmYWNlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjowLjEyMC4yMTUxK2dpdGEzZjQ0MDctMgpuYW1lOiBsaWJ4MjY0LTEyMApkZXNjcmlwdGlvbjogeDI2NCB2aWRlbyBjb2RpbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjErZHMxLTd1YnVudHUxCm5hbWU6IGxpYng4Ni0xCmRlc2NyaXB0aW9uOiB4ODYgcmVhbC1tb2RlIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjgtMQpuYW1lOiBsaWJ4YXBpYW4yMgpkZXNjcmlwdGlvbjogU2VhcmNoIGVuZ2luZSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDguMC40LTB1YnVudHUwLjMKbmFtZTogbGlieGF0cmFja2VyMQpkZXNjcmlwdGlvbjogWCBhY2NlbGVyYXRpb24gbGlicmFyeSAtLSBydW50aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4wLjYtNApuYW1lOiBsaWJ4YXUtZGV2CmRlc2NyaXB0aW9uOiBYMTEgYXV0aG9yaXNhdGlvbiBsaWJyYXJ5IChkZXZlbG9wbWVudCBoZWFkZXJzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMC42LTQKbmFtZTogbGlieGF1NgpkZXNjcmlwdGlvbjogWDExIGF1dGhvcmlzYXRpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMC42LTQKbmFtZTogbGlieGF1NjppMzg2CmRlc2NyaXB0aW9uOiBYMTEgYXV0aG9yaXNhdGlvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS4wLjktM3VidW50dTEKbmFtZTogbGlieGF3NwpkZXNjcmlwdGlvbjogWDExIEF0aGVuYSBXaWRnZXQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMC45LTN1YnVudHUxCm5hbWU6IGxpYnhhdzc6aTM4NgpkZXNjcmlwdGlvbjogWDExIEF0aGVuYSBXaWRnZXQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguMS0xdWJ1bnR1MC4xCm5hbWU6IGxpYnhjYi1jb21wb3NpdGUwCmRlc2NyaXB0aW9uOiBYIEMgQmluZGluZywgY29tcG9zaXRlIGV4dGVuc2lvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguMS0xdWJ1bnR1MC4xCm5hbWU6IGxpYnhjYi1kcmkyLTAKZGVzY3JpcHRpb246IFggQyBCaW5kaW5nLCBkcmkyIGV4dGVuc2lvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguMS0xdWJ1bnR1MC4xCm5hbWU6IGxpYnhjYi1nbHgwCmRlc2NyaXB0aW9uOiBYIEMgQmluZGluZywgZ2x4IGV4dGVuc2lvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguMS0xdWJ1bnR1MC4xCm5hbWU6IGxpYnhjYi1nbHgwOmkzODYKZGVzY3JpcHRpb246IFggQyBCaW5kaW5nLCBnbHggZXh0ZW5zaW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOC4xLTF1YnVudHUwLjEKbmFtZTogbGlieGNiLWdseDAtZGV2CmRlc2NyaXB0aW9uOiBYIEMgQmluZGluZywgZ2x4IGV4dGVuc2lvbiwgZGV2ZWxvcG1lbnQgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjgtMWJ1aWxkMQpuYW1lOiBsaWJ4Y2ItaWNjY200CmRlc2NyaXB0aW9uOiB1dGlsaXR5IGxpYnJhcmllcyBmb3IgWCBDIEJpbmRpbmcgLS0gaWNjY20KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjgtMWJ1aWxkMQpuYW1lOiBsaWJ4Y2ItaW1hZ2UwCmRlc2NyaXB0aW9uOiB1dGlsaXR5IGxpYnJhcmllcyBmb3IgWCBDIEJpbmRpbmcgLS0gaW1hZ2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjgtMWJ1aWxkMQpuYW1lOiBsaWJ4Y2Ita2V5c3ltczEKZGVzY3JpcHRpb246IHV0aWxpdHkgbGlicmFyaWVzIGZvciBYIEMgQmluZGluZyAtLSBrZXlzeW1zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOC4xLTF1YnVudHUwLjEKbmFtZTogbGlieGNiLXJhbmRyMApkZXNjcmlwdGlvbjogWCBDIEJpbmRpbmcsIHJhbmRyIGV4dGVuc2lvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMuOC0xCm5hbWU6IGxpYnhjYi1yZW5kZXItdXRpbDAKZGVzY3JpcHRpb246IHV0aWxpdHkgbGlicmFyaWVzIGZvciBYIEMgQmluZGluZyAtLSByZW5kZXItdXRpbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguMS0xdWJ1bnR1MC4xCm5hbWU6IGxpYnhjYi1yZW5kZXIwCmRlc2NyaXB0aW9uOiBYIEMgQmluZGluZywgcmVuZGVyIGV4dGVuc2lvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguMS0xdWJ1bnR1MC4xCm5hbWU6IGxpYnhjYi1yZW5kZXIwOmkzODYKZGVzY3JpcHRpb246IFggQyBCaW5kaW5nLCByZW5kZXIgZXh0ZW5zaW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOC4xLTF1YnVudHUwLjEKbmFtZTogbGlieGNiLXJlbmRlcjAtZGV2CmRlc2NyaXB0aW9uOiBYIEMgQmluZGluZywgcmVuZGVyIGV4dGVuc2lvbiwgZGV2ZWxvcG1lbnQgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LjEtMXVidW50dTAuMQpuYW1lOiBsaWJ4Y2Itc2hhcGUwCmRlc2NyaXB0aW9uOiBYIEMgQmluZGluZywgc2hhcGUgZXh0ZW5zaW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOC4xLTF1YnVudHUwLjEKbmFtZTogbGlieGNiLXNobTAKZGVzY3JpcHRpb246IFggQyBCaW5kaW5nLCBzaG0gZXh0ZW5zaW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOC4xLTF1YnVudHUwLjEKbmFtZTogbGlieGNiLXNobTA6aTM4NgpkZXNjcmlwdGlvbjogWCBDIEJpbmRpbmcsIHNobSBleHRlbnNpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LjEtMXVidW50dTAuMQpuYW1lOiBsaWJ4Y2Itc2htMC1kZXYKZGVzY3JpcHRpb246IFggQyBCaW5kaW5nLCBzaG0gZXh0ZW5zaW9uLCBkZXZlbG9wbWVudCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguMS0xdWJ1bnR1MC4xCm5hbWU6IGxpYnhjYi1zeW5jMApkZXNjcmlwdGlvbjogWCBDIEJpbmRpbmcsIHN5bmMgZXh0ZW5zaW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMy44LTIKbmFtZTogbGlieGNiLXV0aWwwCmRlc2NyaXB0aW9uOiB1dGlsaXR5IGxpYnJhcmllcyBmb3IgWCBDIEJpbmRpbmcgLS0gYXRvbSwgYXV4IGFuZCBldmVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguMS0xdWJ1bnR1MC4xCm5hbWU6IGxpYnhjYi14Zml4ZXMwCmRlc2NyaXB0aW9uOiBYIEMgQmluZGluZywgeGZpeGVzIGV4dGVuc2lvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguMS0xdWJ1bnR1MC4xCm5hbWU6IGxpYnhjYi14djAKZGVzY3JpcHRpb246IFggQyBCaW5kaW5nLCB4diBleHRlbnNpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LjEtMXVidW50dTAuMQpuYW1lOiBsaWJ4Y2IxCmRlc2NyaXB0aW9uOiBYIEMgQmluZGluZwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjguMS0xdWJ1bnR1MC4xCm5hbWU6IGxpYnhjYjE6aTM4NgpkZXNjcmlwdGlvbjogWCBDIEJpbmRpbmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LjEtMXVidW50dTAuMQpuYW1lOiBsaWJ4Y2IxLWRldgpkZXNjcmlwdGlvbjogWCBDIEJpbmRpbmcsIGRldmVsb3BtZW50IGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC40LjMtMmJ1aWxkMQpuYW1lOiBsaWJ4Y29tcG9zaXRlLWRldgpkZXNjcmlwdGlvbjogWDExIENvbXBvc2l0ZSBleHRlbnNpb24gbGlicmFyeSAoZGV2ZWxvcG1lbnQgaGVhZGVycykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjQuMy0yYnVpbGQxCm5hbWU6IGxpYnhjb21wb3NpdGUxCmRlc2NyaXB0aW9uOiBYMTEgQ29tcG9zaXRlIGV4dGVuc2lvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC40LjMtMmJ1aWxkMQpuYW1lOiBsaWJ4Y29tcG9zaXRlMTppMzg2CmRlc2NyaXB0aW9uOiBYMTEgQ29tcG9zaXRlIGV4dGVuc2lvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4xLjEyLTEKbmFtZTogbGlieGN1cnNvci1kZXYKZGVzY3JpcHRpb246IFggY3Vyc29yIG1hbmFnZW1lbnQgbGlicmFyeSAoZGV2ZWxvcG1lbnQgZmlsZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4xLjEyLTEKbmFtZTogbGlieGN1cnNvcjEKZGVzY3JpcHRpb246IFggY3Vyc29yIG1hbmFnZW1lbnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMS4xMi0xCm5hbWU6IGxpYnhjdXJzb3IxOmkzODYKZGVzY3JpcHRpb246IFggY3Vyc29yIG1hbmFnZW1lbnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMS4zLTJidWlsZDEKbmFtZTogbGlieGRhbWFnZS1kZXYKZGVzY3JpcHRpb246IFgxMSBkYW1hZ2VkIHJlZ2lvbiBleHRlbnNpb24gbGlicmFyeSAoZGV2ZWxvcG1lbnQgaGVhZGVycykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEuMy0yYnVpbGQxCm5hbWU6IGxpYnhkYW1hZ2UxCmRlc2NyaXB0aW9uOiBYMTEgZGFtYWdlZCByZWdpb24gZXh0ZW5zaW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEuMy0yYnVpbGQxCm5hbWU6IGxpYnhkYW1hZ2UxOmkzODYKZGVzY3JpcHRpb246IFgxMSBkYW1hZ2VkIHJlZ2lvbiBleHRlbnNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMy05YnVpbGQxCm5hbWU6IGxpYnhkZWx0YTIKZGVzY3JpcHRpb246IFhkZWx0YSBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEuMC00Cm5hbWU6IGxpYnhkbWNwLWRldgpkZXNjcmlwdGlvbjogWDExIGF1dGhvcmlzYXRpb24gbGlicmFyeSAoZGV2ZWxvcG1lbnQgaGVhZGVycykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEuMC00Cm5hbWU6IGxpYnhkbWNwNgpkZXNjcmlwdGlvbjogWDExIERpc3BsYXkgTWFuYWdlciBDb250cm9sIFByb3RvY29sIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEuMC00Cm5hbWU6IGxpYnhkbWNwNjppMzg2CmRlc2NyaXB0aW9uOiBYMTEgRGlzcGxheSBNYW5hZ2VyIENvbnRyb2wgUHJvdG9jb2wgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjEuMi0ydWJ1bnR1Mi41Cm5hbWU6IGxpYnhlbnN0b3JlMy4wCmRlc2NyaXB0aW9uOiBYZW5zdG9yZSBjb21tdW5pY2F0aW9ucyBsaWJyYXJ5IGZvciBYZW4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjMuMC0zYnVpbGQxCm5hbWU6IGxpYnhleHQtZGV2CmRlc2NyaXB0aW9uOiBYMTEgbWlzY2VsbGFuZW91cyBleHRlbnNpb25zIGxpYnJhcnkgKGRldmVsb3BtZW50IGhlYWRlcnMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS4zLjAtM2J1aWxkMQpuYW1lOiBsaWJ4ZXh0NgpkZXNjcmlwdGlvbjogWDExIG1pc2NlbGxhbmVvdXMgZXh0ZW5zaW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjMuMC0zYnVpbGQxCm5hbWU6IGxpYnhleHQ2OmkzODYKZGVzY3JpcHRpb246IFgxMSBtaXNjZWxsYW5lb3VzIGV4dGVuc2lvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6NS4wLTR1YnVudHU0Cm5hbWU6IGxpYnhmaXhlcy1kZXYKZGVzY3JpcHRpb246IFgxMSBtaXNjZWxsYW5lb3VzICdmaXhlcycgZXh0ZW5zaW9uIGxpYnJhcnkgKGRldmVsb3BtZW50IGhlYWRlcnMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6NS4wLTR1YnVudHU0Cm5hbWU6IGxpYnhmaXhlczMKZGVzY3JpcHRpb246IFgxMSBtaXNjZWxsYW5lb3VzICdmaXhlcycgZXh0ZW5zaW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTo1LjAtNHVidW50dTQKbmFtZTogbGlieGZpeGVzMzppMzg2CmRlc2NyaXB0aW9uOiBYMTEgbWlzY2VsbGFuZW91cyAnZml4ZXMnIGV4dGVuc2lvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS40LjQtMQpuYW1lOiBsaWJ4Zm9udDEKZGVzY3JpcHRpb246IFgxMSBmb250IHJhc3RlcmlzYXRpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjIuMC0zdWJ1bnR1MgpuYW1lOiBsaWJ4ZnQtZGV2CmRlc2NyaXB0aW9uOiBGcmVlVHlwZS1iYXNlZCBmb250IGRyYXdpbmcgbGlicmFyeSBmb3IgWCAoZGV2ZWxvcG1lbnQgZmlsZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMi4wLTN1YnVudHUyCm5hbWU6IGxpYnhmdDIKZGVzY3JpcHRpb246IEZyZWVUeXBlLWJhc2VkIGZvbnQgZHJhd2luZyBsaWJyYXJ5IGZvciBYCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMi4wLTN1YnVudHUyCm5hbWU6IGxpYnhmdDI6aTM4NgpkZXNjcmlwdGlvbjogRnJlZVR5cGUtYmFzZWQgZm9udCBkcmF3aW5nIGxpYnJhcnkgZm9yIFgKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjYuMC0wdWJ1bnR1MgpuYW1lOiBsaWJ4aS1kZXYKZGVzY3JpcHRpb246IFgxMSBJbnB1dCBleHRlbnNpb24gbGlicmFyeSAoZGV2ZWxvcG1lbnQgaGVhZGVycykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjYuMC0wdWJ1bnR1MgpuYW1lOiBsaWJ4aTYKZGVzY3JpcHRpb246IFgxMSBJbnB1dCBleHRlbnNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuNi4wLTB1YnVudHUyCm5hbWU6IGxpYnhpNjppMzg2CmRlc2NyaXB0aW9uOiBYMTEgSW5wdXQgZXh0ZW5zaW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjEuMS0zYnVpbGQxCm5hbWU6IGxpYnhpbmVyYW1hLWRldgpkZXNjcmlwdGlvbjogWDExIFhpbmVyYW1hIGV4dGVuc2lvbiBsaWJyYXJ5IChkZXZlbG9wbWVudCBoZWFkZXJzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMS4xLTNidWlsZDEKbmFtZTogbGlieGluZXJhbWExCmRlc2NyaXB0aW9uOiBYMTEgWGluZXJhbWEgZXh0ZW5zaW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjEuMS0zYnVpbGQxCm5hbWU6IGxpYnhpbmVyYW1hMTppMzg2CmRlc2NyaXB0aW9uOiBYMTEgWGluZXJhbWEgZXh0ZW5zaW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjAuNy0xdWJ1bnR1MC4xCm5hbWU6IGxpYnhrYmZpbGUxCmRlc2NyaXB0aW9uOiBYMTEga2V5Ym9hcmQgZmlsZSBtYW5pcHVsYXRpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjIuMS0xdWJ1bnR1MQpuYW1lOiBsaWJ4a2xhdmllcjE2CmRlc2NyaXB0aW9uOiBYIEtleWJvYXJkIEV4dGVuc2lvbiBoaWdoLWxldmVsIEFQSQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjA5LTMKbmFtZTogbGlieG1sLW5hbWVzcGFjZXN1cHBvcnQtcGVybApkZXNjcmlwdGlvbjogUGVybCBtb2R1bGUgZm9yIHN1cHBvcnRpbmcgc2ltcGxlIGdlbmVyaWMgbmFtZXNwYWNlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQxLTFidWlsZDEKbmFtZTogbGlieG1sLXBhcnNlci1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIG1vZHVsZSBmb3IgcGFyc2luZyBYTUwgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wNy0xCm5hbWU6IGxpYnhtbC1zYXgtYmFzZS1wZXJsCmRlc2NyaXB0aW9uOiBiYXNlIGNsYXNzIGZvciBTQVggZHJpdmVycyBhbmQgZmlsdGVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQwLTIKbmFtZTogbGlieG1sLXNheC1leHBhdC1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIG1vZHVsZSBmb3IgYSBTQVgyIGRyaXZlciBmb3IgRXhwYXQgKFhNTDo6UGFyc2VyKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjk5K2Rmc2ctMXVidW50dTAuMQpuYW1lOiBsaWJ4bWwtc2F4LXBlcmwKZGVzY3JpcHRpb246IFBlcmwgbW9kdWxlIGZvciB1c2luZyBhbmQgYnVpbGRpbmcgUGVybCBTQVgyIFhNTCBwcm9jZXNzb3JzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMTgtMwpuYW1lOiBsaWJ4bWwtc2ltcGxlLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgbW9kdWxlIGZvciByZWFkaW5nIGFuZCB3cml0aW5nIFhNTAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuMzktMXVidW50dTEKbmFtZTogbGlieG1sLXR3aWctcGVybApkZXNjcmlwdGlvbjogUGVybCBtb2R1bGUgZm9yIHByb2Nlc3NpbmcgaHVnZSBYTUwgZG9jdW1lbnRzIGluIHRyZWUgbW9kZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEzLTcKbmFtZTogbGlieG1sLXhwYXRoLXBlcmwKZGVzY3JpcHRpb246IFBlcmwgbW9kdWxlIGZvciBwcm9jZXNzaW5nIFhQYXRoCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNy44LmRmc2ctNS4xdWJ1bnR1NC4zCm5hbWU6IGxpYnhtbDIKZGVzY3JpcHRpb246IEdOT01FIFhNTCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNy44LmRmc2ctNS4xdWJ1bnR1NC4zCm5hbWU6IGxpYnhtbDI6aTM4NgpkZXNjcmlwdGlvbjogR05PTUUgWE1MIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi43LjguZGZzZy01LjF1YnVudHU0LjMKbmFtZTogbGlieG1sMi1kZXYKZGVzY3JpcHRpb246IERldmVsb3BtZW50IGZpbGVzIGZvciB0aGUgR05PTUUgWE1MIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi43LjguZGZzZy01LjF1YnVudHU0LjMKbmFtZTogbGlieG1sMi11dGlscwpkZXNjcmlwdGlvbjogWE1MIHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMS4wLTMKbmFtZTogbGlieG11NgpkZXNjcmlwdGlvbjogWDExIG1pc2NlbGxhbmVvdXMgdXRpbGl0eSBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS4xLjAtMwpuYW1lOiBsaWJ4bXU2OmkzODYKZGVzY3JpcHRpb246IFgxMSBtaXNjZWxsYW5lb3VzIHV0aWxpdHkgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMS4wLTMKbmFtZTogbGlieG11dTEKZGVzY3JpcHRpb246IFgxMSBtaXNjZWxsYW5lb3VzIG1pY3JvLXV0aWxpdHkgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMC4xLTIKbmFtZTogbGlieHA2CmRlc2NyaXB0aW9uOiBYIFByaW50aW5nIEV4dGVuc2lvbiAoWHByaW50KSBjbGllbnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMC4xLTIKbmFtZTogbGlieHA2OmkzODYKZGVzY3JpcHRpb246IFggUHJpbnRpbmcgRXh0ZW5zaW9uIChYcHJpbnQpIGNsaWVudCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My41LjktNApuYW1lOiBsaWJ4cG00CmRlc2NyaXB0aW9uOiBYMTEgcGl4bWFwIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjUuOS00Cm5hbWU6IGxpYnhwbTQ6aTM4NgpkZXNjcmlwdGlvbjogWDExIHBpeG1hcCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS4zLjItMgpuYW1lOiBsaWJ4cmFuZHItZGV2CmRlc2NyaXB0aW9uOiBYMTEgUmFuZFIgZXh0ZW5zaW9uIGxpYnJhcnkgKGRldmVsb3BtZW50IGhlYWRlcnMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS4zLjItMgpuYW1lOiBsaWJ4cmFuZHIyCmRlc2NyaXB0aW9uOiBYMTEgUmFuZFIgZXh0ZW5zaW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjMuMi0yCm5hbWU6IGxpYnhyYW5kcjI6aTM4NgpkZXNjcmlwdGlvbjogWDExIFJhbmRSIGV4dGVuc2lvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC45LjYtMmJ1aWxkMQpuYW1lOiBsaWJ4cmVuZGVyLWRldgpkZXNjcmlwdGlvbjogWCBSZW5kZXJpbmcgRXh0ZW5zaW9uIGNsaWVudCBsaWJyYXJ5IChkZXZlbG9wbWVudCBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjkuNi0yYnVpbGQxCm5hbWU6IGxpYnhyZW5kZXIxCmRlc2NyaXB0aW9uOiBYIFJlbmRlcmluZyBFeHRlbnNpb24gY2xpZW50IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjkuNi0yYnVpbGQxCm5hbWU6IGxpYnhyZW5kZXIxOmkzODYKZGVzY3JpcHRpb246IFggUmVuZGVyaW5nIEV4dGVuc2lvbiBjbGllbnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMC41LTEKbmFtZTogbGlieHJlczEKZGVzY3JpcHRpb246IFgxMSBSZXNvdXJjZSBleHRlbnNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMjYtOHVidW50dTEuMgpuYW1lOiBsaWJ4c2x0MS4xCmRlc2NyaXB0aW9uOiBYU0xUIDEuMCBwcm9jZXNzaW5nIGxpYnJhcnkgLSBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjI2LTh1YnVudHUxLjIKbmFtZTogbGlieHNsdDEuMTppMzg2CmRlc2NyaXB0aW9uOiBYU0xUIDEuMCBwcm9jZXNzaW5nIGxpYnJhcnkgLSBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjIuMS0yCm5hbWU6IGxpYnhzczEKZGVzY3JpcHRpb246IFgxMSBTY3JlZW4gU2F2ZXIgZXh0ZW5zaW9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjIuMS0yCm5hbWU6IGxpYnhzczE6aTM4NgpkZXNjcmlwdGlvbjogWDExIFNjcmVlbiBTYXZlciBleHRlbnNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMS4xLTJidWlsZDEKbmFtZTogbGlieHQtZGV2CmRlc2NyaXB0aW9uOiBYMTEgdG9vbGtpdCBpbnRyaW5zaWNzIGxpYnJhcnkgKGRldmVsb3BtZW50IGhlYWRlcnMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4xLjEtMmJ1aWxkMQpuYW1lOiBsaWJ4dDYKZGVzY3JpcHRpb246IFgxMSB0b29sa2l0IGludHJpbnNpY3MgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMS4xLTJidWlsZDEKbmFtZTogbGlieHQ2OmkzODYKZGVzY3JpcHRpb246IFgxMSB0b29sa2l0IGludHJpbnNpY3MgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMi4wLTQKbmFtZTogbGlieHRzdDYKZGVzY3JpcHRpb246IFgxMSBUZXN0aW5nIC0tIFJlY29yZCBleHRlbnNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMi4wLTQKbmFtZTogbGlieHRzdDY6aTM4NgpkZXNjcmlwdGlvbjogWDExIFRlc3RpbmcgLS0gUmVjb3JkIGV4dGVuc2lvbiBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS4wLjYtMmJ1aWxkMQpuYW1lOiBsaWJ4djEKZGVzY3JpcHRpb246IFgxMSBWaWRlbyBleHRlbnNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMC42LTJidWlsZDEKbmFtZTogbGlieHYxOmkzODYKZGVzY3JpcHRpb246IFgxMSBWaWRlbyBleHRlbnNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMy4yLTYKbmFtZTogbGlieHZpZGNvcmU0CmRlc2NyaXB0aW9uOiBPcGVuIHNvdXJjZSBNUEVHLTQgdmlkZW8gY29kZWMgKGxpYnJhcnkpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MS4wLjYtMXVidW50dTIKbmFtZTogbGlieHZtYzEKZGVzY3JpcHRpb246IFgxMSBWaWRlbyBleHRlbnNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMS4yLTEKbmFtZTogbGlieHhmODZkZ2ExCmRlc2NyaXB0aW9uOiBYMTEgRGlyZWN0IEdyYXBoaWNzIEFjY2VzcyBleHRlbnNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMS4xLTJidWlsZDEKbmFtZTogbGlieHhmODZ2bS1kZXYKZGVzY3JpcHRpb246IFgxMSBYRnJlZTg2IHZpZGVvIG1vZGUgZXh0ZW5zaW9uIGxpYnJhcnkgKGRldmVsb3BtZW50IGhlYWRlcnMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4xLjEtMmJ1aWxkMQpuYW1lOiBsaWJ4eGY4NnZtMQpkZXNjcmlwdGlvbjogWDExIFhGcmVlODYgdmlkZW8gbW9kZSBleHRlbnNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMS4xLTJidWlsZDEKbmFtZTogbGlieHhmODZ2bTE6aTM4NgpkZXNjcmlwdGlvbjogWDExIFhGcmVlODYgdmlkZW8gbW9kZSBleHRlbnNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMTItMgpuYW1lOiBsaWJ5YWpsMQpkZXNjcmlwdGlvbjogWWV0IEFub3RoZXIgSlNPTiBMaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS40LTIKbmFtZTogbGlieWFtbC0wLTIKZGVzY3JpcHRpb246IEZhc3QgWUFNTCAxLjEgcGFyc2VyIGFuZCBlbWl0dGVyIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xOS0xCm5hbWU6IGxpYnlhbWwtc3ljay1wZXJsCmRlc2NyaXB0aW9uOiBQZXJsIG1vZHVsZSBwcm92aWRpbmcgYSBmYXN0LCBsaWdodHdlaWdodCBZQU1MIGxvYWRlciBhbmQgZHVtcGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNTAtMQpuYW1lOiBsaWJ5YW1sLXRpbnktcGVybApkZXNjcmlwdGlvbjogUGVybCBtb2R1bGUgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgWUFNTCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0wdWJ1bnR1MQpuYW1lOiBsaWJ5ZWxwMApkZXNjcmlwdGlvbjogTGlicmFyeSBmb3IgdGhlIEdOT01FIGhlbHAgYnJvd3NlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEwK2RvYy03YnVpbGQyCm5hbWU6IGxpYnpiYXIwCmRlc2NyaXB0aW9uOiBiYXIgY29kZSBzY2FubmVyIGFuZCBkZWNvZGVyIChsaWJyYXJ5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMuMTgtMXVidW50dTEKbmFtZTogbGliemVpdGdlaXN0LTEuMC0xCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IHRvIGFjY2VzcyBaZWl0Z2Vpc3QgLSBzaGFyZWQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMS0xCm5hbWU6IGxpYnplcGh5cjQKZGVzY3JpcHRpb246IFByb2plY3QgQXRoZW5hJ3Mgbm90aWZpY2F0aW9uIHNlcnZpY2UgLSBub24tS2VyYmVyb3MgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMy41K2Rmc2cxLTF1YnVudHUxCm5hbWU6IGxpYnpvb2tlZXBlci1tdDIKZGVzY3JpcHRpb246IE11bHRpIHRocmVhZGVkIEMgYmluZGluZ3MgZm9yIHpvb2tlZXBlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuMzMtNApuYW1lOiBsaWJ6dmJpLWNvbW1vbgpkZXNjcmlwdGlvbjogVmVydGljYWwgQmxhbmtpbmcgSW50ZXJ2YWwgZGVjb2RlciAoVkJJKSAtIGNvbW1vbiBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuMzMtNApuYW1lOiBsaWJ6dmJpMApkZXNjcmlwdGlvbjogVmVydGljYWwgQmxhbmtpbmcgSW50ZXJ2YWwgZGVjb2RlciAoVkJJKSAtIHJ1bnRpbWUgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xLjkuMS0wdWJ1bnR1MS4yCm5hbWU6IGxpZ2h0LXRoZW1lcwpkZXNjcmlwdGlvbjogTGlnaHQgVGhlbWVzIChBbWJpYW5jZSBhbmQgUmFkaWFuY2UpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4xLTB1YnVudHUxLjEKbmFtZTogbGlnaHRkbQpkZXNjcmlwdGlvbjogRGlzcGxheSBNYW5hZ2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4yCm5hbWU6IGxpZ2h0cmVhZApkZXNjcmlwdGlvbjogQSBsaWdodHdlaWdodCBuZXdzIHJlYWRlci4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi41LjZ1YnVudHUwLjEKbmFtZTogbGludGlhbgpkZXNjcmlwdGlvbjogRGViaWFuIHBhY2thZ2UgY2hlY2tlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjc5LjEKbmFtZTogbGludXgtZmlybXdhcmUKZGVzY3JpcHRpb246IEZpcm13YXJlIGZvciBMaW51eCBrZXJuZWwgZHJpdmVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC4zNi40MwpuYW1lOiBsaW51eC1nZW5lcmljCmRlc2NyaXB0aW9uOiBDb21wbGV0ZSBHZW5lcmljIExpbnV4IGtlcm5lbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0yMy4zNgpuYW1lOiBsaW51eC1oZWFkZXJzLTMuMi4wLTIzCmRlc2NyaXB0aW9uOiBIZWFkZXIgZmlsZXMgcmVsYXRlZCB0byBMaW51eCBrZXJuZWwgdmVyc2lvbiAzLjIuMAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0yMy4zNgpuYW1lOiBsaW51eC1oZWFkZXJzLTMuMi4wLTIzLWdlbmVyaWMKZGVzY3JpcHRpb246IExpbnV4IGtlcm5lbCBoZWFkZXJzIGZvciB2ZXJzaW9uIDMuMi4wIG9uIDY0IGJpdCB4ODYgU01QCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTI0LjM5Cm5hbWU6IGxpbnV4LWhlYWRlcnMtMy4yLjAtMjQKZGVzY3JpcHRpb246IEhlYWRlciBmaWxlcyByZWxhdGVkIHRvIExpbnV4IGtlcm5lbCB2ZXJzaW9uIDMuMi4wCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTI0LjM5Cm5hbWU6IGxpbnV4LWhlYWRlcnMtMy4yLjAtMjQtZ2VuZXJpYwpkZXNjcmlwdGlvbjogTGludXgga2VybmVsIGhlYWRlcnMgZm9yIHZlcnNpb24gMy4yLjAgb24gNjQgYml0IHg4NiBTTVAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjAtMjUuNDAKbmFtZTogbGludXgtaGVhZGVycy0zLjIuMC0yNQpkZXNjcmlwdGlvbjogSGVhZGVyIGZpbGVzIHJlbGF0ZWQgdG8gTGludXgga2VybmVsIHZlcnNpb24gMy4yLjAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjAtMjUuNDAKbmFtZTogbGludXgtaGVhZGVycy0zLjIuMC0yNS1nZW5lcmljCmRlc2NyaXB0aW9uOiBMaW51eCBrZXJuZWwgaGVhZGVycyBmb3IgdmVyc2lvbiAzLjIuMCBvbiA2NCBiaXQgeDg2IFNNUAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0yNi40MQpuYW1lOiBsaW51eC1oZWFkZXJzLTMuMi4wLTI2CmRlc2NyaXB0aW9uOiBIZWFkZXIgZmlsZXMgcmVsYXRlZCB0byBMaW51eCBrZXJuZWwgdmVyc2lvbiAzLjIuMAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0yNi40MQpuYW1lOiBsaW51eC1oZWFkZXJzLTMuMi4wLTI2LWdlbmVyaWMKZGVzY3JpcHRpb246IExpbnV4IGtlcm5lbCBoZWFkZXJzIGZvciB2ZXJzaW9uIDMuMi4wIG9uIDY0IGJpdCB4ODYgU01QCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTI3LjQzCm5hbWU6IGxpbnV4LWhlYWRlcnMtMy4yLjAtMjcKZGVzY3JpcHRpb246IEhlYWRlciBmaWxlcyByZWxhdGVkIHRvIExpbnV4IGtlcm5lbCB2ZXJzaW9uIDMuMi4wCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTI3LjQzCm5hbWU6IGxpbnV4LWhlYWRlcnMtMy4yLjAtMjctZ2VuZXJpYwpkZXNjcmlwdGlvbjogTGludXgga2VybmVsIGhlYWRlcnMgZm9yIHZlcnNpb24gMy4yLjAgb24gNjQgYml0IHg4NiBTTVAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjAtMjkuNDYKbmFtZTogbGludXgtaGVhZGVycy0zLjIuMC0yOQpkZXNjcmlwdGlvbjogSGVhZGVyIGZpbGVzIHJlbGF0ZWQgdG8gTGludXgga2VybmVsIHZlcnNpb24gMy4yLjAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjAtMjkuNDYKbmFtZTogbGludXgtaGVhZGVycy0zLjIuMC0yOS1nZW5lcmljCmRlc2NyaXB0aW9uOiBMaW51eCBrZXJuZWwgaGVhZGVycyBmb3IgdmVyc2lvbiAzLjIuMCBvbiA2NCBiaXQgeDg2IFNNUAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0zMC40OApuYW1lOiBsaW51eC1oZWFkZXJzLTMuMi4wLTMwCmRlc2NyaXB0aW9uOiBIZWFkZXIgZmlsZXMgcmVsYXRlZCB0byBMaW51eCBrZXJuZWwgdmVyc2lvbiAzLjIuMAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0zMC40OApuYW1lOiBsaW51eC1oZWFkZXJzLTMuMi4wLTMwLWdlbmVyaWMKZGVzY3JpcHRpb246IExpbnV4IGtlcm5lbCBoZWFkZXJzIGZvciB2ZXJzaW9uIDMuMi4wIG9uIDY0IGJpdCB4ODYgU01QCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTMxLjUwCm5hbWU6IGxpbnV4LWhlYWRlcnMtMy4yLjAtMzEKZGVzY3JpcHRpb246IEhlYWRlciBmaWxlcyByZWxhdGVkIHRvIExpbnV4IGtlcm5lbCB2ZXJzaW9uIDMuMi4wCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTMxLjUwCm5hbWU6IGxpbnV4LWhlYWRlcnMtMy4yLjAtMzEtZ2VuZXJpYwpkZXNjcmlwdGlvbjogTGludXgga2VybmVsIGhlYWRlcnMgZm9yIHZlcnNpb24gMy4yLjAgb24gNjQgYml0IHg4NiBTTVAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjAtMzIuNTEKbmFtZTogbGludXgtaGVhZGVycy0zLjIuMC0zMgpkZXNjcmlwdGlvbjogSGVhZGVyIGZpbGVzIHJlbGF0ZWQgdG8gTGludXgga2VybmVsIHZlcnNpb24gMy4yLjAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjAtMzIuNTEKbmFtZTogbGludXgtaGVhZGVycy0zLjIuMC0zMi1nZW5lcmljCmRlc2NyaXB0aW9uOiBMaW51eCBrZXJuZWwgaGVhZGVycyBmb3IgdmVyc2lvbiAzLjIuMCBvbiA2NCBiaXQgeDg2IFNNUAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0zMy41MgpuYW1lOiBsaW51eC1oZWFkZXJzLTMuMi4wLTMzCmRlc2NyaXB0aW9uOiBIZWFkZXIgZmlsZXMgcmVsYXRlZCB0byBMaW51eCBrZXJuZWwgdmVyc2lvbiAzLjIuMAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0zMy41MgpuYW1lOiBsaW51eC1oZWFkZXJzLTMuMi4wLTMzLWdlbmVyaWMKZGVzY3JpcHRpb246IExpbnV4IGtlcm5lbCBoZWFkZXJzIGZvciB2ZXJzaW9uIDMuMi4wIG9uIDY0IGJpdCB4ODYgU01QCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTM0LjUzCm5hbWU6IGxpbnV4LWhlYWRlcnMtMy4yLjAtMzQKZGVzY3JpcHRpb246IEhlYWRlciBmaWxlcyByZWxhdGVkIHRvIExpbnV4IGtlcm5lbCB2ZXJzaW9uIDMuMi4wCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTM0LjUzCm5hbWU6IGxpbnV4LWhlYWRlcnMtMy4yLjAtMzQtZ2VuZXJpYwpkZXNjcmlwdGlvbjogTGludXgga2VybmVsIGhlYWRlcnMgZm9yIHZlcnNpb24gMy4yLjAgb24gNjQgYml0IHg4NiBTTVAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjAtMzUuNTUKbmFtZTogbGludXgtaGVhZGVycy0zLjIuMC0zNQpkZXNjcmlwdGlvbjogSGVhZGVyIGZpbGVzIHJlbGF0ZWQgdG8gTGludXgga2VybmVsIHZlcnNpb24gMy4yLjAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjAtMzUuNTUKbmFtZTogbGludXgtaGVhZGVycy0zLjIuMC0zNS1nZW5lcmljCmRlc2NyaXB0aW9uOiBMaW51eCBrZXJuZWwgaGVhZGVycyBmb3IgdmVyc2lvbiAzLjIuMCBvbiA2NCBiaXQgeDg2IFNNUAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0zNi41NwpuYW1lOiBsaW51eC1oZWFkZXJzLTMuMi4wLTM2CmRlc2NyaXB0aW9uOiBIZWFkZXIgZmlsZXMgcmVsYXRlZCB0byBMaW51eCBrZXJuZWwgdmVyc2lvbiAzLjIuMAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0zNi41NwpuYW1lOiBsaW51eC1oZWFkZXJzLTMuMi4wLTM2LWdlbmVyaWMKZGVzY3JpcHRpb246IExpbnV4IGtlcm5lbCBoZWFkZXJzIGZvciB2ZXJzaW9uIDMuMi4wIG9uIDY0IGJpdCB4ODYgU01QCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLjM2LjQzCm5hbWU6IGxpbnV4LWhlYWRlcnMtZ2VuZXJpYwpkZXNjcmlwdGlvbjogR2VuZXJpYyBMaW51eCBrZXJuZWwgaGVhZGVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0yNC4zOQpuYW1lOiBsaW51eC1pbWFnZS0zLjIuMC0yNC1nZW5lcmljCmRlc2NyaXB0aW9uOiBMaW51eCBrZXJuZWwgaW1hZ2UgZm9yIHZlcnNpb24gMy4yLjAgb24gNjQgYml0IHg4NiBTTVAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjAtMjUuNDAKbmFtZTogbGludXgtaW1hZ2UtMy4yLjAtMjUtZ2VuZXJpYwpkZXNjcmlwdGlvbjogTGludXgga2VybmVsIGltYWdlIGZvciB2ZXJzaW9uIDMuMi4wIG9uIDY0IGJpdCB4ODYgU01QCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTI2LjQxCm5hbWU6IGxpbnV4LWltYWdlLTMuMi4wLTI2LWdlbmVyaWMKZGVzY3JpcHRpb246IExpbnV4IGtlcm5lbCBpbWFnZSBmb3IgdmVyc2lvbiAzLjIuMCBvbiA2NCBiaXQgeDg2IFNNUAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0yNy40MwpuYW1lOiBsaW51eC1pbWFnZS0zLjIuMC0yNy1nZW5lcmljCmRlc2NyaXB0aW9uOiBMaW51eCBrZXJuZWwgaW1hZ2UgZm9yIHZlcnNpb24gMy4yLjAgb24gNjQgYml0IHg4NiBTTVAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjAtMjkuNDYKbmFtZTogbGludXgtaW1hZ2UtMy4yLjAtMjktZ2VuZXJpYwpkZXNjcmlwdGlvbjogTGludXgga2VybmVsIGltYWdlIGZvciB2ZXJzaW9uIDMuMi4wIG9uIDY0IGJpdCB4ODYgU01QCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTMwLjQ4Cm5hbWU6IGxpbnV4LWltYWdlLTMuMi4wLTMwLWdlbmVyaWMKZGVzY3JpcHRpb246IExpbnV4IGtlcm5lbCBpbWFnZSBmb3IgdmVyc2lvbiAzLjIuMCBvbiA2NCBiaXQgeDg2IFNNUAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0zMS41MApuYW1lOiBsaW51eC1pbWFnZS0zLjIuMC0zMS1nZW5lcmljCmRlc2NyaXB0aW9uOiBMaW51eCBrZXJuZWwgaW1hZ2UgZm9yIHZlcnNpb24gMy4yLjAgb24gNjQgYml0IHg4NiBTTVAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjAtMzIuNTEKbmFtZTogbGludXgtaW1hZ2UtMy4yLjAtMzItZ2VuZXJpYwpkZXNjcmlwdGlvbjogTGludXgga2VybmVsIGltYWdlIGZvciB2ZXJzaW9uIDMuMi4wIG9uIDY0IGJpdCB4ODYgU01QCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTMzLjUyCm5hbWU6IGxpbnV4LWltYWdlLTMuMi4wLTMzLWdlbmVyaWMKZGVzY3JpcHRpb246IExpbnV4IGtlcm5lbCBpbWFnZSBmb3IgdmVyc2lvbiAzLjIuMCBvbiA2NCBiaXQgeDg2IFNNUAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0zNC41MwpuYW1lOiBsaW51eC1pbWFnZS0zLjIuMC0zNC1nZW5lcmljCmRlc2NyaXB0aW9uOiBMaW51eCBrZXJuZWwgaW1hZ2UgZm9yIHZlcnNpb24gMy4yLjAgb24gNjQgYml0IHg4NiBTTVAKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjAtMzUuNTUKbmFtZTogbGludXgtaW1hZ2UtMy4yLjAtMzUtZ2VuZXJpYwpkZXNjcmlwdGlvbjogTGludXgga2VybmVsIGltYWdlIGZvciB2ZXJzaW9uIDMuMi4wIG9uIDY0IGJpdCB4ODYgU01QCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTM2LjU3Cm5hbWU6IGxpbnV4LWltYWdlLTMuMi4wLTM2LWdlbmVyaWMKZGVzY3JpcHRpb246IExpbnV4IGtlcm5lbCBpbWFnZSBmb3IgdmVyc2lvbiAzLjIuMCBvbiA2NCBiaXQgeDg2IFNNUAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMC0zNi41NwpuYW1lOiBsaW51eApkZXNjcmlwdGlvbjogTGludXgga2VybmVsIGltYWdlIGZvciB2ZXJzaW9uIDMuMi4wIG9uIDY0IGJpdCB4ODYgU01QCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLjM2LjQzCm5hbWU6IGxpbnV4LWltYWdlLWdlbmVyaWMKZGVzY3JpcHRpb246IEdlbmVyaWMgTGludXgga2VybmVsIGltYWdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTM2LjU3Cm5hbWU6IGxpbnV4LWxpYmMtZGV2CmRlc2NyaXB0aW9uOiBMaW51eCBLZXJuZWwgSGVhZGVycyBmb3IgZGV2ZWxvcG1lbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjI1K2Rmc2ctMHVidW50dTEKbmFtZTogbGludXgtc291bmQtYmFzZQpkZXNjcmlwdGlvbjogYmFzZSBwYWNrYWdlIGZvciBBTFNBIGFuZCBPU1Mgc291bmQgc3lzdGVtcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjEzK2dpdDIwMTIwMzA2LTMKbmFtZTogbG9jYWxlcwpkZXNjcmlwdGlvbjogY29tbW9uIGZpbGVzIGZvciBsb2NhbGUgc3VwcG9ydAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuMTYKbmFtZTogbG9ja2ZpbGUtcHJvZ3MKZGVzY3JpcHRpb246IFByb2dyYW1zIGZvciBsb2NraW5nIGFuZCB1bmxvY2tpbmcgZmlsZXMgYW5kIG1haWxib3hlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjQuMS40LjIrc3ZuMzI4My0zdWJ1bnR1NS4xCm5hbWU6IGxvZ2luCmRlc2NyaXB0aW9uOiBzeXN0ZW0gbG9naW4gdG9vbHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy43LjgtNnVidW50dTUKbmFtZTogbG9ncm90YXRlCmRlc2NyaXB0aW9uOiBMb2cgcm90YXRpb24gdXRpbGl0eQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjAtMHVidW50dTIwLjIKbmFtZTogbHNiLWJhc2UKZGVzY3JpcHRpb246IExpbnV4IFN0YW5kYXJkIEJhc2UgNC4wIGluaXQgc2NyaXB0IGZ1bmN0aW9uYWxpdHkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC4wLTB1YnVudHUyMC4yCm5hbWU6IGxzYi1yZWxlYXNlCmRlc2NyaXB0aW9uOiBMaW51eCBTdGFuZGFyZCBCYXNlIHZlcnNpb24gcmVwb3J0aW5nIHV0aWxpdHkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMDIuMTUtMgpuYW1lOiBsc2h3CmRlc2NyaXB0aW9uOiBpbmZvcm1hdGlvbiBhYm91dCBoYXJkd2FyZSBjb25maWd1cmF0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuODEuZGZzZy4xLTFidWlsZDEKbmFtZTogbHNvZgpkZXNjcmlwdGlvbjogTGlzdCBvcGVuIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNS4zLTIuMXVidW50dTIKbmFtZTogbHRyYWNlCmRlc2NyaXB0aW9uOiBUcmFja3MgcnVudGltZSBsaWJyYXJ5IGNhbGxzIGluIGR5bmFtaWNhbGx5IGxpbmtlZCBwcm9ncmFtcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuMi42LTUKbmFtZTogbHV2Y3ZpZXcKZGVzY3JpcHRpb246IFVTQiBWaWRlbyBDbGFzcyBncmFiYmVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuOC44ZGV2LjktMnVidW50dTAuMTIuMDQuMQpuYW1lOiBseW54LWN1cgpkZXNjcmlwdGlvbjogVGV4dC1tb2RlIFdXVyBCcm93c2VyIHdpdGggTkxTIHN1cHBvcnQgKGRldmVsb3BtZW50IHZlcnNpb24pCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4xNi0ydWJ1bnR1MQpuYW1lOiBtNApkZXNjcmlwdGlvbjogYSBtYWNybyBwcm9jZXNzaW5nIGxhbmd1YWdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My40LjEtMHVidW50dTIuMgpuYW1lOiBtYWhqb25nZwpkZXNjcmlwdGlvbjogY2xhc3NpYyBFYXN0ZXJuIHRpbGUgZ2FtZSBmb3IgR05PTUUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy44MS04LjF1YnVudHUxLjEKbmFtZTogbWFrZQpkZXNjcmlwdGlvbjogQW4gdXRpbGl0eSBmb3IgRGlyZWN0aW5nIGNvbXBpbGF0aW9uLgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMuMS04OXVidW50dTIKbmFtZTogbWFrZWRldgpkZXNjcmlwdGlvbjogY3JlYXRlcyBkZXZpY2UgZmlsZXMgaW4gL2RldgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjYuMS0ydWJ1bnR1MQpuYW1lOiBtYW4tZGIKZGVzY3JpcHRpb246IG9uLWxpbmUgbWFudWFsIHBhZ2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMzUtMC4xdWJ1bnR1MQpuYW1lOiBtYW5wYWdlcwpkZXNjcmlwdGlvbjogTWFudWFsIHBhZ2VzIGFib3V0IHVzaW5nIGEgR05VL0xpbnV4IHN5c3RlbQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjM1LTAuMXVidW50dTEKbmFtZTogbWFucGFnZXMtZGV2CmRlc2NyaXB0aW9uOiBNYW51YWwgcGFnZXMgYWJvdXQgdXNpbmcgR05VL0xpbnV4IGZvciBkZXZlbG9wbWVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMuMy0xNwpuYW1lOiBtYXdrCmRlc2NyaXB0aW9uOiBhIHBhdHRlcm4gc2Nhbm5pbmcgYW5kIHRleHQgcHJvY2Vzc2luZyBsYW5ndWFnZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxNi0xCm5hbWU6IG1lZGlhLXBsYXllci1pbmZvCmRlc2NyaXB0aW9uOiBNZWRpYSBwbGF5ZXIgaWRlbnRpZmljYXRpb24gZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41LjMtMXVidW50dTEKbmFtZTogbWVsZApkZXNjcmlwdGlvbjogZ3JhcGhpY2FsIHRvb2wgdG8gZGlmZiBhbmQgbWVyZ2UgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC4yMC0xLjF1YnVudHUxCm5hbWU6IG1lbXRlc3Q4NisKZGVzY3JpcHRpb246IHRob3JvdWdoIHJlYWwtbW9kZSBtZW1vcnkgdGVzdGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDguMC40LTB1YnVudHUwLjMKbmFtZTogbWVzYS1jb21tb24tZGV2CmRlc2NyaXB0aW9uOiBEZXZlbG9wZXIgZG9jdW1lbnRhdGlvbiBmb3IgTWVzYQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjAuMStnaXQyMDExMDEyOStkOGY3ZDZiLTB1YnVudHUyCm5hbWU6IG1lc2EtdXRpbHMKZGVzY3JpcHRpb246IE1pc2NlbGxhbmVvdXMgTWVzYSBHTCB1dGlsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToyLjM0LjEtMXVidW50dTExCm5hbWU6IG1ldGFjaXR5CmRlc2NyaXB0aW9uOiBsaWdodHdlaWdodCBHVEsrIHdpbmRvdyBtYW5hZ2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Mi4zNC4xLTF1YnVudHUxMQpuYW1lOiBtZXRhY2l0eS1jb21tb24KZGVzY3JpcHRpb246IHNoYXJlZCBmaWxlcyBmb3IgdGhlIE1ldGFjaXR5IHdpbmRvdyBtYW5hZ2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNTEtMXVidW50dTEKbmFtZTogbWltZS1zdXBwb3J0CmRlc2NyaXB0aW9uOiBNSU1FIGZpbGVzICdtaW1lLnR5cGVzJyAmICdtYWlsY2FwJywgYW5kIHN1cHBvcnQgcHJvZ3JhbXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjUuMS0xLjEKbmFtZTogbWlyYWdlCmRlc2NyaXB0aW9uOiBmYXN0IGFuZCBzaW1wbGUgR1RLKyBpbWFnZSB2aWV3ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMC4xLTEtcHBhMX5wcmVjaXNlMQpuYW1lOiBtaXh4eApkZXNjcmlwdGlvbjogRGlnaXRhbCBESiBpbnRlcmZhY2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yMy4xLTF1YnVudHUyCm5hbWU6IG1sb2NhdGUKZGVzY3JpcHRpb246IHF1aWNrbHkgZmluZCBmaWxlcyBvbiB0aGUgZmlsZXN5c3RlbSBiYXNlZCBvbiB0aGVpciBuYW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIwMTIwNDEwLTB1YnVudHUxCm5hbWU6IG1vYmlsZS1icm9hZGJhbmQtcHJvdmlkZXItaW5mbwpkZXNjcmlwdGlvbjogZGF0YWJhc2Ugb2YgbW9iaWxlIGJyb2FkYmFuZCBzZXJ2aWNlIHByb3ZpZGVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjUuMi4wLTB1YnVudHUyCm5hbWU6IG1vZGVtbWFuYWdlcgpkZXNjcmlwdGlvbjogRC1CdXMgc2VydmljZSBmb3IgbWFuYWdpbmcgbW9kZW1zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMTYtMXVidW50dTIKbmFtZTogbW9kdWxlLWluaXQtdG9vbHMKZGVzY3JpcHRpb246IHRvb2xzIGZvciBtYW5hZ2luZyBMaW51eCBrZXJuZWwgbW9kdWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjIwLjEtMXVidW50dTMKbmFtZTogbW91bnQKZGVzY3JpcHRpb246IFRvb2xzIGZvciBtb3VudGluZyBhbmQgbWFuaXB1bGF0aW5nIGZpbGVzeXN0ZW1zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMzYuMwpuYW1lOiBtb3VudGFsbApkZXNjcmlwdGlvbjogZmlsZXN5c3RlbSBtb3VudGluZyB0b29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxCm5hbWU6IG1vdXNldHdlYWtzCmRlc2NyaXB0aW9uOiBtb3VzZSBhY2Nlc3NpYmlsaXR5IGVuaGFuY2VtZW50cyBmb3IgdGhlIEdOT01FIGRlc2t0b3AKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjB+cmM0LmRmc2cxK3N2bjM0NTQwLTEKbmFtZTogbXBsYXllcgpkZXNjcmlwdGlvbjogbW92aWUgcGxheWVyIGZvciBVbml4LWxpa2Ugc3lzdGVtcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEwCm5hbWU6IG1yCmRlc2NyaXB0aW9uOiBNdWx0aXBsZSBSZXBvc2l0b3J5IG1hbmFnZW1lbnQgdG9vbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMtMy4xCm5hbWU6IG1zY29tcHJlc3MKZGVzY3JpcHRpb246IE1pY3Jvc29mdCAiY29tcHJlc3MuZXhlL2V4cGFuZC5leGUiIGNvbXBhdGlibGUgKGRlKWNvbXByZXNzb3IKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLTMKbmFtZTogbXNyLXRvb2xzCmRlc2NyaXB0aW9uOiBVdGlsaXRpZXMgZm9yIG1vZGlmeWluZyBNU1JzIGZyb20gdXNlcnNwYWNlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4wLTJ1YnVudHUxCm5hbWU6IG10ZGV2LXRvb2xzCmRlc2NyaXB0aW9uOiBNdWx0aXRvdWNoIFByb3RvY29sIFRyYW5zbGF0aW9uIExpYnJhcnkgLSB0ZXN0IHRvb2xzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuMC4xMi0xCm5hbWU6IG10b29scwpkZXNjcmlwdGlvbjogVG9vbHMgZm9yIG1hbmlwdWxhdGluZyBNU0RPUyBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjgwLTF1YnVudHUxCm5hbWU6IG10ci10aW55CmRlc2NyaXB0aW9uOiBGdWxsIHNjcmVlbiBuY3Vyc2VzIHRyYWNlcm91dGUgdG9vbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjE1LTB1YnVudHUxMC4zCm5hbWU6IG11bHRpYXJjaC1zdXBwb3J0CmRlc2NyaXB0aW9uOiBUcmFuc2l0aW9uYWwgcGFja2FnZSB0byBlbnN1cmUgbXVsdGlhcmNoIGNvbXBhdGliaWxpdHkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjEtMHVidW50dTEKbmFtZTogbXV0dGVyLWNvbW1vbgpkZXNjcmlwdGlvbjogc2hhcmVkIGZpbGVzIGZvciB0aGUgTXV0dGVyIHdpbmRvdyBtYW5hZ2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMS01LjN1YnVudHUxCm5hbWU6IG15c3BlbGwtZW4tYXUKZGVzY3JpcHRpb246IEVuZ2xpc2hfYXVzdHJhbGlhbiBkaWN0aW9uYXJ5IGZvciBteXNwZWxsCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My4zLjAtMnVidW50dTMKbmFtZTogbXlzcGVsbC1lbi1nYgpkZXNjcmlwdGlvbjogRW5nbGlzaF9icml0aXNoIGRpY3Rpb25hcnkgZm9yIG15c3BlbGwKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjMuMC0ydWJ1bnR1MwpuYW1lOiBteXNwZWxsLWVuLXphCmRlc2NyaXB0aW9uOiBFbmdsaXNoX3NvdXRoYWZyaWNhbiBkaWN0aW9uYXJ5IGZvciBteXNwZWxsCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuNS4yOS0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IG15c3FsLWNvbW1vbgpkZXNjcmlwdGlvbjogTXlTUUwgZGF0YWJhc2UgY29tbW9uIGZpbGVzLCBlLmcuIC9ldGMvbXlzcWwvbXkuY25mCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6My4zLjAtMnVidW50dTMKbmFtZTogbXl0aGVzLWVuLXVzCmRlc2NyaXB0aW9uOiBFbmdsaXNoIFRoZXNhdXJ1cyBmb3IgTGlicmVPZmZpY2UvT3Blbk9mZmljZS5vcmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjYtMQpuYW1lOiBuYW5vCmRlc2NyaXB0aW9uOiBzbWFsbCwgZnJpZW5kbHkgdGV4dCBlZGl0b3IgaW5zcGlyZWQgYnkgUGljbwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuNC4yLTB1YnVudHU2Cm5hbWU6IG5hdXRpbHVzCmRlc2NyaXB0aW9uOiBmaWxlIG1hbmFnZXIgYW5kIGdyYXBoaWNhbCBzaGVsbCBmb3IgR05PTUUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjQuMi0wdWJ1bnR1NgpuYW1lOiBuYXV0aWx1cy1kYXRhCmRlc2NyaXB0aW9uOiBkYXRhIGZpbGVzIGZvciBuYXV0aWx1cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE5LTJidWlsZDEKbmFtZTogbmF1dGlsdXMtb3Blbi10ZXJtaW5hbApkZXNjcmlwdGlvbjogbmF1dGlsdXMgcGx1Z2luIGZvciBvcGVuaW5nIHRlcm1pbmFscyBpbiBhcmJpdHJhcnkgcGF0aHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjEtMnVidW50dTIKbmFtZTogbmF1dGlsdXMtc2VuZHRvCmRlc2NyaXB0aW9uOiBpbnRlZ3JhdGVzIEV2b2x1dGlvbiBhbmQgUGlkZ2luIGludG8gdGhlIE5hdXRpbHVzIGZpbGUgbWFuYWdlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMi4zLTB1YnVudHUxCm5hbWU6IG5hdXRpbHVzLXNlbmR0by1lbXBhdGh5CmRlc2NyaXB0aW9uOiBHTk9NRSBtdWx0aS1wcm90b2NvbCBjaGF0IGFuZCBjYWxsIGNsaWVudCAobmF1dGlsdXMtc2VuZHRvIHBsdWdpbikKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC43LjMtMXVidW50dTIKbmFtZTogbmF1dGlsdXMtc2hhcmUKZGVzY3JpcHRpb246IE5hdXRpbHVzIGV4dGVuc2lvbiB0byBzaGFyZSBmb2xkZXIgdXNpbmcgU2FtYmEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS45LTQKbmFtZTogbmN1cnNlcy1iYXNlCmRlc2NyaXB0aW9uOiBiYXNpYyB0ZXJtaW5hbCB0eXBlIGRlZmluaXRpb25zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuOS00Cm5hbWU6IG5jdXJzZXMtYmluCmRlc2NyaXB0aW9uOiB0ZXJtaW5hbC1yZWxhdGVkIHByb2dyYW1zIGFuZCBtYW4gcGFnZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS42MC0yNC4xdWJ1bnR1MgpuYW1lOiBuZXQtdG9vbHMKZGVzY3JpcHRpb246IFRoZSBORVQtMyBuZXR3b3JraW5nIHRvb2xraXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC40N3VidW50dTEKbmFtZTogbmV0YmFzZQpkZXNjcmlwdGlvbjogQmFzaWMgVENQL0lQIG5ldHdvcmtpbmcgc3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuODktNHVidW50dTEKbmFtZTogbmV0Y2F0LW9wZW5ic2QKZGVzY3JpcHRpb246IFRDUC9JUCBzd2lzcyBhcm15IGtuaWZlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MTAuMC0xNQpuYW1lOiBuZXRwYm0KZGVzY3JpcHRpb246IEdyYXBoaWNzIGNvbnZlcnNpb24gdG9vbHMgYmV0d2VlbiBpbWFnZSBmb3JtYXRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS40LjAtMHVidW50dTQuMgpuYW1lOiBuZXR3b3JrLW1hbmFnZXIKZGVzY3JpcHRpb246IG5ldHdvcmsgbWFuYWdlbWVudCBmcmFtZXdvcmsgKGRhZW1vbiBhbmQgdXNlcnNwYWNlIHRvb2xzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuNC4xLTB1YnVudHUyCm5hbWU6IG5ldHdvcmstbWFuYWdlci1nbm9tZQpkZXNjcmlwdGlvbjogbmV0d29yayBtYW5hZ2VtZW50IGZyYW1ld29yayAoR05PTUUgZnJvbnRlbmQpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS40LjAtMHVidW50dTEKbmFtZTogbmV0d29yay1tYW5hZ2VyLW9wZW52cG4KZGVzY3JpcHRpb246IG5ldHdvcmsgbWFuYWdlbWVudCBmcmFtZXdvcmsgKE9wZW5WUE4gcGx1Z2luIGNvcmUpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS40LjAtMHVidW50dTEKbmFtZTogbmV0d29yay1tYW5hZ2VyLW9wZW52cG4tZ25vbWUKZGVzY3JpcHRpb246IG5ldHdvcmsgbWFuYWdlbWVudCBmcmFtZXdvcmsgKE9wZW5WUE4gcGx1Z2luIEdOT01FIEdVSSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjQuMC0wdWJ1bnR1MQpuYW1lOiBuZXR3b3JrLW1hbmFnZXItcHB0cApkZXNjcmlwdGlvbjogbmV0d29yayBtYW5hZ2VtZW50IGZyYW1ld29yayAoUFBUUCBwbHVnaW4gY29yZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjQuMC0wdWJ1bnR1MQpuYW1lOiBuZXR3b3JrLW1hbmFnZXItcHB0cC1nbm9tZQpkZXNjcmlwdGlvbjogbmV0d29yayBtYW5hZ2VtZW50IGZyYW1ld29yayAoUFBUUCBwbHVnaW4gR05PTUUgR1VJKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjUtMHVidW50dTEKbmFtZTogbml0cm8KZGVzY3JpcHRpb246IEdldCBzdHVmZiBkb25lIHdpdGggTml0cm8uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMjEtMS4xdWJ1bnR1MQpuYW1lOiBubWFwCmRlc2NyaXB0aW9uOiBUaGUgTmV0d29yayBNYXBwZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xK2J6cjU3LTB1YnVudHUxCm5hbWU6IG5vdGVwYWQtcW1sCmRlc2NyaXB0aW9uOiBEZW1vcyBmb3IgUXQgQ29tcG9uZW50cyBmb3IgVWJ1bnR1CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS4zNC0wdWJ1bnR1MgpuYW1lOiBub3RpZnktb3NkCmRlc2NyaXB0aW9uOiBkYWVtb24gdGhhdCBkaXNwbGF5cyBwYXNzaXZlIHBvcC11cCBub3RpZmljYXRpb25zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNwpuYW1lOiBub3RpZnktb3NkLWljb25zCmRlc2NyaXB0aW9uOiBOb3RpZnktT1NEIGljb25zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MjAxMi4xLjE1QVIuMS0xdWJ1bnR1MS4yCm5hbWU6IG50ZnMtM2cKZGVzY3JpcHRpb246IHJlYWQvd3JpdGUgTlRGUyBkcml2ZXIgZm9yIEZVU0UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTo0LjIuNi5wMytkZnNnLTF1YnVudHUzLjEKbmFtZTogbnRwZGF0ZQpkZXNjcmlwdGlvbjogY2xpZW50IGZvciBzZXR0aW5nIHN5c3RlbSB0aW1lIGZyb20gTlRQIHNlcnZlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xNC4xLTB1YnVudHUxCm5hbWU6IG51eC10b29scwpkZXNjcmlwdGlvbjogVmlzdWFsIHJlbmRlcmluZyB0b29sa2l0IGZvciByZWFsLXRpbWUgYXBwbGljYXRpb25zIC0gdG9vbHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjIuNDQuMgpuYW1lOiBudmlkaWEtY29tbW9uCmRlc2NyaXB0aW9uOiBGaW5kIG9ic29sZXRlIE5WSURJQSBkcml2ZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMxMC4xNC0wdWJ1bnR1MC4xCm5hbWU6IG52aWRpYS1leHBlcmltZW50YWwtMzEwCmRlc2NyaXB0aW9uOiBFeHBlcmltZW50YWwgTlZJRElBIGJpbmFyeSBYb3JnIGRyaXZlciwga2VybmVsIG1vZHVsZSBhbmQgVkRQQVUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzMTAuMTQtMHVidW50dTAuMQpuYW1lOiBudmlkaWEtc2V0dGluZ3MtZXhwZXJpbWVudGFsLTMxMApkZXNjcmlwdGlvbjogVG9vbCBmb3IgY29uZmlndXJpbmcgdGhlIE5WSURJQSBncmFwaGljcyBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjYtMHVidW50dTEKbmFtZTogb2JleC1kYXRhLXNlcnZlcgpkZXNjcmlwdGlvbjogRC1CdXMgc2VydmljZSBmb3IgT0JFWCBjbGllbnQgYW5kIHNlcnZlciBzaWRlIGZ1bmN0aW9uYWxpdHkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40NC0wdWJ1bnR1MQpuYW1lOiBvYmV4ZC1jbGllbnQKZGVzY3JpcHRpb246IEQtQnVzIE9CRVggY2xpZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjMtMWJ1aWxkMwpuYW1lOiBvYmV4ZnRwCmRlc2NyaXB0aW9uOiBmaWxlIHRyYW5zZmVyIHV0aWxpdHkgZm9yIGRldmljZXMgdGhhdCB1c2UgdGhlIE9CRVggcHJvdG9jb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjE0cDItNXVidW50dTMKbmFtZTogb2RiY2luc3QKZGVzY3JpcHRpb246IEhlbHBlciBwcm9ncmFtIGZvciBhY2Nlc3Npbmcgb2RiYyBpbmkgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjE0cDItNXVidW50dTMKbmFtZTogb2RiY2luc3QxZGViaWFuMgpkZXNjcmlwdGlvbjogU3VwcG9ydCBsaWJyYXJ5IGZvciBhY2Nlc3Npbmcgb2RiYyBpbmkgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjE0cDItNXVidW50dTMKbmFtZTogb2RiY2luc3QxZGViaWFuMjppMzg2CmRlc2NyaXB0aW9uOiBTdXBwb3J0IGxpYnJhcnkgZm9yIGFjY2Vzc2luZyBvZGJjIGluaSBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMtMHByZWNpc2UxCm5hbWU6IG9lbS1xYS1iZW5jaG1hcmsKZGVzY3JpcHRpb246IE9FTSBRQSBCZW5jaG1hcmsKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLTBwcmVjaXNlMQpuYW1lOiBvZW0tcWEtYmVuY2htYXJrLWNhY2hlYmVuY2gKZGVzY3JpcHRpb246IE9FTSBRQSBCZW5jaG1hcmsgQ2FjaGViZW5jaAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMtMHByZWNpc2UxCm5hbWU6IG9lbS1xYS1iZW5jaG1hcmstZW5jb2RlLW1wMwpkZXNjcmlwdGlvbjogT0VNIFFBIEJlbmNobWFyayBFbmNvZGUgTVAzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMy0wcHJlY2lzZTEKbmFtZTogb2VtLXFhLWJlbmNobWFyay11bmlnaW5lLXNhbmN0dWFyeQpkZXNjcmlwdGlvbjogT0VNIFFBIEJlbmNobWFyayBVbmlnaW5lIFNhbmN0dWFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMtMHByZWNpc2UxCm5hbWU6IG9lbS1xYS1iZW5jaG1hcmsteDI2NApkZXNjcmlwdGlvbjogT0VNIFFBIEJlbmNobWFyayBYMjY0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOTcuMC0wdWJ1bnR1NApuYW1lOiBvbmJvYXJkCmRlc2NyaXB0aW9uOiBTaW1wbGUgT24tc2NyZWVuIEtleWJvYXJkCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi44LjEKbmFtZTogb25lY29uZgpkZXNjcmlwdGlvbjogc3luY2hyb25pemUgeW91ciBjb25maWd1cmF0aW9uIGRhdGEgb3ZlciB0aGUgbmV0d29yawoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA3dTktMi4zLjQtMHVidW50dTEuMTIuMDQuMQpuYW1lOiBvcGVuamRrLTctanJlCmRlc2NyaXB0aW9uOiBPcGVuSkRLIEphdmEgcnVudGltZSwgdXNpbmcgSG90c3BvdCBKSVQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogN3U5LTIuMy40LTB1YnVudHUxLjEyLjA0LjEKbmFtZTogb3Blbmpkay03LWpyZS1oZWFkbGVzcwpkZXNjcmlwdGlvbjogT3BlbkpESyBKYXZhIHJ1bnRpbWUsIHVzaW5nIEhvdHNwb3QgSklUIChoZWFkbGVzcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogN3U5LTIuMy40LTB1YnVudHUxLjEyLjA0LjEKbmFtZTogb3Blbmpkay03LWpyZS1saWIKZGVzY3JpcHRpb246IE9wZW5KREsgSmF2YSBydW50aW1lIChhcmNoaXRlY3R1cmUgaW5kZXBlbmRlbnQgbGlicmFyaWVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYKbmFtZTogb3Blbm9mZmljZS5vcmctaHlwaGVuYXRpb24KZGVzY3JpcHRpb246IEh5cGhlbmF0aW9uIHBhdHRlcm5zIGZvciBPcGVuT2ZmaWNlLm9yZwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyMDEyMDMyMi0wdWJ1bnR1MQpuYW1lOiBvcGVucHJpbnRpbmctcHBkcwpkZXNjcmlwdGlvbjogT3BlblByaW50aW5nIHByaW50ZXIgc3VwcG9ydCAtIFBvc3RTY3JpcHQgUFBEIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6NS45cDEtNXVidW50dTEKbmFtZTogb3BlbnNzaC1jbGllbnQKZGVzY3JpcHRpb246IHNlY3VyZSBzaGVsbCAoU1NIKSBjbGllbnQsIGZvciBzZWN1cmUgYWNjZXNzIHRvIHJlbW90ZSBtYWNoaW5lcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMS00dWJ1bnR1NS41Cm5hbWU6IG9wZW5zc2wKZGVzY3JpcHRpb246IFNlY3VyZSBTb2NrZXQgTGF5ZXIgKFNTTCkgYmluYXJ5IGFuZCByZWxhdGVkIGNyeXB0b2dyYXBoaWMgdG9vbHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjEtOHVidW50dTEKbmFtZTogb3BlbnZwbgpkZXNjcmlwdGlvbjogdmlydHVhbCBwcml2YXRlIG5ldHdvcmsgZGFlbW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNTF1YnVudHUzCm5hbWU6IG9zLXByb2JlcgpkZXNjcmlwdGlvbjogdXRpbGl0eSB0byBkZXRlY3Qgb3RoZXIgT1NlcyBvbiBhIHNldCBvZiBkcml2ZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMQpuYW1lOiBvc3MtY29tcGF0CmRlc2NyaXB0aW9uOiBPcGVuIFNvdW5kIFN5c3RlbSAoT1NTKSBjb21wYXRpYmlsaXR5IHBhY2thZ2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjE2LTB1YnVudHUxLjEKbmFtZTogb3ZlcmxheS1zY3JvbGxiYXIKZGVzY3JpcHRpb246IFNjcm9sbGJhciBvdmVybGF5ZWQgd2lkZ2V0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi0wcHJlY2lzZTF+cmV2NjQKbmFtZTogcGFja2FnZXIKZGVzY3JpcHRpb246IFBhY2thZ2UgdXBsb2FkZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zLTh1YnVudHU1LjEKbmFtZTogcGFydGVkCmRlc2NyaXB0aW9uOiBkaXNrIHBhcnRpdGlvbiBtYW5pcHVsYXRvcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjQuMS40LjIrc3ZuMzI4My0zdWJ1bnR1NS4xCm5hbWU6IHBhc3N3ZApkZXNjcmlwdGlvbjogY2hhbmdlIGFuZCBhZG1pbmlzdGVyIHBhc3N3b3JkIGFuZCBncm91cCBkYXRhCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNi4xLTMKbmFtZTogcGF0Y2gKZGVzY3JpcHRpb246IEFwcGx5IGEgZGlmZiBmaWxlIHRvIGFuIG9yaWdpbmFsCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMy4yLTEuMQpuYW1lOiBwYXRjaHV0aWxzCmRlc2NyaXB0aW9uOiBVdGlsaXRpZXMgdG8gd29yayB3aXRoIHBhdGNoZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45OS4yLTFidWlsZDEKbmFtZTogcGF2dWNvbnRyb2wKZGVzY3JpcHRpb246IFB1bHNlQXVkaW8gVm9sdW1lIENvbnRyb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yMDh1YnVudHUxCm5hbWU6IHBidWlsZGVyCmRlc2NyaXB0aW9uOiBwZXJzb25hbCBwYWNrYWdlIGJ1aWxkZXIgZm9yIERlYmlhbiBwYWNrYWdlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuNi0xCm5hbWU6IHBiemlwMgpkZXNjcmlwdGlvbjogcGFyYWxsZWwgYnppcDIgaW1wbGVtZW50YXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjEuOC0ydWJ1bnR1NQpuYW1lOiBwY2l1dGlscwpkZXNjcmlwdGlvbjogTGludXggUENJIFV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwMTgtNgpuYW1lOiBwY21jaWF1dGlscwpkZXNjcmlwdGlvbjogUENNQ0lBIHV0aWxpdGllcyBmb3IgTGludXggMi42CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4xLTJ1YnVudHUyCm5hbWU6IHBlcDgKZGVzY3JpcHRpb246IFB5dGhvbiBQRVAgOCBjb2RlIHN0eWxlIGNoZWNrZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4xNC4yLTZ1YnVudHUyLjIKbmFtZTogcGVybApkZXNjcmlwdGlvbjogTGFycnkgV2FsbCdzIFByYWN0aWNhbCBFeHRyYWN0aW9uIGFuZCBSZXBvcnQgTGFuZ3VhZ2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4xNC4yLTZ1YnVudHUyLjIKbmFtZTogcGVybC1iYXNlCmRlc2NyaXB0aW9uOiBtaW5pbWFsIFBlcmwgc3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMTQuMi02dWJ1bnR1Mi4yCm5hbWU6IHBlcmwtbW9kdWxlcwpkZXNjcmlwdGlvbjogQ29yZSBQZXJsIG1vZHVsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogODo2LjYuOS43LTV1YnVudHUzLjIKbmFtZTogcGVybG1hZ2ljawpkZXNjcmlwdGlvbjogUGVybCBpbnRlcmZhY2UgdG8gdGhlIEltYWdlTWFnaWNrIGdyYXBoaWNzIHJvdXRpbmVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6NC43LjByZWFsbHk0LjYuMC0wdWJ1bnR1MQpuYW1lOiBwaG9ub24KZGVzY3JpcHRpb246IG11bHRpbWVkaWEgZnJhbWV3b3JrIGZyb20gS0RFIC0gbWV0YXBhY2thZ2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjcuMHJlYWxseTQuNi4yLTB1YnVudHUwLjEKbmFtZTogcGhvbm9uLWJhY2tlbmQtZ3N0cmVhbWVyCmRlc2NyaXB0aW9uOiBQaG9ub24gR1N0cmVhbWVyIDAuMTAueCBiYWNrZW5kCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNi4xLTEKbmFtZTogcGhvcm9uaXgtdGVzdC1zdWl0ZQpkZXNjcmlwdGlvbjogY29tcHJlaGVuc2l2ZSB0ZXN0aW5nIGFuZCBiZW5jaG1hcmtpbmcgcGxhdGZvcm0KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4zLjEwLTF1YnVudHUzLjUKbmFtZTogcGhwNS1jbGkKZGVzY3JpcHRpb246IGNvbW1hbmQtbGluZSBpbnRlcnByZXRlciBmb3IgdGhlIHBocDUgc2NyaXB0aW5nIGxhbmd1YWdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMy4xMC0xdWJ1bnR1My41Cm5hbWU6IHBocDUtY29tbW9uCmRlc2NyaXB0aW9uOiBDb21tb24gZmlsZXMgZm9yIHBhY2thZ2VzIGJ1aWx0IGZyb20gdGhlIHBocDUgc291cmNlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMy4xMC0xdWJ1bnR1My41Cm5hbWU6IHBocDUtZ2QKZGVzY3JpcHRpb246IEdEIG1vZHVsZSBmb3IgcGhwNQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjEwMi0zCm5hbWU6IHBpYQpkZXNjcmlwdGlvbjogbW92aWUgcGxheWVyIGZvciB4YXd0dwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjIuMTAuMy0wdWJ1bnR1MS4xCm5hbWU6IHBpZGdpbgpkZXNjcmlwdGlvbjogZ3JhcGhpY2FsIG11bHRpLXByb3RvY29sIGluc3RhbnQgbWVzc2FnaW5nIGNsaWVudCBmb3IgWAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjIuMTAuMy0wdWJ1bnR1MS4xCm5hbWU6IHBpZGdpbi1kYXRhCmRlc2NyaXB0aW9uOiBtdWx0aS1wcm90b2NvbCBpbnN0YW50IG1lc3NhZ2luZyBjbGllbnQgLSBkYXRhIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTQtNHVidW50dTEwCm5hbWU6IHBpZGdpbi1saWJub3RpZnkKZGVzY3JpcHRpb246IGRpc3BsYXkgbm90aWZpY2F0aW9uIGJ1YmJsZXMgaW4gcGlkZ2luCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMCtnaXQyMDEyMTIxOTA2MjQtMX5wcmVjaXNlMQpuYW1lOiBwaWdsaXQKZGVzY3JpcHRpb246IE9wZW5HTCBkcml2ZXIgdGVzdGluZyBmcmFtZXdvcmsKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44LjEtMXVidW50dTEKbmFtZTogcGluZW50cnktZ3RrMgpkZXNjcmlwdGlvbjogR1RLKy0yLWJhc2VkIFBJTiBvciBwYXNzLXBocmFzZSBlbnRyeSBkaWFsb2cgZm9yIEdudVBHCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTUuMi0wdWJ1bnR1MC4xCm5hbWU6IHBpdGl2aQpkZXNjcmlwdGlvbjogbm9uLWxpbmVhciBhdWRpby92aWRlbyBlZGl0b3IgdXNpbmcgR1N0cmVhbWVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjYtMXVidW50dTEKbmFtZTogcGtnLWNvbmZpZwpkZXNjcmlwdGlvbjogbWFuYWdlIGNvbXBpbGUgYW5kIGxpbmsgZmxhZ3MgZm9yIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguMi0ydWJ1bnR1MzAKbmFtZTogcGx5bW91dGgKZGVzY3JpcHRpb246IGdyYXBoaWNhbCBib290IGFuaW1hdGlvbiBhbmQgbG9nZ2VyIC0gbWFpbiBwYWNrYWdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOC4yLTJ1YnVudHUzMApuYW1lOiBwbHltb3V0aC1sYWJlbApkZXNjcmlwdGlvbjogZ3JhcGhpY2FsIGJvb3QgYW5pbWF0aW9uIGFuZCBsb2dnZXIgLSBsYWJlbCBjb250cm9sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOC4yLTJ1YnVudHUzMApuYW1lOiBwbHltb3V0aC10aGVtZS11YnVudHUtbG9nbwpkZXNjcmlwdGlvbjogZ3JhcGhpY2FsIGJvb3QgYW5pbWF0aW9uIGFuZCBsb2dnZXIgLSB1YnVudHUtbG9nbyB0aGVtZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguMi0ydWJ1bnR1MzAKbmFtZTogcGx5bW91dGgtdGhlbWUtdWJ1bnR1LXRleHQKZGVzY3JpcHRpb246IGdyYXBoaWNhbCBib290IGFuaW1hdGlvbiBhbmQgbG9nZ2VyIC0gdWJ1bnR1LWxvZ28gdGhlbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS40LjEtOQpuYW1lOiBwbS11dGlscwpkZXNjcmlwdGlvbjogdXRpbGl0aWVzIGFuZCBzY3JpcHRzIGZvciBwb3dlciBtYW5hZ2VtZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4xNitubXUydWJ1bnR1MQpuYW1lOiBwby1kZWJjb25mCmRlc2NyaXB0aW9uOiB0b29sIGZvciBtYW5hZ2luZyB0ZW1wbGF0ZXMgZmlsZSB0cmFuc2xhdGlvbnMgd2l0aCBnZXR0ZXh0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTA0LTF1YnVudHUxCm5hbWU6IHBvbGljeWtpdC0xCmRlc2NyaXB0aW9uOiBmcmFtZXdvcmsgZm9yIG1hbmFnaW5nIGFkbWluaXN0cmF0aXZlIHBvbGljaWVzIGFuZCBwcml2aWxlZ2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTA1LTF1YnVudHUzLjEKbmFtZTogcG9saWN5a2l0LTEtZ25vbWUKZGVzY3JpcHRpb246IEdOT01FIGF1dGhlbnRpY2F0aW9uIGFnZW50IGZvciBQb2xpY3lLaXQtMQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEwCm5hbWU6IHBvbGljeWtpdC1kZXNrdG9wLXByaXZpbGVnZXMKZGVzY3JpcHRpb246IHJ1biBjb21tb24gZGVza3RvcCBhY3Rpb25zIHdpdGhvdXQgcGFzc3dvcmQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjUtMgpuYW1lOiBwb3BwbGVyLWRhdGEKZGVzY3JpcHRpb246IEVuY29kaW5nIGRhdGEgZm9yIHRoZSBwb3BwbGVyIFBERiByZW5kZXJpbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE4LjQtMXVidW50dTMKbmFtZTogcG9wcGxlci11dGlscwpkZXNjcmlwdGlvbjogUERGIHV0aWxpdGllcyAoYmFzZWQgb24gUG9wcGxlcikKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41M3VidW50dTEKbmFtZTogcG9wdWxhcml0eS1jb250ZXN0CmRlc2NyaXB0aW9uOiBWb3RlIGZvciB5b3VyIGZhdm91cml0ZSBwYWNrYWdlcyBhdXRvbWF0aWNhbGx5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMzEKbmFtZTogcG93ZXJtZ210LWJhc2UKZGVzY3JpcHRpb246IENvbW1vbiB1dGlscyBhbmQgY29uZmlncyBmb3IgcG93ZXIgbWFuYWdlbWVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuNS01dWJ1bnR1MQpuYW1lOiBwcHAKZGVzY3JpcHRpb246IFBvaW50LXRvLVBvaW50IFByb3RvY29sIChQUFApIC0gZGFlbW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMy4xOCtubXUzdWJ1bnR1MQpuYW1lOiBwcHBjb25maWcKZGVzY3JpcHRpb246IEEgdGV4dCBtZW51IGJhc2VkIHV0aWxpdHkgZm9yIGNvbmZpZ3VyaW5nIHBwcAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIwdWJ1bnR1MQpuYW1lOiBwcHBvZWNvbmYKZGVzY3JpcHRpb246IGNvbmZpZ3VyZXMgUFBQb0UvQURTTCBjb25uZWN0aW9ucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjcuMi02Cm5hbWU6IHBwdHAtbGludXgKZGVzY3JpcHRpb246IFBvaW50LXRvLVBvaW50IFR1bm5lbGluZyBQcm90b2NvbCAoUFBUUCkgQ2xpZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIzLTEKbmFtZTogcHJpbnRlci1kcml2ZXItYzJlc3AKZGVzY3JpcHRpb246IHByaW50ZXIgZHJpdmVyIGZvciBLb2RhayBFU1AgQWlPIGNvbG9yIGlua2pldCBTZXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjAxMTEyMDJkZnNnMC0xdWJ1bnR1MQpuYW1lOiBwcmludGVyLWRyaXZlci1mb28yempzCmRlc2NyaXB0aW9uOiBwcmludGVyIGRyaXZlciBmb3IgWmpTdHJlYW0tYmFzZWQgcHJpbnRlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4yLjh+cHJlMS0wdWJ1bnR1Mi4xCm5hbWU6IHByaW50ZXItZHJpdmVyLWd1dGVucHJpbnQKZGVzY3JpcHRpb246IHByaW50ZXIgZHJpdmVycyBmb3IgQ1VQUwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjEyLjItMXVidW50dTMuMQpuYW1lOiBwcmludGVyLWRyaXZlci1ocGN1cHMKZGVzY3JpcHRpb246IEhQIExpbnV4IFByaW50aW5nIGFuZCBJbWFnaW5nIC0gQ1VQUyBSYXN0ZXIgZHJpdmVyIChocGN1cHMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMTIuMi0xdWJ1bnR1My4xCm5hbWU6IHByaW50ZXItZHJpdmVyLWhwaWpzCmRlc2NyaXB0aW9uOiBIUCBMaW51eCBQcmludGluZyBhbmQgSW1hZ2luZyAtIGdzIElKUyBkcml2ZXIgKGhwaWpzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjAuOS02dWJ1bnR1MQpuYW1lOiBwcmludGVyLWRyaXZlci1taW4xMnh4dwpkZXNjcmlwdGlvbjogcHJpbnRlciBkcml2ZXIgZm9yIEtvbmljYU1pbm9sdGEgUGFnZVBybyAxWzIzNF14eFcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMytub25kYnMtMHVidW50dTEKbmFtZTogcHJpbnRlci1kcml2ZXItcG5tMnBwYQpkZXNjcmlwdGlvbjogcHJpbnRlciBkcml2ZXIgZm9yIEhQLUdESSBwcmludGVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjEyLjItMXVidW50dTMuMQpuYW1lOiBwcmludGVyLWRyaXZlci1wb3N0c2NyaXB0LWhwCmRlc2NyaXB0aW9uOiBIUCBQcmludGVycyBQb3N0U2NyaXB0IERlc2NyaXB0aW9ucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMtM3VidW50dTAuMQpuYW1lOiBwcmludGVyLWRyaXZlci1wdG91Y2gKZGVzY3JpcHRpb246IHByaW50ZXIgZHJpdmVyIEJyb3RoZXIgUC10b3VjaCBsYWJlbCBwcmludGVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMrcmVwYWNrMC0yCm5hbWU6IHByaW50ZXItZHJpdmVyLXB4bGpyCmRlc2NyaXB0aW9uOiBwcmludGVyIGRyaXZlciBmb3IgSFAgQ29sb3IgTGFzZXJKZXQgMzV4eC8zNnh4CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS0zCm5hbWU6IHByaW50ZXItZHJpdmVyLXNhZy1nZGkKZGVzY3JpcHRpb246IHByaW50ZXIgZHJpdmVyIGZvciBSaWNvaCBBZmljaW8gU1AgMTAwMHMvU1AgMTEwMHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjArc3ZuMzAwLTEuMXVidW50dTIKbmFtZTogcHJpbnRlci1kcml2ZXItc3BsaXgKZGVzY3JpcHRpb246IERyaXZlciBmb3IgU2Ftc3VuZyBhbmQgWGVyb3ggU1BMMiBhbmQgU1BMYyBsYXNlciBwcmludGVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIwCm5hbWU6IHByaXN0aW5lLXRhcgpkZXNjcmlwdGlvbjogcmVnZW5lcmF0ZSBwcmlzdGluZSB0YXJiYWxscwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjMuMi44LTExdWJ1bnR1NgpuYW1lOiBwcm9jcHMKZGVzY3JpcHRpb246IC9wcm9jIGZpbGUgc3lzdGVtIHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMS0xdWJ1bnR1MgpuYW1lOiBwcm90b2J1Zi1jb21waWxlcgpkZXNjcmlwdGlvbjogY29tcGlsZXIgZm9yIHByb3RvY29sIGJ1ZmZlciBkZWZpbml0aW9uIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4yLjE2LTF1YnVudHU0LjEKbmFtZTogcHNlbnNvcgpkZXNjcmlwdGlvbjogZGlzcGxheSBncmFwaHMgZm9yIG1vbml0b3JpbmcgaGFyZHdhcmUgdGVtcGVyYXR1cmUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjIuMTYtMXVidW50dTQuMQpuYW1lOiBwc2Vuc29yLWNvbW1vbgpkZXNjcmlwdGlvbjogY29tbW9uIGZpbGVzIGZvciBQc2Vuc29yIGFuZCBQc2Vuc29yIHNlcnZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyMi4xNS0ydWJ1bnR1MS4xCm5hbWU6IHBzbWlzYwpkZXNjcmlwdGlvbjogdXRpbGl0aWVzIHRoYXQgdXNlIHRoZSBwcm9jIGZpbGUgc3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4xLTB1YnVudHUxNS4yCm5hbWU6IHB1bHNlYXVkaW8KZGVzY3JpcHRpb246IFB1bHNlQXVkaW8gc291bmQgc2VydmVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4xLTB1YnVudHUxNS4yCm5hbWU6IHB1bHNlYXVkaW8tbW9kdWxlLWJsdWV0b290aApkZXNjcmlwdGlvbjogQmx1ZXRvb3RoIG1vZHVsZSBmb3IgUHVsc2VBdWRpbyBzb3VuZCBzZXJ2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEtMHVidW50dTE1LjIKbmFtZTogcHVsc2VhdWRpby1tb2R1bGUtZ2NvbmYKZGVzY3JpcHRpb246IEdDb25mIG1vZHVsZSBmb3IgUHVsc2VBdWRpbyBzb3VuZCBzZXJ2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEtMHVidW50dTE1LjIKbmFtZTogcHVsc2VhdWRpby1tb2R1bGUteDExCmRlc2NyaXB0aW9uOiBYMTEgbW9kdWxlIGZvciBQdWxzZUF1ZGlvIHNvdW5kIHNlcnZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMS0wdWJ1bnR1MTUuMgpuYW1lOiBwdWxzZWF1ZGlvLXV0aWxzCmRlc2NyaXB0aW9uOiBDb21tYW5kIGxpbmUgdG9vbHMgZm9yIHRoZSBQdWxzZUF1ZGlvIHNvdW5kIHNlcnZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwK3IxNDEtMHVidW50dTMKbmFtZTogcHlib290Y2hhcnRndWkKZGVzY3JpcHRpb246IGJvb3Qgc2VxdWVuY2UgdmlzdWFsaXNhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjUuMC0xdWJ1bnR1MQpuYW1lOiBweWZsYWtlcwpkZXNjcmlwdGlvbjogcGFzc2l2ZSBjaGVja2VyIG9mIFB5dGhvbiBwcm9ncmFtcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjcuMy0wdWJ1bnR1MgpuYW1lOiBweXRob24KZGVzY3JpcHRpb246IGludGVyYWN0aXZlIGhpZ2gtbGV2ZWwgb2JqZWN0LW9yaWVudGVkIGxhbmd1YWdlIChkZWZhdWx0IHZlcnNpb24pCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNy4zLTB1YnVudHUyCm5hbWU6IHB5dGhvbi1hbGwKZGVzY3JpcHRpb246IHBhY2thZ2UgZGVwZW5kaW5nIG9uIGFsbCBzdXBwb3J0ZWQgUHl0aG9uIHJ1bnRpbWUgdmVyc2lvbnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjkyLTB1YnVudHUxCm5hbWU6IHB5dGhvbi1hcHBpbmRpY2F0b3IKZGVzY3JpcHRpb246IFB5dGhvbiBiaW5kaW5ncyBmb3IgbGliYXBwaW5kaWNhdG9yCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMC4xLTB1YnVudHUxNy4xCm5hbWU6IHB5dGhvbi1hcHBvcnQKZGVzY3JpcHRpb246IGFwcG9ydCBjcmFzaCByZXBvcnQgaGFuZGxpbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguM3VidW50dTcKbmFtZTogcHl0aG9uLWFwdApkZXNjcmlwdGlvbjogUHl0aG9uIGludGVyZmFjZSB0byBsaWJhcHQtcGtnCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOC4zdWJ1bnR1NwpuYW1lOiBweXRob24tYXB0LWNvbW1vbgpkZXNjcmlwdGlvbjogUHl0aG9uIGludGVyZmFjZSB0byBsaWJhcHQtcGtnIChsb2NhbGVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQzK2J6cjgwNS0wdWJ1bnR1NwpuYW1lOiBweXRob24tYXB0ZGFlbW9uCmRlc2NyaXB0aW9uOiBQeXRob24gbW9kdWxlIGZvciB0aGUgc2VydmVyIGFuZCBjbGllbnQgb2YgYXB0ZGFlbW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNDMrYnpyODA1LTB1YnVudHU3Cm5hbWU6IHB5dGhvbi1hcHRkYWVtb24uZ3RrM3dpZGdldHMKZGVzY3JpcHRpb246IFB5dGhvbiBHVEsrIDMgd2lkZ2V0cyB0byBydW4gYW4gYXB0ZGFlbW9uIGNsaWVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQzK2J6cjgwNS0wdWJ1bnR1NwpuYW1lOiBweXRob24tYXB0ZGFlbW9uLnBrY29tcGF0CmRlc2NyaXB0aW9uOiBQYWNrYWdlS2l0IGNvbXBhdGliaWx0eSBmb3IgQXB0RGFlbW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4wLTJidWlsZDEKbmFtZTogcHl0aG9uLWJlYXV0aWZ1bHNvdXAKZGVzY3JpcHRpb246IGVycm9yLXRvbGVyYW50IEhUTUwgcGFyc2VyIGZvciBQeXRob24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjItMHVidW50dTIKbmFtZTogcHl0aG9uLWJvdG8KZGVzY3JpcHRpb246IFB5dGhvbiBpbnRlcmZhY2UgdG8gQW1hem9uJ3MgV2ViIFNlcnZpY2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuMy0xdWJ1bnR1NQpuYW1lOiBweXRob24tYnJsYXBpCmRlc2NyaXB0aW9uOiBQeXRob24gYmluZGluZ3MgZm9yIEJybEFQSQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjUuMS0wdWJ1bnR1MgpuYW1lOiBweXRob24tYnpybGliCmRlc2NyaXB0aW9uOiBkaXN0cmlidXRlZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIC0gcHl0aG9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS44LjgtMXVidW50dTMKbmFtZTogcHl0aG9uLWNhaXJvCmRlc2NyaXB0aW9uOiBQeXRob24gYmluZGluZ3MgZm9yIHRoZSBDYWlybyB2ZWN0b3IgZ3JhcGhpY3MgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMTd1YnVudHUyCm5hbWU6IHB5dGhvbi1jZW50cmFsCmRlc2NyaXB0aW9uOiByZWdpc3RlciBhbmQgYnVpbGQgdXRpbGl0eSBmb3IgUHl0aG9uIHBhY2thZ2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMC4xLTJidWlsZDEKbmFtZTogcHl0aG9uLWNoYXJkZXQKZGVzY3JpcHRpb246IHVuaXZlcnNhbCBjaGFyYWN0ZXIgZW5jb2RpbmcgZGV0ZWN0b3IKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi40LjQtMnVidW50dTMKbmFtZTogcHl0aG9uLWNoZWV0YWgKZGVzY3JpcHRpb246IHRleHQtYmFzZWQgdGVtcGxhdGUgZW5naW5lIGFuZCBQeXRob24gY29kZSBnZW5lcmF0b3IKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjUuOTQtMHVidW50dTQKbmFtZTogcHl0aG9uLWNvbXBpemNvbmZpZwpkZXNjcmlwdGlvbjogQ29tcGl6Y29uZmlnIGJpbmRpbmdzIGZvciBweXRob24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLTFidWlsZDEKbmFtZTogcHl0aG9uLWNvbmZpZ2dsdWUKZGVzY3JpcHRpb246IEdsdWVzIHRvZ2V0aGVyIG9wdHBhcnNlLk9wdGlvblBhcnNlciBhbmQgQ29uZmlnUGFyc2VyLkNvbmZpZ1BhcnNlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjcuMitkcy0zYnVpbGQxCm5hbWU6IHB5dGhvbi1jb25maWdvYmoKZGVzY3JpcHRpb246IHNpbXBsZSBidXQgcG93ZXJmdWwgY29uZmlnIGZpbGUgcmVhZGVyIGFuZCB3cml0ZXIgZm9yIFB5dGhvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQtMXVidW50dTEKbmFtZTogcHl0aG9uLWNvdmVyYWdlCmRlc2NyaXB0aW9uOiBjb2RlIGNvdmVyYWdlIHRvb2wgZm9yIFB5dGhvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMS0xdWJ1bnR1MC4xCm5hbWU6IHB5dGhvbi1jcnlwdG8KZGVzY3JpcHRpb246IGNyeXB0b2dyYXBoaWMgYWxnb3JpdGhtcyBhbmQgcHJvdG9jb2xzIGZvciBQeXRob24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjgtMXVidW50dTIKbmFtZTogcHl0aG9uLWNzc3V0aWxzCmRlc2NyaXB0aW9uOiBDU1MgQ2FzY2FkaW5nIFN0eWxlIFNoZWV0cyBwYXJzZXIgYW5kIGJ1aWxkZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS45LjYxLTB1YnVudHUyCm5hbWU6IHB5dGhvbi1jdXBzCmRlc2NyaXB0aW9uOiBQeXRob24gYmluZGluZ3MgZm9yIENVUFMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4zLjgrMjAxMjAyMDEtMHVidW50dTguMQpuYW1lOiBweXRob24tY3Vwc2hlbHBlcnMKZGVzY3JpcHRpb246IFB5dGhvbiBtb2R1bGVzIGZvciBwcmludGVyIGNvbmZpZ3VyYXRpb24gd2l0aCBDVVBTCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNS0xCm5hbWU6IHB5dGhvbi1kYXRldXRpbApkZXNjcmlwdGlvbjogcG93ZXJmdWwgZXh0ZW5zaW9ucyB0byB0aGUgc3RhbmRhcmQgZGF0ZXRpbWUgbW9kdWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4wLTF1YnVudHUxCm5hbWU6IHB5dGhvbi1kYnVzCmRlc2NyaXB0aW9uOiBzaW1wbGUgaW50ZXJwcm9jZXNzIG1lc3NhZ2luZyBzeXN0ZW0gKFB5dGhvbiBpbnRlcmZhY2UpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4wLTF1YnVudHUxCm5hbWU6IHB5dGhvbi1kYnVzLWRldgpkZXNjcmlwdGlvbjogbWFpbiBsb29wIGludGVncmF0aW9uIGRldmVsb3BtZW50IGZpbGVzIGZvciBweXRob24tZGJ1cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuMjF1YnVudHUxCm5hbWU6IHB5dGhvbi1kZWJpYW4KZGVzY3JpcHRpb246IFB5dGhvbiBtb2R1bGVzIHRvIHdvcmsgd2l0aCBEZWJpYW4tcmVsYXRlZCBkYXRhIGZvcm1hdHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMGJ1aWxkMQpuYW1lOiBweXRob24tZGViaWFuYnRzCmRlc2NyaXB0aW9uOiBQeXRob24gaW50ZXJmYWNlIHRvIERlYmlhbidzIEJ1ZyBUcmFja2luZyBTeXN0ZW0KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS45K2dpdDIwMTIwMzIwLTB1YnVudHUxCm5hbWU6IHB5dGhvbi1kZWJ0YWdzaHcKZGVzY3JpcHRpb246IE1hdGNoIGRlYnRhZ3MgaGFyZHdhcmU6OiB0YWdzIGFnYWluc3QgdGhlIGFjdHVhbCBoYXJkd2FyZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjMuMi0xCm5hbWU6IHB5dGhvbi1kZWNvcmF0b3IKZGVzY3JpcHRpb246IHNpbXBsaWZ5IHVzYWdlIG9mIFB5dGhvbiBkZWNvcmF0b3JzIGJ5IHByb2dyYW1tZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4yK2J6cjQ4MS0xCm5hbWU6IHB5dGhvbi1kZWZlcgpkZXNjcmlwdGlvbjogU21hbGwgZnJhbWV3b3JrIGZvciBhc3luY2hyb25vdXMgcHJvZ3JhbW1pbmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi43LjMtMHVidW50dTIKbmFtZTogcHl0aG9uLWRldgpkZXNjcmlwdGlvbjogaGVhZGVyIGZpbGVzIGFuZCBhIHN0YXRpYyBsaWJyYXJ5IGZvciBQeXRob24gKGRlZmF1bHQpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4wLTB1YnVudHUxCm5hbWU6IHB5dGhvbi1kaXJzcGVjCmRlc2NyaXB0aW9uOiBQeXRob24gVXNlciBGb2xkZXJzIFNwZWNpZmljYXRpb24gTGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguMgpuYW1lOiBweXRob24tZGlzdHJvLWluZm8KZGVzY3JpcHRpb246IGluZm9ybWF0aW9uIGFib3V0IGRpc3RyaWJ1dGlvbnMnIHJlbGVhc2VzIChQeXRob24gbW9kdWxlKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjM0LTB1YnVudHUwLjEKbmFtZTogcHl0aG9uLWRpc3R1dGlscy1leHRyYQpkZXNjcmlwdGlvbjogZW5oYW5jZW1lbnRzIHRvIHRoZSBQeXRob24gYnVpbGQgc3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMy42LTEKbmFtZTogcHl0aG9uLWRucwpkZXNjcmlwdGlvbjogRE5TIGNsaWVudCBtb2R1bGUgZm9yIFB5dGhvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMS0xdWJ1bnR1MQpuYW1lOiBweXRob24tZWdlbml4LW14ZGF0ZXRpbWUKZGVzY3JpcHRpb246IGRhdGUgYW5kIHRpbWUgaGFuZGxpbmcgcm91dGluZXMgZm9yIFB5dGhvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMS0xdWJ1bnR1MQpuYW1lOiBweXRob24tZWdlbml4LW14dG9vbHMKZGVzY3JpcHRpb246IGNvbGxlY3Rpb24gb2YgYWRkaXRpb25hbCBidWlsdGlucyBmb3IgUHl0aG9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNi41LTJidWlsZDEKbmFtZTogcHl0aG9uLWVuY2hhbnQKZGVzY3JpcHRpb246IHNwZWxsY2hlY2tpbmcgbGlicmFyeSBmb3IgUHl0aG9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS4wLTMuMWJ1aWxkMQpuYW1lOiBweXRob24tZmFzdGltcG9ydApkZXNjcmlwdGlvbjogRmFzdGltcG9ydCBmaWxlIGZvcm1hdCBwYXJzZXIgYW5kIGdlbmVyYXRvciBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMS4yLTF1YnVudHUxfnByZWNpc2UwCm5hbWU6IHB5dGhvbi1mZWVkcGFyc2VyCmRlc2NyaXB0aW9uOiBVbml2ZXJzYWwgRmVlZCBQYXJzZXIgZm9yIFB5dGhvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIuNC0ydWJ1bnR1MgpuYW1lOiBweXRob24tZm9ybWVuY29kZQpkZXNjcmlwdGlvbjogdmFsaWRhdGlvbiBhbmQgZm9ybSBnZW5lcmF0aW9uIFB5dGhvbiBwYWNrYWdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNy4yLTQKbmFtZTogcHl0aG9uLWZwY29uc3QKZGVzY3JpcHRpb246IFV0aWxpdGllcyBmb3IgaGFuZGxpbmcgSUVFRSA3NTQgZmxvYXRpbmcgcG9pbnQgc3BlY2lhbCB2YWx1ZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yOC4xK2Rmc2ctMQpuYW1lOiBweXRob24tZ2NvbmYKZGVzY3JpcHRpb246IFB5dGhvbiBiaW5kaW5ncyBmb3IgdGhlIEdDb25mIGNvbmZpZ3VyYXRpb24gZGF0YWJhc2Ugc3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNy4zLTF1YnVudHUxCm5hbWU6IHB5dGhvbi1nZGJtCmRlc2NyaXB0aW9uOiBHTlUgZGJtIGRhdGFiYXNlIHN1cHBvcnQgZm9yIFB5dGhvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYtMgpuYW1lOiBweXRob24tZ2Vuc2hpCmRlc2NyaXB0aW9uOiBQeXRob24gWE1MLWJhc2VkIHRlbXBsYXRlIGVuZ2luZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEzLjYtMXVidW50dTEKbmFtZTogcHl0aG9uLWdldmVudApkZXNjcmlwdGlvbjogZ2V2ZW50IGlzIGEgY29yb3V0aW5lLWJhc2VkIFB5dGhvbiBuZXR3b3JraW5nIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjItMX5wcmVjaXNlCm5hbWU6IHB5dGhvbi1naQpkZXNjcmlwdGlvbjogUHl0aG9uIDIueCBiaW5kaW5ncyBmb3IgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGxpYnJhcmllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMi0xfnByZWNpc2UKbmFtZTogcHl0aG9uLWdpLWNhaXJvCmRlc2NyaXB0aW9uOiBQeXRob24gQ2Fpcm8gYmluZGluZ3MgZm9yIHRoZSBHT2JqZWN0IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yNC4wLTMKbmFtZTogcHl0aG9uLWdsYWRlMgpkZXNjcmlwdGlvbjogR1RLKyBiaW5kaW5nczogR2xhZGUgc3VwcG9ydAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMS0wdWJ1bnR1NwpuYW1lOiBweXRob24tZ21lbnUKZGVzY3JpcHRpb246IEdOT01FIGltcGxlbWVudGF0aW9uIG9mIHRoZSBmcmVlZGVza3RvcCBtZW51IHNwZWNpZmljYXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yOC4xK2Rmc2ctMQpuYW1lOiBweXRob24tZ25vbWUyCmRlc2NyaXB0aW9uOiBQeXRob24gYmluZGluZ3MgZm9yIHRoZSBHTk9NRSBkZXNrdG9wIGVudmlyb25tZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMzIuMCtkZnNnLTEKbmFtZTogcHl0aG9uLWdub21la2V5cmluZwpkZXNjcmlwdGlvbjogUHl0aG9uIGJpbmRpbmdzIGZvciB0aGUgR05PTUUga2V5cmluZyBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMy4yLTkuMXVidW50dTMKbmFtZTogcHl0aG9uLWdudXBnaW50ZXJmYWNlCmRlc2NyaXB0aW9uOiBQeXRob24gaW50ZXJmYWNlIHRvIEdudVBHIChHUEcpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4yLTF+cHJlY2lzZQpuYW1lOiBweXRob24tZ29iamVjdApkZXNjcmlwdGlvbjogUHl0aG9uIDIueCBiaW5kaW5ncyBmb3IgR09iamVjdCAtIHRyYW5zaXRpb25hbCBwYWNrYWdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjguNi0xMHVidW50dTEKbmFtZTogcHl0aG9uLWdvYmplY3QtMgpkZXNjcmlwdGlvbjogZGVwcmVjYXRlZCBzdGF0aWMgUHl0aG9uIGJpbmRpbmdzIGZvciB0aGUgR09iamVjdCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjguNi0xMHVidW50dTEKbmFtZTogcHl0aG9uLWdvYmplY3QtMi1kZXYKZGVzY3JpcHRpb246IGRldmVsb3BtZW50IGhlYWRlcnMgZm9yIHRoZSBzdGF0aWMgR09iamVjdCBQeXRob24gYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44LjItNApuYW1lOiBweXRob24tZ3BvZApkZXNjcmlwdGlvbjogUHl0aG9uIGJpbmRpbmdzIGZvciBsaWJncG9kCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMy4xLTF1YnVudHU1LjEKbmFtZTogcHl0aG9uLWdyZWVubGV0CmRlc2NyaXB0aW9uOiBMaWdodHdlaWdodCBpbi1wcm9jZXNzIGNvbmN1cnJlbnQgcHJvZ3JhbW1pbmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMC4yMi0zdWJ1bnR1MC4xCm5hbWU6IHB5dGhvbi1nc3QwLjEwCmRlc2NyaXB0aW9uOiBnZW5lcmljIG1lZGlhLXBsYXlpbmcgZnJhbWV3b3JrIChQeXRob24gYmluZGluZ3MpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjQuMC0zCm5hbWU6IHB5dGhvbi1ndGsyCmRlc2NyaXB0aW9uOiBQeXRob24gYmluZGluZ3MgZm9yIHRoZSBHVEsrIHdpZGdldCBzZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yNC4wLTMKbmFtZTogcHl0aG9uLWd0azItZGV2CmRlc2NyaXB0aW9uOiBHVEsrIGJpbmRpbmdzOiBkZXZlbCBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjI0LjAtMwpuYW1lOiBweXRob24tZ3RrMi1kb2MKZGVzY3JpcHRpb246IFB5dGhvbiBiaW5kaW5ncyBmb3IgdGhlIEdUSysgd2lkZ2V0IHNldCAtIGRvY3VtZW50YXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4xMC4xLTJidWlsZDEKbmFtZTogcHl0aG9uLWd0a3NvdXJjZXZpZXcyCmRlc2NyaXB0aW9uOiBQeXRob24gYmluZGluZ3MgZm9yIHRoZSBHdGtTb3VyY2VWaWV3IHdpZGdldAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjcuMi0xdWJ1bnR1MgpuYW1lOiBweXRob24taHR0cGxpYjIKZGVzY3JpcHRpb246IGNvbXByZWhlbnNpdmUgSFRUUCBjbGllbnQgbGlicmFyeSB3cml0dGVuIGZvciBQeXRob24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS40LjEtM3VidW50dTEKbmFtZTogcHl0aG9uLWlidXMKZGVzY3JpcHRpb246IEludGVsbGlnZW50IElucHV0IEJ1cyAtIFB5dGhvbiBzdXBwb3J0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS43LTQKbmFtZTogcHl0aG9uLWltYWdpbmcKZGVzY3JpcHRpb246IFB5dGhvbiBJbWFnaW5nIExpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi42LTEKbmFtZTogcHl0aG9uLWppbmphMgpkZXNjcmlwdGlvbjogc21hbGwgYnV0IGZhc3QgYW5kIGVhc3kgdG8gdXNlIHN0YW5kLWFsb25lIHRlbXBsYXRlIGVuZ2luZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuMi0wdWJ1bnR1MC4xMi4wNC4yCm5hbWU6IHB5dGhvbi1rZXlyaW5nCmRlc2NyaXB0aW9uOiBzdG9yZSBhbmQgYWNjZXNzIHlvdXIgcGFzc3dvcmRzIHNhZmVseQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuNTYuMQpuYW1lOiBweXRob24tbGF1bmNocGFkLWludGVncmF0aW9uCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciBsYXVuY2hwYWQgaW50ZWdyYXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS45LjEyLTEKbmFtZTogcHl0aG9uLWxhdW5jaHBhZGxpYgpkZXNjcmlwdGlvbjogTGF1bmNocGFkIHdlYiBzZXJ2aWNlcyBjbGllbnQgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEyLjAtMXVidW50dTEKbmFtZTogcHl0aG9uLWxhenIucmVzdGZ1bGNsaWVudApkZXNjcmlwdGlvbjogY2xpZW50IGZvciBsYXpyLnJlc3RmdWwtYmFzZWQgd2ViIHNlcnZpY2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4zLTEKbmFtZTogcHl0aG9uLWxhenIudXJpCmRlc2NyaXB0aW9uOiBsaWJyYXJ5IGZvciBwYXJzaW5nLCBtYW5pcHVsYXRpbmcsIGFuZCBnZW5lcmF0aW5nIFVSSXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zLjEtMHVidW50dTEKbmFtZTogcHl0aG9uLWxkdHAKZGVzY3JpcHRpb246IFB5dGhvbiBiaW5kaW5ncyBmb3IgbGR0cAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjQuNy0wdWJ1bnR1NC4xCm5hbWU6IHB5dGhvbi1saWJwcm94eQpkZXNjcmlwdGlvbjogYXV0b21hdGljIHByb3h5IGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudCBsaWJyYXJ5IChweXRob24pCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNy44LmRmc2ctNS4xdWJ1bnR1NC4zCm5hbWU6IHB5dGhvbi1saWJ4bWwyCmRlc2NyaXB0aW9uOiBQeXRob24gYmluZGluZ3MgZm9yIHRoZSBHTk9NRSBYTUwgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMuMC0zCm5hbWU6IHB5dGhvbi1sb3VpcwpkZXNjcmlwdGlvbjogUHl0aG9uIGJpbmRpbmdzIGZvciBsaWJsb3VpcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMuMi0xCm5hbWU6IHB5dGhvbi1seG1sCmRlc2NyaXB0aW9uOiBweXRob25pYyBiaW5kaW5nIGZvciB0aGUgbGlieG1sMiBhbmQgbGlieHNsdCBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yMS4xLTJ1YnVudHUyCm5hbWU6IHB5dGhvbi1tMmNyeXB0bwpkZXNjcmlwdGlvbjogYSBjcnlwdG8gYW5kIFNTTCB0b29sa2l0IGZvciBQeXRob24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4wOS0yCm5hbWU6IHB5dGhvbi1tYWdpYwpkZXNjcmlwdGlvbjogRmlsZSB0eXBlIGRldGVybWluYXRpb24gbGlicmFyeSB1c2luZyAibWFnaWMiIG51bWJlcnMgKFB5dGhvbiBiaW5kaW5ncykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC41LjAtMQpuYW1lOiBweXRob24tbWFrbwpkZXNjcmlwdGlvbjogZmFzdCBhbmQgbGlnaHR3ZWlnaHQgdGVtcGxhdGluZyBmb3IgdGhlIFB5dGhvbiBwbGF0Zm9ybQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE1LTEKbmFtZTogcHl0aG9uLW1hcmt1cHNhZmUKZGVzY3JpcHRpb246IFhNTC9IVE1ML1hIVE1MIE1hcmt1cCBzYWZlIHN0cmluZyBmb3IgUHl0aG9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNy4zLTB1YnVudHUyCm5hbWU6IHB5dGhvbi1taW5pbWFsCmRlc2NyaXB0aW9uOiBtaW5pbWFsIHN1YnNldCBvZiB0aGUgUHl0aG9uIGxhbmd1YWdlIChkZWZhdWx0IHZlcnNpb24pCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMjAtMXVidW50dTEKbmFtZTogcHl0aG9uLW11dGFnZW4KZGVzY3JpcHRpb246IGF1ZGlvIG1ldGFkYXRhIGVkaXRpbmcgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjQtMWJ1aWxkMQpuYW1lOiBweXRob24tbXlncG9jbGllbnQKZGVzY3JpcHRpb246IENsaWVudCBsaWJyYXJ5IGZvciB0aGUgbXkuZ3BvZGRlci5vcmcgd2ViIHNlcnZpY2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC41Mi4xMS0ydWJ1bnR1MTAKbmFtZTogcHl0aG9uLW5ld3QKZGVzY3JpcHRpb246IEEgTkVXVCBtb2R1bGUgZm9yIFB5dGhvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMi0zCm5hbWU6IHB5dGhvbi1ub3NlCmRlc2NyaXB0aW9uOiB0ZXN0IGRpc2NvdmVyeSBhbmQgcnVubmluZyBvZiBQeXRob24ncyB1bml0dGVzdAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuMS0zCm5hbWU6IHB5dGhvbi1ub3RpZnkKZGVzY3JpcHRpb246IFB5dGhvbiBiaW5kaW5ncyBmb3IgbGlibm90aWZ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS42LjEtNnVidW50dTEKbmFtZTogcHl0aG9uLW51bXB5CmRlc2NyaXB0aW9uOiBOdW1lcmljYWwgUHl0aG9uIGFkZHMgYSBmYXN0IGFycmF5IGZhY2lsaXR5IHRvIHRoZSBQeXRob24gbGFuZ3VhZ2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjEtM2J1aWxkMQpuYW1lOiBweXRob24tb2F1dGgKZGVzY3JpcHRpb246IFB5dGhvbiBsaWJyYXJ5IGltcGxlbWVudGluZyBvZiB0aGUgT0F1dGggcHJvdG9jb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zLjEtNwpuYW1lOiBweXRob24tb3BlbmN2CmRlc2NyaXB0aW9uOiBQeXRob24gYmluZGluZ3MgZm9yIHRoZSBjb21wdXRlciB2aXNpb24gbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMX5iMi0xCm5hbWU6IHB5dGhvbi1vcGVuZ2wKZGVzY3JpcHRpb246IFB5dGhvbiBiaW5kaW5ncyB0byBPcGVuR0wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4yLjUtM3VidW50dTEKbmFtZTogcHl0aG9uLW9wZW5pZApkZXNjcmlwdGlvbjogT3BlbklEIHN1cHBvcnQgZm9yIHNlcnZlcnMgYW5kIGNvbnN1bWVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjUuNi0xCm5hbWU6IHB5dGhvbi1vcGVucHl4bApkZXNjcmlwdGlvbjogbW9kdWxlIHRvIHJlYWQvd3JpdGUgT3BlblhNTCB4bHN4L3hsc20gZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMi0xdWJ1bnR1MgpuYW1lOiBweXRob24tb3BlbnNzbApkZXNjcmlwdGlvbjogUHl0aG9uIHdyYXBwZXIgYXJvdW5kIHRoZSBPcGVuU1NMIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC43LjItNHVidW50dTMKbmFtZTogcHl0aG9uLXBhY2thZ2VraXQKZGVzY3JpcHRpb246IFBhY2thZ2VLaXQgUHl0aG9uIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC4yLTEyLjJ1YnVudHU0Cm5hbWU6IHB5dGhvbi1wYW0KZGVzY3JpcHRpb246IEEgUHl0aG9uIGludGVyZmFjZSB0byB0aGUgUEFNIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS43LjcuMS0yCm5hbWU6IHB5dGhvbi1wYXJhbWlrbwpkZXNjcmlwdGlvbjogTWFrZSBzc2ggdjIgY29ubmVjdGlvbnMgd2l0aCBQeXRob24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS43LjUuMS00dWJ1bnR1MgpuYW1lOiBweXRob24tcGFzdGUKZGVzY3JpcHRpb246IHRvb2xzIGZvciB1c2luZyBhIFdlYiBTZXJ2ZXIgR2F0ZXdheSBJbnRlcmZhY2Ugc3RhY2sKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41LjAtMmJ1aWxkMQpuYW1lOiBweXRob24tcGFzdGVkZXBsb3kKZGVzY3JpcHRpb246IGxvYWQsIGNvbmZpZ3VyZSwgYW5kIGNvbXBvc2UgV1NHSSBhcHBsaWNhdGlvbnMgYW5kIHNlcnZlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS43LjUtMQpuYW1lOiBweXRob24tcGFzdGVzY3JpcHQKZGVzY3JpcHRpb246IHNlcnZpbmcgd2ViIGFwcGxpY2F0aW9ucywgY3JlYXRpbmcgZmlsZSBsYXlvdXRzIGZvciBQeXRob24gcGFja2FnZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4zLTF1YnVudHUyCm5hbWU6IHB5dGhvbi1wZXhwZWN0CmRlc2NyaXB0aW9uOiBQeXRob24gbW9kdWxlIGZvciBhdXRvbWF0aW5nIGludGVyYWN0aXZlIGFwcGxpY2F0aW9ucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAtMWJ1aWxkMQpuYW1lOiBweXRob24tcGlwCmRlc2NyaXB0aW9uOiBhbHRlcm5hdGl2ZSBQeXRob24gcGFja2FnZSBpbnN0YWxsZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC43LjIrYnpyNTctMHVidW50dTEKbmFtZTogcHl0aG9uLXBpc3Rvbi1taW5pLWNsaWVudApkZXNjcmlwdGlvbjogbGlicmFyeSBmb3Igd3JpdGluZyBjbGllbnRzIGZvciBEamFuZ28ncyBQaXN0b24gUkVTVCBBUElzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4yNC0xdWJ1bnR1MQpuYW1lOiBweXRob24tcGtnLXJlc291cmNlcwpkZXNjcmlwdGlvbjogUGFja2FnZSBEaXNjb3ZlcnkgYW5kIFJlc291cmNlIEFjY2VzcyB1c2luZyBwa2dfcmVzb3VyY2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNS4zMC0wdWJ1bnR1MQpuYW1lOiBweXRob24tcG9ja2V0LWxpbnQKZGVzY3JpcHRpb246IGNvbXBvc2l0ZSBsaW50ZXIgYW5kIHN0eWxlIGNoZWNrZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjEtMHVidW50dTE3LjEKbmFtZTogcHl0aG9uLXByb2JsZW0tcmVwb3J0CmRlc2NyaXB0aW9uOiBQeXRob24gbGlicmFyeSB0byBoYW5kbGUgcHJvYmxlbSByZXBvcnRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4xLTF1YnVudHUyCm5hbWU6IHB5dGhvbi1wcm90b2J1ZgpkZXNjcmlwdGlvbjogUHl0aG9uIGJpbmRpbmdzIGZvciBwcm90b2NvbCBidWZmZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMC4xMWEtMXVidW50dTEKbmFtZTogcHl0aG9uLXB5YXNuMQpkZXNjcmlwdGlvbjogQVNOLjEgbGlicmFyeSBmb3IgUHl0aG9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNC4wK2Rmc2ctMHVidW50dTMKbmFtZTogcHl0aG9uLXB5YXRzcGkyCmRlc2NyaXB0aW9uOiBBc3Npc3RpdmUgVGVjaG5vbG9neSBTZXJ2aWNlIFByb3ZpZGVyIEludGVyZmFjZSAtIFB5dGhvbiBiaW5kaW5ncwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA3LjE5LjAtNHVidW50dTMKbmFtZTogcHl0aG9uLXB5Y3VybApkZXNjcmlwdGlvbjogUHl0aG9uIGJpbmRpbmdzIHRvIGxpYmN1cmwKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjItMQpuYW1lOiBweXRob24tcHlkb3QKZGVzY3JpcHRpb246IFB5dGhvbiBpbnRlcmZhY2UgdG8gR3JhcGh2aXoncyBkb3QKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS45LjFyZWxlYXNlK2Rmc2ctNQpuYW1lOiBweXRob24tcHlnYW1lCmRlc2NyaXB0aW9uOiBTREwgYmluZGluZ3MgZm9yIGdhbWVzIGRldmVsb3BtZW50IGluIFB5dGhvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjQrZGZzZy0yCm5hbWU6IHB5dGhvbi1weWdtZW50cwpkZXNjcmlwdGlvbjogc3ludGF4IGhpZ2hsaWdodGluZyBwYWNrYWdlIHdyaXR0ZW4gaW4gUHl0aG9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTQuMS0xdWJ1bnR1NgpuYW1lOiBweXRob24tcHlnb29jYW52YXMKZGVzY3JpcHRpb246IEdvb0NhbnZhcyBQeXRob24gYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjItMQpuYW1lOiBweXRob24tcHlpbm90aWZ5CmRlc2NyaXB0aW9uOiBzaW1wbGUgTGludXggaW5vdGlmeSBQeXRob24gYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC41LjEtMHVidW50dTMKbmFtZTogcHl0aG9uLXB5bXQKZGVzY3JpcHRpb246IFB5dGhvbiBtdWx0aS10b3VjaCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMC40LTQKbmFtZTogcHl0aG9uLXB5bXRwCmRlc2NyaXB0aW9uOiBQeXRob25pYyBiaW5kaW5nIHRvIExpYk1UUCB0byBpbnRlcmFjdCB3aXRoIE1UUCBkZXZpY2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjQuMC02dWJ1bnR1MgpuYW1lOiBweXRob24tcHlvcmJpdApkZXNjcmlwdGlvbjogQSBQeXRob24gbGFuZ3VhZ2UgYmluZGluZyBmb3IgdGhlIE9SQml0MiBDT1JCQSBpbXBsZW1lbnRhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjUuMi0ydWJ1bnR1MQpuYW1lOiBweXRob24tcHlwYXJzaW5nCmRlc2NyaXB0aW9uOiBQeXRob24gcGFyc2luZyBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24tcHlzaWRlCmRlc2NyaXB0aW9uOiBQeXRob24gYmluZGluZ3MgZm9yIFF0NCAoYmlnIG1ldGFwYWNrYWdlKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMC0xCm5hbWU6IHB5dGhvbi1weXNpZGUucGhvbm9uCmRlc2NyaXB0aW9uOiBRdCA0IFBob25vbiBtb2R1bGUgLSBQeXRob24gYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24tcHlzaWRlLnF0Y29yZQpkZXNjcmlwdGlvbjogUXQgNCBjb3JlIG1vZHVsZSAtIFB5dGhvbiBiaW5kaW5ncwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMC0xCm5hbWU6IHB5dGhvbi1weXNpZGUucXRkZWNsYXJhdGl2ZQpkZXNjcmlwdGlvbjogUXQgNCBEZWNsYXJhdGl2ZSBtb2R1bGUgLSBQeXRob24gYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24tcHlzaWRlLnF0Z3VpCmRlc2NyaXB0aW9uOiBRdCA0IEdVSSBtb2R1bGUgLSBQeXRob24gYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24tcHlzaWRlLnF0aGVscApkZXNjcmlwdGlvbjogUXQgNCBoZWxwIG1vZHVsZSAtIFB5dGhvbiBiaW5kaW5ncwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMC0xCm5hbWU6IHB5dGhvbi1weXNpZGUucXRuZXR3b3JrCmRlc2NyaXB0aW9uOiBRdCA0IG5ldHdvcmsgbW9kdWxlIC0gUHl0aG9uIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4wLTEKbmFtZTogcHl0aG9uLXB5c2lkZS5xdG9wZW5nbApkZXNjcmlwdGlvbjogUXQgNCBPcGVuR0wgbW9kdWxlIC0gUHl0aG9uIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4wLTEKbmFtZTogcHl0aG9uLXB5c2lkZS5xdHNjcmlwdApkZXNjcmlwdGlvbjogUXQgNCBzY3JpcHQgbW9kdWxlIC0gUHl0aG9uIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4wLTEKbmFtZTogcHl0aG9uLXB5c2lkZS5xdHNxbApkZXNjcmlwdGlvbjogUXQgNCBTUUwgbW9kdWxlIC0gUHl0aG9uIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4wLTEKbmFtZTogcHl0aG9uLXB5c2lkZS5xdHN2ZwpkZXNjcmlwdGlvbjogUXQgNCBTVkcgbW9kdWxlIC0gUHl0aG9uIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4wLTEKbmFtZTogcHl0aG9uLXB5c2lkZS5xdHRlc3QKZGVzY3JpcHRpb246IFF0IDQgdGVzdCBtb2R1bGUgLSBQeXRob24gYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24tcHlzaWRlLnF0dWl0b29scwpkZXNjcmlwdGlvbjogUXQgNCBVSSB0b29scyBtb2R1bGUgLSBQeXRob24gYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24tcHlzaWRlLnF0d2Via2l0CmRlc2NyaXB0aW9uOiBRdCA0IFdlYktpdCBtb2R1bGUgLSBQeXRob24gYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24tcHlzaWRlLnF0eG1sCmRlc2NyaXB0aW9uOiBRdCA0IFhNTCBtb2R1bGUgLSBQeXRob24gYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjItMQpuYW1lOiBweXRob24tcHl3YXBpCmRlc2NyaXB0aW9uOiBQeXRob24gd3JhcHBlciBhcm91bmQgZGlmZmVyZW50IHdlYXRoZXIgQVBJcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjkuMS0ydWJ1bnR1MQpuYW1lOiBweXRob24tcXQ0CmRlc2NyaXB0aW9uOiBQeXRob24gYmluZGluZ3MgZm9yIFF0NAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjkuMS0ydWJ1bnR1MQpuYW1lOiBweXRob24tcXQ0LWRidXMKZGVzY3JpcHRpb246IERCdXMgU3VwcG9ydCBmb3IgUHlRdDQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTIuMDQtMHVidW50dTQKbmFtZTogcHl0aG9uLXF1aWNrbHktY29tbW9uCmRlc2NyaXB0aW9uOiBidWlsZCBuZXcgYXBwcyBxdWlja2x5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEyLjA0LTB1YnVudHU0Cm5hbWU6IHB5dGhvbi1xdWlja2x5LWNvcmUKZGVzY3JpcHRpb246IGJ1aWxkIG5ldyBhcHBzIHF1aWNrbHkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi41LTEuMWJ1aWxkMQpuYW1lOiBweXRob24tcmVuZGVycG0KZGVzY3JpcHRpb246IHB5dGhvbiBsb3cgbGV2ZWwgcmVuZGVyIGludGVyZmFjZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA2LjMuMXVidW50dTEKbmFtZTogcHl0aG9uLXJlcG9ydGJ1ZwpkZXNjcmlwdGlvbjogUHl0aG9uIG1vZHVsZXMgZm9yIGludGVyYWN0aW5nIHdpdGggYnVnIHRyYWNraW5nIHN5c3RlbXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi41LTEuMWJ1aWxkMQpuYW1lOiBweXRob24tcmVwb3J0bGFiCmRlc2NyaXB0aW9uOiBSZXBvcnRMYWIgbGlicmFyeSB0byBjcmVhdGUgUERGIGRvY3VtZW50cyB1c2luZyBQeXRob24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi41LTEuMWJ1aWxkMQpuYW1lOiBweXRob24tcmVwb3J0bGFiLWFjY2VsCmRlc2NyaXB0aW9uOiBDIGNvZGVkIGV4dGVuc2lvbiBhY2NlbGVyYXRvciBmb3IgdGhlIFJlcG9ydExhYiBUb29sa2l0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOC4yLTEKbmFtZTogcHl0aG9uLXJlcXVlc3RzCmRlc2NyaXB0aW9uOiBlbGVnYW50IGFuZCBzaW1wbGUgSFRUUCBsaWJyYXJ5IGZvciBQeXRob24sIGJ1aWx0IGZvciBodW1hbiBiZWluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xMy0xdWJ1bnR1MQpuYW1lOiBweXRob24tc2NnaQpkZXNjcmlwdGlvbjogU2VydmVyLXNpZGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNDR0kgcHJvdG9jb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjArZGZzZzEtMXVidW50dTIKbmFtZTogcHl0aG9uLXNjaXB5CmRlc2NyaXB0aW9uOiBzY2llbnRpZmljIHRvb2xzIGZvciBQeXRob24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yNi0zCm5hbWU6IHB5dGhvbi1zY291cgpkZXNjcmlwdGlvbjogU1ZHIHNjcnViYmVyIGFuZCBvcHRpbWl6ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi41LTIuMWJ1aWxkMQpuYW1lOiBweXRob24tc2VyaWFsCmRlc2NyaXB0aW9uOiBweXNlcmlhbCAtIG1vZHVsZSBlbmNhcHN1bGF0aW5nIGFjY2VzcyBmb3IgdGhlIHNlcmlhbCBwb3J0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4yNC0xdWJ1bnR1MQpuYW1lOiBweXRob24tc2V0dXB0b29scwpkZXNjcmlwdGlvbjogUHl0aG9uIERpc3R1dGlscyBFbmhhbmNlbWVudHMgKHNldHVwdG9vbHMgY29tcGF0aWJpbGl0eSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4zLTMKbmFtZTogcHl0aG9uLXNpbXBsZWN2CmRlc2NyaXB0aW9uOiBTaW1wbGVDViwgVGhlIG9wZW5zb3VyY2UgZnJhbWV3b3JrIGZvciBjb21wdXRlciB2aXNpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC43LTFidWlsZDEKbmFtZTogcHl0aG9uLXNpbXBsZWdlbmVyaWMKZGVzY3JpcHRpb246IFNpbXBsZSBnZW5lcmljIGZ1bmN0aW9ucyBmb3IgUHl0aG9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMy4yLTEKbmFtZTogcHl0aG9uLXNpbXBsZWpzb24KZGVzY3JpcHRpb246IHNpbXBsZSwgZmFzdCwgZXh0ZW5zaWJsZSBKU09OIGVuY29kZXIvZGVjb2RlciBmb3IgUHl0aG9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuMTMuMi0xCm5hbWU6IHB5dGhvbi1zaXAKZGVzY3JpcHRpb246IFB5dGhvbi9DKysgYmluZGluZ3MgZ2VuZXJhdG9yIHJ1bnRpbWUgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMTMtMHVidW50dTEKbmFtZTogcHl0aG9uLXNtYmMKZGVzY3JpcHRpb246IFB5dGhvbiBiaW5kaW5ncyBmb3IgU2FtYmEgY2xpZW50cyAobGlic21iY2xpZW50KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEyLjAtNApuYW1lOiBweXRob24tc29hcHB5CmRlc2NyaXB0aW9uOiBTT0FQIFN1cHBvcnQgZm9yIFB5dGhvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjgyLjcuMwpuYW1lOiBweXRob24tc29mdHdhcmUtcHJvcGVydGllcwpkZXNjcmlwdGlvbjogbWFuYWdlIHRoZSByZXBvc2l0b3JpZXMgdGhhdCB5b3UgaW5zdGFsbCBzb2Z0d2FyZSBmcm9tCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNy4xLTZ1YnVudHUzCm5hbWU6IHB5dGhvbi1zcGVlY2hkCmRlc2NyaXB0aW9uOiBQeXRob24gaW50ZXJmYWNlIHRvIFNwZWVjaCBEaXNwYXRjaGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4wKzIwMTAwNjIwLTJidWlsZDEKbmFtZTogcHl0aG9uLXN0ZGViCmRlc2NyaXB0aW9uOiBQeXRob24gdG8gRGViaWFuIHNvdXJjZSBwYWNrYWdlIGNvbnZlcnNpb24gdXRpbGl0eQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjAuMTR1YnVudHUyCm5hbWU6IHB5dGhvbi1zdXBwb3J0CmRlc2NyaXB0aW9uOiBhdXRvbWF0ZWQgcmVidWlsZGluZyBzdXBwb3J0IGZvciBQeXRob24gbW9kdWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxMS4xLjAtMXVidW50dTIKbmFtZTogcHl0aG9uLXR3aXN0ZWQKZGVzY3JpcHRpb246IEV2ZW50LWJhc2VkIGZyYW1ld29yayBmb3IgaW50ZXJuZXQgYXBwbGljYXRpb25zIChkZXBlbmRlbmN5IHBhY2thZ2UpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDExLjEuMC0xdWJ1bnR1MgpuYW1lOiBweXRob24tdHdpc3RlZC1iaW4KZGVzY3JpcHRpb246IEV2ZW50LWJhc2VkIGZyYW1ld29yayBmb3IgaW50ZXJuZXQgYXBwbGljYXRpb25zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MTEuMS4wLTEKbmFtZTogcHl0aG9uLXR3aXN0ZWQtY29uY2gKZGVzY3JpcHRpb246IFR3aXN0ZWQgU1NIIEltcGxlbWVudGF0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDExLjEuMC0xdWJ1bnR1MgpuYW1lOiBweXRob24tdHdpc3RlZC1jb3JlCmRlc2NyaXB0aW9uOiBFdmVudC1iYXNlZCBmcmFtZXdvcmsgZm9yIGludGVybmV0IGFwcGxpY2F0aW9ucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxMS4xLjAtMQpuYW1lOiBweXRob24tdHdpc3RlZC1sb3JlCmRlc2NyaXB0aW9uOiBEb2N1bWVudGF0aW9uIGdlbmVyYXRvciB3aXRoIEhUTUwgYW5kIExhVGVYIHN1cHBvcnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTEuMS4wLTEKbmFtZTogcHl0aG9uLXR3aXN0ZWQtbWFpbApkZXNjcmlwdGlvbjogU01UUCwgSU1BUCBhbmQgUE9QIHByb3RvY29sIGltcGxlbWVudGF0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDExLjEuMC0xCm5hbWU6IHB5dGhvbi10d2lzdGVkLW5hbWVzCmRlc2NyaXB0aW9uOiBETlMgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24gd2l0aCBjbGllbnQgYW5kIHNlcnZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxMS4xLjAtMQpuYW1lOiBweXRob24tdHdpc3RlZC1uZXdzCmRlc2NyaXB0aW9uOiBOTlRQIHByb3RvY29sIGltcGxlbWVudGF0aW9uIHdpdGggY2xpZW50IGFuZCBzZXJ2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTEuMS4wLTEKbmFtZTogcHl0aG9uLXR3aXN0ZWQtcnVubmVyCmRlc2NyaXB0aW9uOiBQcm9jZXNzIG1hbmFnZW1lbnQsIGluY2x1ZGluZyBhbiBpbmV0ZCBzZXJ2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTEuMS4wLTEKbmFtZTogcHl0aG9uLXR3aXN0ZWQtd2ViCmRlc2NyaXB0aW9uOiBIVFRQIHByb3RvY29sIGltcGxlbWVudGF0aW9uIHRvZ2V0aGVyIHdpdGggY2xpZW50cyBhbmQgc2VydmVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxMS4xLjAtMQpuYW1lOiBweXRob24tdHdpc3RlZC13b3JkcwpkZXNjcmlwdGlvbjogQ2hhdCBhbmQgSW5zdGFudCBNZXNzYWdpbmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLTB1YnVudHUxMApuYW1lOiBweXRob24tdHhhd3MKZGVzY3JpcHRpb246IFR3aXN0ZWQtYmFzZWQgQXN5bmNocm9ub3VzIExpYnJhcmllcyBmb3IgQW1hem9uIFdlYiBTZXJ2aWNlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuNy0xfnVidW50dTEyLjA0LjF+cHBhMQpuYW1lOiBweXRob24tdHh6b29rZWVwZXIKZGVzY3JpcHRpb246IFR3aXN0ZWQtYmFzZWQgQXN5bmNocm9ub3VzIExpYnJhcmllcyBmb3IgQXBhY2hlIFpvb2tlZXBlci4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjItMHVidW50dTMKbmFtZTogcHl0aG9uLXVidW50dS1zc28tY2xpZW50CmRlc2NyaXB0aW9uOiBVYnVudHUgU2luZ2xlIFNpZ24tT24gY2xpZW50IC0gUHl0aG9uIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjItMHVidW50dTEKbmFtZTogcHl0aG9uLXVidW50dW9uZS1jbGllbnQKZGVzY3JpcHRpb246IFVidW50dSBPbmUgY2xpZW50IFB5dGhvbiBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjEtMHVidW50dTEKbmFtZTogcHl0aG9uLXVidW50dW9uZS1jb250cm9sLXBhbmVsCmRlc2NyaXB0aW9uOiBVYnVudHUgT25lIENvbnRyb2wgUGFuZWwgLSBQeXRob24gTGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4yLTB1YnVudHUxCm5hbWU6IHB5dGhvbi11YnVudHVvbmUtc3RvcmFnZXByb3RvY29sCmRlc2NyaXB0aW9uOiBQeXRob24gbGlicmFyeSBmb3IgVWJ1bnR1IE9uZSBmaWxlIHN0b3JhZ2UgYW5kIHNoYXJpbmcgc2VydmljZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuNC0xdWJ1bnR1MQpuYW1lOiBweXRob24tdW5pY29udmVydG9yCmRlc2NyaXB0aW9uOiBVbml2ZXJzYWwgdmVjdG9yIGdyYXBoaWNzIHRyYW5zbGF0b3IKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTozLjUuNC0wdWJ1bnR1MS4xCm5hbWU6IHB5dGhvbi11bm8KZGVzY3JpcHRpb246IFB5dGhvbi1VTk8gYnJpZGdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi04YnVpbGQxCm5hbWU6IHB5dGhvbi11dGlkeWxpYgpkZXNjcmlwdGlvbjogUHl0aG9uIHdyYXBwZXIgZm9yIFRpZHlMaWIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42MC4wLTB1YnVudHU1Cm5hbWU6IHB5dGhvbi12aXJ0a2V5CmRlc2NyaXB0aW9uOiBMaWJyYXJ5IHRvIGVtdWxhdGUga2V5Ym9hcmQga2V5cHJlc3Nlcy4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS43LjEuMi0xCm5hbWU6IHB5dGhvbi12aXJ0dWFsZW52CmRlc2NyaXB0aW9uOiBQeXRob24gdmlydHVhbCBlbnZpcm9ubWVudCBjcmVhdG9yCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMy4wLTIKbmFtZTogcHl0aG9uLXdhZGxsaWIKZGVzY3JpcHRpb246IFB5dGhvbiBsaWJyYXJ5IGZvciBuYXZpZ2F0aW5nIFdBREwgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjgtMnVidW50dTIKbmFtZTogcHl0aG9uLXdlYmtpdApkZXNjcmlwdGlvbjogV2ViS2l0L0d0ayBQeXRob24gYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi44LjEyLjEtNnVidW50dTIKbmFtZTogcHl0aG9uLXd4Z3RrMi44CmRlc2NyaXB0aW9uOiB3eFdpZGdldHMgQ3Jvc3MtcGxhdGZvcm0gQysrIEdVSSB0b29sa2l0ICh3eFB5dGhvbiBiaW5kaW5nKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjguMTIuMS02dWJ1bnR1MgpuYW1lOiBweXRob24td3h2ZXJzaW9uCmRlc2NyaXB0aW9uOiB3eFdpZGdldHMgQ3Jvc3MtcGxhdGZvcm0gQysrIEdVSSB0b29sa2l0ICh3eFB5dGhvbiB2ZXJzaW9uIHNlbGVjdG9yKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjIuOC0xCm5hbWU6IHB5dGhvbi14YXBpYW4KZGVzY3JpcHRpb246IFhhcGlhbiBzZWFyY2ggZW5naW5lIGludGVyZmFjZSBmb3IgUHl0aG9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTktM3VidW50dTIKbmFtZTogcHl0aG9uLXhkZwpkZXNjcmlwdGlvbjogUHl0aG9uIGxpYnJhcnkgdG8gYWNjZXNzIGZyZWVkZXNrdG9wLm9yZyBzdGFuZGFyZHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjIuM2J1aWxkMQpuYW1lOiBweXRob24teGtpdApkZXNjcmlwdGlvbjogbGlicmFyeSBmb3IgdGhlIG1hbmlwdWxhdGlvbiBvZiB0aGUgeG9yZy5jb25mCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTQrMjAwOTExMDEtMQpuYW1lOiBweXRob24teGxpYgpkZXNjcmlwdGlvbjogSW50ZXJmYWNlIGZvciBQeXRob24gdG8gdGhlIFgxMSBQcm90b2NvbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjEwLTIKbmFtZTogcHl0aG9uLXlhbWwKZGVzY3JpcHRpb246IFlBTUwgcGFyc2VyIGFuZCBlbWl0dGVyIGZvciBQeXRob24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC45LjAtMXVidW50dTEKbmFtZTogcHl0aG9uLXplaXRnZWlzdApkZXNjcmlwdGlvbjogZXZlbnQgbG9nZ2luZyBmcmFtZXdvcmsgLSBQeXRob24gYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4zLjUrZGZzZzEtMXVidW50dTEKbmFtZTogcHl0aG9uLXpvb2tlZXBlcgpkZXNjcmlwdGlvbjogUHl0aG9uIGJpbmRpbmdzIGZvciB6b29rZWVwZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy42LjEtMXVidW50dTMKbmFtZTogcHl0aG9uLXpvcGUuaW50ZXJmYWNlCmRlc2NyaXB0aW9uOiBJbnRlcmZhY2VzIGZvciBQeXRob24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi43LjMtMHVidW50dTMuMQpuYW1lOiBweXRob24yLjcKZGVzY3JpcHRpb246IEludGVyYWN0aXZlIGhpZ2gtbGV2ZWwgb2JqZWN0LW9yaWVudGVkIGxhbmd1YWdlICh2ZXJzaW9uIDIuNykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi43LjMtMHVidW50dTMuMQpuYW1lOiBweXRob24yLjctZGV2CmRlc2NyaXB0aW9uOiBIZWFkZXIgZmlsZXMgYW5kIGEgc3RhdGljIGxpYnJhcnkgZm9yIFB5dGhvbiAodjIuNykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi43LjMtMHVidW50dTMuMQpuYW1lOiBweXRob24yLjctbWluaW1hbApkZXNjcmlwdGlvbjogTWluaW1hbCBzdWJzZXQgb2YgdGhlIFB5dGhvbiBsYW5ndWFnZSAodmVyc2lvbiAyLjcpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4zLTB1YnVudHUxCm5hbWU6IHB5dGhvbjMKZGVzY3JpcHRpb246IGludGVyYWN0aXZlIGhpZ2gtbGV2ZWwgb2JqZWN0LW9yaWVudGVkIGxhbmd1YWdlIChkZWZhdWx0IHB5dGhvbjMgdmVyc2lvbikKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44LjN1YnVudHU3Cm5hbWU6IHB5dGhvbjMtYXB0CmRlc2NyaXB0aW9uOiBQeXRob24gMyBpbnRlcmZhY2UgdG8gbGliYXB0LXBrZwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEwLjArZGZzZy0xCm5hbWU6IHB5dGhvbjMtY2Fpcm8KZGVzY3JpcHRpb246IFB5dGhvbiAzIGJpbmRpbmdzIGZvciB0aGUgQ2Fpcm8gdmVjdG9yIGdyYXBoaWNzIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjAtMXVidW50dTEKbmFtZTogcHl0aG9uMy1kYnVzCmRlc2NyaXB0aW9uOiBzaW1wbGUgaW50ZXJwcm9jZXNzIG1lc3NhZ2luZyBzeXN0ZW0gKFB5dGhvbiAzIGludGVyZmFjZSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjMtMHVidW50dTEKbmFtZTogcHl0aG9uMy1kZXYKZGVzY3JpcHRpb246IGhlYWRlciBmaWxlcyBhbmQgYSBzdGF0aWMgbGlicmFyeSBmb3IgUHl0aG9uIChkZWZhdWx0KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjM0LTB1YnVudHUwLjEKbmFtZTogcHl0aG9uMy1kaXN0dXRpbHMtZXh0cmEKZGVzY3JpcHRpb246IGVuaGFuY2VtZW50cyB0byB0aGUgUHl0aG9uMyBidWlsZCBzeXN0ZW0KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjItMX5wcmVjaXNlCm5hbWU6IHB5dGhvbjMtZ2kKZGVzY3JpcHRpb246IFB5dGhvbiAzIGJpbmRpbmdzIGZvciBnb2JqZWN0LWludHJvc3BlY3Rpb24gbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4yLTF+cHJlY2lzZQpuYW1lOiBweXRob24zLWdpLWNhaXJvCmRlc2NyaXB0aW9uOiBQeXRob24gMyBDYWlybyBiaW5kaW5ncyBmb3IgdGhlIEdPYmplY3QgbGlicmFyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjYtMQpuYW1lOiBweXRob24zLWppbmphMgpkZXNjcmlwdGlvbjogc21hbGwgYnV0IGZhc3QgYW5kIGVhc3kgdG8gdXNlIHN0YW5kLWFsb25lIHRlbXBsYXRlIGVuZ2luZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMuMi0xCm5hbWU6IHB5dGhvbjMtbHhtbApkZXNjcmlwdGlvbjogcHl0aG9uaWMgYmluZGluZyBmb3IgdGhlIGxpYnhtbDIgYW5kIGxpYnhzbHQgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTUtMQpuYW1lOiBweXRob24zLW1hcmt1cHNhZmUKZGVzY3JpcHRpb246IFhNTC9IVE1ML1hIVE1MIE1hcmt1cCBzYWZlIHN0cmluZyBmb3IgUHl0aG9uMwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjIuMy0wdWJ1bnR1MQpuYW1lOiBweXRob24zLW1pbmltYWwKZGVzY3JpcHRpb246IG1pbmltYWwgc3Vic2V0IG9mIHRoZSBQeXRob24gbGFuZ3VhZ2UgKGRlZmF1bHQgcHl0aG9uMyB2ZXJzaW9uKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMjQtMXVidW50dTEKbmFtZTogcHl0aG9uMy1wa2ctcmVzb3VyY2VzCmRlc2NyaXB0aW9uOiBQYWNrYWdlIERpc2NvdmVyeSBhbmQgUmVzb3VyY2UgQWNjZXNzIHVzaW5nIHBrZ19yZXNvdXJjZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC45LjEtMnVidW50dTEKbmFtZTogcHl0aG9uMy1weXF0NApkZXNjcmlwdGlvbjogUHl0aG9uMyBiaW5kaW5ncyBmb3IgUXQ0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4wLTEKbmFtZTogcHl0aG9uMy1weXNpZGUKZGVzY3JpcHRpb246IFB5dGhvbjMgYmluZGluZ3MgZm9yIFF0NCAoYmlnIG1ldGFwYWNrYWdlKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMC0xCm5hbWU6IHB5dGhvbjMtcHlzaWRlLnBob25vbgpkZXNjcmlwdGlvbjogUXQgNCBQaG9ub24gbW9kdWxlIC0gUHl0aG9uMyBiaW5kaW5ncwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMC0xCm5hbWU6IHB5dGhvbjMtcHlzaWRlLnF0Y29yZQpkZXNjcmlwdGlvbjogUXQgNCBjb3JlIG1vZHVsZSAtIFB5dGhvbjMgYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24zLXB5c2lkZS5xdGRlY2xhcmF0aXZlCmRlc2NyaXB0aW9uOiBRdCA0IERlY2xhcmF0aXZlIG1vZHVsZSAtIFB5dGhvbjMgYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24zLXB5c2lkZS5xdGd1aQpkZXNjcmlwdGlvbjogUXQgNCBHVUkgbW9kdWxlIC0gUHl0aG9uMyBiaW5kaW5ncwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMC0xCm5hbWU6IHB5dGhvbjMtcHlzaWRlLnF0aGVscApkZXNjcmlwdGlvbjogUXQgNCBoZWxwIG1vZHVsZSAtIFB5dGhvbjMgYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24zLXB5c2lkZS5xdG5ldHdvcmsKZGVzY3JpcHRpb246IFF0IDQgbmV0d29yayBtb2R1bGUgLSBQeXRob24zIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4wLTEKbmFtZTogcHl0aG9uMy1weXNpZGUucXRvcGVuZ2wKZGVzY3JpcHRpb246IFF0IDQgT3BlbkdMIG1vZHVsZSAtIFB5dGhvbjMgYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24zLXB5c2lkZS5xdHNjcmlwdApkZXNjcmlwdGlvbjogUXQgNCBzY3JpcHQgbW9kdWxlIC0gUHl0aG9uMyBiaW5kaW5ncwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMC0xCm5hbWU6IHB5dGhvbjMtcHlzaWRlLnF0c3FsCmRlc2NyaXB0aW9uOiBRdCA0IFNRTCBtb2R1bGUgLSBQeXRob24zIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4wLTEKbmFtZTogcHl0aG9uMy1weXNpZGUucXRzdmcKZGVzY3JpcHRpb246IFF0IDQgU1ZHIG1vZHVsZSAtIFB5dGhvbjMgYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24zLXB5c2lkZS5xdHRlc3QKZGVzY3JpcHRpb246IFF0IDQgdGVzdCBtb2R1bGUgLSBQeXRob24zIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMS4wLTEKbmFtZTogcHl0aG9uMy1weXNpZGUucXR1aXRvb2xzCmRlc2NyaXB0aW9uOiBRdCA0IFVJIHRvb2xzIG1vZHVsZSAtIFB5dGhvbjMgYmluZGluZ3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiBweXRob24zLXB5c2lkZS5xdHdlYmtpdApkZXNjcmlwdGlvbjogUXQgNCBXZWJLaXQgbW9kdWxlIC0gUHl0aG9uMyBiaW5kaW5ncwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMC0xCm5hbWU6IHB5dGhvbjMtcHlzaWRlLnF0eG1sCmRlc2NyaXB0aW9uOiBRdCA0IFhNTCBtb2R1bGUgLSBQeXRob24zIGJpbmRpbmdzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNi4yNC0xdWJ1bnR1MQpuYW1lOiBweXRob24zLXNldHVwdG9vbHMKZGVzY3JpcHRpb246IFB5dGhvbjMgRGlzdHV0aWxzIEVuaGFuY2VtZW50cyAoc2V0dXB0b29scyBjb21wYXRpYmlsaXR5KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjEzLjItMQpuYW1lOiBweXRob24zLXNpcApkZXNjcmlwdGlvbjogUHl0aG9uIDMvQysrIGJpbmRpbmdzIGdlbmVyYXRvciBydW50aW1lIGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjEtMgpuYW1lOiBweXRob24zLXVyd2lkCmRlc2NyaXB0aW9uOiBjdXJzZXMtYmFzZWQgVUkvd2lkZ2V0IGxpYnJhcnkgZm9yIFB5dGhvbiAzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4zLTB1YnVudHUzLjIKbmFtZTogcHl0aG9uMy4yCmRlc2NyaXB0aW9uOiBJbnRlcmFjdGl2ZSBoaWdoLWxldmVsIG9iamVjdC1vcmllbnRlZCBsYW5ndWFnZSAodmVyc2lvbiAzLjIpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4zLTB1YnVudHUzLjIKbmFtZTogcHl0aG9uMy4yLWRldgpkZXNjcmlwdGlvbjogSGVhZGVyIGZpbGVzIGFuZCBhIHN0YXRpYyBsaWJyYXJ5IGZvciBQeXRob24gKHYzLjIpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMi4zLTB1YnVudHUzLjIKbmFtZTogcHl0aG9uMy4yLW1pbmltYWwKZGVzY3JpcHRpb246IE1pbmltYWwgc3Vic2V0IG9mIHRoZSBQeXRob24gbGFuZ3VhZ2UgKHZlcnNpb24gMy4yKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIyLjItMQpuYW1lOiBxYnpyCmRlc2NyaXB0aW9uOiBHcmFwaGljYWwgaW50ZXJmYWNlIGZvciBCYXphYXIgdXNpbmcgdGhlIFF0IHRvb2xraXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IHFkYnVzCmRlc2NyaXB0aW9uOiBRdCA0IEQtQnVzIHRvb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wK25vcm9tcy0wdWJ1bnR1MTQuNwpuYW1lOiBxZW11LWNvbW1vbgpkZXNjcmlwdGlvbjogcWVtdSBjb21tb24gZnVuY3Rpb25hbGl0eSAoYmlvcywgZG9jdW1lbnRhdGlvbiwgZXRjKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjArbm9yb21zLTB1YnVudHUxNC43Cm5hbWU6IHFlbXUta3ZtCmRlc2NyaXB0aW9uOiBGdWxsIHZpcnR1YWxpemF0aW9uIG9uIGkzODYgYW5kIGFtZDY0IGhhcmR3YXJlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMCtub3JvbXMtMHVidW50dTE0LjcKbmFtZTogcWVtdS11dGlscwpkZXNjcmlwdGlvbjogcWVtdSB1dGlsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMH4yMDA4MDgyMi0wcHJlY2lzZTQKbmFtZTogcWdlYXJzMgpkZXNjcmlwdGlvbjogU2ltcGxlIFF0IGdyYXBoaWNzIGJlbmNobWFyawoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjAtcmVsZWFzZX5iZXRhKzIwMTIwOTA0LTF1YnVudHUxMgpuYW1lOiBxbGFscgpkZXNjcmlwdGlvbjogUXQgcGFyc2VyIGdlbmVyYXRvcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuMCtnaXQyMDEyMDQxMS0wdWJ1bnR1MQpuYW1lOiBxdC1hdC1zcGkKZGVzY3JpcHRpb246IGFjY2Vzc2liaWxpdHkgcGx1Z2luIGZvciBRdAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjJ+Z2l0MjAxMjA2MTEtMS0wZm4KbmFtZTogcXQtY29tcG9uZW50cy1kZXNrdG9wCmRlc2NyaXB0aW9uOiBRdCBRdWljayBjb21wb25lbnRzIGRlc2t0b3AgcnVudGltZSBsaWJyYXJpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yfmdpdDIwMTIwNjExLTEtMGZuCm5hbWU6IHF0LWNvbXBvbmVudHMtZGVza3RvcC1kZXYKZGVzY3JpcHRpb246IFF0IFF1aWNrIGNvbXBvbmVudHMgZGV2ZWxvcG1lbnQgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yfmdpdDIwMTIwNjExLTEtMGZuCm5hbWU6IHF0LWNvbXBvbmVudHMtZGVza3RvcC1leGFtcGxlcwpkZXNjcmlwdGlvbjogUXQgUXVpY2sgY29tcG9uZW50cyBleGFtcGxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuMjUtMHVidW50dTIKbmFtZTogcXQtY29tcG9uZW50cy11YnVudHUKZGVzY3JpcHRpb246IFF0IENvbXBvbmVudHMgZm9yIFVidW50dQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuMjUtMHVidW50dTIKbmFtZTogcXQtY29tcG9uZW50cy11YnVudHUtZGVtb3MKZGVzY3JpcHRpb246IFF0IENvbXBvbmVudHMgZm9yIFVidW50dSAtIGRlbW9zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS4yNS0wdWJ1bnR1MgpuYW1lOiBxdC1jb21wb25lbnRzLXVidW50dS1kb2MKZGVzY3JpcHRpb246IFF0IENvbXBvbmVudHMgZm9yIFVidW50dSAtIGRvY3VtZW50YXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xLjI1LTB1YnVudHUyCm5hbWU6IHF0LWNvbXBvbmVudHMtdWJ1bnR1LWV4YW1wbGVzCmRlc2NyaXB0aW9uOiBRdCBDb21wb25lbnRzIGZvciBVYnVudHUgLSBleGFtcGxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjAtcmVsZWFzZX5iZXRhKzIwMTIwOTAxLTF1YnVudHU1Cm5hbWU6IHF0M2QKZGVzY3JpcHRpb246IFF0IFF1aWNrIG1vZHVsZSBmb3Igc2NyaXB0aW5nIDNEIGFwcGxpY2F0aW9ucyBpbiBRTUwKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IHF0NC1kZW1vcwpkZXNjcmlwdGlvbjogUXQgNCBleGFtcGxlcyBhbmQgZGVtb3MKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IHF0NC1kZXNpZ25lcgpkZXNjcmlwdGlvbjogZ3JhcGhpY2FsIGRlc2lnbmVyIGZvciBRdCA0IGFwcGxpY2F0aW9ucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogcXQ0LWRldi10b29scwpkZXNjcmlwdGlvbjogUXQgNCBkZXZlbG9wbWVudCB0b29scwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogcXQ0LWRvYwpkZXNjcmlwdGlvbjogUXQgNCBBUEkgZG9jdW1lbnRhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogcXQ0LWxpbmd1aXN0LXRvb2xzCmRlc2NyaXB0aW9uOiBRdCA0IExpbmd1aXN0IHRvb2xzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQ6NC44LjEtMHVidW50dTQuMwpuYW1lOiBxdDQtcW1ha2UKZGVzY3JpcHRpb246IFF0IDQgcW1ha2UgTWFrZWZpbGUgZ2VuZXJhdG9yIHRvb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNDo0LjguMS0wdWJ1bnR1NC4zCm5hbWU6IHF0NC1xbWx2aWV3ZXIKZGVzY3JpcHRpb246IFF0IDQgUU1MIHZpZXdlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0OjQuOC4xLTB1YnVudHU0LjMKbmFtZTogcXQ0LXF0Y29uZmlnCmRlc2NyaXB0aW9uOiBRdCA0IGNvbmZpZ3VyYXRpb24gdG9vbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjAtcmVsZWFzZX5iZXRhKzIwMTIwOTA4LTF1YnVudHUyCm5hbWU6IHF0NS1tZXRhLWZ1bGwKZGVzY3JpcHRpb246IFRoZSBmdWxsIHN0YWNrIG9mIFF0NSBCZXRhMSByZWxlYXNlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMC1yZWxlYXNlfmJldGErMjAxMjA4MzEtMXVidW50dTU2Cm5hbWU6IHF0YmFzZQpkZXNjcmlwdGlvbjogUXQgQmFzZSBtb2R1bGVzLgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjAtcmVsZWFzZX5iZXRhKzIwMTIwODMxLTF1YnVudHU3Cm5hbWU6IHF0Y29ubmVjdGl2aXR5CmRlc2NyaXB0aW9uOiBRdCA1IGNvbm5lY3Rpdml0eSBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi40LjEtMHVidW50dTIKbmFtZTogcXRjcmVhdG9yCmRlc2NyaXB0aW9uOiBsaWdodHdlaWdodCBpbnRlZ3JhdGVkIGRldmVsb3BtZW50IGVudmlyb25tZW50IChJREUpIGZvciBRdAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjQuMS0wdWJ1bnR1MgpuYW1lOiBxdGNyZWF0b3ItZG9jCmRlc2NyaXB0aW9uOiBkb2N1bWVudGF0aW9uIGZvciBRdCBDcmVhdG9yIElERQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjAtcmVsZWFzZX5iZXRhKzIwMTIwODMxLTF1YnVudHUyOApuYW1lOiBxdGRlY2xhcmF0aXZlCmRlc2NyaXB0aW9uOiBRdDUgRGVjbGFyYXRpdmUgbW9kdWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMC1yZWxlYXNlfmJldGErMjAxMjA4MzEtMXVidW50dTgKbmFtZTogcXRkb2MKZGVzY3JpcHRpb246IFF0RG9jIG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjAtcmVsZWFzZX5iZXRhKzIwMTIwOTA0LTF1YnVudHU3Cm5hbWU6IHF0ZG9jZ2FsbGVyeQpkZXNjcmlwdGlvbjogUXQ1IERvY3VtZW50YXRpb24gZ2FsbGVyeQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjAtcmVsZWFzZX5iZXRhKzIwMTIwOTA0LTF1YnVudHU5Cm5hbWU6IHF0ZmVlZGJhY2sKZGVzY3JpcHRpb246IFRoZSBRdCBGZWVkYmFjayBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4wLXJlbGVhc2V+YmV0YSsyMDEyMDgzMS0xdWJ1bnR1OQpuYW1lOiBxdGdyYXBoaWNhbGVmZmVjdHMKZGVzY3JpcHRpb246IFF0IDUgZ3JhcGhpY2FsZWZmZWN0cyBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4wLXJlbGVhc2V+YmV0YSsyMDEyMDkwMS0xdWJ1bnR1NwpuYW1lOiBxdGltYWdlZm9ybWF0cwpkZXNjcmlwdGlvbjogUXQgNSBJbWFnZSBmb3JtYXQgcGx1Z2lucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjAtcmVsZWFzZX5iZXRhKzIwMTIwODMxLTF1YnVudHUxNwpuYW1lOiBxdGpzYmFja2VuZApkZXNjcmlwdGlvbjogUXQgVjggSmF2YXNjcmlwdCBiYWNrZW5kIHVzZWQgYnkgUXQgRGVjbGFyYXRpdmUuCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMC1yZWxlYXNlfmJldGErMjAxMjA4MzEtMXVidW50dTcKbmFtZTogcXRsb2NhdGlvbgpkZXNjcmlwdGlvbjogUXQgNSBMb2NhdGlvbiBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4wLXJlbGVhc2V+YmV0YSsyMDEyMDgzMS0xdWJ1bnR1MTEKbmFtZTogcXRtdWx0aW1lZGlhCmRlc2NyaXB0aW9uOiBRdCA1IEltYWdlIGZvcm1hdCBwbHVnaW5zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMC1yZWxlYXNlfmJldGErMjAxMjA5MDQtMXVidW50dTkKbmFtZTogcXRwaG9ub24KZGVzY3JpcHRpb246IFF0NSBQaG9ub24gbW9kdWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMC1yZWxlYXNlfmJldGErMjAxMjA5MDQtMXVidW50dTkKbmFtZTogcXRwaW0KZGVzY3JpcHRpb246IFF0IFBJTSBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4wLXJlbGVhc2V+YmV0YSsyMDEyMDgzMS0xdWJ1bnR1NwpuYW1lOiBxdHF1aWNrMQpkZXNjcmlwdGlvbjogUXQgUXVpY2sgMSBjb21wYXRpYmlsaXR5IGxpYnJhcnkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4wLXJlbGVhc2V+YmV0YSsyMDEyMDgzMS0xdWJ1bnR1OQpuYW1lOiBxdHNjcmlwdApkZXNjcmlwdGlvbjogVGhlIFF0U2NyaXB0IG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjAtcmVsZWFzZX5naXQrMjAxMzAxMTUtMXVidW50dTMKbmFtZTogcXRzZW5zb3JzCmRlc2NyaXB0aW9uOiBRdDUgU2Vuc29yIG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjAtcmVsZWFzZX5iZXRhKzIwMTIwODMxLTF1YnVudHU3Cm5hbWU6IHF0c3ZnCmRlc2NyaXB0aW9uOiBRdCA1IFNWRyBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4wLXJlbGVhc2V+YmV0YSsyMDEyMDgzMS0xdWJ1bnR1OQpuYW1lOiBxdHN5c3RlbXMKZGVzY3JpcHRpb246IFF0IDUgU3lzdGVtcyBtb2R1bGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4wLXJlbGVhc2V+YmV0YSsyMDEyMDgzMS0xdWJ1bnR1NwpuYW1lOiBxdHRvb2xzCmRlc2NyaXB0aW9uOiBRdDUgdG9vbHMgbW9kdWxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMC1yZWxlYXNlfmJldGErMjAxMjA5MDEtMXVidW50dTM1Cm5hbWU6IHF0d2F5bGFuZApkZXNjcmlwdGlvbjogUXQgc3VwcG9ydCBmb3IgdGhlIFdheWxhbmQgd2luZG93aW5nIHN5c3RlbQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjUuMC0xdWJ1bnR1MzEKbmFtZTogcXR3ZWJraXQKZGVzY3JpcHRpb246IFdlYktpdCBvcGVuIHNvdXJjZSBicm93c2VyIGVuZ2luZS4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4wLXJlbGVhc2V+YmV0YSsyMDEyMDkwNC0xdWJ1bnR1MgpuYW1lOiBxdHdlYmtpdC1leGFtcGxlcy1hbmQtZGVtb3MKZGVzY3JpcHRpb246IEV4YW1wbGVzIGFuZCBkZW1vcyBmb3IgUXQ1IFdlYmtpdAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjAtcmVsZWFzZX5iZXRhKzIwMTIwODMxLTF1YnVudHU3Cm5hbWU6IHF0eG1scGF0dGVybnMKZGVzY3JpcHRpb246IFRoZSBRdFhtbFBhdHRlcm5zIG1vZHVsZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxMi4wNC0wdWJ1bnR1NApuYW1lOiBxdWlja2x5CmRlc2NyaXB0aW9uOiBidWlsZCBuZXcgYXBwcyBxdWlja2x5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEyLjA0LTB1YnVudHU0Cm5hbWU6IHF1aWNrbHktdWJ1bnR1LXRlbXBsYXRlCmRlc2NyaXB0aW9uOiBxdWlja2x5IHVidW50dSBhcHBsaWNhdGlvbiB0ZW1wbGF0ZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjUwLTIKbmFtZTogcXVpbHQKZGVzY3JpcHRpb246IFRvb2wgdG8gd29yayB3aXRoIHNlcmllcyBvZiBwYXRjaGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNi4yLTEuMQpuYW1lOiByYWRlb250b29sCmRlc2NyaXB0aW9uOiB1dGlsaXR5IHRvIGNvbnRyb2wgQVRJIFJhZGVvbiBiYWNrbGlnaHQgZnVuY3Rpb25zIG9uIGxhcHRvcHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44LjEtNQpuYW1lOiByYXJpYW4tY29tcGF0CmRlc2NyaXB0aW9uOiBEb2N1bWVudGF0aW9uIG1ldGEtZGF0YSBsaWJyYXJ5IChjb21wYXRpYmlsaXR5IHRvb2xzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuMC0zLjEKbmFtZTogcmVhZC1lZGlkCmRlc2NyaXB0aW9uOiBoYXJkd2FyZSBpbmZvcm1hdGlvbi1nYXRoZXJpbmcgdG9vbCBmb3IgVkVTQSBQblAgbW9uaXRvcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNi4yLTgKbmFtZTogcmVhZGxpbmUtY29tbW9uCmRlc2NyaXB0aW9uOiBHTlUgcmVhZGxpbmUgYW5kIGhpc3RvcnkgbGlicmFyaWVzLCBjb21tb24gZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjguMStzdm42MDItMXVidW50dTMKbmFtZTogcmVjb3JkbXlkZXNrdG9wCmRlc2NyaXB0aW9uOiBDYXB0dXJlcyBhdWRpby12aWRlbyBkYXRhIG9mIGEgTGludXggZGVza3RvcCBzZXNzaW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4wLTF1YnVudHU2LjEKbmFtZTogcmVtbWluYQpkZXNjcmlwdGlvbjogcmVtb3RlIGRlc2t0b3AgY2xpZW50IGZvciBHTk9NRSBkZXNrdG9wIGVudmlyb25tZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4wLTF1YnVudHU2LjEKbmFtZTogcmVtbWluYS1jb21tb24KZGVzY3JpcHRpb246IGNvbW1vbiBmaWxlcyBmb3IgcmVtbWluYSByZW1vdGUgZGVza3RvcCBjbGllbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjAtMXVidW50dTYuMQpuYW1lOiByZW1taW5hLXBsdWdpbi1yZHAKZGVzY3JpcHRpb246IFJEUCBwbHVnaW4gZm9yIHJlbW1pbmEgcmVtb3RlIGRlc2t0b3AgY2xpZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4wLTF1YnVudHU2LjEKbmFtZTogcmVtbWluYS1wbHVnaW4tdm5jCmRlc2NyaXB0aW9uOiBWTkMgcGx1Z2luIGZvciByZW1taW5hIHJlbW90ZSBkZXNrdG9wIGNsaWVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA2LjMuMXVidW50dTEKbmFtZTogcmVwb3J0YnVnCmRlc2NyaXB0aW9uOiByZXBvcnRzIGJ1Z3MgaW4gdGhlIERlYmlhbiBkaXN0cmlidXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS42M3VidW50dTE2Cm5hbWU6IHJlc29sdmNvbmYKZGVzY3JpcHRpb246IG5hbWUgc2VydmVyIGluZm9ybWF0aW9uIGhhbmRsZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LTF1YnVudHUyCm5hbWU6IHJma2lsbApkZXNjcmlwdGlvbjogdG9vbCBmb3IgZW5hYmxpbmcgYW5kIGRpc2FibGluZyB3aXJlbGVzcyBkZXZpY2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuOTYtMHVidW50dTQuMgpuYW1lOiByaHl0aG1ib3gKZGVzY3JpcHRpb246IG11c2ljIHBsYXllciBhbmQgb3JnYW5pemVyIGZvciBHTk9NRQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjk2LTB1YnVudHU0LjIKbmFtZTogcmh5dGhtYm94LWRhdGEKZGVzY3JpcHRpb246IGRhdGEgZmlsZXMgZm9yIHJoeXRobWJveAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjk2LTB1YnVudHU0LjIKbmFtZTogcmh5dGhtYm94LW1vemlsbGEKZGVzY3JpcHRpb246IFJoeXRobWJveCBNb3ppbGxhIHBsdWdpbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjk2LTB1YnVudHU0LjIKbmFtZTogcmh5dGhtYm94LXBsdWdpbi1jZHJlY29yZGVyCmRlc2NyaXB0aW9uOiBidXJuaW5nIHBsdWdpbiBmb3Igcmh5dGhtYm94IG11c2ljIHBsYXllcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjk2LTB1YnVudHU0LjIKbmFtZTogcmh5dGhtYm94LXBsdWdpbi1tYWduYXR1bmUKZGVzY3JpcHRpb246IE1hZ25hdHVuZSBwbHVnaW4gZm9yIHJoeXRobWJveCBtdXNpYyBwbGF5ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi45Ni0wdWJ1bnR1NC4yCm5hbWU6IHJoeXRobWJveC1wbHVnaW4temVpdGdlaXN0CmRlc2NyaXB0aW9uOiB6ZWl0Z2Vpc3QgcGx1Z2luIGZvciByaHl0aG1ib3ggbXVzaWMgcGxheWVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuOTYtMHVidW50dTQuMgpuYW1lOiByaHl0aG1ib3gtcGx1Z2lucwpkZXNjcmlwdGlvbjogcGx1Z2lucyBmb3Igcmh5dGhtYm94IG11c2ljIHBsYXllcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMC0wdWJ1bnR1MQpuYW1lOiByaHl0aG1ib3gtdWJ1bnR1b25lCmRlc2NyaXB0aW9uOiBVYnVudHUgT25lIFJoeXRobWJveCBwbHVnaW4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjktMXVidW50dTEKbmFtZTogcnN5bmMKZGVzY3JpcHRpb246IGZhc3QsIHZlcnNhdGlsZSwgcmVtb3RlIChhbmQgbG9jYWwpIGZpbGUtY29weWluZyB0b29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuOC42LTF1YnVudHU4Cm5hbWU6IHJzeXNsb2cKZGVzY3JpcHRpb246IHJlbGlhYmxlIHN5c3RlbSBhbmQga2VybmVsIGxvZ2dpbmcgZGFlbW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTAtMgpuYW1lOiBydGtpdApkZXNjcmlwdGlvbjogUmVhbHRpbWUgUG9saWN5IGFuZCBXYXRjaGRvZyBEYWVtb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjozLjYuMy0ydWJ1bnR1Mi4zCm5hbWU6IHNhbWJhLWNvbW1vbgpkZXNjcmlwdGlvbjogY29tbW9uIGZpbGVzIHVzZWQgYnkgYm90aCB0aGUgU2FtYmEgc2VydmVyIGFuZCBjbGllbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjozLjYuMy0ydWJ1bnR1Mi4zCm5hbWU6IHNhbWJhLWNvbW1vbi1iaW4KZGVzY3JpcHRpb246IGNvbW1vbiBmaWxlcyB1c2VkIGJ5IGJvdGggdGhlIFNhbWJhIHNlcnZlciBhbmQgY2xpZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4yMi03dWJ1bnR1MQpuYW1lOiBzYW5lLXV0aWxzCmRlc2NyaXB0aW9uOiBBUEkgbGlicmFyeSBmb3Igc2Nhbm5lcnMgLS0gdXRpbGl0aWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMTAyLTMKbmFtZTogc2NhbnR2CmRlc2NyaXB0aW9uOiB0ZWxldmlzaW9uIGNoYW5uZWwtc2Nhbm5lcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjAuMy0xNHVidW50dTgKbmFtZTogc2NyZWVuCmRlc2NyaXB0aW9uOiB0ZXJtaW5hbCBtdWx0aXBsZXhvciB3aXRoIFZUMTAwL0FOU0kgdGVybWluYWwgZW11bGF0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTR1YnVudHUyCm5hbWU6IHNjcmVlbi1yZXNvbHV0aW9uLWV4dHJhCmRlc2NyaXB0aW9uOiBFeHRlbnNpb24gZm9yIHRoZSBHTk9NRSBzY3JlZW4gcmVzb2x1dGlvbiBhcHBsZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjItMHVidW50dTIuMQpuYW1lOiBzZWFiaW9zCmRlc2NyaXB0aW9uOiBsZWdhY3kgQklPUyBpbXBsZW1lbnRhdGlvbiB3aGljaCBjYW4gYmUgdXNlZCBhcyBhIGNvcmVib290IHBheWxvYWQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4yLjItMHVidW50dTIuMQpuYW1lOiBzZWFob3JzZQpkZXNjcmlwdGlvbjogR05PTUUgZnJvbnQgZW5kIGZvciBHbnVQRwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0LjIuMS05Cm5hbWU6IHNlZApkZXNjcmlwdGlvbjogVGhlIEdOVSBzZWQgc3RyZWFtIGVkaXRvcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjAuNnVidW50dTIKbmFtZTogc2Vuc2libGUtdXRpbHMKZGVzY3JpcHRpb246IFV0aWxpdGllcyBmb3Igc2Vuc2libGUgYWx0ZXJuYXRpdmUgc2VsZWN0aW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMjArYnpyMTI4LTB1YnVudHUxLjIKbmFtZTogc2Vzc2lvbmluc3RhbGxlcgpkZXNjcmlwdGlvbjogQVBUIGJhc2VkIGluc3RhbGxlciB1c2luZyBQYWNrYWdlS2l0J3Mgc2Vzc2lvbiBEQnVzIEFQSQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMzLTEKbmFtZTogc2czLXV0aWxzCmRlc2NyaXB0aW9uOiB1dGlsaXRpZXMgZm9yIGRldmljZXMgdXNpbmcgdGhlIFNDU0kgY29tbWFuZCBzZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yNitubXUxdWJ1bnR1MQpuYW1lOiBzZ21sLWJhc2UKZGVzY3JpcHRpb246IFNHTUwgaW5mcmFzdHJ1Y3R1cmUgYW5kIFNHTUwgY2F0YWxvZyBmaWxlIHN1cHBvcnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjYKbmFtZTogc2dtbC1kYXRhCmRlc2NyaXB0aW9uOiBjb21tb24gU0dNTCBhbmQgWE1MIGRhdGEKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLTB1YnVudHU0LjEKbmFtZTogc2hhcmVkLW1pbWUtaW5mbwpkZXNjcmlwdGlvbjogRnJlZURlc2t0b3Aub3JnIHNoYXJlZCBNSU1FIGRhdGFiYXNlIGFuZCBzcGVjCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTIuMy0wdWJ1bnR1MC4xCm5hbWU6IHNob3R3ZWxsCmRlc2NyaXB0aW9uOiBkaWdpdGFsIHBob3RvIG9yZ2FuaXplcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjg4LjEtMQpuYW1lOiBzaHV0dGVyCmRlc2NyaXB0aW9uOiBmZWF0dXJlLXJpY2ggc2NyZWVuc2hvdCBwcm9ncmFtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNzAtMWJ1aWxkMQpuYW1lOiBzaWVnZQpkZXNjcmlwdGlvbjogSFRUUCByZWdyZXNzaW9uIHRlc3RpbmcgYW5kIGJlbmNobWFya2luZyB1dGlsaXR5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4xLTB1YnVudHUxLjEKbmFtZTogc2ltcGxlLXNjYW4KZGVzY3JpcHRpb246IFNpbXBsZSBTY2FubmluZyBVdGlsaXR5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuNDErc3ZuMzM2NS0xCm5hbWU6IHNtYXJ0bW9udG9vbHMKZGVzY3JpcHRpb246IGNvbnRyb2wgYW5kIG1vbml0b3Igc3RvcmFnZSBzeXN0ZW1zIHVzaW5nIFMuTS5BLlIuVC4KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjozLjYuMy0ydWJ1bnR1Mi4zCm5hbWU6IHNtYmNsaWVudApkZXNjcmlwdGlvbjogY29tbWFuZC1saW5lIFNNQi9DSUZTIGNsaWVudHMgZm9yIFVuaXgKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjUtMHVidW50dTMKbmFtZTogc25pLXF0CmRlc2NyaXB0aW9uOiBpbmRpY2F0b3Igc3VwcG9ydCBmb3IgUXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4yLjcKbmFtZTogc29mdHdhcmUtY2VudGVyCmRlc2NyaXB0aW9uOiBVdGlsaXR5IGZvciBicm93c2luZywgaW5zdGFsbGluZywgYW5kIHJlbW92aW5nIHNvZnR3YXJlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS4yCm5hbWU6IHNvZnR3YXJlLWNlbnRlci1hcHRkYWVtb24tcGx1Z2lucwpkZXNjcmlwdGlvbjogVGhlIGFwdGRhZW1vbiBwbHVnaW5zIGZvciBzb2Z0d2FyZS1jZW50ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44Mi43LjMKbmFtZTogc29mdHdhcmUtcHJvcGVydGllcy1jb21tb24KZGVzY3JpcHRpb246IG1hbmFnZSB0aGUgcmVwb3NpdG9yaWVzIHRoYXQgeW91IGluc3RhbGwgc29mdHdhcmUgZnJvbSAoY29tbW9uKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjgyLjcuMwpuYW1lOiBzb2Z0d2FyZS1wcm9wZXJ0aWVzLWd0awpkZXNjcmlwdGlvbjogbWFuYWdlIHRoZSByZXBvc2l0b3JpZXMgdGhhdCB5b3UgaW5zdGFsbCBzb2Z0d2FyZSBmcm9tIChndGspCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4wLTF1YnVudHUxCm5hbWU6IHNvdW5kLWp1aWNlcgpkZXNjcmlwdGlvbjogR05PTUUgQ0QgUmlwcGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNy5wcmlzdGluZS0yCm5hbWU6IHNvdW5kLXRoZW1lLWZyZWVkZXNrdG9wCmRlc2NyaXB0aW9uOiBmcmVlZGVza3RvcC5vcmcgc291bmQgdGhlbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTQuMy4yLTMKbmFtZTogc294CmRlc2NyaXB0aW9uOiBTd2lzcyBhcm15IGtuaWZlIG9mIHNvdW5kIHByb2Nlc3NpbmcKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC43LjEtNnVidW50dTMKbmFtZTogc3BlZWNoLWRpc3BhdGNoZXIKZGVzY3JpcHRpb246IENvbW1vbiBpbnRlcmZhY2UgdG8gc3BlZWNoIHN5bnRoZXNpemVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjUuOXAxLTV1YnVudHUxCm5hbWU6IHNzaC1hc2twYXNzLWdub21lCmRlc2NyaXB0aW9uOiBpbnRlcmFjdGl2ZSBYIHByb2dyYW0gdG8gcHJvbXB0IHVzZXJzIGZvciBhIHBhc3NwaHJhc2UgZm9yIHNzaC1hZGQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjI4dWJ1bnR1MC4xCm5hbWU6IHNzbC1jZXJ0CmRlc2NyaXB0aW9uOiBzaW1wbGUgZGViY29uZiB3cmFwcGVyIGZvciBPcGVuU1NMCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMXByZWNpc2U0fnJldjYKbmFtZTogc3RhcnR1cHRpbWUKZGVzY3JpcHRpb246IE1lYXN1cmUgYXBwbGljYXRpb24gc3RhcnR1cCB0aW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuNS4yMC0yLjN1YnVudHUxCm5hbWU6IHN0cmFjZQpkZXNjcmlwdGlvbjogQSBzeXN0ZW0gY2FsbCB0cmFjZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS42NC42LTEKbmFtZTogc3RyZWFtcmlwcGVyCmRlc2NyaXB0aW9uOiBkb3dubG9hZCBvbmxpbmUgc3RyZWFtcyBpbnRvIGF1ZGlvIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4xLTFidWlsZDEKbmFtZTogc3RyZXNzCmRlc2NyaXB0aW9uOiBBIHRvb2wgdG8gaW1wb3NlIGxvYWQgb24gYW5kIHN0cmVzcyB0ZXN0IGEgY29tcHV0ZXIgc3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC4zLTJ1YnVudHUyCm5hbWU6IHN0cmVzc2FwcHRlc3QKZGVzY3JpcHRpb246IHN0cmVzcyB0ZXN0IGFwcGxpY2F0aW9uIGZvciBzaW11bGF0aW5nIGhpZ2ggbG9hZCBzaXR1YXRpb25zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuOC4zcDEtMXVidW50dTMuMwpuYW1lOiBzdWRvCmRlc2NyaXB0aW9uOiBQcm92aWRlIGxpbWl0ZWQgc3VwZXIgdXNlciBwcml2aWxlZ2VzIHRvIHNwZWNpZmljIHVzZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNzUuOXVidW50dTEKbmFtZTogc3luYXB0aWMKZGVzY3JpcHRpb246IEdyYXBoaWNhbCBwYWNrYWdlIG1hbmFnZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjo0LjA1K2Rmc2ctMgpuYW1lOiBzeXNsaW51eApkZXNjcmlwdGlvbjogY29sbGVjdGlvbiBvZiBib290IGxvYWRlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjo0LjA1K2Rmc2ctMgpuYW1lOiBzeXNsaW51eC1jb21tb24KZGVzY3JpcHRpb246IGNvbGxlY3Rpb24gb2YgYm9vdCBsb2FkZXJzIChjb21tb24gZmlsZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6My42MytkZnNnLTJ1YnVudHU1Cm5hbWU6IHN5c2xpbnV4LWxlZ2FjeQpkZXNjcmlwdGlvbjogQm9vdGxvYWRlciBmb3IgTGludXgvaTM4NiB1c2luZyBNUy1ET1MgZmxvcHBpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTAuMC4zLTEKbmFtZTogc3lzc3RhdApkZXNjcmlwdGlvbjogc3lzdGVtIHBlcmZvcm1hbmNlIHRvb2xzIGZvciBMaW51eAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjMuOCsyMDEyMDIwMS0wdWJ1bnR1OC4xCm5hbWU6IHN5c3RlbS1jb25maWctcHJpbnRlci1jb21tb24KZGVzY3JpcHRpb246IFByaW50ZXIgY29uZmlndXJhdGlvbiBHVUkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4zLjgrMjAxMjAyMDEtMHVidW50dTguMQpuYW1lOiBzeXN0ZW0tY29uZmlnLXByaW50ZXItZ25vbWUKZGVzY3JpcHRpb246IFByaW50ZXIgY29uZmlndXJhdGlvbiBHVUkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4zLjgrMjAxMjAyMDEtMHVidW50dTguMQpuYW1lOiBzeXN0ZW0tY29uZmlnLXByaW50ZXItdWRldgpkZXNjcmlwdGlvbjogUHJpbnRlciBhdXRvLWNvbmZpZ3VyYXRpb24gZmFjaWxpdHkgYmFzZWQgb24gdWRldgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjEwLjItMXVidW50dTEKbmFtZTogc3lzdGVtLXRvb2xzLWJhY2tlbmRzCmRlc2NyaXB0aW9uOiBTeXN0ZW0gVG9vbHMgdG8gbWFuYWdlIGNvbXB1dGVyIGNvbmZpZ3VyYXRpb24gLS0gc2NyaXB0cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjg4ZHNmLTEzLjEwdWJ1bnR1MTEuMQpuYW1lOiBzeXN2LXJjCmRlc2NyaXB0aW9uOiBTeXN0ZW0tVi1saWtlIHJ1bmxldmVsIGNoYW5nZSBtZWNoYW5pc20KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi44OGRzZi0xMy4xMHVidW50dTExLjEKbmFtZTogc3lzdmluaXQtdXRpbHMKZGVzY3JpcHRpb246IFN5c3RlbS1WLWxpa2UgdXRpbGl0aWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOC45MC01Cm5hbWU6IHRhbmdvLWljb24tdGhlbWUKZGVzY3JpcHRpb246IFRhbmdvIGljb24gdGhlbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yNi00dWJ1bnR1MQpuYW1lOiB0YXIKZGVzY3JpcHRpb246IEdOVSB2ZXJzaW9uIG9mIHRoZSB0YXIgYXJjaGl2aW5nIHV0aWxpdHkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogOC41LjAtMgpuYW1lOiB0Y2wKZGVzY3JpcHRpb246IFRoZSBUb29sIENvbW1hbmQgTGFuZ3VhZ2UgKGRlZmF1bHQgdmVyc2lvbikgLSBydW4tdGltZSBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA4LjUuMTEtMXVidW50dTEKbmFtZTogdGNsOC41CmRlc2NyaXB0aW9uOiBUY2wgKHRoZSBUb29sIENvbW1hbmQgTGFuZ3VhZ2UpIHY4LjUgLSBydW4tdGltZSBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA3LjYucS0yMQpuYW1lOiB0Y3BkCmRlc2NyaXB0aW9uOiBXaWV0c2UgVmVuZW1hJ3MgVENQIHdyYXBwZXIgdXRpbGl0aWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuMi4xLTF1YnVudHUyCm5hbWU6IHRjcGR1bXAKZGVzY3JpcHRpb246IGNvbW1hbmQtbGluZSBuZXR3b3JrIHRyYWZmaWMgYW5hbHl6ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xNi4wLTB1YnVudHUyCm5hbWU6IHRlbGVwYXRoeS1nYWJibGUKZGVzY3JpcHRpb246IEphYmJlci9YTVBQIGNvbm5lY3Rpb24gbWFuYWdlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjYuMC0wdWJ1bnR1MQpuYW1lOiB0ZWxlcGF0aHktaGF6ZQpkZXNjcmlwdGlvbjogVGVsZXBhdGh5IGNvbm5lY3Rpb24gbWFuYWdlciB0aGF0IHVzZXMgbGlicHVycGxlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMS4xMS0yCm5hbWU6IHRlbGVwYXRoeS1pZGxlCmRlc2NyaXB0aW9uOiBJUkMgY29ubmVjdGlvbiBtYW5hZ2VyIGZvciBUZWxlcGF0aHkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjEtMHVidW50dTEKbmFtZTogdGVsZXBhdGh5LWluZGljYXRvcgpkZXNjcmlwdGlvbjogRGVza3RvcCBzZXJ2aWNlIHRvIGludGVncmF0ZSBUZWxlcGF0aHkgd2l0aCB0aGUgbWVzc2FnaW5nIG1lbnUuCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC4wLTB1YnVudHUxCm5hbWU6IHRlbGVwYXRoeS1sb2dnZXIKZGVzY3JpcHRpb246IFRlbGVwYXRoeSBsb2dnZXIgc2VydmljZSAtIERhZW1vbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjUuMTIuMC0wdWJ1bnR1Mi4xCm5hbWU6IHRlbGVwYXRoeS1taXNzaW9uLWNvbnRyb2wtNQpkZXNjcmlwdGlvbjogbWFuYWdlbWVudCBkYWVtb24gZm9yIFRlbGVwYXRoeSByZWFsLXRpbWUgY29tbXVuaWNhdGlvbiBmcmFtZXdvcmsKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44LjAtMHVidW50dTEKbmFtZTogdGVsZXBhdGh5LXNhbHV0CmRlc2NyaXB0aW9uOiBMaW5rLWxvY2FsIFhNUFAgY29ubmVjdGlvbiBtYW5hZ2VyIGZvciB0aGUgVGVsZXBhdGh5IGZyYW1ld29yawoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjE3LTM2YnVpbGQxCm5hbWU6IHRlbG5ldApkZXNjcmlwdGlvbjogVGhlIHRlbG5ldCBjbGllbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTcuMC4yK2J1aWxkMS0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IHRodW5kZXJiaXJkCmRlc2NyaXB0aW9uOiBFbWFpbCwgUlNTIGFuZCBuZXdzZ3JvdXAgY2xpZW50IHdpdGggaW50ZWdyYXRlZCBzcGFtIGZpbHRlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxNy4wLjIrYnVpbGQxLTB1YnVudHUwLjEyLjA0LjEKbmFtZTogdGh1bmRlcmJpcmQtZ2xvYmFsbWVudQpkZXNjcmlwdGlvbjogVW5pdHkgYXBwbWVudSBpbnRlZ3JhdGlvbiBmb3IgVGh1bmRlcmJpcmQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTcuMC4yK2J1aWxkMS0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IHRodW5kZXJiaXJkLWdub21lLXN1cHBvcnQKZGVzY3JpcHRpb246IEVtYWlsLCBSU1MgYW5kIG5ld3Nncm91cCBjbGllbnQgLSBHTk9NRSBzdXBwb3J0CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MTcuMC4yK2J1aWxkMS0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IHRodW5kZXJiaXJkLWxvY2FsZS1lbgpkZXNjcmlwdGlvbjogRW5nbGlzaCBsYW5ndWFnZSBwYWNrIGZvciBUaHVuZGVyYmlyZAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjE3LjAuMitidWlsZDEtMHVidW50dTAuMTIuMDQuMQpuYW1lOiB0aHVuZGVyYmlyZC1sb2NhbGUtZW4tdXMKZGVzY3JpcHRpb246IFRyYW5zaXRpb25hbCBFbmdsaXNoIGxhbmd1YWdlIHBhY2sgZm9yIFRodW5kZXJiaXJkCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNy0yMy4xCm5hbWU6IHRpbWUKZGVzY3JpcHRpb246IFRoZSBHTlUgdGltZSBwcm9ncmFtIGZvciBtZWFzdXJpbmcgY3B1IHJlc291cmNlIHVzYWdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDguNS4wLTIKbmFtZTogdGsKZGVzY3JpcHRpb246IFRoZSBUayB0b29sa2l0IGZvciBUY2wgYW5kIFgxMSAoZGVmYXVsdCB2ZXJzaW9uKSAtIHJ1bi10aW1lIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDguNS4xMS0xCm5hbWU6IHRrOC41CmRlc2NyaXB0aW9uOiBUayB0b29sa2l0IGZvciBUY2wgYW5kIFgxMSwgdjguNSAtIHJ1bi10aW1lIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNi0xdWJ1bnR1MQpuYW1lOiB0bXV4CmRlc2NyaXB0aW9uOiB0ZXJtaW5hbCBtdWx0aXBsZXhlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjc2LTIKbmFtZTogdG9zaHNldApkZXNjcmlwdGlvbjogQWNjZXNzIG11Y2ggb2YgdGhlIFRvc2hpYmEgbGFwdG9wIGhhcmR3YXJlIGludGVyZmFjZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMS0wdWJ1bnR1MjEuMQpuYW1lOiB0b3RlbQpkZXNjcmlwdGlvbjogU2ltcGxlIG1lZGlhIHBsYXllciBmb3IgdGhlIEdOT01FIGRlc2t0b3AgYmFzZWQgb24gR1N0cmVhbWVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4xLTB1YnVudHUyMS4xCm5hbWU6IHRvdGVtLWNvbW1vbgpkZXNjcmlwdGlvbjogRGF0YSBmaWxlcyBmb3IgdGhlIFRvdGVtIG1lZGlhIHBsYXllcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMS0wdWJ1bnR1MjEuMQpuYW1lOiB0b3RlbS1tb3ppbGxhCmRlc2NyaXB0aW9uOiBUb3RlbSBNb3ppbGxhIHBsdWdpbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMS0wdWJ1bnR1MjEuMQpuYW1lOiB0b3RlbS1wbHVnaW5zCmRlc2NyaXB0aW9uOiBQbHVnaW5zIGZvciB0aGUgVG90ZW0gbWVkaWEgcGxheWVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuNTEtMHVidW50dTEuMQpuYW1lOiB0cmFuc21pc3Npb24tY29tbW9uCmRlc2NyaXB0aW9uOiBsaWdodHdlaWdodCBCaXRUb3JyZW50IGNsaWVudCAoY29tbW9uIGZpbGVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjUxLTB1YnVudHUxLjEKbmFtZTogdHJhbnNtaXNzaW9uLWd0awpkZXNjcmlwdGlvbjogbGlnaHR3ZWlnaHQgQml0VG9ycmVudCBjbGllbnQgKEdUSyBpbnRlcmZhY2UpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNS4zLTIKbmFtZTogdHJlZQpkZXNjcmlwdGlvbjogZGlzcGxheXMgZGlyZWN0b3J5IHRyZWUsIGluIGNvbG9yCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC0xMApuYW1lOiB0c2NvbmYKZGVzY3JpcHRpb246IHRvdWNoIHNjcmVlbiBsaWJyYXJ5IGNvbW1vbiBmaWxlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMzLTJ1YnVudHUxCm5hbWU6IHR0Zi1kZWphdnUtY29yZQpkZXNjcmlwdGlvbjogVmVyYSBmb250IGZhbWlseSBkZXJpdmF0ZSB3aXRoIGFkZGl0aW9uYWwgY2hhcmFjdGVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMzLTJ1YnVudHUxCm5hbWU6IHR0Zi1kZWphdnUtZXh0cmEKZGVzY3JpcHRpb246IFZlcmEgZm9udCBmYW1pbHkgZGVyaXZhdGUgd2l0aCBhZGRpdGlvbmFsIGNoYXJhY3RlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjAxMDA5MTktMQpuYW1lOiB0dGYtZnJlZWZvbnQKZGVzY3JpcHRpb246IEZyZWVmb250IFNlcmlmLCBTYW5zIGFuZCBNb25vIFRydWV0eXBlIGZvbnRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC41LjExdWJ1bnR1MQpuYW1lOiB0dGYtaW5kaWMtZm9udHMtY29yZQpkZXNjcmlwdGlvbjogQ29yZSBjb2xsZWN0aW9uIG9mIGZyZWUgZm9udHMgZm9yIGxhbmd1YWdlcyBvZiBJbmRpYQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuNS4xMXVidW50dTEKbmFtZTogdHRmLXB1bmphYmktZm9udHMKZGVzY3JpcHRpb246IEZyZWUgVHJ1ZVR5cGUgZm9udHMgZm9yIHRoZSBQdW5qYWJpIGxhbmd1YWdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuODAtMHVidW50dTIKbmFtZTogdHRmLXVidW50dS1mb250LWZhbWlseQpkZXNjcmlwdGlvbjogVWJ1bnR1IEZvbnQgRmFtaWx5LCBzYW5zLXNlcmlmIHR5cGVmYWNlIGhpbnRlZCBmb3IgY2xhcml0eQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuMC1iZXRhLTF1YnVudHUxCm5hbWU6IHR0Zi13cXktbWljcm9oZWkKZGVzY3JpcHRpb246IEEgZHJvaWQgZGVyaXZlZCBTYW5zLVNlcmkgc3R5bGUgQ0pLIGZvbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjAxMmUtMHVidW50dTAuMTIuMDQuMQpuYW1lOiB0emRhdGEKZGVzY3JpcHRpb246IHRpbWUgem9uZSBhbmQgZGF5bGlnaHQtc2F2aW5nIHRpbWUgZGF0YQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyMDEyZS0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IHR6ZGF0YS1qYXZhCmRlc2NyaXB0aW9uOiB0aW1lIHpvbmUgYW5kIGRheWxpZ2h0LXNhdmluZyB0aW1lIGRhdGEgZm9yIHVzZSBieSBqYXZhIHJ1bnRpbWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDU3Cm5hbWU6IHVidW50dS1hcnR3b3JrCmRlc2NyaXB0aW9uOiBVYnVudHUgdGhlbWVzIGFuZCBhcnR3b3JrCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTQxCm5hbWU6IHVidW50dS1kZXYtdG9vbHMKZGVzY3JpcHRpb246IHVzZWZ1bCB0b29scyBmb3IgVWJ1bnR1IGRldmVsb3BlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTIuMDQuNgpuYW1lOiB1YnVudHUtZG9jcwpkZXNjcmlwdGlvbjogVWJ1bnR1IERlc2t0b3AgR3VpZGUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjAxMC4wOS4yNwpuYW1lOiB1YnVudHUtZXh0cmFzLWtleXJpbmcKZGVzY3JpcHRpb246IEdudVBHIGtleXMgb2YgdGhlIFVidW50dSBleHRyYXMgYXJjaGl2ZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyMDExLjExLjIxLjEKbmFtZTogdWJ1bnR1LWtleXJpbmcKZGVzY3JpcHRpb246IEdudVBHIGtleXMgb2YgdGhlIFVidW50dSBhcmNoaXZlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMjY3Cm5hbWU6IHVidW50dS1taW5pbWFsCmRlc2NyaXB0aW9uOiBNaW5pbWFsIGNvcmUgb2YgVWJ1bnR1CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMC40MApuYW1lOiB1YnVudHUtbW9ubwpkZXNjcmlwdGlvbjogVWJ1bnR1IE1vbm8gSWNvbiB0aGVtZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEzCm5hbWU6IHVidW50dS1zb3VuZHMKZGVzY3JpcHRpb246IFVidW50dSdzIEdOT01FIGF1ZGlvIHRoZW1lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4yLTB1YnVudHUzCm5hbWU6IHVidW50dS1zc28tY2xpZW50CmRlc2NyaXB0aW9uOiBVYnVudHUgU2luZ2xlIFNpZ24tT24gY2xpZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4yLTB1YnVudHUzCm5hbWU6IHVidW50dS1zc28tY2xpZW50LWd0awpkZXNjcmlwdGlvbjogVWJ1bnR1IFNpbmdsZSBTaWduLU9uIGNsaWVudCAtIEdUSysgZnJvbnRlbmQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4wLjItMHVidW50dTMKbmFtZTogdWJ1bnR1LXNzby1jbGllbnQtcXQKZGVzY3JpcHRpb246IFVidW50dSBTaW5nbGUgU2lnbi1PbiBjbGllbnQgLSBRdCBmcm9udGVuZAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjI2NwpuYW1lOiB1YnVudHUtc3RhbmRhcmQKZGVzY3JpcHRpb246IFRoZSBVYnVudHUgc3RhbmRhcmQgc3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMi4yCm5hbWU6IHVidW50dS1zeXN0ZW0tc2VydmljZQpkZXNjcmlwdGlvbjogRGJ1cyBzZXJ2aWNlIHRvIHNldCB2YXJpb3VzIHN5c3RlbS13aWRlIGNvbmZpZ3VyYXRpb25zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOC40LTB+YnpyMTk0OSsyMDEzMDEyMn5wcmVjaXNlMQpuYW1lOiB1YnVudHUtdHdlYWsKZGVzY3JpcHRpb246IFVidW50dSBUd2VhawoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjM0LjEKbmFtZTogdWJ1bnR1LXdhbGxwYXBlcnMKZGVzY3JpcHRpb246IFVidW50dSBXYWxscGFwZXJzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMzQuMQpuYW1lOiB1YnVudHUtd2FsbHBhcGVycy1wcmVjaXNlCmRlc2NyaXB0aW9uOiBVYnVudHUgMTIuMDQgV2FsbHBhcGVycwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMi0wdWJ1bnR1MQpuYW1lOiB1YnVudHVvbmUtY2xpZW50CmRlc2NyaXB0aW9uOiBVYnVudHUgT25lIGNsaWVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMS0wdWJ1bnR1MQpuYW1lOiB1YnVudHVvbmUtY2xpZW50LWdub21lCmRlc2NyaXB0aW9uOiBVYnVudHUgT25lIGNsaWVudCBHTk9NRSBpbnRlZ3JhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMS0wdWJ1bnR1MQpuYW1lOiB1YnVudHVvbmUtY29udHJvbC1wYW5lbApkZXNjcmlwdGlvbjogVWJ1bnR1IE9uZSBDb250cm9sIFBhbmVsCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4xLTB1YnVudHUxCm5hbWU6IHVidW50dW9uZS1jb250cm9sLXBhbmVsLWNvbW1vbgpkZXNjcmlwdGlvbjogVWJ1bnR1IE9uZSBDb250cm9sIFBhbmVsIC0gQ29tbW9uIGZyb250ZW5kIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC4xLTB1YnVudHUxCm5hbWU6IHVidW50dW9uZS1jb250cm9sLXBhbmVsLXF0CmRlc2NyaXB0aW9uOiBVYnVudHUgT25lIENvbnRyb2wgUGFuZWwgLSBRdCBmcm9udGVuZAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMuMC0wdWJ1bnR1NApuYW1lOiB1YnVudHVvbmUtY291Y2gKZGVzY3JpcHRpb246IFVidW50dSBPbmUgQ291Y2hEQgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAuMi0wdWJ1bnR1MS4xCm5hbWU6IHVidW50dW9uZS1pbnN0YWxsZXIKZGVzY3JpcHRpb246IFVidW50dSBPbmUgSW5zdGFsbGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMDAyNStubXUydWJ1bnR1MQpuYW1lOiB1Y2YKZGVzY3JpcHRpb246IFVwZGF0ZSBDb25maWd1cmF0aW9uIEZpbGU6IHByZXNlcnZlIHVzZXIgY2hhbmdlcyB0byBjb25maWcgZmlsZXMuCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE3NS0wdWJ1bnR1OS4yCm5hbWU6IHVkZXYKZGVzY3JpcHRpb246IHJ1bGUtYmFzZWQgZGV2aWNlIG5vZGUgYW5kIGtlcm5lbCBldmVudCBtYW5hZ2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC40LTV1YnVudHUyLjEKbmFtZTogdWRpc2tzCmRlc2NyaXB0aW9uOiBzdG9yYWdlIG1lZGlhIGludGVyZmFjZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjMxLjEtMQpuYW1lOiB1ZncKZGVzY3JpcHRpb246IHByb2dyYW0gZm9yIG1hbmFnaW5nIGEgTmV0ZmlsdGVyIGZpcmV3YWxsCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNzZ1YnVudHUxCm5hbWU6IHVuYXR0ZW5kZWQtdXBncmFkZXMKZGVzY3JpcHRpb246IGF1dG9tYXRpYyBpbnN0YWxsYXRpb24gb2Ygc2VjdXJpdHkgdXBncmFkZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4xOC4wLTB1YnVudHUxCm5hbWU6IHVuaXR5CmRlc2NyaXB0aW9uOiBJbnRlcmZhY2UgZGVzaWduZWQgZm9yIGVmZmljaWVuY3kgb2Ygc3BhY2UgYW5kIGludGVyYWN0aW9uLgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjEyLjAtMHVidW50dTEuMgpuYW1lOiB1bml0eS0yZApkZXNjcmlwdGlvbjogVW5pdHkgaW50ZXJmYWNlIGZvciBub24tYWNjZWxlcmF0ZWQgZ3JhcGhpY3MgY2FyZHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4xMi4wLTB1YnVudHUxLjIKbmFtZTogdW5pdHktMmQtY29tbW9uCmRlc2NyaXB0aW9uOiBDb21tb24gZmlsZXMgZm9yIFVuaXR5IDJEIFNoZWxsCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMTIuMC0wdWJ1bnR1MS4yCm5hbWU6IHVuaXR5LTJkLXBhbmVsCmRlc2NyaXB0aW9uOiBVbml0eSAyRCBQYW5lbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjEyLjAtMHVidW50dTEuMgpuYW1lOiB1bml0eS0yZC1zaGVsbApkZXNjcmlwdGlvbjogRGFzaCBhbmQgTGF1bmNoZXIgZm9yIHRoZSBVbml0eSAyRCBlbnZpcm9ubWVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjEyLjAtMHVidW50dTEuMgpuYW1lOiB1bml0eS0yZC1zcHJlYWQKZGVzY3JpcHRpb246IFVuaXR5IDJEIFNwcmVhZAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguMjMtMHVidW50dTEKbmFtZTogdW5pdHktYXNzZXQtcG9vbApkZXNjcmlwdGlvbjogVW5pdHkgQXNzZXRzIFBvb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4xOC4wLTB1YnVudHUxCm5hbWU6IHVuaXR5LWNvbW1vbgpkZXNjcmlwdGlvbjogQ29tbW9uIGZpbGVzIGZvciB0aGUgVW5pdHkgaW50ZXJmYWNlLgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuOC0wdWJ1bnR1MS40Cm5hbWU6IHVuaXR5LWdyZWV0ZXIKZGVzY3JpcHRpb246IFVuaXR5IEdyZWV0ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNS4xOC4wLTB1YnVudHUxCm5hbWU6IHVuaXR5LWxlbnMtYXBwbGljYXRpb25zCmRlc2NyaXB0aW9uOiBBcHBsaWNhdGlvbiBsZW5zIGZvciB1bml0eQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjEwLjAtMHVidW50dTEKbmFtZTogdW5pdHktbGVucy1maWxlcwpkZXNjcmlwdGlvbjogRmlsZSBsZW5zIGZvciB1bml0eQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjEyLjAtMHVidW50dTIKbmFtZTogdW5pdHktbGVucy1tdXNpYwpkZXNjcmlwdGlvbjogTXVzaWMgbGVucyBmb3IgdW5pdHkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjUtMHVidW50dTEuMwpuYW1lOiB1bml0eS1sZW5zLXZpZGVvCmRlc2NyaXB0aW9uOiBVbml0eSBWaWRlbyBsZW5zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMTIuMC0wdWJ1bnR1MgpuYW1lOiB1bml0eS1zY29wZS1tdXNpY3N0b3JlcwpkZXNjcmlwdGlvbjogU3RvcmUgbXVzaWMgbGVucyBmb3IgdW5pdHkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4zLjUtMHVidW50dTIuMQpuYW1lOiB1bml0eS1zY29wZS12aWRlby1yZW1vdGUKZGVzY3JpcHRpb246IFJlbW90ZSB2aWRlb3MgZW5naW5lCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMTguMC0wdWJ1bnR1MQpuYW1lOiB1bml0eS1zZXJ2aWNlcwpkZXNjcmlwdGlvbjogU2VydmljZXMgZm9yIHRoZSBVbml0eSBpbnRlcmZhY2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy41LjQtMHVidW50dTEuMQpuYW1lOiB1bm8tbGliczMKZGVzY3JpcHRpb246IExpYnJlT2ZmaWNlIFVOTyBydW50aW1lIGVudmlyb25tZW50IC0tIHB1YmxpYyBzaGFyZWQgbGlicmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDYuMC00dWJ1bnR1MQpuYW1lOiB1bnppcApkZXNjcmlwdGlvbjogRGUtYXJjaGl2ZXIgZm9yIC56aXAgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC40MQpuYW1lOiB1cGRhdGUtaW5ldGQKZGVzY3JpcHRpb246IGluZXRkIGNvbmZpZ3VyYXRpb24gZmlsZSB1cGRhdGVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC4xNTYuMTQuMTEKbmFtZTogdXBkYXRlLW1hbmFnZXIKZGVzY3JpcHRpb246IEdOT01FIGFwcGxpY2F0aW9uIHRoYXQgbWFuYWdlcyBhcHQgdXBkYXRlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuMTU2LjE0LjExCm5hbWU6IHVwZGF0ZS1tYW5hZ2VyLWNvcmUKZGVzY3JpcHRpb246IG1hbmFnZSByZWxlYXNlIHVwZ3JhZGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTE5dWJ1bnR1OC42Cm5hbWU6IHVwZGF0ZS1ub3RpZmllcgpkZXNjcmlwdGlvbjogRGFlbW9uIHdoaWNoIG5vdGlmaWVzIGFib3V0IHBhY2thZ2UgdXBkYXRlcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjExOXVidW50dTguNgpuYW1lOiB1cGRhdGUtbm90aWZpZXItY29tbW9uCmRlc2NyaXB0aW9uOiBGaWxlcyBzaGFyZWQgYmV0d2VlbiB1cGRhdGUtbm90aWZpZXIgYW5kIG90aGVyIHBhY2thZ2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS4xNS0zZ2l0MQpuYW1lOiB1cG93ZXIKZGVzY3JpcHRpb246IGFic3RyYWN0aW9uIGZvciBwb3dlciBtYW5hZ2VtZW50CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNS0wdWJ1bnR1NwpuYW1lOiB1cHN0YXJ0CmRlc2NyaXB0aW9uOiBldmVudC1iYXNlZCBpbml0IGRhZW1vbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjUuNC0wdWJ1bnR1MS4xCm5hbWU6IHVyZQpkZXNjcmlwdGlvbjogTGlicmVPZmZpY2UgVU5PIHJ1bnRpbWUgZW52aXJvbm1lbnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4xMDAuMC0xMgpuYW1lOiB1cmVhZGFoZWFkCmRlc2NyaXB0aW9uOiBSZWFkIHJlcXVpcmVkIGZpbGVzIGluIGFkdmFuY2UKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC4yLjM4Cm5hbWU6IHVzYi1jcmVhdG9yLWNvbW1vbgpkZXNjcmlwdGlvbjogY3JlYXRlIGEgc3RhcnR1cCBkaXNrIHVzaW5nIGEgQ0Qgb3IgZGlzYyBpbWFnZSAoY29tbW9uIGZpbGVzKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjIuMzgKbmFtZTogdXNiLWNyZWF0b3ItZ3RrCmRlc2NyaXB0aW9uOiBjcmVhdGUgYSBzdGFydHVwIGRpc2sgdXNpbmcgYSBDRCBvciBkaXNjIGltYWdlIChmb3IgR05PTUUpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMi4zK3JlcGFjazAtMXVidW50dTIKbmFtZTogdXNiLW1vZGVzd2l0Y2gKZGVzY3JpcHRpb246IG1vZGUgc3dpdGNoaW5nIHRvb2wgZm9yIGNvbnRyb2xsaW5nICJmbGlwIGZsb3AiIFVTQiBkZXZpY2VzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIwMTIwMTIwLTB1YnVudHUxCm5hbWU6IHVzYi1tb2Rlc3dpdGNoLWRhdGEKZGVzY3JpcHRpb246IG1vZGUgc3dpdGNoaW5nIGRhdGEgZm9yIHVzYi1tb2Rlc3dpdGNoCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC43LTIKbmFtZTogdXNibXV4ZApkZXNjcmlwdGlvbjogVVNCIG11bHRpcGxleG9yIGRhZW1vbiBmb3IgaVBob25lIGFuZCBpUG9kIFRvdWNoIGRldmljZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowMDUtMQpuYW1lOiB1c2J1dGlscwpkZXNjcmlwdGlvbjogTGludXggVVNCIHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjIwLjEtMXVidW50dTMKbmFtZTogdXRpbC1saW51eApkZXNjcmlwdGlvbjogTWlzY2VsbGFuZW91cyBzeXN0ZW0gdXRpbGl0aWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMjAuMS0xdWJ1bnR1MwpuYW1lOiB1dWlkLXJ1bnRpbWUKZGVzY3JpcHRpb246IHJ1bnRpbWUgY29tcG9uZW50cyBmb3IgdGhlIFVuaXZlcnNhbGx5IFVuaXF1ZSBJRCBsaWJyYXJ5CgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMTAyLTMKbmFtZTogdjRsLWNvbmYKZGVzY3JpcHRpb246IHRvb2wgdG8gY29uZmlndXJlIHZpZGVvNGxpbnV4IGRyaXZlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC44LjYtMXVidW50dTIKbmFtZTogdjRsLXV0aWxzCmRlc2NyaXB0aW9uOiBDb2xsZWN0aW9uIG9mIGNvbW1hbmQgbGluZSB2aWRlbzRsaW51eCB1dGlsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLTJ1YnVudHUxCm5hbWU6IHZiZXRvb2wKZGVzY3JpcHRpb246IHJ1biByZWFsLW1vZGUgdmlkZW8gQklPUyBjb2RlIHRvIGFsdGVyIGhhcmR3YXJlIHN0YXRlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNmMtMnVidW50dTMKbmFtZTogdmdhYmlvcwpkZXNjcmlwdGlvbjogVkdBIEJJT1Mgc29mdHdhcmUgZm9yIHRoZSBCb2NocyBhbmQgUWVtdSBlbXVsYXRlZCBWR0EgY2FyZAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjcuMy40MjktMnVidW50dTIuMQpuYW1lOiB2aW0KZGVzY3JpcHRpb246IFZpIElNcHJvdmVkIC0gZW5oYW5jZWQgdmkgZWRpdG9yCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6Ny4zLjQyOS0ydWJ1bnR1Mi4xCm5hbWU6IHZpbS1jb21tb24KZGVzY3JpcHRpb246IFZpIElNcHJvdmVkIC0gQ29tbW9uIGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6Ny4zLjQyOS0ydWJ1bnR1Mi4xCm5hbWU6IHZpbS1ydW50aW1lCmRlc2NyaXB0aW9uOiBWaSBJTXByb3ZlZCAtIFJ1bnRpbWUgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjo3LjMuNDI5LTJ1YnVudHUyLjEKbmFtZTogdmltLXRpbnkKZGVzY3JpcHRpb246IFZpIElNcHJvdmVkIC0gZW5oYW5jZWQgdmkgZWRpdG9yIC0gY29tcGFjdCB2ZXJzaW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4yLTB1YnVudHUxLjIKbmFtZTogdmlubwpkZXNjcmlwdGlvbjogVk5DIHNlcnZlciBmb3IgR05PTUUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC40LjItMQpuYW1lOiB2aXJ0LXZpZXdlcgpkZXNjcmlwdGlvbjogRGlzcGxheWluZyB0aGUgZ3JhcGhpY2FsIGNvbnNvbGUgb2YgYSB2aXJ0dWFsIG1hY2hpbmUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC4xLjEyLWRmc2ctMnVidW50dTAuMgpuYW1lOiB2aXJ0dWFsYm94CmRlc2NyaXB0aW9uOiB4ODYgdmlydHVhbGl6YXRpb24gc29sdXRpb24gLSBiYXNlIGJpbmFyaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDQuMS4xMi1kZnNnLTJ1YnVudHUwLjIKbmFtZTogdmlydHVhbGJveC1ka21zCmRlc2NyaXB0aW9uOiB4ODYgdmlydHVhbGl6YXRpb24gc29sdXRpb24gLSBrZXJuZWwgbW9kdWxlIHNvdXJjZXMgZm9yIGRrbXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNC4xLjEyLWRmc2ctMnVidW50dTAuMgpuYW1lOiB2aXJ0dWFsYm94LXF0CmRlc2NyaXB0aW9uOiB4ODYgdmlydHVhbGl6YXRpb24gc29sdXRpb24gLSBRdCBiYXNlZCB1c2VyIGludGVyZmFjZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuNS0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IHZsYwpkZXNjcmlwdGlvbjogbXVsdGltZWRpYSBwbGF5ZXIgYW5kIHN0cmVhbWVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDIuMC41LTB1YnVudHUwLjEyLjA0LjEKbmFtZTogdmxjLWRhdGEKZGVzY3JpcHRpb246IENvbW1vbiBkYXRhIGZvciBWTEMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjUtMHVidW50dTAuMTIuMDQuMQpuYW1lOiB2bGMtbm94CmRlc2NyaXB0aW9uOiBtdWx0aW1lZGlhIHBsYXllciBhbmQgc3RyZWFtZXIgKHdpdGhvdXQgWCBzdXBwb3J0KQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjAuNS0wdWJ1bnR1MC4xMi4wNC4xCm5hbWU6IHZsYy1wbHVnaW4tbm90aWZ5CmRlc2NyaXB0aW9uOiBMaWJOb3RpZnkgcGx1Z2luIGZvciBWTEMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi4wLjUtMHVidW50dTAuMTIuMDQuMQpuYW1lOiB2bGMtcGx1Z2luLXB1bHNlCmRlc2NyaXB0aW9uOiBQdWxzZUF1ZGlvIHBsdWdpbiBmb3IgVkxDCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDcuMS0xCm5hbWU6IHdhbWVyaWNhbgpkZXNjcmlwdGlvbjogQW1lcmljYW4gRW5nbGlzaCBkaWN0aW9uYXJ5IHdvcmRzIGZvciAvdXNyL3NoYXJlL2RpY3QKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNy4xLTEKbmFtZTogd2JyaXRpc2gKZGVzY3JpcHRpb246IEJyaXRpc2ggRW5nbGlzaCBkaWN0aW9uYXJ5IHdvcmRzIGZvciAvdXNyL3NoYXJlL2RpY3QKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMC42LjUtMQpuYW1lOiB3ZGlmZgpkZXNjcmlwdGlvbjogQ29tcGFyZXMgdHdvIGZpbGVzIHdvcmQgYnkgd29yZAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEzLjQtMnVidW50dTEKbmFtZTogd2dldApkZXNjcmlwdGlvbjogcmV0cmlldmVzIGZpbGVzIGZyb20gdGhlIHdlYgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjUyLjExLTJ1YnVudHUxMApuYW1lOiB3aGlwdGFpbApkZXNjcmlwdGlvbjogRGlzcGxheXMgdXNlci1mcmllbmRseSBkaWFsb2cgYm94ZXMgZnJvbSBzaGVsbCBzY3JpcHRzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMC4xNXVidW50dTIKbmFtZTogd2hvaXMKZGVzY3JpcHRpb246IGludGVsbGlnZW50IFdIT0lTIGNsaWVudAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEuMzIKbmFtZTogd2hvb3BzaWUKZGVzY3JpcHRpb246IFVidW50dSBjcmFzaCBkYXRhYmFzZSBzdWJtaXNzaW9uIGRhZW1vbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjgtMQpuYW1lOiB3aWdnbGUKZGVzY3JpcHRpb246IGEgcHJvZ3JhbSBmb3IgYXBwbHlpbmcgcGF0Y2hlcyB3aXRoIGNvbmZsaWN0aW5nIGNoYW5nZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS40LjgtMQpuYW1lOiB3aW5wZGIKZGVzY3JpcHRpb246IFBsYXRmb3JtIGluZGVwZW5kZW50IFB5dGhvbiBkZWJ1Z2dlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyMDExLjA0LjI4LTF1YnVudHUzCm5hbWU6IHdpcmVsZXNzLXJlZ2RiCmRlc2NyaXB0aW9uOiB3aXJlbGVzcyByZWd1bGF0b3J5IGRhdGFiYXNlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMwfnByZTktNXVidW50dTIKbmFtZTogd2lyZWxlc3MtdG9vbHMKZGVzY3JpcHRpb246IFRvb2xzIGZvciBtYW5pcHVsYXRpbmcgTGludXggV2lyZWxlc3MgRXh0ZW5zaW9ucwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjA3LTYKbmFtZTogd21jdHJsCmRlc2NyaXB0aW9uOiBjb250cm9sIGFuIEVXTUgvTmV0V00gY29tcGF0aWJsZSBYIFdpbmRvdyBNYW5hZ2VyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDk6MS4xLjExLTJ1YnVudHUyCm5hbWU6IHdvZGltCmRlc2NyaXB0aW9uOiBjb21tYW5kIGxpbmUgQ0QvRFZEIHdyaXRpbmcgdG9vbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjcuMy02dWJ1bnR1Mi4xCm5hbWU6IHdwYXN1cHBsaWNhbnQKZGVzY3JpcHRpb246IGNsaWVudCBzdXBwb3J0IGZvciBXUEEgYW5kIFdQQTIgKElFRUUgODAyLjExaSkKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNy43fjJ1YnVudHUxfnBwYTF+cHJlY2lzZTEKbmFtZTogeDExLWFwcHMKZGVzY3JpcHRpb246IFggYXBwbGljYXRpb25zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Ny42KzEydWJ1bnR1MgpuYW1lOiB4MTEtY29tbW9uCmRlc2NyaXB0aW9uOiBYIFdpbmRvdyBTeXN0ZW0gKFguT3JnKSBpbmZyYXN0cnVjdHVyZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA3LjYrMgpuYW1lOiB4MTEtc2Vzc2lvbi11dGlscwpkZXNjcmlwdGlvbjogWCBzZXNzaW9uIHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA3LjYrNHVidW50dTAuMQpuYW1lOiB4MTEtdXRpbHMKZGVzY3JpcHRpb246IFgxMSB1dGlsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNy42KzEKbmFtZTogeDExLXhmcy11dGlscwpkZXNjcmlwdGlvbjogWCBmb250IHNlcnZlciB1dGlsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNy42KzQKbmFtZTogeDExLXhrYi11dGlscwpkZXNjcmlwdGlvbjogWDExIFhLQiB1dGlsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNy42KzMKbmFtZTogeDExLXhzZXJ2ZXItdXRpbHMKZGVzY3JpcHRpb246IFggc2VydmVyIHV0aWxpdGllcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuNC4yLTIKbmFtZTogeDExcHJvdG8tY29tcG9zaXRlLWRldgpkZXNjcmlwdGlvbjogWDExIENvbXBvc2l0ZSBleHRlbnNpb24gd2lyZSBwcm90b2NvbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA3LjAuMjItMQpuYW1lOiB4MTFwcm90by1jb3JlLWRldgpkZXNjcmlwdGlvbjogWDExIGNvcmUgd2lyZSBwcm90b2NvbCBhbmQgYXV4aWxpYXJ5IGhlYWRlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjIuMS0yCm5hbWU6IHgxMXByb3RvLWRhbWFnZS1kZXYKZGVzY3JpcHRpb246IFgxMSBEYW1hZ2UgZXh0ZW5zaW9uIHdpcmUgcHJvdG9jb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi44LTF+cHJlY2lzZTEKbmFtZTogeDExcHJvdG8tZHJpMi1kZXYKZGVzY3JpcHRpb246IFgxMSBEUkkyIGV4dGVuc2lvbiB3aXJlIHByb3RvY29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6NS4wLTJ1YnVudHUxCm5hbWU6IHgxMXByb3RvLWZpeGVzLWRldgpkZXNjcmlwdGlvbjogWDExIEZpeGVzIGV4dGVuc2lvbiB3aXJlIHByb3RvY29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4xNi0xfnByZWNpc2UxCm5hbWU6IHgxMXByb3RvLWdsLWRldgpkZXNjcmlwdGlvbjogWDExIE9wZW5HTCBleHRlbnNpb24gd2lyZSBwcm90b2NvbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjEuOTkuNi0xCm5hbWU6IHgxMXByb3RvLWlucHV0LWRldgpkZXNjcmlwdGlvbjogWDExIElucHV0IGV4dGVuc2lvbiB3aXJlIHByb3RvY29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMC41LTIKbmFtZTogeDExcHJvdG8ta2ItZGV2CmRlc2NyaXB0aW9uOiBYMTEgWEtCIGV4dGVuc2lvbiB3aXJlIHByb3RvY29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuNC4wK2dpdDIwMTIwMTAxLmlzLnJlYWxseS4xLjQuMC0wdWJ1bnR1MX5wCm5hbWU6IHgxMXByb3RvLXJhbmRyLWRldgpkZXNjcmlwdGlvbjogWDExIFJhbmRSIGV4dGVuc2lvbiB3aXJlIHByb3RvY29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDI6MC4xMS4xLTIKbmFtZTogeDExcHJvdG8tcmVuZGVyLWRldgpkZXNjcmlwdGlvbjogWDExIFJlbmRlciBleHRlbnNpb24gd2lyZSBwcm90b2NvbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA3LjIuMC0zCm5hbWU6IHgxMXByb3RvLXhleHQtZGV2CmRlc2NyaXB0aW9uOiBYMTEgdmFyaW91cyBleHRlbnNpb24gd2lyZSBwcm90b2NvbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjMuMS0yCm5hbWU6IHgxMXByb3RvLXhmODZ2aWRtb2RlLWRldgpkZXNjcmlwdGlvbjogWDExIFZpZGVvIE1vZGUgZXh0ZW5zaW9uIHdpcmUgcHJvdG9jb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjEtMgpuYW1lOiB4MTFwcm90by14aW5lcmFtYS1kZXYKZGVzY3JpcHRpb246IFgxMSBYaW5lcmFtYSBleHRlbnNpb24gd2lyZSBwcm90b2NvbAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMC42LTEKbmFtZTogeGF1dGgKZGVzY3JpcHRpb246IFggYXV0aGVudGljYXRpb24gdXRpbGl0eQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjUrRS0xOC4xdWJ1bnR1MQpuYW1lOiB4YXczZGcKZGVzY3JpcHRpb246IFhhdzNkIHdpZGdldCBzZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41K0UtMTguMXVidW50dTEKbmFtZTogeGF3M2RnOmkzODYKZGVzY3JpcHRpb246IFhhdzNkIHdpZGdldCBzZXQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4xMDItMwpuYW1lOiB4YXd0dgpkZXNjcmlwdGlvbjogdGVsZXZpc2lvbiB2aWV3ZXIgLSBYMTEgYXBwbGljYXRpb24KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy4xMDItMwpuYW1lOiB4YXd0di1wbHVnaW5zCmRlc2NyaXB0aW9uOiB0ZWxldmlzaW9uIHZpZXdlciAtIHBsdWdpbnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjEtMQpuYW1lOiB4Yml0bWFwcwpkZXNjcmlwdGlvbjogQmFzZSBYIGJpdG1hcHMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4wLjMtMQpuYW1lOiB4Y3Vyc29yLXRoZW1lcwpkZXNjcmlwdGlvbjogQmFzZSBYIGN1cnNvciB0aGVtZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjMtOWJ1aWxkMQpuYW1lOiB4ZGVsdGEKZGVzY3JpcHRpb246IEEgZGlmZiB1dGlsaXR5IHdoaWNoIHdvcmtzIHdpdGggYmluYXJ5IGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuMTQtMHVidW50dTIKbmFtZTogeGRnLXVzZXItZGlycwpkZXNjcmlwdGlvbjogdG9vbCB0byBtYW5hZ2Ugd2VsbCBrbm93biB1c2VyIGRpcmVjdG9yaWVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS0wdWJ1bnR1MQpuYW1lOiB4ZGctdXNlci1kaXJzLWd0awpkZXNjcmlwdGlvbjogdG9vbCB0byBtYW5hZ2Ugd2VsbCBrbm93biB1c2VyIGRpcmVjdG9yaWVzIChHdGsgZXh0ZW5zaW9uKQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxLjEuMH5yYzEtMnVidW50dTYKbmFtZTogeGRnLXV0aWxzCmRlc2NyaXB0aW9uOiBkZXNrdG9wIGludGVncmF0aW9uIHV0aWxpdGllcyBmcm9tIGZyZWVkZXNrdG9wLm9yZwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyLjUuMnVidW50dTAuMQpuYW1lOiB4ZGlhZ25vc2UKZGVzY3JpcHRpb246IFgub3JnIGRpYWdub3NpcyB0b29sCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuNC0yCm5hbWU6IHhkb3QKZGVzY3JpcHRpb246IGludGVyYWN0aXZlIHZpZXdlciBmb3IgR3JhcGh2aXogZG90IGZpbGVzCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4wLjMKbmFtZTogeGZvbnRzLWJhc2UKZGVzY3JpcHRpb246IHN0YW5kYXJkIGZvbnRzIGZvciBYCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4wLjQtMXVidW50dTEKbmFtZTogeGZvbnRzLWVuY29kaW5ncwpkZXNjcmlwdGlvbjogRW5jb2RpbmdzIGZvciBYLk9yZyBmb250cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA0dWJ1bnR1MQpuYW1lOiB4Zm9udHMtbWF0aG1sCmRlc2NyaXB0aW9uOiBUeXBlMSBTeW1ib2wgZm9udCBmb3IgTWF0aE1MCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4wLjMtMQpuYW1lOiB4Zm9udHMtc2NhbGFibGUKZGVzY3JpcHRpb246IHNjYWxhYmxlIGZvbnRzIGZvciBYCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Ny42KzEKbmFtZTogeGZvbnRzLXV0aWxzCmRlc2NyaXB0aW9uOiBYIFdpbmRvdyBTeXN0ZW0gZm9udCB1dGlsaXR5IHByb2dyYW1zCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDEuMy4xLTEKbmFtZTogeGluaXQKZGVzY3JpcHRpb246IFggc2VydmVyIGluaXRpYWxpc2F0aW9uIHRvb2wKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS41Ljk5LjEtMHVidW50dTIKbmFtZTogeGlucHV0CmRlc2NyaXB0aW9uOiBSdW50aW1lIGNvbmZpZ3VyYXRpb24gYW5kIHRlc3Qgb2YgWElucHV0IGRldmljZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi41LTF1YnVudHUxLjMKbmFtZTogeGtiLWRhdGEKZGVzY3JpcHRpb246IFggS2V5Ym9hcmQgRXh0ZW5zaW9uIChYS0IpIGNvbmZpZ3VyYXRpb24gZGF0YQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjEzCm5hbWU6IHhtbC1jb3JlCmRlc2NyaXB0aW9uOiBYTUwgaW5mcmFzdHJ1Y3R1cmUgYW5kIFhNTCBjYXRhbG9nIGZpbGUgc3VwcG9ydAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjcuNisxMnVidW50dTIKbmFtZTogeG9yZwpkZXNjcmlwdGlvbjogWC5PcmcgWCBXaW5kb3cgU3lzdGVtCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS42LTF1YnVudHUyCm5hbWU6IHhvcmctZG9jcy1jb3JlCmRlc2NyaXB0aW9uOiBDb3JlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBYLm9yZyBYIFdpbmRvdyBTeXN0ZW0KCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjEwLTEKbmFtZTogeG9yZy1zZ21sLWRvY3Rvb2xzCmRlc2NyaXB0aW9uOiBDb21tb24gdG9vbHMgZm9yIGJ1aWxkaW5nIFguT3JnIFNHTUwgZG9jdW1lbnRhdGlvbgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMTEuNC0wdWJ1bnR1MTAuOApuYW1lOiB4c2VydmVyLWNvbW1vbgpkZXNjcmlwdGlvbjogY29tbW9uIGZpbGVzIHVzZWQgYnkgdmFyaW91cyBYIHNlcnZlcnMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTo3LjYrMTJ1YnVudHUyCm5hbWU6IHhzZXJ2ZXIteG9yZwpkZXNjcmlwdGlvbjogWC5PcmcgWCBzZXJ2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoxLjExLjQtMHVidW50dTEwLjgKbmFtZTogeHNlcnZlci14b3JnLWNvcmUKZGVzY3JpcHRpb246IFhvcmcgWCBzZXJ2ZXIgLSBjb3JlIHNlcnZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjcuNisxMnVidW50dTIKbmFtZTogeHNlcnZlci14b3JnLWlucHV0LWFsbApkZXNjcmlwdGlvbjogWC5PcmcgWCBzZXJ2ZXIgLS0gaW5wdXQgZHJpdmVyIG1ldGFwYWNrYWdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Mi43LjAtMHVidW50dTEuMgpuYW1lOiB4c2VydmVyLXhvcmctaW5wdXQtZXZkZXYKZGVzY3JpcHRpb246IFguT3JnIFggc2VydmVyIC0tIGV2ZGV2IGlucHV0IGRyaXZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuNy4xLTFidWlsZDMKbmFtZTogeHNlcnZlci14b3JnLWlucHV0LW1vdXNlCmRlc2NyaXB0aW9uOiBYLk9yZyBYIHNlcnZlciAtLSBtb3VzZSBpbnB1dCBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS42LjItMXVidW50dTF+cHJlY2lzZTIKbmFtZTogeHNlcnZlci14b3JnLWlucHV0LXN5bmFwdGljcwpkZXNjcmlwdGlvbjogU3luYXB0aWNzIFRvdWNoUGFkIGRyaXZlciBmb3IgWC5Pcmcgc2VydmVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MTIuOS4wLTB1YnVudHUwLjEKbmFtZTogeHNlcnZlci14b3JnLWlucHV0LXZtbW91c2UKZGVzY3JpcHRpb246IFguT3JnIFggc2VydmVyIC0tIFZNTW91c2UgaW5wdXQgZHJpdmVyIHRvIHVzZSB3aXRoIFZNV2FyZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuMTQuMC0wdWJ1bnR1Mi4xCm5hbWU6IHhzZXJ2ZXIteG9yZy1pbnB1dC13YWNvbQpkZXNjcmlwdGlvbjogWC5PcmcgWCBzZXJ2ZXIgLS0gV2Fjb20gaW5wdXQgZHJpdmVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Ny42KzEydWJ1bnR1MgpuYW1lOiB4c2VydmVyLXhvcmctdmlkZW8tYWxsCmRlc2NyaXB0aW9uOiBYLk9yZyBYIHNlcnZlciAtLSBvdXRwdXQgZHJpdmVyIG1ldGFwYWNrYWdlCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6Ni4xNC45OX5naXQyMDExMTIxOS5hYWNiZDYyOS0wdWJ1bnR1MgpuYW1lOiB4c2VydmVyLXhvcmctdmlkZW8tYXRpCmRlc2NyaXB0aW9uOiBYLk9yZyBYIHNlcnZlciAtLSBBTUQvQVRJIGRpc3BsYXkgZHJpdmVyIHdyYXBwZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjMuMi00YnVpbGQxCm5hbWU6IHhzZXJ2ZXIteG9yZy12aWRlby1jaXJydXMKZGVzY3JpcHRpb246IFguT3JnIFggc2VydmVyIC0tIENpcnJ1cyBkaXNwbGF5IGRyaXZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjAuNC4yLTR1YnVudHUyCm5hbWU6IHhzZXJ2ZXIteG9yZy12aWRlby1mYmRldgpkZXNjcmlwdGlvbjogWC5PcmcgWCBzZXJ2ZXIgLS0gZmJkZXYgZGlzcGxheSBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjoyLjE3LjAtMXVidW50dTQuMgpuYW1lOiB4c2VydmVyLXhvcmctdmlkZW8taW50ZWwKZGVzY3JpcHRpb246IFguT3JnIFggc2VydmVyIC0tIEludGVsIGk4eHgsIGk5eHggZGlzcGxheSBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNi45LjAtMWJ1aWxkMgpuYW1lOiB4c2VydmVyLXhvcmctdmlkZW8tbWFjaDY0CmRlc2NyaXB0aW9uOiBYLk9yZyBYIHNlcnZlciAtLSBBVEkgTWFjaDY0IGRpc3BsYXkgZHJpdmVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS40LjEzLmRmc2ctNGJ1aWxkMgpuYW1lOiB4c2VydmVyLXhvcmctdmlkZW8tbWdhCmRlc2NyaXB0aW9uOiBYLk9yZyBYIHNlcnZlciAtLSBNR0EgZGlzcGxheSBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjIuNS0yYnVpbGQyCm5hbWU6IHhzZXJ2ZXIteG9yZy12aWRlby1uZW9tYWdpYwpkZXNjcmlwdGlvbjogWC5PcmcgWCBzZXJ2ZXIgLS0gTmVvbWFnaWMgZGlzcGxheSBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjAuMTYrZ2l0MjAxMTEyMDErYjU1MzRhMS0xYnVpbGQyCm5hbWU6IHhzZXJ2ZXIteG9yZy12aWRlby1ub3V2ZWF1CmRlc2NyaXB0aW9uOiBYLk9yZyBYIHNlcnZlciAtLSBOb3V2ZWF1IGRpc3BsYXkgZHJpdmVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC4yLjkwNCtzdm4xMDUwLTEKbmFtZTogeHNlcnZlci14b3JnLXZpZGVvLW9wZW5jaHJvbWUKZGVzY3JpcHRpb246IFguT3JnIFggc2VydmVyIC0tIFZJQSBkaXNwbGF5IGRyaXZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjAuMTYtMgpuYW1lOiB4c2VydmVyLXhvcmctdmlkZW8tcXhsCmRlc2NyaXB0aW9uOiBYLk9yZyBYIHNlcnZlciAtLSBRWEwgZGlzcGxheSBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogNi44LjEtNWJ1aWxkMgpuYW1lOiB4c2VydmVyLXhvcmctdmlkZW8tcjEyOApkZXNjcmlwdGlvbjogWC5PcmcgWCBzZXJ2ZXIgLS0gQVRJIHIxMjggZGlzcGxheSBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTo2LjE0Ljk5fmdpdDIwMTExMjE5LmFhY2JkNjI5LTB1YnVudHUyCm5hbWU6IHhzZXJ2ZXIteG9yZy12aWRlby1yYWRlb24KZGVzY3JpcHRpb246IFguT3JnIFggc2VydmVyIC0tIEFNRC9BVEkgUmFkZW9uIGRpc3BsYXkgZHJpdmVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MC42LjMtNGJ1aWxkMgpuYW1lOiB4c2VydmVyLXhvcmctdmlkZW8tczMKZGVzY3JpcHRpb246IFguT3JnIFggc2VydmVyIC0tIGxlZ2FjeSBTMyBkaXNwbGF5IGRyaXZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjIuMy4zLTF1YnVudHUxCm5hbWU6IHhzZXJ2ZXIteG9yZy12aWRlby1zYXZhZ2UKZGVzY3JpcHRpb246IFguT3JnIFggc2VydmVyIC0tIFNhdmFnZSBkaXNwbGF5IGRyaXZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuNy41LTFidWlsZDIKbmFtZTogeHNlcnZlci14b3JnLXZpZGVvLXNpbGljb25tb3Rpb24KZGVzY3JpcHRpb246IFguT3JnIFggc2VydmVyIC0tIFNpbGljb25Nb3Rpb24gZGlzcGxheSBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjEwLjMtM2J1aWxkMgpuYW1lOiB4c2VydmVyLXhvcmctdmlkZW8tc2lzCmRlc2NyaXB0aW9uOiBYLk9yZyBYIHNlcnZlciAtLSBTaVMgZGlzcGxheSBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMTowLjkuNC0yYnVpbGQyCm5hbWU6IHhzZXJ2ZXIteG9yZy12aWRlby1zaXN1c2IKZGVzY3JpcHRpb246IFguT3JnIFggc2VydmVyIC0tIFNpUyBVU0IgZGlzcGxheSBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjQuMy00YnVpbGQyCm5hbWU6IHhzZXJ2ZXIteG9yZy12aWRlby10ZGZ4CmRlc2NyaXB0aW9uOiBYLk9yZyBYIHNlcnZlciAtLSB0ZGZ4IGRpc3BsYXkgZHJpdmVyCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDE6MS4zLjQtMmJ1aWxkMgpuYW1lOiB4c2VydmVyLXhvcmctdmlkZW8tdHJpZGVudApkZXNjcmlwdGlvbjogWC5PcmcgWCBzZXJ2ZXIgLS0gVHJpZGVudCBkaXNwbGF5IGRyaXZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjIuMy4wLTdidWlsZDIKbmFtZTogeHNlcnZlci14b3JnLXZpZGVvLXZlc2EKZGVzY3JpcHRpb246IFguT3JnIFggc2VydmVyIC0tIFZFU0EgZGlzcGxheSBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxMi4wLjEtMXVidW50dTEuMQpuYW1lOiB4c2VydmVyLXhvcmctdmlkZW8tdm13YXJlCmRlc2NyaXB0aW9uOiBYLk9yZyBYIHNlcnZlciAtLSBWTXdhcmUgZGlzcGxheSBkcml2ZXIKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMjcxLTF1YnVudHUyLjEKbmFtZTogeHRlcm0KZGVzY3JpcHRpb246IFggdGVybWluYWwgZW11bGF0b3IKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4yLjYtMgpuYW1lOiB4dHJhbnMtZGV2CmRlc2NyaXB0aW9uOiBYIHRyYW5zcG9ydCBsaWJyYXJ5IChkZXZlbG9wbWVudCBmaWxlcykKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMi42LTB1YnVudHUwLjEyLjA0LjEKbmFtZTogeHVsLWV4dC11YnVmb3gKZGVzY3JpcHRpb246IFVidW50dS1zcGVjaWZpYyBjb25maWd1cmF0aW9uIGRlZmF1bHRzIGFuZCBhcHQgc3VwcG9ydCBmb3IgRmlyZWZveAoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAyOjEuMTEuNC0wdWJ1bnR1MTAuOApuYW1lOiB4dmZiCmRlc2NyaXB0aW9uOiBWaXJ0dWFsIEZyYW1lYnVmZmVyICdmYWtlJyBYIHNlcnZlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjAtMQpuYW1lOiB4dmtiZApkZXNjcmlwdGlvbjogc29mdHdhcmUgdmlydHVhbCBrZXlib2FyZCBmb3IgWDExCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDUuMS4xYWxwaGErMjAxMTA4MDktMwpuYW1lOiB4ei1sem1hCmRlc2NyaXB0aW9uOiBYWi1mb3JtYXQgY29tcHJlc3Npb24gdXRpbGl0aWVzIC0gY29tcGF0aWJpbGl0eSBjb21tYW5kcwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiA1LjEuMWFscGhhKzIwMTEwODA5LTMKbmFtZTogeHotdXRpbHMKZGVzY3JpcHRpb246IFhaLWZvcm1hdCBjb21wcmVzc2lvbiB1dGlsaXRpZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMS4xLjAtMQpuYW1lOiB5YXNtCmRlc2NyaXB0aW9uOiBtb2R1bGFyIGFzc2VtYmxlciB3aXRoIG11bHRpcGxlIHN5bnRheGVzIHN1cHBvcnQKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMy40LjEtMHVidW50dTEKbmFtZTogeWVscApkZXNjcmlwdGlvbjogSGVscCBicm93c2VyIGZvciBHTk9NRQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMS0xCm5hbWU6IHllbHAteHNsCmRlc2NyaXB0aW9uOiBYU0wgc3R5bGVzaGVldHMgZm9yIHRoZSB5ZWxwIGhlbHAgYnJvd3NlcgoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjkuMC0xdWJ1bnR1MQpuYW1lOiB6ZWl0Z2Vpc3QKZGVzY3JpcHRpb246IGV2ZW50IGxvZ2dpbmcgZnJhbWV3b3JrCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDAuOS4wLTF1YnVudHUxCm5hbWU6IHplaXRnZWlzdC1jb3JlCmRlc2NyaXB0aW9uOiBldmVudCBsb2dnaW5nIGZyYW1ld29yayAtIGVuZ2luZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAwLjguMi0xdWJ1bnR1MgpuYW1lOiB6ZWl0Z2Vpc3QtZGF0YWh1YgpkZXNjcmlwdGlvbjogZXZlbnQgbG9nZ2luZyBmcmFtZXdvcmsgLSBwYXNzaXZlIGxvZ2dpbmcgZGFlbW9uCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuNC4wLTB1YnVudHU0Cm5hbWU6IHplbml0eQpkZXNjcmlwdGlvbjogRGlzcGxheSBncmFwaGljYWwgZGlhbG9nIGJveGVzIGZyb20gc2hlbGwgc2NyaXB0cwoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAzLjQuMC0wdWJ1bnR1NApuYW1lOiB6ZW5pdHktY29tbW9uCmRlc2NyaXB0aW9uOiBEaXNwbGF5IGdyYXBoaWNhbCBkaWFsb2cgYm94ZXMgZnJvbSBzaGVsbCBzY3JpcHRzIChjb21tb24gZmlsZXMpCgpzdGF0dXM6IEluc3RhbGxlZApkZXNpcmVkOiBJbnN0YWxsCnZlcnNpb246IDMuMC00Cm5hbWU6IHppcApkZXNjcmlwdGlvbjogQXJjaGl2ZXIgZm9yIC56aXAgZmlsZXMKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjIuMy40LmRmc2ctM3VidW50dTQKbmFtZTogemxpYjFnCmRlc2NyaXB0aW9uOiBjb21wcmVzc2lvbiBsaWJyYXJ5IC0gcnVudGltZQoKc3RhdHVzOiBJbnN0YWxsZWQKZGVzaXJlZDogSW5zdGFsbAp2ZXJzaW9uOiAxOjEuMi4zLjQuZGZzZy0zdWJ1bnR1NApuYW1lOiB6bGliMWc6aTM4NgpkZXNjcmlwdGlvbjogY29tcHJlc3Npb24gbGlicmFyeSAtIHJ1bnRpbWUKCnN0YXR1czogSW5zdGFsbGVkCmRlc2lyZWQ6IEluc3RhbGwKdmVyc2lvbjogMToxLjIuMy40LmRmc2ctM3VidW50dTQKbmFtZTogemxpYjFnLWRldgpkZXNjcmlwdGlvbjogY29tcHJlc3Npb24gbGlicmFyeSAtIGRldmVsb3BtZW50Cgo=" }, "2013.com.canonical.certification::uname": { "outcome": "pass", "comments": null, "plugin": "resource", "command": "uname_resource", "description": "Creates resource info from uname output", "io_log": "bm9kZTogc3lsdmFpbi1TdHVkaW8tWFBTLTEzNDAKcmVsZWFzZTogMy4yLjAtMzYtZ2VuZXJpYwptYWNoaW5lOiB4ODZfNjQKdmVyc2lvbjogIzU3LVVidW50dSBTTVAgVHVlIEphbiA4IDIxOjQ0OjUyIFVUQyAyMDEzCm5hbWU6IExpbnV4Cg==" }, "2013.com.canonical.certification::device": { "outcome": "pass", "comments": null, "plugin": "resource", "requires": "package.name == \"udev\"", "command": "udev_resource", "description": "Creates resource info from udev", "io_log": "cGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvTE5YUFdSQk46MDAvaW5wdXQvaW5wdXQzCmJ1czogaW5wdXQKY2F0ZWdvcnk6IE9USEVSCmRyaXZlcjogYnV0dG9uCnByb2R1Y3Q6IFBvd2VyIEJ1dHRvbgoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBBMDg6MDAKYnVzOiBwbnAKZHJpdmVyOiBwY2lfcm9vdApwcm9kdWN0X2lkOiAyNTY4CnZlbmRvcjogUE5QCgpwYXRoOiAvZGV2aWNlcy9MTlhTWVNUTTowMC9kZXZpY2U6MDAvUE5QMEEwODowMC9JVEU4NzA4OjAwCmJ1czogcG5wCmRyaXZlcjogcGNpX3Jvb3QKcHJvZHVjdF9pZDogMzQ1NjgKdmVuZG9yOiBJVEUKCnBhdGg6IC9kZXZpY2VzL0xOWFNZU1RNOjAwL2RldmljZTowMC9QTlAwQTA4OjAwL1BOUDAxMDM6MDAKYnVzOiBwbnAKZHJpdmVyOiBwY2lfcm9vdApwcm9kdWN0X2lkOiAyNTkKdmVuZG9yOiBQTlAKCnBhdGg6IC9kZXZpY2VzL0xOWFNZU1RNOjAwL2RldmljZTowMC9QTlAwQTA4OjAwL1BOUDAyMDA6MDAKYnVzOiBwbnAKZHJpdmVyOiBwY2lfcm9vdApwcm9kdWN0X2lkOiA1MTIKdmVuZG9yOiBQTlAKCnBhdGg6IC9kZXZpY2VzL0xOWFNZU1RNOjAwL2RldmljZTowMC9QTlAwQTA4OjAwL1BOUDA4MDA6MDAKYnVzOiBwbnAKZHJpdmVyOiBwY2lfcm9vdApwcm9kdWN0X2lkOiAyMDQ4CnZlbmRvcjogUE5QCgpwYXRoOiAvZGV2aWNlcy9MTlhTWVNUTTowMC9kZXZpY2U6MDAvUE5QMEEwODowMC9QTlAwQjAwOjAwCmJ1czogcG5wCmRyaXZlcjogcGNpX3Jvb3QKcHJvZHVjdF9pZDogMjgxNgp2ZW5kb3I6IFBOUAoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBBMDg6MDAvUE5QMEMwNDowMApidXM6IHBucApkcml2ZXI6IHBjaV9yb290CnByb2R1Y3RfaWQ6IDMwNzYKdmVuZG9yOiBQTlAKCnBhdGg6IC9kZXZpY2VzL0xOWFNZU1RNOjAwL2RldmljZTowMC9QTlAwQTA4OjAwL1BOUDBDMEY6MDAKYnVzOiBwbnAKZHJpdmVyOiBwY2lfbGluawpwcm9kdWN0X2lkOiAzMDg3CnZlbmRvcjogUE5QCgpwYXRoOiAvZGV2aWNlcy9MTlhTWVNUTTowMC9kZXZpY2U6MDAvUE5QMEEwODowMC9kZXZpY2U6MGIvTE5YVklERU86MDAvaW5wdXQvaW5wdXQxMQpidXM6IGlucHV0CmNhdGVnb3J5OiBPVEhFUgpkcml2ZXI6IHZpZGVvCnByb2R1Y3Q6IFZpZGVvIEJ1cwoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjEyL0xOWFZJREVPOjAxL2lucHV0L2lucHV0MTMKYnVzOiBpbnB1dApjYXRlZ29yeTogT1RIRVIKZHJpdmVyOiB2aWRlbwpwcm9kdWN0OiBWaWRlbyBCdXMKCnBhdGg6IC9kZXZpY2VzL0xOWFNZU1RNOjAwL2RldmljZTowMC9QTlAwQTA4OjAwL2RldmljZToyYS9QTlAwMzAzOjAwCmJ1czogcG5wCnByb2R1Y3RfaWQ6IDc3MQp2ZW5kb3I6IFBOUAoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjJhL1BOUDBDMDI6MDAKYnVzOiBwbnAKcHJvZHVjdF9pZDogMzA3NAp2ZW5kb3I6IFBOUAoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjJhL1BOUDBDMDk6MDAKYnVzOiBwbnAKZHJpdmVyOiBlYwpwcm9kdWN0X2lkOiAzMDgxCnZlbmRvcjogUE5QCgpwYXRoOiAvZGV2aWNlcy9MTlhTWVNUTTowMC9kZXZpY2U6MDAvUE5QMEEwODowMC9kZXZpY2U6MmEvUE5QMEMwOTowMC9QTlAwQzBBOjAwCmJ1czogcG5wCmRyaXZlcjogYmF0dGVyeQpwcm9kdWN0X2lkOiAzMDgyCnZlbmRvcjogUE5QCgpwYXRoOiAvZGV2aWNlcy9MTlhTWVNUTTowMC9kZXZpY2U6MDAvUE5QMEEwODowMC9kZXZpY2U6MmEvUE5QMEMwOTowMC9QTlAwQzBBOjAwL3Bvd2VyX3N1cHBseS9CQVQwCmJ1czogcG93ZXJfc3VwcGx5CmNhdGVnb3J5OiBPVEhFUgpkcml2ZXI6IGJhdHRlcnkKcHJvZHVjdDogRGVsbAp2ZW5kb3I6IFBBTkFTT05JQwoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjJhL1BOUDBDMEU6MDAKYnVzOiBwbnAKZHJpdmVyOiBidXR0b24KcHJvZHVjdF9pZDogMzA4Ngp2ZW5kb3I6IFBOUAoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjJhL1BOUDBDMEU6MDAvaW5wdXQvaW5wdXQxCmJ1czogaW5wdXQKY2F0ZWdvcnk6IE9USEVSCmRyaXZlcjogYnV0dG9uCnByb2R1Y3Q6IFNsZWVwIEJ1dHRvbgoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjJhL1BOUDBGMTM6MDAKYnVzOiBwbnAKcHJvZHVjdF9pZDogMzg1OQp2ZW5kb3I6IFBOUAoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBDMDE6MDAKYnVzOiBwbnAKcHJvZHVjdF9pZDogMzA3Mwp2ZW5kb3I6IFBOUAoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBDMEM6MDAKYnVzOiBwbnAKZHJpdmVyOiBidXR0b24KcHJvZHVjdF9pZDogMzA4NAp2ZW5kb3I6IFBOUAoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBDMEM6MDAvaW5wdXQvaW5wdXQwCmJ1czogaW5wdXQKY2F0ZWdvcnk6IE9USEVSCmRyaXZlcjogYnV0dG9uCnByb2R1Y3Q6IFBvd2VyIEJ1dHRvbgoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBDMEQ6MDAKYnVzOiBwbnAKZHJpdmVyOiBidXR0b24KcHJvZHVjdF9pZDogMzA4NQp2ZW5kb3I6IFBOUAoKcGF0aDogL2RldmljZXMvTE5YU1lTVE06MDAvZGV2aWNlOjAwL1BOUDBDMEQ6MDAvaW5wdXQvaW5wdXQyCmJ1czogaW5wdXQKY2F0ZWdvcnk6IE9USEVSCmRyaXZlcjogYnV0dG9uCnByb2R1Y3Q6IExpZCBTd2l0Y2gKCnBhdGg6IC9kZXZpY2VzL0xOWFNZU1RNOjAwL2RldmljZTowMC9QTlAwQzE0OjAwCmJ1czogcG5wCmRyaXZlcjogd21pCnByb2R1Y3RfaWQ6IDMwOTIKdmVuZG9yOiBQTlAKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowMC4wCmJ1czogcGNpCnByb2R1Y3RfaWQ6IDI2OTAKdmVuZG9yX2lkOiA0MzE4CnN1YnByb2R1Y3RfaWQ6IDAKc3VidmVuZG9yX2lkOiAwCgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDAuMQpidXM6IHBjaQpwcm9kdWN0X2lkOiAyNjk2CnZlbmRvcl9pZDogNDMxOApzdWJwcm9kdWN0X2lkOiAwCnN1YnZlbmRvcl9pZDogMAoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjAzLjAKYnVzOiBwY2kKcHJvZHVjdF9pZDogMjczNAp2ZW5kb3JfaWQ6IDQzMTgKc3VicHJvZHVjdF9pZDogNjI1CnN1YnZlbmRvcl9pZDogNDEzNgoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjAzLjEKYnVzOiBwY2kKcHJvZHVjdF9pZDogMjcyNAp2ZW5kb3JfaWQ6IDQzMTgKc3VicHJvZHVjdF9pZDogNjI1CnN1YnZlbmRvcl9pZDogNDEzNgoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjAzLjIKYnVzOiBwY2kKZHJpdmVyOiBuRm9yY2UyX3NtYnVzCnByb2R1Y3RfaWQ6IDI3MjIKdmVuZG9yX2lkOiA0MzE4CnN1YnByb2R1Y3RfaWQ6IDYyNQpzdWJ2ZW5kb3JfaWQ6IDQxMzYKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowMy4zCmJ1czogcGNpCnByb2R1Y3RfaWQ6IDI2OTcKdmVuZG9yX2lkOiA0MzE4CnN1YnByb2R1Y3RfaWQ6IDYyNQpzdWJ2ZW5kb3JfaWQ6IDQxMzYKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowMy41CmJ1czogcGNpCmRyaXZlcjogbnZpZGlhCnByb2R1Y3RfaWQ6IDI3MjMKdmVuZG9yX2lkOiA0MzE4CnN1YnByb2R1Y3RfaWQ6IDYyNQpzdWJ2ZW5kb3JfaWQ6IDQxMzYKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowNC4wCmJ1czogcGNpCmNhdGVnb3J5OiBVU0IKZHJpdmVyOiBvaGNpX2hjZApwcm9kdWN0X2lkOiAyNzI1CnZlbmRvcl9pZDogNDMxOApzdWJwcm9kdWN0X2lkOiA2MjUKc3VidmVuZG9yX2lkOiA0MTM2CgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDQuMC91c2IzLzMtMDoxLjAKYnVzOiB1c2IKZHJpdmVyOiBodWIKcHJvZHVjdF9pZDogMQp2ZW5kb3JfaWQ6IDc1MzEKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowNC4xCmJ1czogcGNpCmNhdGVnb3J5OiBVU0IKZHJpdmVyOiBlaGNpX2hjZApwcm9kdWN0X2lkOiAyNzI2CnZlbmRvcl9pZDogNDMxOApzdWJwcm9kdWN0X2lkOiA2MjUKc3VidmVuZG9yX2lkOiA0MTM2CgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDQuMS91c2IxLzEtMDoxLjAKYnVzOiB1c2IKZHJpdmVyOiBodWIKcHJvZHVjdF9pZDogMgp2ZW5kb3JfaWQ6IDc1MzEKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowNC4xL3VzYjEvMS0yLzEtMi4zLzEtMi4zOjEuMApidXM6IHVzYgpjYXRlZ29yeTogQVVESU8KZHJpdmVyOiBzbmQtdXNiLWF1ZGlvCnByb2R1Y3RfaWQ6IDI1NzEKdmVuZG9yX2lkOiAxMTMzCgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDQuMS91c2IxLzEtMi8xLTIuMy8xLTIuMzoxLjEKYnVzOiB1c2IKY2F0ZWdvcnk6IEFVRElPCmRyaXZlcjogc25kLXVzYi1hdWRpbwpwcm9kdWN0X2lkOiAyNTcxCnZlbmRvcl9pZDogMTEzMwoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA0LjEvdXNiMS8xLTIvMS0yLjMvMS0yLjM6MS4yCmJ1czogdXNiCmNhdGVnb3J5OiBBVURJTwpkcml2ZXI6IHNuZC11c2ItYXVkaW8KcHJvZHVjdF9pZDogMjU3MQp2ZW5kb3JfaWQ6IDExMzMKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowNC4xL3VzYjEvMS0yLzEtMi4zLzEtMi4zOjEuMwpidXM6IHVzYgpkcml2ZXI6IHVzYmhpZApwcm9kdWN0X2lkOiAyNTcxCnZlbmRvcl9pZDogMTEzMwoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA0LjEvdXNiMS8xLTIvMS0yLjMvMS0yLjM6MS4zL2lucHV0L2lucHV0NQpidXM6IGlucHV0CmNhdGVnb3J5OiBPVEhFUgpkcml2ZXI6IHVzYmhpZApwcm9kdWN0OiBMb2dpdGVjaCBMb2dpdGVjaCBVU0IgSGVhZHNldAoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA0LjEvdXNiMS8xLTIvMS0yLjQvMS0yLjQuMS8xLTIuNC4xOjEuMApidXM6IHVzYgpkcml2ZXI6IHVzYmhpZApwcm9kdWN0X2lkOiA0OTk0NAp2ZW5kb3JfaWQ6IDExMzMKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowNC4xL3VzYjEvMS0yLzEtMi40LzEtMi40LjEvMS0yLjQuMToxLjAvaW5wdXQvaW5wdXQ2CmJ1czogaW5wdXQKY2F0ZWdvcnk6IEtFWUJPQVJECmRyaXZlcjogdXNiaGlkCnByb2R1Y3Q6IExvZ2l0ZWNoIExvZ2l0ZWNoIElsbHVtaW5hdGVkIEtleWJvYXJkCgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDQuMS91c2IxLzEtMi8xLTIuNC8xLTIuNC4xLzEtMi40LjE6MS4xCmJ1czogdXNiCmRyaXZlcjogdXNiaGlkCnByb2R1Y3RfaWQ6IDQ5OTQ0CnZlbmRvcl9pZDogMTEzMwoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA0LjEvdXNiMS8xLTIvMS0yLjQvMS0yLjQuMS8xLTIuNC4xOjEuMS9pbnB1dC9pbnB1dDcKYnVzOiBpbnB1dApjYXRlZ29yeTogQ0FQVFVSRQpkcml2ZXI6IHVzYmhpZApwcm9kdWN0OiBMb2dpdGVjaCBMb2dpdGVjaCBJbGx1bWluYXRlZCBLZXlib2FyZAoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA0LjEvdXNiMS8xLTIvMS0yLjQvMS0yLjQuMi8xLTIuNC4yOjEuMApidXM6IHVzYgpkcml2ZXI6IHVzYmhpZApwcm9kdWN0X2lkOiA3MQp2ZW5kb3JfaWQ6IDExMTgKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowNC4xL3VzYjEvMS0yLzEtMi40LzEtMi40LjIvMS0yLjQuMjoxLjAvaW5wdXQvaW5wdXQ4CmJ1czogaW5wdXQKY2F0ZWdvcnk6IE1PVVNFCmRyaXZlcjogdXNiaGlkCnByb2R1Y3Q6IE1pY3Jvc29mdCBNaWNyb3NvZnQgNS1CdXR0b24gTW91c2Ugd2l0aCBJbnRlbGxpRXllKFRNKQoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA0LjEvdXNiMS8xLTIvMS0yLjQvMS0yLjQuMy8xLTIuNC4zOjEuMApidXM6IHVzYgpkcml2ZXI6IHVzYmhpZApwcm9kdWN0X2lkOiAyMTkyMgp2ZW5kb3JfaWQ6IDQzMDkKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowNC4xL3VzYjEvMS0yLzEtMi40LzEtMi40LjMvMS0yLjQuMzoxLjAvaW5wdXQvaW5wdXQ5CmJ1czogaW5wdXQKY2F0ZWdvcnk6IEtFWUJPQVJECmRyaXZlcjogdXNiaGlkCnByb2R1Y3Q6IE5vIGJyYW5kIDJQb3J0IEtWTVN3aWN0aGVyCgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDQuMS91c2IxLzEtMi8xLTIuNC8xLTIuNC4zLzEtMi40LjM6MS4xCmJ1czogdXNiCmRyaXZlcjogdXNiCnByb2R1Y3RfaWQ6IDIxOTIyCnZlbmRvcl9pZDogNDMwOQoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA0LjEvdXNiMS8xLTIvMS0yLjQvMS0yLjQ6MS4wCmJ1czogdXNiCmRyaXZlcjogaHViCnByb2R1Y3RfaWQ6IDM3NDYwCnZlbmRvcl9pZDogMTQyMwoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA0LjEvdXNiMS8xLTIvMS0yOjEuMApidXM6IHVzYgpkcml2ZXI6IGh1Ygpwcm9kdWN0X2lkOiAxNTQ0CnZlbmRvcl9pZDogMTUwNwoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA2LjAKYnVzOiBwY2kKY2F0ZWdvcnk6IFVTQgpkcml2ZXI6IG9oY2lfaGNkCnByb2R1Y3RfaWQ6IDI3MjcKdmVuZG9yX2lkOiA0MzE4CnN1YnByb2R1Y3RfaWQ6IDYyNQpzdWJ2ZW5kb3JfaWQ6IDQxMzYKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowNi4wL3VzYjQvNC0wOjEuMApidXM6IHVzYgpkcml2ZXI6IGh1Ygpwcm9kdWN0X2lkOiAxCnZlbmRvcl9pZDogNzUzMQoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA2LjEKYnVzOiBwY2kKY2F0ZWdvcnk6IFVTQgpkcml2ZXI6IGVoY2lfaGNkCnByb2R1Y3RfaWQ6IDI3MjkKdmVuZG9yX2lkOiA0MzE4CnN1YnByb2R1Y3RfaWQ6IDYyNQpzdWJ2ZW5kb3JfaWQ6IDQxMzYKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowNi4xL3VzYjIvMi0wOjEuMApidXM6IHVzYgpkcml2ZXI6IGh1Ygpwcm9kdWN0X2lkOiAyCnZlbmRvcl9pZDogNzUzMQoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4LjAKYnVzOiBwY2kKY2F0ZWdvcnk6IEFVRElPCmRyaXZlcjogc25kX2hkYV9pbnRlbApwcm9kdWN0X2lkOiAyNzUyCnZlbmRvcl9pZDogNDMxOApzdWJwcm9kdWN0X2lkOiA2MjUKc3VidmVuZG9yX2lkOiA0MTM2CgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDguMC9zb3VuZC9jYXJkMC9pbnB1dDE3CmJ1czogaW5wdXQKY2F0ZWdvcnk6IE9USEVSCnByb2R1Y3Q6IEhEQSBOVmlkaWEgTWljCgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDkuMApidXM6IHBjaQpwcm9kdWN0X2lkOiAyNzMxCnZlbmRvcl9pZDogNDMxOApzdWJwcm9kdWN0X2lkOiA1MjA4OQpzdWJ2ZW5kb3JfaWQ6IDQzMTgKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOS4wLzAwMDA6MDE6MDcuMApidXM6IHBjaQpjYXRlZ29yeTogRklSRVdJUkUKZHJpdmVyOiBmaXJld2lyZV9vaGNpCnByb2R1Y3RfaWQ6IDIwOTgKdmVuZG9yX2lkOiA0NDgwCnN1YnByb2R1Y3RfaWQ6IDYyNQpzdWJ2ZW5kb3JfaWQ6IDQxMzYKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOS4wLzAwMDA6MDE6MDcuMQpidXM6IHBjaQpjYXRlZ29yeTogQ0FSRFJFQURFUgpkcml2ZXI6IHNkaGNpLXBjaQpwcm9kdWN0X2lkOiAyMDgyCnZlbmRvcl9pZDogNDQ4MApzdWJwcm9kdWN0X2lkOiA2MjUKc3VidmVuZG9yX2lkOiA0MTM2CgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDkuMC8wMDAwOjAxOjA3LjIKYnVzOiBwY2kKZHJpdmVyOiByNTkyCnByb2R1Y3RfaWQ6IDE0MjYKdmVuZG9yX2lkOiA0NDgwCnN1YnByb2R1Y3RfaWQ6IDYyNQpzdWJ2ZW5kb3JfaWQ6IDQxMzYKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOS4wLzAwMDA6MDE6MDcuMwpidXM6IHBjaQpkcml2ZXI6IHI4NTIKcHJvZHVjdF9pZDogMjEzMAp2ZW5kb3JfaWQ6IDQ0ODAKc3VicHJvZHVjdF9pZDogNjI1CnN1YnZlbmRvcl9pZDogNDEzNgoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjBhLjAKYnVzOiBwY2kKY2F0ZWdvcnk6IE5FVFdPUksKZHJpdmVyOiBmb3JjZWRldGgKcHJvZHVjdF9pZDogMjczNgp2ZW5kb3JfaWQ6IDQzMTgKc3VicHJvZHVjdF9pZDogNjI1CnN1YnZlbmRvcl9pZDogNDEzNgoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjBiLjAKYnVzOiBwY2kKZHJpdmVyOiBhaGNpCnByb2R1Y3RfaWQ6IDI3NDUKdmVuZG9yX2lkOiA0MzE4CnN1YnByb2R1Y3RfaWQ6IDYyNQpzdWJ2ZW5kb3JfaWQ6IDQxMzYKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowYi4wL2hvc3QwL3RhcmdldDA6MDowLzA6MDowOjAKYnVzOiBzY3NpCmNhdGVnb3J5OiBESVNLCmRyaXZlcjogc2QKcHJvZHVjdDogU1Q5NTAwNDIwQVNHCgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MGIuMC9ob3N0MS90YXJnZXQxOjA6MC8xOjA6MDowCmJ1czogc2NzaQpjYXRlZ29yeTogQ0RST00KZHJpdmVyOiBzcgpwcm9kdWN0OiBITC1EVC1TVCBEVkQrLy1SVyBHUzIwTgoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjBjLjAKYnVzOiBwY2kKZHJpdmVyOiBwY2llcG9ydApwcm9kdWN0X2lkOiAyNzU2CnZlbmRvcl9pZDogNDMxOApzdWJwcm9kdWN0X2lkOiAwCnN1YnZlbmRvcl9pZDogNDMxOAoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjBjLjAvMDAwMDowMjowMC4wCmJ1czogcGNpCmNhdGVnb3J5OiBWSURFTwpkcml2ZXI6IG52aWRpYQpwcm9kdWN0X2lkOiAyNjc2CnZlbmRvcl9pZDogNDMxOApzdWJwcm9kdWN0X2lkOiA2MjUKc3VidmVuZG9yX2lkOiA0MTM2CgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MTAuMApidXM6IHBjaQpwcm9kdWN0X2lkOiAyNzIwCnZlbmRvcl9pZDogNDMxOApzdWJwcm9kdWN0X2lkOiAwCnN1YnZlbmRvcl9pZDogNDMxOAoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjEwLjAvMDAwMDowMzowMC4wCmJ1czogcGNpCmNhdGVnb3J5OiBWSURFTwpkcml2ZXI6IG52aWRpYQpwcm9kdWN0X2lkOiAyMTUwCnZlbmRvcl9pZDogNDMxOApzdWJwcm9kdWN0X2lkOiA2MjUKc3VidmVuZG9yX2lkOiA0MTM2CgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MTUuMApidXM6IHBjaQpkcml2ZXI6IHBjaWVwb3J0CnByb2R1Y3RfaWQ6IDI3NTgKdmVuZG9yX2lkOiA0MzE4CnN1YnByb2R1Y3RfaWQ6IDAKc3VidmVuZG9yX2lkOiA0MzE4CgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MTYuMApidXM6IHBjaQpkcml2ZXI6IHBjaWVwb3J0CnByb2R1Y3RfaWQ6IDI3NTkKdmVuZG9yX2lkOiA0MzE4CnN1YnByb2R1Y3RfaWQ6IDAKc3VidmVuZG9yX2lkOiA0MzE4CgpwYXRoOiAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MTYuMC8wMDAwOjA2OjAwLjAKYnVzOiBwY2kKY2F0ZWdvcnk6IFdJUkVMRVNTCmRyaXZlcjogYXRoOWsKcHJvZHVjdF9pZDogNDIKdmVuZG9yX2lkOiA1NzcyCnN1YnByb2R1Y3RfaWQ6IDUxMgpzdWJ2ZW5kb3JfaWQ6IDU3NzIKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDoxNi4wLzAwMDA6MDY6MDAuMC9pZWVlODAyMTEvcGh5MApidXM6IGllZWU4MDIxMQpjYXRlZ29yeTogV0lSRUxFU1MKZHJpdmVyOiBhdGg5awoKcGF0aDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjE2LjAvMDAwMDowNjowMC4wL2llZWU4MDIxMS9waHkwL3Jma2lsbDEKYnVzOiByZmtpbGwKY2F0ZWdvcnk6IE9USEVSCnByb2R1Y3Q6IHBoeTAKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDoxNy4wCmJ1czogcGNpCmRyaXZlcjogcGNpZXBvcnQKcHJvZHVjdF9pZDogMjc1OQp2ZW5kb3JfaWQ6IDQzMTgKc3VicHJvZHVjdF9pZDogMApzdWJ2ZW5kb3JfaWQ6IDQzMTgKCnBhdGg6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDoxOC4wCmJ1czogcGNpCmRyaXZlcjogcGNpZXBvcnQKcHJvZHVjdF9pZDogMjc1OQp2ZW5kb3JfaWQ6IDQzMTgKc3VicHJvZHVjdF9pZDogMApzdWJ2ZW5kb3JfaWQ6IDQzMTgKCnBhdGg6IC9kZXZpY2VzL3BsYXRmb3JtL2RlbGwtbGFwdG9wL3Jma2lsbC9yZmtpbGwwCmJ1czogcmZraWxsCmNhdGVnb3J5OiBPVEhFUgpkcml2ZXI6IGRlbGwtbGFwdG9wCnByb2R1Y3Q6IGRlbGwtd2lmaQoKcGF0aDogL2RldmljZXMvcGxhdGZvcm0vaTgwNDIvc2VyaW8wL2lucHV0L2lucHV0NApidXM6IGlucHV0CmNhdGVnb3J5OiBLRVlCT0FSRApkcml2ZXI6IGF0a2JkCnByb2R1Y3Q6IEFUIFRyYW5zbGF0ZWQgU2V0IDIga2V5Ym9hcmQKCnBhdGg6IC9kZXZpY2VzL3BsYXRmb3JtL2k4MDQyL3NlcmlvMS9pbnB1dC9pbnB1dDE1CmJ1czogaW5wdXQKY2F0ZWdvcnk6IFRPVUNICmRyaXZlcjogcHNtb3VzZQpwcm9kdWN0OiBTeW5QUy8yIFN5bmFwdGljcyBUb3VjaFBhZAoKcGF0aDogL2RldmljZXMvdmlydHVhbC9pbnB1dC9pbnB1dDEwCmJ1czogaW5wdXQKY2F0ZWdvcnk6IE9USEVSCnByb2R1Y3Q6IERlbGwgV01JIGhvdGtleXMKCnBhdGg6IC9kZXZpY2VzL3ZpcnR1YWwvaW5wdXQvaW5wdXQxNApidXM6IGlucHV0CmNhdGVnb3J5OiBLRVlCT0FSRApwcm9kdWN0OiBNQ0UgSVIgS2V5Ym9hcmQvTW91c2UgKGl0ZS1jaXIpCgpwYXRoOiAvZGV2aWNlcy92aXJ0dWFsL3JjL3JjMApidXM6IHJjCmNhdGVnb3J5OiBPVEhFUgpwcm9kdWN0OiByYy1yYzYtbWNlCgpwYXRoOiAvZGV2aWNlcy92aXJ0dWFsL3JjL3JjMC9pbnB1dDEyCmJ1czogaW5wdXQKY2F0ZWdvcnk6IENBUFRVUkUKcHJvZHVjdDogSVRFODcwOCBDSVIgdHJhbnNjZWl2ZXIKCg==" }, "2013.com.canonical.certification::camera/detect": { "outcome": "fail", "comments": "webcam is broken on this system", "plugin": "shell", "requires": "device.category == 'CAPTURE'", "command": "camera_test detect", "description": "This Automated test attempts to detect a camera.", "io_log": "" }, "2013.com.canonical.certification::usb/detect": { "outcome": "pass", "comments": null, "plugin": "shell", "command": "lsusb | sed 's/.*\\(ID .*\\)/\\1/' | head -n 4 || echo \"No USB devices were detected\" >&2", "description": "Detects and shows USB devices attached to this system.", "io_log": "SUQgMWQ2YjowMDAyIExpbnV4IEZvdW5kYXRpb24gMi4wIHJvb3QgaHViCklEIDFkNmI6MDAwMiBMaW51eCBGb3VuZGF0aW9uIDIuMCByb290IGh1YgpJRCAxZDZiOjAwMDEgTGludXggRm91bmRhdGlvbiAxLjEgcm9vdCBodWIKSUQgMWQ2YjowMDAxIExpbnV4IEZvdW5kYXRpb24gMS4xIHJvb3QgaHViCg==" }, "2013.com.canonical.certification::wireless/wireless_connection_wpa_n": { "outcome": "not-supported", "comments": "job cannot be started: resource expression \"environment.ROUTERS == 'multiple'\" evaluates to false", "plugin": "shell", "requires": "device.category == 'WIRELESS'\nenvironment.ROUTERS == 'multiple'", "command": "trap \"nmcli con delete id $WPA_N_SSID\" EXIT; create_connection $WPA_N_SSID --security=wpa --key=$WPA_N_PSK && internet_test --interface=`nmcli dev status | awk '/802-11-wireless/ {print $1}'`", "description": "Tests that the systems wireless hardware can connect to a router using WPA\nsecurity and the 802.11n protocol.", "io_log": "" }, "2013.com.canonical.certification::dpkg": { "outcome": "pass", "comments": null, "plugin": "resource", "requires": "package.name == \"dpkg\"", "command": "dpkg_resource", "description": "Gets info on the version of dpkg installed", "io_log": "dmVyc2lvbjogMS4xNi4xLjIKYXJjaGl0ZWN0dXJlOiBhbWQ2NAo=" } } } plainbox-0.5.3/plainbox/test-data/xml-exporter/test_dump_with_io_log.json0000664000175000017500000000032512320461715026736 0ustar zygazyga00000000000000{ "resource_map": {}, "attachment_map": {}, "result_map": { "A": { "outcome": "pass", "comments": null, "plugin": "shell", "description": "foo", "io_log": "YmFy" } } } plainbox-0.5.3/plainbox/test-data/xml-exporter/test_dump_with_hardware_info.json0000664000175000017500000000073212320461715030300 0ustar zygazyga00000000000000{ "resource_map": {}, "attachment_map": { "2013.com.canonical.certification::dmi_attachment": "RmVhciBpcyB0aGUgbWluZC1raWxsZXI=", "2013.com.canonical.certification::meminfo_attachment": "SSBtdXN0IG5vdCBmZWFy", "2013.com.canonical.certification::sysfs_attachment": "RmVhciBpcyB0aGUgbGl0dGxlLWRlYXRoIHRoYXQgYnJpbmdzIHRvdGFsIG9ibGl0ZXJhdGlvbg==", "2013.com.canonical.certification::udev_attachment": "SSB3aWxsIGZhY2UgbXkgZmVhcgo=" }, "result_map": {} } plainbox-0.5.3/plainbox/test-data/html-exporter/0000775000175000017500000000000012320462103021610 5ustar zygazyga00000000000000plainbox-0.5.3/plainbox/test-data/html-exporter/example-data.html0000664000175000017500000130035212320461715025054 0ustar zygazyga00000000000000 System Testing Report

System Testing Report

This report was created using plainbox 1.0 on 2012-12-21T12:00:00

Hardware Information

Desktop Management Interface information

          

sysfs-attributes

          

Processors

Processor 0

Property Value
bogomips 5066
cache 3145728
count 2
model Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz
model_number 6
model_revision 10
model_version 23
other fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida dtherm tpr_shadow vnmi flexpriority
platform x86_64
speed 2534
type GenuineIntel

Processor 1

Property Value
bogomips 5066
cache 3145728
count 2
model Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz
model_number 6
model_revision 10
model_version 23
other fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida dtherm tpr_shadow vnmi flexpriority
platform x86_64
speed 2534
type GenuineIntel

Software Information

Packages Installed

Name Description
accountsservice Installed
acl Installed
acpi Installed
acpi-support Installed
acpid Installed
acpidump Installed
acpitool Installed
activity-log-manager-common Installed
activity-log-manager-control-center Installed
adduser Installed
adium-theme-ubuntu Installed
aisleriot Installed
alacarte Installed
alsa-base Installed
alsa-utils Installed
anacron Installed
apg Installed
app-install-data Installed
app-install-data-partner Installed
apparmor Installed
appmenu-gtk Installed
appmenu-gtk3 Installed
appmenu-qt Installed
apport Installed
apport-gtk Installed
apport-symptoms Installed
apt Installed
apt-file Installed
apt-transport-https Installed
apt-utils Installed
apt-xapian-index Installed
aptdaemon Installed
aptdaemon-data Installed
apturl Installed
apturl-common Installed
arandr Installed
aspell Installed
aspell-en Installed
at Installed
at-spi2-core Installed
audacity Installed
audacity-data Installed
autoconf Installed
automake Installed
autotools-dev Installed
avahi-autoipd Installed
avahi-daemon Installed
avahi-utils Installed
bamfdaemon Installed
baobab Installed
base-files Installed
base-passwd Installed
bash Installed
bash-completion Installed
bc Installed
bind9-host Installed
binutils Installed
blueman Installed
bluez Installed
bluez-alsa Installed
bluez-alsa:i386 Installed
bluez-cups Installed
bluez-gstreamer Installed
bonnie++ Installed
bootchart Installed
branding-ubuntu Installed
brasero Installed
brasero-cdrkit Installed
brasero-common Installed
bridge-utils Installed
brltty Installed
bsdmainutils Installed
bsdutils Installed
build-essential Installed
busybox-initramfs Installed
busybox-static Installed
byobu Installed
bzip2 Installed
bzr Installed
bzr-builddeb Installed
bzr-builder Installed
bzr-explorer Installed
bzr-fastimport Installed
ca-certificates Installed
ca-certificates-java Installed
cdbs Installed
cgroup-lite Installed
charm-tools Installed
checkbox Installed
checkbox-certification Installed
checkbox-certification-client Installed
checkbox-certification-tools Installed
checkbox-cli Installed
checkbox-editor Installed
checkbox-editor-oem-template Installed
checkbox-gtk Installed
checkbox-ihv Installed
checkbox-ihv-cli Installed
checkbox-ihv-qt Installed
checkbox-oem Installed
checkbox-oem-bug Installed
checkbox-oem-gtk Installed
checkbox-oem-qt Installed
checkbox-oem-stella Installed
checkbox-oem-stella-gtk Installed
checkbox-qt Installed
cheese Installed
cheese-common Installed
cloud-utils Installed
cmap-adobe-japan2 Installed
colord Installed
command-not-found Installed
command-not-found-data Installed
compiz Installed
compiz-core Installed
compiz-gnome Installed
compiz-plugins Installed
compiz-plugins-default Installed
compiz-plugins-main Installed
compiz-plugins-main-default Installed
compizconfig-backend-gconf Installed
compizconfig-settings-manager Installed
console-setup Installed
consolekit Installed
coreutils Installed
cpio Installed
cpp Installed
cpp-4.6 Installed
cpu-checker Installed
crda Installed
cron Installed
cryptsetup-bin Installed
cups Installed
cups-bsd Installed
cups-client Installed
cups-common Installed
cups-filters Installed
cups-pk-helper Installed
cups-ppdc Installed
curl Installed
cvs Installed
cython Installed
dash Installed
dbus Installed
dbus-x11 Installed
dc Installed
dconf-gsettings-backend Installed
dconf-service Installed
dconf-tools Installed
dctrl-tools Installed
debconf Installed
debconf-i18n Installed
debhelper Installed
debian-archive-keyring Installed
debian-keyring Installed
debianutils Installed
debootstrap Installed
deja-dup Installed
desktop-file-utils Installed
devhelp Installed
devhelp-common Installed
devscripts Installed
dh-apparmor Installed
dh-make Installed
dh-translations Installed
dia-common Installed
dia-gnome Installed
dia-libs Installed
dictionaries-common Installed
diffstat Installed
diffutils Installed
distro-info Installed
distro-info-data Installed
dkms Installed
dmidecode Installed
dmsetup Installed
dmz-cursor-theme Installed
dnsmasq-base Installed
dnsutils Installed
doc-base Installed
docbook-xml Installed
docbook-xsl Installed
doit Installed
dosfstools Installed
dpkg Installed
dpkg-dev Installed
dput Installed
drobo-utils Installed
duplicity Installed
dvd+rw-tools Installed
e2fslibs Installed
e2fsprogs Installed
ebtables Installed
ed Installed
eject Installed
empathy Installed
empathy-common Installed
enchant Installed
enigmail Installed
eog Installed
esound-common Installed
espeak Installed
espeak-data Installed
ethtool Installed
euca2ools Installed
evince Installed
evince-common Installed
evoluspencil Installed
evolution-data-server Installed
evolution-data-server-common Installed
example-content Installed
fabric Installed
fakeroot Installed
ffmpeg Installed
file Installed
file-roller Installed
findutils Installed
firefox Installed
firefox-globalmenu Installed
firefox-gnome-support Installed
firefox-launchpad-plugin Installed
firefox-locale-en Installed
flashplugin-installer Installed
flex Installed
folks-common Installed
fontconfig Installed
fontconfig-config Installed
fonts-kacst Installed
fonts-kacst-one Installed
fonts-khmeros-core Installed
fonts-lao Installed
fonts-liberation Installed
fonts-nanum Installed
fonts-opensymbol Installed
fonts-takao-pgothic Installed
fonts-thai-tlwg Installed
fonts-tlwg-garuda Installed
fonts-tlwg-kinnari Installed
fonts-tlwg-loma Installed
fonts-tlwg-mono Installed
fonts-tlwg-norasi Installed
fonts-tlwg-purisa Installed
fonts-tlwg-sawasdee Installed
fonts-tlwg-typewriter Installed
fonts-tlwg-typist Installed
fonts-tlwg-typo Installed
fonts-tlwg-umpush Installed
fonts-tlwg-waree Installed
foomatic-db-compressed-ppds Installed
foomatic-db-engine Installed
foomatic-filters Installed
freeglut3 Installed
freeglut3-dev Installed
freepats Installed
friendly-recovery Installed
fswebcam Installed
ftp Installed
fuse Installed
fwts Installed
g++ Installed
g++-4.6 Installed
gawk Installed
gcalctool Installed
gcc Installed
gcc-4.6 Installed
gcc-4.6-base Installed
gcc-4.6-base:i386 Installed
gconf-defaults-service Installed
gconf-editor Installed
gconf-service Installed
gconf-service-backend Installed
gconf2 Installed
gconf2-common Installed
gdb Installed
gdebi Installed
gdebi-core Installed
geany Installed
geany-common Installed
geany-plugin-treebrowser Installed
geany-plugins-common Installed
gedit Installed
gedit-common Installed
genisoimage Installed
geoclue Installed
geoclue-ubuntu-geoip Installed
geoip-database Installed
gettext Installed
gettext-base Installed
ghostscript Installed
ghostscript-cups Installed
ghostscript-x Installed
gimp Installed
gimp-data Installed
ginn Installed
gir1.2-accountsservice-1.0 Installed
gir1.2-appindicator3-0.1 Installed
gir1.2-atk-1.0 Installed
gir1.2-atspi-2.0 Installed
gir1.2-caribou-1.0 Installed
gir1.2-clutter-1.0 Installed
gir1.2-cogl-1.0 Installed
gir1.2-coglpango-1.0 Installed
gir1.2-dbusmenu-glib-0.4 Installed
gir1.2-dbusmenu-gtk-0.4 Installed
gir1.2-dee-1.0 Installed
gir1.2-folks-0.6 Installed
gir1.2-freedesktop Installed
gir1.2-gconf-2.0 Installed
gir1.2-gdesktopenums-3.0 Installed
gir1.2-gdkpixbuf-2.0 Installed
gir1.2-gee-1.0 Installed
gir1.2-gjsdbus-1.0 Installed
gir1.2-gkbd-3.0 Installed
gir1.2-glib-2.0 Installed
gir1.2-gmenu-3.0 Installed
gir1.2-gnomebluetooth-1.0 Installed
gir1.2-gnomekeyring-1.0 Installed
gir1.2-gst-plugins-base-0.10 Installed
gir1.2-gstreamer-0.10 Installed
gir1.2-gtk-2.0 Installed
gir1.2-gtk-3.0 Installed
gir1.2-gtksource-3.0 Installed
gir1.2-gudev-1.0 Installed
gir1.2-indicate-0.7 Installed
gir1.2-javascriptcoregtk-1.0 Installed
gir1.2-javascriptcoregtk-3.0 Installed
gir1.2-json-1.0 Installed
gir1.2-launchpad-integration-3.0 Installed
gir1.2-mutter-3.0 Installed
gir1.2-networkmanager-1.0 Installed
gir1.2-notify-0.7 Installed
gir1.2-panelapplet-4.0 Installed
gir1.2-pango-1.0 Installed
gir1.2-peas-1.0 Installed
gir1.2-polkit-1.0 Installed
gir1.2-rb-3.0 Installed
gir1.2-soup-2.4 Installed
gir1.2-telepathyglib-0.12 Installed
gir1.2-telepathylogger-0.2 Installed
gir1.2-totem-1.0 Installed
gir1.2-totem-plparser-1.0 Installed
gir1.2-ubuntuoneui-3.0 Installed
gir1.2-unique-3.0 Installed
gir1.2-unity-5.0 Installed
gir1.2-upowerglib-1.0 Installed
gir1.2-vte-2.90 Installed
gir1.2-webkit-1.0 Installed
gir1.2-webkit-3.0 Installed
gir1.2-wnck-3.0 Installed
gir1.2-xkl-1.0 Installed
git Installed
git-core Installed
git-email Installed
git-gui Installed
git-man Installed
gitk Installed
gjs Installed
gksu Installed
glade Installed
glade-gtk2 Installed
glib-networking Installed
glib-networking:i386 Installed
glib-networking-common Installed
glib-networking-services Installed
glmark2 Installed
glmark2-data Installed
glmark2-es2 Installed
gnome-accessibility-themes Installed
gnome-applets Installed
gnome-applets-data Installed
gnome-bluetooth Installed
gnome-contacts Installed
gnome-control-center Installed
gnome-control-center-data Installed
gnome-desktop3-data Installed
gnome-disk-utility Installed
gnome-font-viewer Installed
gnome-games-data Installed
gnome-icon-theme Installed
gnome-icon-theme-full Installed
gnome-icon-theme-symbolic Installed
gnome-keyring Installed
gnome-media Installed
gnome-menus Installed
gnome-mplayer Installed
gnome-nettool Installed
gnome-online-accounts Installed
gnome-orca Installed
gnome-panel Installed
gnome-panel-data Installed
gnome-power-manager Installed
gnome-screensaver Installed
gnome-screenshot Installed
gnome-session Installed
gnome-session-bin Installed
gnome-session-canberra Installed
gnome-session-common Installed
gnome-session-fallback Installed
gnome-settings-daemon Installed
gnome-shell Installed
gnome-shell-common Installed
gnome-sudoku Installed
gnome-system-log Installed
gnome-system-monitor Installed
gnome-system-tools Installed
gnome-terminal Installed
gnome-terminal-data Installed
gnome-themes-standard Installed
gnome-tweak-tool Installed
gnome-user-guide Installed
gnome-user-share Installed
gnome-video-effects Installed
gnomine Installed
gnupg Installed
gnupg-agent Installed
google-talkplugin Installed
gpgv Installed
gpodder Installed
graphviz Installed
grep Installed
groff-base Installed
growisofs Installed
grub-common Installed
grub-gfxpayload-lists Installed
grub-pc Installed
grub-pc-bin Installed
grub2-common Installed
gs-cjk-resource Installed
gsettings-desktop-schemas Installed
gsfonts Installed
gsfonts-x11 Installed
gstreamer-tools Installed
gstreamer0.10-alsa Installed
gstreamer0.10-ffmpeg Installed
gstreamer0.10-gconf Installed
gstreamer0.10-gnonlin Installed
gstreamer0.10-nice Installed
gstreamer0.10-plugins-bad Installed
gstreamer0.10-plugins-base Installed
gstreamer0.10-plugins-base:i386 Installed
gstreamer0.10-plugins-base-apps Installed
gstreamer0.10-plugins-good Installed
gstreamer0.10-plugins-good:i386 Installed
gstreamer0.10-plugins-ugly Installed
gstreamer0.10-pulseaudio Installed
gstreamer0.10-tools Installed
gstreamer0.10-x Installed
gstreamer0.10-x:i386 Installed
gtk-recordmydesktop Installed
gtk2-engines Installed
gtk2-engines:i386 Installed
gtk2-engines-murrine Installed
gtk2-engines-murrine:i386 Installed
gtk2-engines-oxygen:i386 Installed
gtk2-engines-pixbuf:i386 Installed
gtk3-engines-unico Installed
gtkperf Installed
gucharmap Installed
guile-1.8-libs Installed
gvfs Installed
gvfs:i386 Installed
gvfs-backends Installed
gvfs-bin Installed
gvfs-common Installed
gvfs-daemons Installed
gvfs-fuse Installed
gvfs-libs Installed
gvfs-libs:i386 Installed
gwibber Installed
gwibber-service Installed
gwibber-service-facebook Installed
gwibber-service-identica Installed
gwibber-service-twitter Installed
gzip Installed
handbrake-gtk Installed
hddtemp Installed
hdparm Installed
heirloom-mailx Installed
help2man Installed
hexedit Installed
hicolor-icon-theme Installed
hostname Installed
hplip Installed
hplip-data Installed
html2text Installed
htop Installed
humanity-icon-theme Installed
hunspell-en-us Installed
hwdata Installed
hyphen-en-us Installed
ia32-libs Installed
ia32-libs-multiarch:i386 Installed
ibus Installed
ibus-gtk Installed
ibus-gtk:i386 Installed
ibus-gtk3 Installed
ibus-pinyin Installed
ibus-pinyin-db-android Installed
ibus-table Installed
icecream Installed
icedtea-7-jre-jamvm Installed
icedtea-7-plugin Installed
icedtea-netx Installed
icedtea-netx-common Installed
ifupdown Installed
im-switch Installed
imagemagick Installed
imagemagick-common Installed
indent Installed
indicator-applet-complete Installed
indicator-application Installed
indicator-appmenu Installed
indicator-datetime Installed
indicator-messages Installed
indicator-power Installed
indicator-printers Installed
indicator-session Installed
indicator-sound Installed
indicator-status-provider-mc5 Installed
indicator-status-provider-pidgin Installed
indicator-weather Installed
info Installed
initramfs-tools Installed
initramfs-tools-bin Installed
initscripts Installed
inkscape Installed
input-utils Installed
inputattach Installed
insserv Installed
install-info Installed
intel-gpu-tools Installed
intltool Installed
intltool-debian Installed
iozone3 Installed
iperf Installed
iproute Installed
iptables Installed
iputils-arping Installed
iputils-ping Installed
iputils-tracepath Installed
ipython Installed
irqbalance Installed
isc-dhcp-client Installed
isc-dhcp-common Installed
iso-codes Installed
iw Installed
java-common Installed
jockey-common Installed
jockey-gtk Installed
jpegpixi Installed
juju Installed
kbd Installed
kerneloops-daemon Installed
keyboard-configuration Installed
klibc-utils Installed
krb5-locales Installed
kvm-ipxe Installed
landscape-client-ui-install Installed
language-pack-en Installed
language-pack-en-base Installed
language-pack-gnome-en Installed
language-pack-gnome-en-base Installed
language-selector-common Installed
language-selector-gnome Installed
laptop-detect Installed
launchpad-integration Installed
ldtp Installed
less Installed
lesstif2 Installed
liba52-0.7.4 Installed
libaa1 Installed
libaa1:i386 Installed
libaacs0 Installed
libaccountsservice0 Installed
libacl1 Installed
libacl1:i386 Installed
libaio1 Installed
libaio1:i386 Installed
libalgorithm-diff-perl Installed
libalgorithm-diff-xs-perl Installed
libalgorithm-merge-perl Installed
libamd2.2.0 Installed
libao-common Installed
libao4:i386 Installed
libapparmor1 Installed
libappindicator1 Installed
libappindicator3-1 Installed
libapt-inst1.4 Installed
libapt-pkg-perl Installed
libapt-pkg4.12 Installed
libarchive12 Installed
libart-2.0-2 Installed
libasn1-8-heimdal Installed
libasn1-8-heimdal:i386 Installed
libasound2 Installed
libasound2:i386 Installed
libasound2-plugins Installed
libasound2-plugins:i386 Installed
libaspell15 Installed
libass4 Installed
libassuan0 Installed
libasyncns0 Installed
libasyncns0:i386 Installed
libatasmart4 Installed
libatk-adaptor Installed
libatk-adaptor-schemas Installed
libatk-wrapper-java Installed
libatk-wrapper-java-jni Installed
libatk1.0-0 Installed
libatk1.0-0:i386 Installed
libatk1.0-data Installed
libatk1.0-dev Installed
libatk1.0-doc Installed
libatkmm-1.6-1 Installed
libatspi2.0-0 Installed
libattr1 Installed
libattr1:i386 Installed
libaudio2 Installed
libaudio2:i386 Installed
libaudiofile1 Installed
libaudiofile1:i386 Installed
libauthen-sasl-perl Installed
libav-tools Installed
libavahi-client3 Installed
libavahi-client3:i386 Installed
libavahi-common-data Installed
libavahi-common-data:i386 Installed
libavahi-common3 Installed
libavahi-common3:i386 Installed
libavahi-core7 Installed
libavahi-glib1 Installed
libavahi-gobject0 Installed
libavahi-ui-gtk3-0 Installed
libavc1394-0 Installed
libavc1394-0:i386 Installed
libavcodec53 Installed
libavdevice53 Installed
libavfilter2 Installed
libavformat53 Installed
libavutil51 Installed
libbabl-0.0-0 Installed
libbamf0 Installed
libbamf3-0 Installed
libbfb0 Installed
libbind9-80 Installed
libbit-vector-perl Installed
libblas3gf Installed
libblkid1 Installed
libbluetooth3 Installed
libbluray1 Installed
libbonobo2-0 Installed
libbonobo2-common Installed
libbonoboui2-0 Installed
libbonoboui2-common Installed
libboost-serialization1.46.1 Installed
libbrasero-media3-1 Installed
libbrlapi0.5 Installed
libbsd0 Installed
libburn4 Installed
libbz2-1.0 Installed
libbz2-1.0:i386 Installed
libc-bin Installed
libc-dev-bin Installed
libc6 Installed
libc6:i386 Installed
libc6-dev Installed
libcaca0 Installed
libcaca0:i386 Installed
libcairo-gobject2 Installed
libcairo-gobject2:i386 Installed
libcairo-perl Installed
libcairo-script-interpreter2 Installed
libcairo2 Installed
libcairo2:i386 Installed
libcairo2-dev Installed
libcairomm-1.0-1 Installed
libcamel-1.2-29 Installed
libcanberra-gtk-module Installed
libcanberra-gtk-module:i386 Installed
libcanberra-gtk0 Installed
libcanberra-gtk0:i386 Installed
libcanberra-gtk3-0 Installed
libcanberra-gtk3-module Installed
libcanberra-pulse Installed
libcanberra0 Installed
libcanberra0:i386 Installed
libcap-ng0 Installed
libcap2 Installed
libcap2:i386 Installed
libcap2-bin Installed
libcapi20-3:i386 Installed
libcaribou-common Installed
libcaribou0 Installed
libcarp-clan-perl Installed
libcdaudio1 Installed
libcddb2 Installed
libcdio-cdda1 Installed
libcdio-paranoia1 Installed
libcdio13 Installed
libcdparanoia0 Installed
libcdparanoia0:i386 Installed
libcdt4 Installed
libcelt0-0 Installed
libcgraph5 Installed
libcheese-gtk21 Installed
libcheese3 Installed
libck-connector0 Installed
libclass-accessor-perl Installed
libclass-isa-perl Installed
libclone-perl Installed
libclutter-1.0-0 Installed
libclutter-1.0-common Installed
libclutter-gst-1.0-0 Installed
libclutter-gtk-1.0-0 Installed
libclutter-imcontext-0.1-0 Installed
libcluttergesture-0.0.2-0 Installed
libcmis-0.2-0 Installed
libcogl-common Installed
libcogl-pango0 Installed
libcogl9 Installed
libcolord1 Installed
libcomerr2 Installed
libcomerr2:i386 Installed
libcommon-sense-perl Installed
libcompizconfig0 Installed
libconfig-file-perl Installed
libcroco3 Installed
libcroco3:i386 Installed
libcrypt-passwdmd5-perl Installed
libcrypt-ssleay-perl Installed
libcryptsetup4 Installed
libcrystalhd3 Installed
libcups2 Installed
libcups2:i386 Installed
libcupscgi1 Installed
libcupsdriver1 Installed
libcupsfilters1 Installed
libcupsimage2 Installed
libcupsimage2:i386 Installed
libcupsmime1 Installed
libcupsppdc1 Installed
libcurl3 Installed
libcurl3:i386 Installed
libcurl3-gnutls Installed
libcurl3-nss Installed
libdaemon0 Installed
libdate-calc-perl Installed
libdate-calc-xs-perl Installed
libdate-manip-perl Installed
libdatrie1 Installed
libdatrie1:i386 Installed
libdb5.1 Installed
libdb5.1:i386 Installed
libdbus-1-3 Installed
libdbus-1-3:i386 Installed
libdbus-glib-1-2 Installed
libdbus-glib-1-2:i386 Installed
libdbusmenu-glib4 Installed
libdbusmenu-gtk3-4 Installed
libdbusmenu-gtk4 Installed
libdbusmenu-qt2 Installed
libdc1394-22 Installed
libdca0 Installed
libdconf-dbus-1-0 Installed
libdconf-qt0 Installed
libdconf0 Installed
libdecoration0 Installed
libdee-1.0-4 Installed
libdevhelp-3-0 Installed
libdevmapper-event1.02.1 Installed
libdevmapper1.02.1 Installed
libdigest-hmac-perl Installed
libdirac-encoder0 Installed
libdirectfb-1.2-9 Installed
libdiscid0 Installed
libdjvulibre-text Installed
libdjvulibre21 Installed
libdmapsharing-3.0-2 Installed
libdns81 Installed
libdotconf1.0 Installed
libdpkg-perl Installed
libdrm-dev Installed
libdrm-intel1 Installed
libdrm-intel1:i386 Installed
libdrm-nouveau1a Installed
libdrm-nouveau1a:i386 Installed
libdrm-radeon1 Installed
libdrm-radeon1:i386 Installed
libdrm2 Installed
libdrm2:i386 Installed
libdv4 Installed
libdv4:i386 Installed
libdvbpsi7 Installed
libdvdcss2 Installed
libdvdnav4 Installed
libdvdread4 Installed
libebackend-1.2-1 Installed
libebml3 Installed
libebook-1.2-12 Installed
libecal-1.2-10 Installed
libedata-book-1.2-11 Installed
libedata-cal-1.2-13 Installed
libedataserver-1.2-15 Installed
libedataserverui-3.0-1 Installed
libedit2 Installed
libegl1-mesa Installed
libegl1-mesa-dev Installed
libegl1-mesa-drivers Installed
libelf1 Installed
libelf1:i386 Installed
libemail-valid-perl Installed
libenca0 Installed
libenchant1c2a Installed
libencode-locale-perl Installed
libept1.4.12 Installed
liberror-perl Installed
libesd0 Installed
libesd0:i386 Installed
libespeak1 Installed
libevent-2.0-5 Installed
libevince3-3 Installed
libexempi3 Installed
libexif12 Installed
libexif12:i386 Installed
libexiv2-11 Installed
libexpat1 Installed
libexpat1:i386 Installed
libexpat1-dev Installed
libexplain30 Installed
libexporter-lite-perl Installed
libexttextcat-data Installed
libexttextcat0 Installed
libextutils-depends-perl Installed
libextutils-pkgconfig-perl Installed
libfaad2 Installed
libfarstream-0.1-0 Installed
libffi-dev Installed
libffi6 Installed
libffi6:i386 Installed
libfftw3-3 Installed
libfile-basedir-perl Installed
libfile-copy-recursive-perl Installed
libfile-desktopentry-perl Installed
libfile-listing-perl Installed
libfile-mimeinfo-perl Installed
libfile-which-perl Installed
libfl-dev Installed
libflac++6 Installed
libflac8 Installed
libflac8:i386 Installed
libflite1 Installed
libfolks-eds25 Installed
libfolks-telepathy25 Installed
libfolks25 Installed
libfont-afm-perl Installed
libfontconfig1 Installed
libfontconfig1:i386 Installed
libfontconfig1-dev Installed
libfontenc1 Installed
libframe6 Installed
libfreeimage-dev Installed
libfreeimage3 Installed
libfreerdp-plugins-standard Installed
libfreerdp1 Installed
libfreetype6 Installed
libfreetype6:i386 Installed
libfreetype6-dev Installed
libfribidi0 Installed
libfs6 Installed
libfuse2 Installed
libfwts1 Installed
libfwtsacpica1 Installed
libfwtsiasl1 Installed
libgail-3-0 Installed
libgail-common Installed
libgail-common:i386 Installed
libgail18 Installed
libgail18:i386 Installed
libgbm1 Installed
libgc1c2 Installed
libgcc1 Installed
libgcc1:i386 Installed
libgck-1-0 Installed
libgconf-2-4 Installed
libgconf-2-4:i386 Installed
libgconf2-4 Installed
libgcr-3-1 Installed
libgcr-3-common Installed
libgcrypt11 Installed
libgcrypt11:i386 Installed
libgd2-xpm Installed
libgd2-xpm:i386 Installed
libgdata-common Installed
libgdata13 Installed
libgdbm3 Installed
libgdbm3:i386 Installed
libgdk-pixbuf2.0-0 Installed
libgdk-pixbuf2.0-0:i386 Installed
libgdk-pixbuf2.0-common Installed
libgdk-pixbuf2.0-dev Installed
libgdu-gtk0 Installed
libgdu0 Installed
libgee2 Installed
libgegl-0.0-0 Installed
libgeis1 Installed
libgeoclue0 Installed
libgeoip1 Installed
libgettextpo0 Installed
libgettextpo0:i386 Installed
libgexiv2-1 Installed
libgfortran3 Installed
libgif4 Installed
libgimp2.0 Installed
libgirepository-1.0-1 Installed
libgjs0c Installed
libgksu2-0 Installed
libgl1-mesa-dev Installed
libgl1-mesa-dri Installed
libgl1-mesa-dri:i386 Installed
libgl1-mesa-glx Installed
libgl1-mesa-glx:i386 Installed
libglade2-0 Installed
libglade2-dev Installed
libgladeui-1-11 Installed
libgladeui-2-0 Installed
libgladeui-common Installed
libglapi-mesa Installed
libglapi-mesa:i386 Installed
libgles2-mesa Installed
libgles2-mesa-dev Installed
libglew1.5 Installed
libglew1.5-dev Installed
libglew1.6 Installed
libglewmx1.6 Installed
libglib-perl Installed
libglib2.0-0 Installed
libglib2.0-0:i386 Installed
libglib2.0-bin Installed
libglib2.0-data Installed
libglib2.0-dev Installed
libglib2.0-doc Installed
libglibmm-2.4-1c2a Installed
libglu1-mesa Installed
libglu1-mesa:i386 Installed
libglu1-mesa-dev Installed
libgme0 Installed
libgmime-2.6-0 Installed
libgmlib0 Installed
libgmp10 Installed
libgmtk0 Installed
libgmtk0-data Installed
libgnome-bluetooth8 Installed
libgnome-control-center1 Installed
libgnome-desktop-3-2 Installed
libgnome-keyring-common Installed
libgnome-keyring0 Installed
libgnome-keyring0:i386 Installed
libgnome-media-profiles-3.0-0 Installed
libgnome-menu-3-0 Installed
libgnome-menu2 Installed
libgnome2-0 Installed
libgnome2-bin Installed
libgnome2-canvas-perl Installed
libgnome2-common Installed
libgnome2-gconf-perl Installed
libgnome2-perl Installed
libgnome2-vfs-perl Installed
libgnome2-wnck-perl Installed
libgnomecanvas2-0 Installed
libgnomecanvas2-common Installed
libgnomekbd-common Installed
libgnomekbd7 Installed
libgnomeui-0 Installed
libgnomeui-common Installed
libgnomevfs2-0 Installed
libgnomevfs2-common Installed
libgnomevfs2-extra Installed
libgnutls26 Installed
libgnutls26:i386 Installed
libgoa-1.0-0 Installed
libgoa-1.0-common Installed
libgomp1 Installed
libgomp1:i386 Installed
libgoo-canvas-perl Installed
libgoocanvas-common Installed
libgoocanvas3 Installed
libgpg-error0 Installed
libgpg-error0:i386 Installed
libgpgme11 Installed
libgphoto2-2 Installed
libgphoto2-2:i386 Installed
libgphoto2-l10n Installed
libgphoto2-port0 Installed
libgphoto2-port0:i386 Installed
libgpm2 Installed
libgpm2:i386 Installed
libgpod-common Installed
libgpod4 Installed
libgrail5 Installed
libgraph4 Installed
libgrip0 Installed
libgs9 Installed
libgs9-common Installed
libgsl0ldbl Installed
libgsm1 Installed
libgsoap1 Installed
libgssapi-krb5-2 Installed
libgssapi-krb5-2:i386 Installed
libgssapi3-heimdal Installed
libgssapi3-heimdal:i386 Installed
libgssdp-1.0-3 Installed
libgstreamer-plugins-bad0.10-0 Installed
libgstreamer-plugins-base0.10-0 Installed
libgstreamer-plugins-base0.10-0:i386 Installed
libgstreamer0.10-0 Installed
libgstreamer0.10-0:i386 Installed
libgtk-3-0 Installed
libgtk-3-bin Installed
libgtk-3-common Installed
libgtk-3-dev Installed
libgtk-3-doc Installed
libgtk-vnc-2.0-0 Installed
libgtk2-imageview-perl Installed
libgtk2-perl Installed
libgtk2-unique-perl Installed
libgtk2.0-0 Installed
libgtk2.0-0:i386 Installed
libgtk2.0-bin Installed
libgtk2.0-common Installed
libgtk2.0-dev Installed
libgtkimageview0 Installed
libgtkmm-2.4-1c2a Installed
libgtkmm-3.0-1 Installed
libgtksourceview-3.0-0 Installed
libgtksourceview-3.0-common Installed
libgtksourceview2.0-0 Installed
libgtksourceview2.0-common Installed
libgtkspell-3-0 Installed
libgtkspell0 Installed
libgtop2-7 Installed
libgtop2-common Installed
libgucharmap-2-90-7 Installed
libgudev-1.0-0 Installed
libgudev-1.0-0:i386 Installed
libgupnp-1.0-4 Installed
libgupnp-igd-1.0-4 Installed
libgutenprint2 Installed
libgvc5 Installed
libgvnc-1.0-0 Installed
libgvpr1 Installed
libgweather-3-0 Installed
libgweather-common Installed
libgwibber-gtk2 Installed
libgwibber2 Installed
libhcrypto4-heimdal Installed
libhcrypto4-heimdal:i386 Installed
libheimbase1-heimdal Installed
libheimbase1-heimdal:i386 Installed
libheimntlm0-heimdal Installed
libheimntlm0-heimdal:i386 Installed
libhpmud0 Installed
libhtml-form-perl Installed
libhtml-format-perl Installed
libhtml-parser-perl Installed
libhtml-tagset-perl Installed
libhtml-tree-perl Installed
libhttp-cookies-perl Installed
libhttp-daemon-perl Installed
libhttp-date-perl Installed
libhttp-message-perl Installed
libhttp-negotiate-perl Installed
libhttp-server-simple-perl Installed
libhunspell-1.3-0 Installed
libhx509-5-heimdal Installed
libhx509-5-heimdal:i386 Installed
libhyphen0 Installed
libibus-1.0-0 Installed
libibus-1.0-0:i386 Installed
libical0 Installed
libice-dev Installed
libice6 Installed
libice6:i386 Installed
libicu48 Installed
libid3tag0 Installed
libidl-common Installed
libidl0 Installed
libidn11 Installed
libidn11:i386 Installed
libido3-0.1-0 Installed
libiec61883-0 Installed
libiec61883-0:i386 Installed
libieee1284-3 Installed
libieee1284-3:i386 Installed
libijs-0.35 Installed
libilmbase6 Installed
libimobiledevice2 Installed
libindicate-gtk3 Installed
libindicate5 Installed
libindicator-messages-status-provider1 Installed
libindicator3-7 Installed
libindicator7 Installed
libio-pty-perl Installed
libio-socket-inet6-perl Installed
libio-socket-ssl-perl Installed
libio-string-perl Installed
libio-stringy-perl Installed
libipc-run-perl Installed
libisc83 Installed
libisccc80 Installed
libisccfg82 Installed
libiso9660-8 Installed
libisofs6 Installed
libiw30 Installed
libjack-jackd2-0 Installed
libjack-jackd2-0:i386 Installed
libjasper1 Installed
libjasper1:i386 Installed
libjavascriptcoregtk-1.0-0 Installed
libjavascriptcoregtk-3.0-0 Installed
libjbig2dec0 Installed
libjpeg-turbo8 Installed
libjpeg-turbo8:i386 Installed
libjpeg8 Installed
libjpeg8:i386 Installed
libjs-jquery Installed
libjs-underscore Installed
libjson-glib-1.0-0 Installed
libjson-perl Installed
libjson-xs-perl Installed
libjson0 Installed
libjson0:i386 Installed
libjte1 Installed
libk5crypto3 Installed
libk5crypto3:i386 Installed
libkate1 Installed
libkeyutils1 Installed
libkeyutils1:i386 Installed
libklibc Installed
libkms1 Installed
libkpathsea5 Installed
libkrb5-26-heimdal Installed
libkrb5-26-heimdal:i386 Installed
libkrb5-3 Installed
libkrb5-3:i386 Installed
libkrb5support0 Installed
libkrb5support0:i386 Installed
liblapack3gf Installed
liblaunchpad-integration-3.0-1 Installed
liblaunchpad-integration-common Installed
liblaunchpad-integration1 Installed
liblcms1 Installed
liblcms1:i386 Installed
liblcms2-2 Installed
libldap-2.4-2 Installed
libldap-2.4-2:i386 Installed
liblightdm-gobject-1-0 Installed
liblircclient0 Installed
liblist-moreutils-perl Installed
libllvm3.0 Installed
libllvm3.0:i386 Installed
liblocale-gettext-perl Installed
liblockfile-bin Installed
liblockfile1 Installed
liblouis-data Installed
liblouis2 Installed
liblqr-1-0 Installed
libltdl7 Installed
libltdl7:i386 Installed
liblua5.1-0 Installed
liblvm2app2.2 Installed
liblwp-mediatypes-perl Installed
liblwp-protocol-https-perl Installed
liblwres80 Installed
liblzma5 Installed
liblzo2-2 Installed
libmad0 Installed
libmad0:i386 Installed
libmagic1 Installed
libmagick++4 Installed
libmagickcore4 Installed
libmagickcore4-extra Installed
libmagickwand4 Installed
libmail-sendmail-perl Installed
libmailtools-perl Installed
libmatroska5 Installed
libmeanwhile1 Installed
libmetacity-private0 Installed
libmhash2 Installed
libmikmod2 Installed
libmikmod2:i386 Installed
libmimic0 Installed
libminiupnpc8 Installed
libmission-control-plugins0 Installed
libmms0 Installed
libmng1 Installed
libmng1:i386 Installed
libmodplug1 Installed
libmount1 Installed
libmozjs185-1.0 Installed
libmp3lame0 Installed
libmpc2 Installed
libmpcdec6 Installed
libmpeg2-4 Installed
libmpfr4 Installed
libmpg123-0:i386 Installed
libmtdev1 Installed
libmtp-common Installed
libmtp-runtime Installed
libmtp9 Installed
libmulticobex1 Installed
libmusicbrainz3-6 Installed
libmusicbrainz4-3 Installed
libmutter0 Installed
libmx-1.0-2 Installed
libmysqlclient18:i386 Installed
libmythes-1.2-0 Installed
libnautilus-extension1a Installed
libncurses5 Installed
libncurses5:i386 Installed
libncursesw5 Installed
libncursesw5:i386 Installed
libneon27-gnutls Installed
libnet-dbus-perl Installed
libnet-dns-perl Installed
libnet-domain-tld-perl Installed
libnet-http-perl Installed
libnet-ip-perl Installed
libnet-smtp-ssl-perl Installed
libnet-ssleay-perl Installed
libnetfilter-conntrack3 Installed
libnetpbm10 Installed
libnettle4 Installed
libnewt0.52 Installed
libnfnetlink0 Installed
libnice10 Installed
libnih-dbus1 Installed
libnih1 Installed
libnl-3-200 Installed
libnl-genl-3-200 Installed
libnl-route-3-200 Installed
libnm-glib-vpn1 Installed
libnm-glib4 Installed
libnm-gtk-common Installed
libnm-gtk0 Installed
libnm-util2 Installed
libnotify-bin Installed
libnotify4 Installed
libnspr4 Installed
libnspr4:i386 Installed
libnspr4-0d Installed
libnss-mdns Installed
libnss3 Installed
libnss3:i386 Installed
libnss3-1d Installed
libnuma1 Installed
libnux-2.0-0 Installed
libnux-2.0-common Installed
liboauth0 Installed
libobexftp0 Installed
libodbc1:i386 Installed
libofa0 Installed
libogg0 Installed
libogg0:i386 Installed
libole-storage-lite-perl Installed
liboobs-1-5 Installed
libopenal-data Installed
libopenal1 Installed
libopenal1:i386 Installed
libopencc1 Installed
libopencore-amrnb0 Installed
libopencore-amrwb0 Installed
libopencv-calib3d2.3 Installed
libopencv-core2.3 Installed
libopencv-features2d2.3 Installed
libopencv-flann2.3 Installed
libopencv-highgui2.3 Installed
libopencv-imgproc2.3 Installed
libopencv-legacy2.3 Installed
libopencv-ml2.3 Installed
libopencv-objdetect2.3 Installed
libopencv-video2.3 Installed
libopenexr6 Installed
libopenjpeg2 Installed
libopenobex1 Installed
libopenvg1-mesa Installed
liborbit2 Installed
liborc-0.4-0 Installed
liborc-0.4-0:i386 Installed
liboverlay-scrollbar-0.2-0 Installed
liboverlay-scrollbar3-0.2-0 Installed
libp11-kit0 Installed
libp11-kit0:i386 Installed
libpackagekit-glib2-14 Installed
libpam-cap Installed
libpam-ck-connector Installed
libpam-gnome-keyring Installed
libpam-modules Installed
libpam-modules-bin Installed
libpam-runtime Installed
libpam0g Installed
libpanel-applet-4-0 Installed
libpango-perl Installed
libpango1.0-0 Installed
libpango1.0-0:i386 Installed
libpango1.0-dev Installed
libpango1.0-doc Installed
libpangomm-1.4-1 Installed
libpaper-utils Installed
libpaper1 Installed
libparse-debcontrol-perl Installed
libparse-debianchangelog-perl Installed
libparse-recdescent-perl Installed
libparted0debian1 Installed
libpath-class-perl Installed
libpathplan4 Installed
libpcap0.8 Installed
libpci3 Installed
libpciaccess0 Installed
libpciaccess0:i386 Installed
libpcre3 Installed
libpcre3:i386 Installed
libpcre3-dev Installed
libpcrecpp0 Installed
libpcsclite1 Installed
libpeas-1.0-0 Installed
libpeas-common Installed
libperl5.14 Installed
libphonon4 Installed
libpipeline1 Installed
libpixman-1-0 Installed
libpixman-1-0:i386 Installed
libpixman-1-dev Installed
libpkcs11-helper1 Installed
libplist1 Installed
libplymouth2 Installed
libpng12-0 Installed
libpng12-0:i386 Installed
libpng12-dev Installed
libpolkit-agent-1-0 Installed
libpolkit-backend-1-0 Installed
libpolkit-gobject-1-0 Installed
libpoppler-glib8 Installed
libpoppler19 Installed
libpopt0 Installed
libportaudio2 Installed
libportmidi0 Installed
libportsmf0 Installed
libpostproc52 Installed
libproc-processtable-perl Installed
libproc-simple-perl Installed
libprotobuf7 Installed
libprotoc7 Installed
libproxy1 Installed
libproxy1:i386 Installed
libproxy1-plugin-gsettings Installed
libproxy1-plugin-networkmanager Installed
libpth20 Installed
libpthread-stubs0 Installed
libpthread-stubs0-dev Installed
libpulse-mainloop-glib0 Installed
libpulse-mainloop-glib0:i386 Installed
libpulse0 Installed
libpulse0:i386 Installed
libpulsedsp Installed
libpulsedsp:i386 Installed
libpurple-bin Installed
libpurple0 Installed
libpyside-py3-1.1 Installed
libpyside1.1 Installed
libpython2.7 Installed
libpython3.2 Installed
libqt4-dbus Installed
libqt4-dbus:i386 Installed
libqt4-declarative Installed
libqt4-declarative:i386 Installed
libqt4-declarative-gestures Installed
libqt4-declarative-particles Installed
libqt4-designer Installed
libqt4-designer:i386 Installed
libqt4-dev Installed
libqt4-help Installed
libqt4-network Installed
libqt4-network:i386 Installed
libqt4-opengl Installed
libqt4-opengl:i386 Installed
libqt4-opengl-dev Installed
libqt4-qt3support Installed
libqt4-qt3support:i386 Installed
libqt4-script Installed
libqt4-script:i386 Installed
libqt4-scripttools Installed
libqt4-scripttools:i386 Installed
libqt4-sql Installed
libqt4-sql:i386 Installed
libqt4-sql-mysql:i386 Installed
libqt4-sql-sqlite Installed
libqt4-svg Installed
libqt4-svg:i386 Installed
libqt4-test Installed
libqt4-test:i386 Installed
libqt4-webkit Installed
libqt4-xml Installed
libqt4-xml:i386 Installed
libqt4-xmlpatterns Installed
libqt4-xmlpatterns:i386 Installed
libqtassistantclient4 Installed
libqtbamf1 Installed
libqtcore4 Installed
libqtcore4:i386 Installed
libqtdee2 Installed
libqtgconf1 Installed
libqtgui4 Installed
libqtgui4:i386 Installed
libqtwebkit-dev Installed
libqtwebkit-qmlwebkitplugin Installed
libqtwebkit4 Installed
libqtwebkit4:i386 Installed
libquadmath0 Installed
libquvi-scripts Installed
libquvi7 Installed
librados2 Installed
libraptor2-0 Installed
librarian0 Installed
librasqal3 Installed
libraw1394-11 Installed
libraw1394-11:i386 Installed
libraw5 Installed
librbd1 Installed
librdf0 Installed
libreadline6 Installed
libregexp-assemble-perl Installed
libreoffice-base-core Installed
libreoffice-calc Installed
libreoffice-common Installed
libreoffice-core Installed
libreoffice-draw Installed
libreoffice-emailmerge Installed
libreoffice-gnome Installed
libreoffice-gtk Installed
libreoffice-help-en-us Installed
libreoffice-impress Installed
libreoffice-math Installed
libreoffice-style-human Installed
libreoffice-style-tango Installed
libreoffice-writer Installed
libresid-builder0c2a Installed
librest-0.7-0 Installed
librhythmbox-core5 Installed
libroken18-heimdal Installed
libroken18-heimdal:i386 Installed
librsvg2-2 Installed
librsvg2-2:i386 Installed
librsvg2-bin Installed
librsvg2-common Installed
librsvg2-common:i386 Installed
librsync1 Installed
librtmp0 Installed
librtmp0:i386 Installed
libsamplerate0 Installed
libsamplerate0:i386 Installed
libsane Installed
libsane:i386 Installed
libsane-common Installed
libsane-hpaio Installed
libsasl2-2 Installed
libsasl2-2:i386 Installed
libsasl2-modules Installed
libsasl2-modules:i386 Installed
libschroedinger-1.0-0 Installed
libsdl-image1.2 Installed
libsdl-image1.2:i386 Installed
libsdl-mixer1.2 Installed
libsdl-mixer1.2:i386 Installed
libsdl-net1.2:i386 Installed
libsdl-ttf2.0-0 Installed
libsdl-ttf2.0-0:i386 Installed
libsdl1.2debian Installed
libsdl1.2debian:i386 Installed
libselinux1 Installed
libselinux1:i386 Installed
libsensors4 Installed
libsgutils2-2 Installed
libshiboken-py3-1.1 Installed
libshiboken1.1 Installed
libshout3 Installed
libshout3:i386 Installed
libsidplay1 Installed
libsidplay2 Installed
libsigc++-2.0-0c2a Installed
libsigsegv2 Installed
libslang2 Installed
libslang2:i386 Installed
libslp1 Installed
libslv2-9 Installed
libsm-dev Installed
libsm6 Installed
libsm6:i386 Installed
libsmbclient Installed
libsmpeg0 Installed
libsndfile1 Installed
libsndfile1:i386 Installed
libsnmp-base Installed
libsnmp15 Installed
libsocket6-perl Installed
libsonic0 Installed
libsort-naturally-perl Installed
libsoundtouch0 Installed
libsoup-gnome2.4-1 Installed
libsoup-gnome2.4-1:i386 Installed
libsoup2.4-1 Installed
libsoup2.4-1:i386 Installed
libsox-fmt-alsa Installed
libsox-fmt-base Installed
libsox1b Installed
libspandsp2 Installed
libspectre1 Installed
libspeechd2 Installed
libspeex1 Installed
libspeex1:i386 Installed
libspeexdsp1 Installed
libspeexdsp1:i386 Installed
libspreadsheet-writeexcel-perl Installed
libsqlite0 Installed
libsqlite3-0 Installed
libsqlite3-0:i386 Installed
libss2 Installed
libssh-4 Installed
libssl-dev Installed
libssl-doc Installed
libssl0.9.8:i386 Installed
libssl1.0.0 Installed
libssl1.0.0:i386 Installed
libstartup-notification0 Installed
libstdc++5:i386 Installed
libstdc++6 Installed
libstdc++6:i386 Installed
libstdc++6-4.6-dev Installed
libsub-name-perl Installed
libsvga1 Installed
libswitch-perl Installed
libswscale2 Installed
libsyncdaemon-1.0-1 Installed
libsys-hostname-long-perl Installed
libsysfs2 Installed
libt1-5 Installed
libtag1-vanilla Installed
libtag1-vanilla:i386 Installed
libtag1c2a Installed
libtag1c2a:i386 Installed
libtalloc2 Installed
libtar0 Installed
libtasn1-3 Installed
libtasn1-3:i386 Installed
libtdb1 Installed
libtdb1:i386 Installed
libtelepathy-farstream2 Installed
libtelepathy-glib0 Installed
libtelepathy-logger2 Installed
libtext-charwidth-perl Installed
libtext-iconv-perl Installed
libtext-wrapi18n-perl Installed
libthai-data Installed
libthai0 Installed
libthai0:i386 Installed
libtheora0 Installed
libtheora0:i386 Installed
libtidy-0.99-0 Installed
libtie-ixhash-perl Installed
libtiff4 Installed
libtiff4:i386 Installed
libtimedate-perl Installed
libtimezonemap1 Installed
libtinfo5 Installed
libtinfo5:i386 Installed
libtotem-plparser17 Installed
libtotem0 Installed
libts-0.0-0 Installed
libtwolame0 Installed
libubuntuoneui-3.0-1 Installed
libudev0 Installed
libudev0:i386 Installed
libumfpack5.4.0 Installed
libunique-1.0-0 Installed
libunique-3.0-0 Installed
libunistring0 Installed
libunistring0:i386 Installed
libunity-2d-private0 Installed
libunity-core-5.0-5 Installed
libunity-misc4 Installed
libunity9 Installed
libupnp3 Installed
libupower-glib1 Installed
liburi-perl Installed
libusb-0.1-4 Installed
libusb-0.1-4:i386 Installed
libusb-1.0-0 Installed
libusbmuxd1 Installed
libutempter0 Installed
libutouch-evemu1 Installed
libutouch-frame1 Installed
libutouch-geis1 Installed
libutouch-grail1 Installed
libuuid-perl Installed
libuuid1 Installed
libuuid1:i386 Installed
libv4l-0 Installed
libv4l-0:i386 Installed
libv4lconvert0 Installed
libv4lconvert0:i386 Installed
libva-x11-1 Installed
libva1 Installed
libvamp-hostsdk3 Installed
libvcdinfo0 Installed
libvdpau1 Installed
libvirt-bin Installed
libvirt0 Installed
libvisual-0.4-0 Installed
libvisual-0.4-0:i386 Installed
libvisual-0.4-plugins Installed
libvisual-0.4-plugins:i386 Installed
libvlc5 Installed
libvlccore5 Installed
libvncserver0 Installed
libvo-aacenc0 Installed
libvo-amrwbenc0 Installed
libvorbis0a Installed
libvorbis0a:i386 Installed
libvorbisenc2 Installed
libvorbisenc2:i386 Installed
libvorbisfile3 Installed
libvorbisfile3:i386 Installed
libvpx1 Installed
libvte-2.90-9 Installed
libvte-2.90-common Installed
libvte-common Installed
libvte9 Installed
libwacom-common Installed
libwacom2 Installed
libwavpack1 Installed
libwavpack1:i386 Installed
libwayland0 Installed
libwbclient0 Installed
libwebkitgtk-1.0-0 Installed
libwebkitgtk-1.0-common Installed
libwebkitgtk-3.0-0 Installed
libwebkitgtk-3.0-common Installed
libwildmidi-config Installed
libwildmidi1 Installed
libwind0-heimdal Installed
libwind0-heimdal:i386 Installed
libwmf-bin Installed
libwmf0.2-7 Installed
libwmf0.2-7-gtk Installed
libwnck-3-0 Installed
libwnck-3-common Installed
libwnck-common Installed
libwnck22 Installed
libwpd-0.9-9 Installed
libwpg-0.2-2 Installed
libwps-0.2-2 Installed
libwrap0 Installed
libwrap0:i386 Installed
libwww-mechanize-perl Installed
libwww-perl Installed
libwww-robotrules-perl Installed
libwxbase2.8-0 Installed
libwxgtk2.8-0 Installed
libx11-6 Installed
libx11-6:i386 Installed
libx11-data Installed
libx11-dev Installed
libx11-doc Installed
libx11-protocol-perl Installed
libx11-xcb-dev Installed
libx11-xcb1 Installed
libx11-xcb1:i386 Installed
libx264-120 Installed
libx86-1 Installed
libxapian22 Installed
libxatracker1 Installed
libxau-dev Installed
libxau6 Installed
libxau6:i386 Installed
libxaw7 Installed
libxaw7:i386 Installed
libxcb-composite0 Installed
libxcb-dri2-0 Installed
libxcb-glx0 Installed
libxcb-glx0:i386 Installed
libxcb-glx0-dev Installed
libxcb-icccm4 Installed
libxcb-image0 Installed
libxcb-keysyms1 Installed
libxcb-randr0 Installed
libxcb-render-util0 Installed
libxcb-render0 Installed
libxcb-render0:i386 Installed
libxcb-render0-dev Installed
libxcb-shape0 Installed
libxcb-shm0 Installed
libxcb-shm0:i386 Installed
libxcb-shm0-dev Installed
libxcb-sync0 Installed
libxcb-util0 Installed
libxcb-xfixes0 Installed
libxcb-xv0 Installed
libxcb1 Installed
libxcb1:i386 Installed
libxcb1-dev Installed
libxcomposite-dev Installed
libxcomposite1 Installed
libxcomposite1:i386 Installed
libxcursor-dev Installed
libxcursor1 Installed
libxcursor1:i386 Installed
libxdamage-dev Installed
libxdamage1 Installed
libxdamage1:i386 Installed
libxdelta2 Installed
libxdmcp-dev Installed
libxdmcp6 Installed
libxdmcp6:i386 Installed
libxenstore3.0 Installed
libxext-dev Installed
libxext6 Installed
libxext6:i386 Installed
libxfixes-dev Installed
libxfixes3 Installed
libxfixes3:i386 Installed
libxfont1 Installed
libxft-dev Installed
libxft2 Installed
libxft2:i386 Installed
libxi-dev Installed
libxi6 Installed
libxi6:i386 Installed
libxinerama-dev Installed
libxinerama1 Installed
libxinerama1:i386 Installed
libxkbfile1 Installed
libxklavier16 Installed
libxml-namespacesupport-perl Installed
libxml-parser-perl Installed
libxml-sax-base-perl Installed
libxml-sax-expat-perl Installed
libxml-sax-perl Installed
libxml-simple-perl Installed
libxml-twig-perl Installed
libxml-xpath-perl Installed
libxml2 Installed
libxml2:i386 Installed
libxml2-dev Installed
libxml2-utils Installed
libxmu6 Installed
libxmu6:i386 Installed
libxmuu1 Installed
libxp6 Installed
libxp6:i386 Installed
libxpm4 Installed
libxpm4:i386 Installed
libxrandr-dev Installed
libxrandr2 Installed
libxrandr2:i386 Installed
libxrender-dev Installed
libxrender1 Installed
libxrender1:i386 Installed
libxres1 Installed
libxslt1.1 Installed
libxslt1.1:i386 Installed
libxss1 Installed
libxss1:i386 Installed
libxt-dev Installed
libxt6 Installed
libxt6:i386 Installed
libxtst6 Installed
libxtst6:i386 Installed
libxv1 Installed
libxv1:i386 Installed
libxvidcore4 Installed
libxvmc1 Installed
libxxf86dga1 Installed
libxxf86vm-dev Installed
libxxf86vm1 Installed
libxxf86vm1:i386 Installed
libyajl1 Installed
libyaml-0-2 Installed
libyaml-syck-perl Installed
libyaml-tiny-perl Installed
libyelp0 Installed
libzbar0 Installed
libzeitgeist-1.0-1 Installed
libzephyr4 Installed
libzookeeper-mt2 Installed
libzvbi-common Installed
libzvbi0 Installed
light-themes Installed
lightdm Installed
lightread Installed
lintian Installed
linux-firmware Installed
linux-generic Installed
linux-headers-3.2.0-23 Installed
linux-headers-3.2.0-23-generic Installed
linux-headers-3.2.0-24 Installed
linux-headers-3.2.0-24-generic Installed
linux-headers-3.2.0-25 Installed
linux-headers-3.2.0-25-generic Installed
linux-headers-3.2.0-26 Installed
linux-headers-3.2.0-26-generic Installed
linux-headers-3.2.0-27 Installed
linux-headers-3.2.0-27-generic Installed
linux-headers-3.2.0-29 Installed
linux-headers-3.2.0-29-generic Installed
linux-headers-3.2.0-30 Installed
linux-headers-3.2.0-30-generic Installed
linux-headers-3.2.0-31 Installed
linux-headers-3.2.0-31-generic Installed
linux-headers-3.2.0-32 Installed
linux-headers-3.2.0-32-generic Installed
linux-headers-3.2.0-33 Installed
linux-headers-3.2.0-33-generic Installed
linux-headers-3.2.0-34 Installed
linux-headers-3.2.0-34-generic Installed
linux-headers-3.2.0-35 Installed
linux-headers-3.2.0-35-generic Installed
linux-headers-3.2.0-36 Installed
linux-headers-3.2.0-36-generic Installed
linux-headers-generic Installed
linux-image-3.2.0-24-generic Installed
linux-image-3.2.0-25-generic Installed
linux-image-3.2.0-26-generic Installed
linux-image-3.2.0-27-generic Installed
linux-image-3.2.0-29-generic Installed
linux-image-3.2.0-30-generic Installed
linux-image-3.2.0-31-generic Installed
linux-image-3.2.0-32-generic Installed
linux-image-3.2.0-33-generic Installed
linux-image-3.2.0-34-generic Installed
linux-image-3.2.0-35-generic Installed
linux-image-3.2.0-36-generic Installed
linux Installed
linux-image-generic Installed
linux-libc-dev Installed
linux-sound-base Installed
locales Installed
lockfile-progs Installed
login Installed
logrotate Installed
lsb-base Installed
lsb-release Installed
lshw Installed
lsof Installed
ltrace Installed
luvcview Installed
lynx-cur Installed
m4 Installed
mahjongg Installed
make Installed
makedev Installed
man-db Installed
manpages Installed
manpages-dev Installed
mawk Installed
media-player-info Installed
meld Installed
memtest86+ Installed
mesa-common-dev Installed
mesa-utils Installed
metacity Installed
metacity-common Installed
mime-support Installed
mirage Installed
mixxx Installed
mlocate Installed
mobile-broadband-provider-info Installed
modemmanager Installed
module-init-tools Installed
mount Installed
mountall Installed
mousetweaks Installed
mplayer Installed
mr Installed
mscompress Installed
msr-tools Installed
mtdev-tools Installed
mtools Installed
mtr-tiny Installed
multiarch-support Installed
mutter-common Installed
myspell-en-au Installed
myspell-en-gb Installed
myspell-en-za Installed
mysql-common Installed
mythes-en-us Installed
nano Installed
nautilus Installed
nautilus-data Installed
nautilus-open-terminal Installed
nautilus-sendto Installed
nautilus-sendto-empathy Installed
nautilus-share Installed
ncurses-base Installed
ncurses-bin Installed
net-tools Installed
netbase Installed
netcat-openbsd Installed
netpbm Installed
network-manager Installed
network-manager-gnome Installed
network-manager-openvpn Installed
network-manager-openvpn-gnome Installed
network-manager-pptp Installed
network-manager-pptp-gnome Installed
nitro Installed
nmap Installed
notepad-qml Installed
notify-osd Installed
notify-osd-icons Installed
ntfs-3g Installed
ntpdate Installed
nux-tools Installed
nvidia-common Installed
nvidia-experimental-310 Installed
nvidia-settings-experimental-310 Installed
obex-data-server Installed
obexd-client Installed
obexftp Installed
odbcinst Installed
odbcinst1debian2 Installed
odbcinst1debian2:i386 Installed
oem-qa-benchmark Installed
oem-qa-benchmark-cachebench Installed
oem-qa-benchmark-encode-mp3 Installed
oem-qa-benchmark-unigine-sanctuary Installed
oem-qa-benchmark-x264 Installed
onboard Installed
oneconf Installed
openjdk-7-jre Installed
openjdk-7-jre-headless Installed
openjdk-7-jre-lib Installed
openoffice.org-hyphenation Installed
openprinting-ppds Installed
openssh-client Installed
openssl Installed
openvpn Installed
os-prober Installed
oss-compat Installed
overlay-scrollbar Installed
packager Installed
parted Installed
passwd Installed
patch Installed
patchutils Installed
pavucontrol Installed
pbuilder Installed
pbzip2 Installed
pciutils Installed
pcmciautils Installed
pep8 Installed
perl Installed
perl-base Installed
perl-modules Installed
perlmagick Installed
phonon Installed
phonon-backend-gstreamer Installed
phoronix-test-suite Installed
php5-cli Installed
php5-common Installed
php5-gd Installed
pia Installed
pidgin Installed
pidgin-data Installed
pidgin-libnotify Installed
piglit Installed
pinentry-gtk2 Installed
pitivi Installed
pkg-config Installed
plymouth Installed
plymouth-label Installed
plymouth-theme-ubuntu-logo Installed
plymouth-theme-ubuntu-text Installed
pm-utils Installed
po-debconf Installed
policykit-1 Installed
policykit-1-gnome Installed
policykit-desktop-privileges Installed
poppler-data Installed
poppler-utils Installed
popularity-contest Installed
powermgmt-base Installed
ppp Installed
pppconfig Installed
pppoeconf Installed
pptp-linux Installed
printer-driver-c2esp Installed
printer-driver-foo2zjs Installed
printer-driver-gutenprint Installed
printer-driver-hpcups Installed
printer-driver-hpijs Installed
printer-driver-min12xxw Installed
printer-driver-pnm2ppa Installed
printer-driver-postscript-hp Installed
printer-driver-ptouch Installed
printer-driver-pxljr Installed
printer-driver-sag-gdi Installed
printer-driver-splix Installed
pristine-tar Installed
procps Installed
protobuf-compiler Installed
psensor Installed
psensor-common Installed
psmisc Installed
pulseaudio Installed
pulseaudio-module-bluetooth Installed
pulseaudio-module-gconf Installed
pulseaudio-module-x11 Installed
pulseaudio-utils Installed
pybootchartgui Installed
pyflakes Installed
python Installed
python-all Installed
python-appindicator Installed
python-apport Installed
python-apt Installed
python-apt-common Installed
python-aptdaemon Installed
python-aptdaemon.gtk3widgets Installed
python-aptdaemon.pkcompat Installed
python-beautifulsoup Installed
python-boto Installed
python-brlapi Installed
python-bzrlib Installed
python-cairo Installed
python-central Installed
python-chardet Installed
python-cheetah Installed
python-compizconfig Installed
python-configglue Installed
python-configobj Installed
python-coverage Installed
python-crypto Installed
python-cssutils Installed
python-cups Installed
python-cupshelpers Installed
python-dateutil Installed
python-dbus Installed
python-dbus-dev Installed
python-debian Installed
python-debianbts Installed
python-debtagshw Installed
python-decorator Installed
python-defer Installed
python-dev Installed
python-dirspec Installed
python-distro-info Installed
python-distutils-extra Installed
python-dns Installed
python-egenix-mxdatetime Installed
python-egenix-mxtools Installed
python-enchant Installed
python-fastimport Installed
python-feedparser Installed
python-formencode Installed
python-fpconst Installed
python-gconf Installed
python-gdbm Installed
python-genshi Installed
python-gevent Installed
python-gi Installed
python-gi-cairo Installed
python-glade2 Installed
python-gmenu Installed
python-gnome2 Installed
python-gnomekeyring Installed
python-gnupginterface Installed
python-gobject Installed
python-gobject-2 Installed
python-gobject-2-dev Installed
python-gpod Installed
python-greenlet Installed
python-gst0.10 Installed
python-gtk2 Installed
python-gtk2-dev Installed
python-gtk2-doc Installed
python-gtksourceview2 Installed
python-httplib2 Installed
python-ibus Installed
python-imaging Installed
python-jinja2 Installed
python-keyring Installed
python-launchpad-integration Installed
python-launchpadlib Installed
python-lazr.restfulclient Installed
python-lazr.uri Installed
python-ldtp Installed
python-libproxy Installed
python-libxml2 Installed
python-louis Installed
python-lxml Installed
python-m2crypto Installed
python-magic Installed
python-mako Installed
python-markupsafe Installed
python-minimal Installed
python-mutagen Installed
python-mygpoclient Installed
python-newt Installed
python-nose Installed
python-notify Installed
python-numpy Installed
python-oauth Installed
python-opencv Installed
python-opengl Installed
python-openid Installed
python-openpyxl Installed
python-openssl Installed
python-packagekit Installed
python-pam Installed
python-paramiko Installed
python-paste Installed
python-pastedeploy Installed
python-pastescript Installed
python-pexpect Installed
python-pip Installed
python-piston-mini-client Installed
python-pkg-resources Installed
python-pocket-lint Installed
python-problem-report Installed
python-protobuf Installed
python-pyasn1 Installed
python-pyatspi2 Installed
python-pycurl Installed
python-pydot Installed
python-pygame Installed
python-pygments Installed
python-pygoocanvas Installed
python-pyinotify Installed
python-pymt Installed
python-pymtp Installed
python-pyorbit Installed
python-pyparsing Installed
python-pyside Installed
python-pyside.phonon Installed
python-pyside.qtcore Installed
python-pyside.qtdeclarative Installed
python-pyside.qtgui Installed
python-pyside.qthelp Installed
python-pyside.qtnetwork Installed
python-pyside.qtopengl Installed
python-pyside.qtscript Installed
python-pyside.qtsql Installed
python-pyside.qtsvg Installed
python-pyside.qttest Installed
python-pyside.qtuitools Installed
python-pyside.qtwebkit Installed
python-pyside.qtxml Installed
python-pywapi Installed
python-qt4 Installed
python-qt4-dbus Installed
python-quickly-common Installed
python-quickly-core Installed
python-renderpm Installed
python-reportbug Installed
python-reportlab Installed
python-reportlab-accel Installed
python-requests Installed
python-scgi Installed
python-scipy Installed
python-scour Installed
python-serial Installed
python-setuptools Installed
python-simplecv Installed
python-simplegeneric Installed
python-simplejson Installed
python-sip Installed
python-smbc Installed
python-soappy Installed
python-software-properties Installed
python-speechd Installed
python-stdeb Installed
python-support Installed
python-twisted Installed
python-twisted-bin Installed
python-twisted-conch Installed
python-twisted-core Installed
python-twisted-lore Installed
python-twisted-mail Installed
python-twisted-names Installed
python-twisted-news Installed
python-twisted-runner Installed
python-twisted-web Installed
python-twisted-words Installed
python-txaws Installed
python-txzookeeper Installed
python-ubuntu-sso-client Installed
python-ubuntuone-client Installed
python-ubuntuone-control-panel Installed
python-ubuntuone-storageprotocol Installed
python-uniconvertor Installed
python-uno Installed
python-utidylib Installed
python-virtkey Installed
python-virtualenv Installed
python-wadllib Installed
python-webkit Installed
python-wxgtk2.8 Installed
python-wxversion Installed
python-xapian Installed
python-xdg Installed
python-xkit Installed
python-xlib Installed
python-yaml Installed
python-zeitgeist Installed
python-zookeeper Installed
python-zope.interface Installed
python2.7 Installed
python2.7-dev Installed
python2.7-minimal Installed
python3 Installed
python3-apt Installed
python3-cairo Installed
python3-dbus Installed
python3-dev Installed
python3-distutils-extra Installed
python3-gi Installed
python3-gi-cairo Installed
python3-jinja2 Installed
python3-lxml Installed
python3-markupsafe Installed
python3-minimal Installed
python3-pkg-resources Installed
python3-pyqt4 Installed
python3-pyside Installed
python3-pyside.phonon Installed
python3-pyside.qtcore Installed
python3-pyside.qtdeclarative Installed
python3-pyside.qtgui Installed
python3-pyside.qthelp Installed
python3-pyside.qtnetwork Installed
python3-pyside.qtopengl Installed
python3-pyside.qtscript Installed
python3-pyside.qtsql Installed
python3-pyside.qtsvg Installed
python3-pyside.qttest Installed
python3-pyside.qtuitools Installed
python3-pyside.qtwebkit Installed
python3-pyside.qtxml Installed
python3-setuptools Installed
python3-sip Installed
python3-urwid Installed
python3.2 Installed
python3.2-dev Installed
python3.2-minimal Installed
qbzr Installed
qdbus Installed
qemu-common Installed
qemu-kvm Installed
qemu-utils Installed
qgears2 Installed
qlalr Installed
qt-at-spi Installed
qt-components-desktop Installed
qt-components-desktop-dev Installed
qt-components-desktop-examples Installed
qt-components-ubuntu Installed
qt-components-ubuntu-demos Installed
qt-components-ubuntu-doc Installed
qt-components-ubuntu-examples Installed
qt3d Installed
qt4-demos Installed
qt4-designer Installed
qt4-dev-tools Installed
qt4-doc Installed
qt4-linguist-tools Installed
qt4-qmake Installed
qt4-qmlviewer Installed
qt4-qtconfig Installed
qt5-meta-full Installed
qtbase Installed
qtconnectivity Installed
qtcreator Installed
qtcreator-doc Installed
qtdeclarative Installed
qtdoc Installed
qtdocgallery Installed
qtfeedback Installed
qtgraphicaleffects Installed
qtimageformats Installed
qtjsbackend Installed
qtlocation Installed
qtmultimedia Installed
qtphonon Installed
qtpim Installed
qtquick1 Installed
qtscript Installed
qtsensors Installed
qtsvg Installed
qtsystems Installed
qttools Installed
qtwayland Installed
qtwebkit Installed
qtwebkit-examples-and-demos Installed
qtxmlpatterns Installed
quickly Installed
quickly-ubuntu-template Installed
quilt Installed
radeontool Installed
rarian-compat Installed
read-edid Installed
readline-common Installed
recordmydesktop Installed
remmina Installed
remmina-common Installed
remmina-plugin-rdp Installed
remmina-plugin-vnc Installed
reportbug Installed
resolvconf Installed
rfkill Installed
rhythmbox Installed
rhythmbox-data Installed
rhythmbox-mozilla Installed
rhythmbox-plugin-cdrecorder Installed
rhythmbox-plugin-magnatune Installed
rhythmbox-plugin-zeitgeist Installed
rhythmbox-plugins Installed
rhythmbox-ubuntuone Installed
rsync Installed
rsyslog Installed
rtkit Installed
samba-common Installed
samba-common-bin Installed
sane-utils Installed
scantv Installed
screen Installed
screen-resolution-extra Installed
seabios Installed
seahorse Installed
sed Installed
sensible-utils Installed
sessioninstaller Installed
sg3-utils Installed
sgml-base Installed
sgml-data Installed
shared-mime-info Installed
shotwell Installed
shutter Installed
siege Installed
simple-scan Installed
smartmontools Installed
smbclient Installed
sni-qt Installed
software-center Installed
software-center-aptdaemon-plugins Installed
software-properties-common Installed
software-properties-gtk Installed
sound-juicer Installed
sound-theme-freedesktop Installed
sox Installed
speech-dispatcher Installed
ssh-askpass-gnome Installed
ssl-cert Installed
startuptime Installed
strace Installed
streamripper Installed
stress Installed
stressapptest Installed
sudo Installed
synaptic Installed
syslinux Installed
syslinux-common Installed
syslinux-legacy Installed
sysstat Installed
system-config-printer-common Installed
system-config-printer-gnome Installed
system-config-printer-udev Installed
system-tools-backends Installed
sysv-rc Installed
sysvinit-utils Installed
tango-icon-theme Installed
tar Installed
tcl Installed
tcl8.5 Installed
tcpd Installed
tcpdump Installed
telepathy-gabble Installed
telepathy-haze Installed
telepathy-idle Installed
telepathy-indicator Installed
telepathy-logger Installed
telepathy-mission-control-5 Installed
telepathy-salut Installed
telnet Installed
thunderbird Installed
thunderbird-globalmenu Installed
thunderbird-gnome-support Installed
thunderbird-locale-en Installed
thunderbird-locale-en-us Installed
time Installed
tk Installed
tk8.5 Installed
tmux Installed
toshset Installed
totem Installed
totem-common Installed
totem-mozilla Installed
totem-plugins Installed
transmission-common Installed
transmission-gtk Installed
tree Installed
tsconf Installed
ttf-dejavu-core Installed
ttf-dejavu-extra Installed
ttf-freefont Installed
ttf-indic-fonts-core Installed
ttf-punjabi-fonts Installed
ttf-ubuntu-font-family Installed
ttf-wqy-microhei Installed
tzdata Installed
tzdata-java Installed
ubuntu-artwork Installed
ubuntu-dev-tools Installed
ubuntu-docs Installed
ubuntu-extras-keyring Installed
ubuntu-keyring Installed
ubuntu-minimal Installed
ubuntu-mono Installed
ubuntu-sounds Installed
ubuntu-sso-client Installed
ubuntu-sso-client-gtk Installed
ubuntu-sso-client-qt Installed
ubuntu-standard Installed
ubuntu-system-service Installed
ubuntu-tweak Installed
ubuntu-wallpapers Installed
ubuntu-wallpapers-precise Installed
ubuntuone-client Installed
ubuntuone-client-gnome Installed
ubuntuone-control-panel Installed
ubuntuone-control-panel-common Installed
ubuntuone-control-panel-qt Installed
ubuntuone-couch Installed
ubuntuone-installer Installed
ucf Installed
udev Installed
udisks Installed
ufw Installed
unattended-upgrades Installed
unity Installed
unity-2d Installed
unity-2d-common Installed
unity-2d-panel Installed
unity-2d-shell Installed
unity-2d-spread Installed
unity-asset-pool Installed
unity-common Installed
unity-greeter Installed
unity-lens-applications Installed
unity-lens-files Installed
unity-lens-music Installed
unity-lens-video Installed
unity-scope-musicstores Installed
unity-scope-video-remote Installed
unity-services Installed
uno-libs3 Installed
unzip Installed
update-inetd Installed
update-manager Installed
update-manager-core Installed
update-notifier Installed
update-notifier-common Installed
upower Installed
upstart Installed
ure Installed
ureadahead Installed
usb-creator-common Installed
usb-creator-gtk Installed
usb-modeswitch Installed
usb-modeswitch-data Installed
usbmuxd Installed
usbutils Installed
util-linux Installed
uuid-runtime Installed
v4l-conf Installed
v4l-utils Installed
vbetool Installed
vgabios Installed
vim Installed
vim-common Installed
vim-runtime Installed
vim-tiny Installed
vino Installed
virt-viewer Installed
virtualbox Installed
virtualbox-dkms Installed
virtualbox-qt Installed
vlc Installed
vlc-data Installed
vlc-nox Installed
vlc-plugin-notify Installed
vlc-plugin-pulse Installed
wamerican Installed
wbritish Installed
wdiff Installed
wget Installed
whiptail Installed
whois Installed
whoopsie Installed
wiggle Installed
winpdb Installed
wireless-regdb Installed
wireless-tools Installed
wmctrl Installed
wodim Installed
wpasupplicant Installed
x11-apps Installed
x11-common Installed
x11-session-utils Installed
x11-utils Installed
x11-xfs-utils Installed
x11-xkb-utils Installed
x11-xserver-utils Installed
x11proto-composite-dev Installed
x11proto-core-dev Installed
x11proto-damage-dev Installed
x11proto-dri2-dev Installed
x11proto-fixes-dev Installed
x11proto-gl-dev Installed
x11proto-input-dev Installed
x11proto-kb-dev Installed
x11proto-randr-dev Installed
x11proto-render-dev Installed
x11proto-xext-dev Installed
x11proto-xf86vidmode-dev Installed
x11proto-xinerama-dev Installed
xauth Installed
xaw3dg Installed
xaw3dg:i386 Installed
xawtv Installed
xawtv-plugins Installed
xbitmaps Installed
xcursor-themes Installed
xdelta Installed
xdg-user-dirs Installed
xdg-user-dirs-gtk Installed
xdg-utils Installed
xdiagnose Installed
xdot Installed
xfonts-base Installed
xfonts-encodings Installed
xfonts-mathml Installed
xfonts-scalable Installed
xfonts-utils Installed
xinit Installed
xinput Installed
xkb-data Installed
xml-core Installed
xorg Installed
xorg-docs-core Installed
xorg-sgml-doctools Installed
xserver-common Installed
xserver-xorg Installed
xserver-xorg-core Installed
xserver-xorg-input-all Installed
xserver-xorg-input-evdev Installed
xserver-xorg-input-mouse Installed
xserver-xorg-input-synaptics Installed
xserver-xorg-input-vmmouse Installed
xserver-xorg-input-wacom Installed
xserver-xorg-video-all Installed
xserver-xorg-video-ati Installed
xserver-xorg-video-cirrus Installed
xserver-xorg-video-fbdev Installed
xserver-xorg-video-intel Installed
xserver-xorg-video-mach64 Installed
xserver-xorg-video-mga Installed
xserver-xorg-video-neomagic Installed
xserver-xorg-video-nouveau Installed
xserver-xorg-video-openchrome Installed
xserver-xorg-video-qxl Installed
xserver-xorg-video-r128 Installed
xserver-xorg-video-radeon Installed
xserver-xorg-video-s3 Installed
xserver-xorg-video-savage Installed
xserver-xorg-video-siliconmotion Installed
xserver-xorg-video-sis Installed
xserver-xorg-video-sisusb Installed
xserver-xorg-video-tdfx Installed
xserver-xorg-video-trident Installed
xserver-xorg-video-vesa Installed
xserver-xorg-video-vmware Installed
xterm Installed
xtrans-dev Installed
xul-ext-ubufox Installed
xvfb Installed
xvkbd Installed
xz-lzma Installed
xz-utils Installed
yasm Installed
yelp Installed
yelp-xsl Installed
zeitgeist Installed
zeitgeist-core Installed
zeitgeist-datahub Installed
zenity Installed
zenity-common Installed
zip Installed
zlib1g Installed
zlib1g:i386 Installed
zlib1g-dev Installed

Installed version of Ubuntu

release 12.04
codename precise
distributor_id Ubuntu
description Ubuntu 12.04.1 LTS

Requirements

Tests Performed

Tests

Name Result Comment
camera/detect FAILED webcam is broken on this system
usb/detect PASSED ID 1d6b:0002 Linux Foundation 2.0 root hub ID 1d6b:0002 Linux Foundation 2.0 root hub ID 1d6b:0001 Linux Foundation 1.1 root hub ID 1d6b:0001 Linux Foundation 1.1 root hub
wireless/wireless_connection_wpa_n skip job cannot be started: resource expression "environment.ROUTERS == 'multiple'" evaluates to false

Log Files and Environment Information

plainbox-0.5.3/plainbox/test-data/html-exporter/html-inliner.html0000664000175000017500000000166712320461715025122 0ustar zygazyga00000000000000 System Testing Report

Hardware Information

Desktop Management Interface information

plainbox-0.5.3/plainbox/data/0000775000175000017500000000000012320462103016021 5ustar zygazyga00000000000000plainbox-0.5.3/plainbox/data/report/0000775000175000017500000000000012320462103017334 5ustar zygazyga00000000000000plainbox-0.5.3/plainbox/data/report/images/0000775000175000017500000000000012320462103020601 5ustar zygazyga00000000000000plainbox-0.5.3/plainbox/data/report/images/header_bg.png0000664000175000017500000000051012320461715023213 0ustar zygazyga00000000000000‰PNG  IHDR-/wÒC‘tEXtSoftwareAdobe ImageReadyqÉe<êIDATxÚìÒY Â@EQàŒ¢FQœqžö¿¶H÷'ÒÐzÐ’Ã¥#Mx²,ŸßKÅr¶§Ü…ýÒyyyyyyyyÿ˜ÇSÅrö/ý@”0çqW±ã†Þ†+¢„9‹ŠgÄð6œ%ÌyUì8 †·a(aÎc§bÇ1¼ kÄ*oÎüì8•ŠKÄð6,%ÌyÌUì˜!†·aŠ(aÎc’à¢F/Î'ÝÁ1F oÃQœÇPÅŽbxúˆæŸÿ²æ2†m+¢^3l[.¶#†mS¢a;Ö‚a;R`Ø6%¶c-¶#†mS¢a;Ö‚Ï6köXðl³fÇs„ ÌæK4GX Ãv¤À°mJ4lÇZ0lG Û¦DÃv¬Ãv¤ÀáÙî)Î Év¥x/Û‡b»§ØÏžíJƒ½7’®“4oUN•‡ß¤šÀNa“Ú“Û6/wÏ—{ç>¶ܸIå󪬦Í*ÏwÛËWçWMÒMá×$“ծЦ¹Ùþô7a Ü9ޝ~ð‡ŽàØœc›sL`sŽ lÎ1Í9&°9Ç6ç˜ÀæØœc›sLà'[íz8&pÕØèˆ"°ùEà@Øœc›sL`sŽ lÎ1Í9&°9Ç6ç˜ÀæØœãÀcp4pŽƒŽÇqÀq986ÇÆáØ40†cÓÀplŽñi`86 ÇÆáØ40ÞÜÞ"0«%0GT¨ÀQ¦áØ40†cÓÀplŽñi`8v ÜHš'idž“tÝJªV_oìû }Û$.Qè¸ÀIEND®B`‚plainbox-0.5.3/plainbox/data/report/images/fail.png0000664000175000017500000000243412320461715022235 0ustar zygazyga00000000000000‰PNG  IHDRàw=øbKGDÿÿÿ ½§“ pHYsHHFÉk>—IDATHÇÅ•[lTE€¿™³gïÝm»m)…Ji±mŠ‚1Ñ ú‘Ä'$AâòD‹áEÅw}1£!&Þ£‚ÑL¼0Q"b$ЬRŠè¶ÚîÙ={;3ãÃÙ.m!DŒ“ü9sÎùçÿæŸù/ðq¯Ÿƒ°^À3–ä)mXc @[’Œ6ü¨ ß_¦Áü+À Ä,Á>+`íXÑ»,ÔÔÞd%Ûš‰4'©Šä&o1=1mÆF®Üœ{Qi¶§áÊ? ÂF)ø|éòTrõ†µ[•Ÿ¢è@8 ±&Ú€iH1zvØþu´¬ {Óðþ=ƒÐ+C?ÚkíjÇŒ]BºÓXe „ôW ZT ‚èê'ïTøåø¹|Ñ­¼†ýw ‚´çzî[ÝÙ½Ä2W† Hã·E‚¨÷ ªê?uûJò*ÈÉcCŽ6ô§áúœ]9´7ÞéYÖ³ÜòF2­„)AZø€@Z)çytõ2±xˆîUaKpp¾²¶ûðÚÀÚûcêúT+ÄÞþŒèGG¡¹máÁ6µúð8á7Õ?©ÑßéXiBö#ƒ°q±k‚Á@% ¦&0Æ [Ú <ô8áw¿C'Ûücih%ðÎ7ÈÕë)0` ןyZRɰ~1`]2³´ëb4u™Ý³5šAvõÚ÷-^g¿o|E/êJ†Â+i´6˜šh'O²1²O.Hx"DTÞñµñ/òF–Ù][êÈÇ?ÔçwoAMN¢h]“Bžh<Šu –Û–….W}EU¼‰,¹—vb*eD0„©”q^Þ‰—ð#hN”A•*¤…14.(8á8EeA´2uQÊ@ãÞ:P7.‚!âoÀ4¶ÕÃTÕô"?ë ™Åwp:—w ÆÝ6îLcMûèîÃÉpóÙ x#Ý}$?9âCj(eÀŽ›)m8±p¦P,‡µMÀß•ghyïvOÕK&ŸÛLéÂy&wl¦:’Áîé£ùƒ/êºÚm‡É9nÁÀÉ€4\Æd&®ÝТeI}‘75Eiè4ãÛ6QÏâU •ñ,Ùm›(þ/;^?&Í—YÇ8v·RÑ'`èžÎ¨]t àÔ³UJ¿Dˆ9í¹Ø7­ËFvtòÛÅËùRÕÛ“†OçìZs“Ãps+xùBñ±T[[¦Tòs˜ZãvX*ƒV`BQdk;WÇ&*9·têyxq~Ò[ó_¶Â©²ÒOÏÌæ[‰DÐN$Ð¥2¦ªj U«¤Ú`°Í-èh#eK“N!÷5¤/ÀóÐ|€}:¾‚S˵–2—Œ6§„L6"ÂL ˆˆ'M)ˆ&˜É—¾š­^¨V‡^…×Ï@¿®•Êâ~:€¥ÀÒ~Ø »Za–¥bÁ LÚ¶t•b¦\ÖÆóD܃pô'8 ŒÙÚó pGÂ5@Ð ¤"кzWAW'tLÀ쌟‡?oÁ `¸…?¿Œß *wDÑ]Fˆ1 „kî  ”j’«í¶Âÿ1þÞjƒçâs”tEXtSoftwarewww.inkscape.org›î<IEND®B`‚plainbox-0.5.3/plainbox/data/report/images/pass.png0000664000175000017500000000251412320461715022267 0ustar zygazyga00000000000000‰PNG  IHDRàw=øbKGDÿÿÿ ½§“ pHYs × ×B(›xtIME× 6ûZ¬„ÙIDATHÇÕ–[l”EÇó}{cwÛí…K¡…b)P¨-I¸!â%"ІÄD‚`"Q}Å0>EäI44CÂ-FðF `%T(KiK¹¥…BÃöÆv»]v÷»Ìø°[,´!øbâ$““ÌLþ¿™sΜø¿7ñ ÉŠÕºxÁ,!X€¢°Ô)É1àp8XeË ¨X­— Áþ²‰³ *Jf+}d¦V:n6Á…54¶œ–5 ÇãM-Á«J²"Xe_y(@Åj]C°ÑïÉØ¸ªò]Ïäq墾í·"W¹nÂép3.g*Y“¨(|Šš G䮃Ÿ'âÉøÁ*{ÛÃÞ+*˜òášeë½—ÛOsôâ·(Ý@w4]€¥@Ù '>–”­#?0‰í{6ݹj^¬²¿¨§ß'^âq{w¯]¾Áû󹯩m=Œæ”è.Ã%Ð]âe4Üü“h¼‡Ê9kœ!»~iáYwåHòR¿¦6@\G°ï™¹/kj;EKw=BO‰éîLA-e©1Ý!ÇCLË’ʲ·u—GÛ½yó?ºÚ€,;²hBÞˆ1¢úâA„ „š.ÐÝ¥átkè. MMPV0­+‘áÉá±ü%ø=ÙÞ“ºïõ¡3ÇŒ(t]j;‹%ÍAÊ6!RÀþÉùÅ+Ù¼ô>w¥Ssâòj/Áü¬Ì\G{ø¨Ôb¥R]\²–/*Ï33ofB"-Å ¾Ï›Oì@לضmÛH)™6üYa÷93úucœá Ðq­ %@IÐp²nþ6—®àÙ;¸s,ÊÜñ+˜Wtw“†išDãaš»ƒ„Z#Yƒ™4’H[!…BÚ°¼â»âÍņ…îIk)%‰D‚›ÝWùêÄzÆdMC¸Hœíèi#Ó“‹´@Z°çä§üÞ°÷µ&‹Qw­š¾„i´wµÔ H[è‰uZ^WÛRئÂH˜lùþ5~9» )ï-7†aÐÛÛËÑó{ùäÐ+Dba¼ÎLºzÚ(ª‡ŠÁ™ÎîP¢¼d†¿9ÔˆmÊtfX|öã:úîDyºüÕ»n1M“mcÍV,C¢ãÆïΡ1\'ÚA7yt…Ö’4ãÏû3}yYþ\ÑîH@IEmótå&?s2}±(;Žnà§àNlC"-(ΛNgø–ÕÞÝöGp§½e TäMGo‡»×O(v™–A´·/•®¤­¨»~œdÒà‡Ú/9ÝüÒÛR ÷%;3‡ WÎE-C-j¯S}CÕ" ªÈ¨r’‘høñI'»2ü~zc=˜ ‰’ l¸Ôv†ŽÈM¤šrRT0…Üœ\.Ÿ‹Å£Æ[翵k5$pt6©z_™ìè ÍÉÎ èã Ç ¯ÏƒÛíBÓn—›ì@#‡ç1~l½}»©©1 5K‹ÛýÕ@œ€ÈU&JGÏзû3½¹#ŽŒL¿îóy‘RыщÉÛ=V4o½^-7EZUЛîw Pâ¾è€ð>ÍA^Þtm‰'ÀLo®˜êô‰QJ¡Œ¨êŠuª+ñÛª®£Aý ´=@,-nö_61Ĥ¥AÀ•î`X.H¦m|ÏE~„ü¢¾bÞ¼·!b8åðÓ÷?çŠânoP˜èOb¾Î˜ ÔÇÏŠ—ã¿(öOGÕM]0B¥ÿŠòë­0¸™•ÓËG ‹Äçw{ãYŒý€x®È„§ñ¼Fì?ýz €w§£Û²zq6‹³¾N5ßi®1ë#¼:{úõ>€ýÓQ5•j¾Ó<å`^ÜGïOµÀÅ«¹ï¿b‹V  \>`µ0°ÀåVÿ ,pñÃji`‹VK \ܰZ)°ÀÅ «• \¼°Z9°ÀÅ «µ \|°Z+°ÀÅ«µ \\°Z;°ÀÅ« \<°Ú8°N5¬6¬SÍ«­ëTÛ‡ÕÖõ6¶ «­ëmlV¸lŸæ­ \¶Os#.»§¹±À—7o+.;oÞÖ \¶`Õx`ˬZ ,pÙUk.°j-°ÀeV­¸ÒêÕÀWzXµXàJ «N \é`ÕI`+¬: ,p¥Ug®4°ê4°ÀÕ=¬:œ1¸’ÀªóÀù‚+ ¬’Î\é`•$pfàJ «dóWZX% œ¸’Ã*i`ÿàJ«äý‚ˬ’v .3°2ظìÀÊL`Gà2+3ý€Ë¬Læ—=X™ L.“°2˜\6ae20!¸ÌÂÊd`>pÙ…•ÙÀ<ಠ+³IÀeV¦Û—}X™l\°2Ø.¸8`Eظx`Eظ¨`Eظ¸`EØÀ©¦ƒUàô§šVtÓjNXQNð6¦…eàî߯¼°¢ ܸøO3eàŽÀåâ4Ón\>N3uàÁEýæu¸=pq¿y]n\~`å"pÃàr+7›—/X¹ ܸÜÁÊUàíÁåVîo.Ÿ°rxCp¹…•ËÀëƒË/¬Ü^\®aå6ðêàò +×—ƒË?¬\^®,`å>ðbpå«,ÏW6°Ê"ð¿à¯\`•Màû¯¸F< À×\`õä?ð¿‹Ã»¡¾~ËÞUN_¯¦iš¦iš¦iš¦å¶ß¸bn{JšIEND®B`‚plainbox-0.5.3/plainbox/data/report/images/body_bg.png0000664000175000017500000000016612320461715022727 0ustar zygazyga00000000000000‰PNG  IHDR&“ )tEXtSoftwareAdobe ImageReadyqÉe<IDATxÚbxÿöÍ`bÀÍ0íOºÆrç÷IEND®B`‚plainbox-0.5.3/plainbox/data/report/images/skip.png0000664000175000017500000000046312320461715022270 0ustar zygazyga00000000000000‰PNG  IHDRàw=øbKGDÿÿÿ ½§“ pHYsHHFÉk> vpAgxL¥¦IDATHÇí1Â0Cý£ô íÉܤ°2Ðz„z¯ ²&{Í€JÓ.¨ôßôýÙNEQ¶Lûî8”kÌŒ1¯Ç½«Æ;›%)/çæ«IB$ö!À{¿pk¯Y1;w‘$œs ‘¨ãc™æTFäGÏ‘觺Š#Æfü˜¦ÙyQØçš¯Uåßy Á1@Ã/SÒ"zTXtSoftwarexÚ+//×ËÌË.NN,HÕË/J6ØXSÊ\IEND®B`‚plainbox-0.5.3/plainbox/data/report/styles.css0000664000175000017500000001074212320461715021405 0ustar zygazyga00000000000000body { font-family: "Ubuntu Beta", "Bitstream Vera Sans", DejaVu Sans, Tahoma, sans-serif; color: #333; background: white url(report/images/body_bg.png); font-size: 12px; line-height: 14px; margin: 0px; padding: 0px; } #container { background: #f7f6f5; margin: 0px auto 20px; padding: 0px; width: 976px; } #container-inner { background-color: #dfdcd9; } #header, #container-inner { -moz-border-radius: 0px 0px 5px 5px; -webkit-border-bottom-left-radius: 5px; -webkit-border-bottom-right-radius: 5px; -moz-box-shadow: #bbb 0px 0px 5px; -webkit-box-shadow: #bbb 0px 0px 5px; } #header { background: #dd4814 url(report/images/header_bg.png) top left repeat-x; height: 64px; margin: 0px; padding: 0px; position: relative; } #menu-search { height: 40px; margin: 0 16px; } #title { padding: 28px 24px; } #content { /*padding: 32px 80px 32px 80px;*/ padding: 32px 240px 32px 160px; margin: 0 16px 16px; width: 544px; background-color: #fff; -moz-border-radius: 4px; -webkit-border-radius: 4px; } #end-content { clear: both; } #content-panel { width: 446px; margin: 0px 0px 0px 0px; padding: 8px 8px 32px 8px; background-color: #fff; -moz-border-radius: 4px; -webkit-border-radius: 4px; } #copyright { background-position: 803px 40px; background-repeat: no-repeat; text-align: center; margin: 0 16px; padding: 40px 0 0 0; height: 32px; } #copyright p { color: #aea79f; font-size: 10px; line-height: 14px; margin: 2px 0; } #footer { padding-top: 16px; } #footer * { font-size: 10px; line-height: 14px; } #footer p { margin: 0; padding-bottom: 3px; border-bottom: 1px dotted #aea79f; } #footer p.footer-title { font-weight: bold; } #footer .footer-div { width: 144px; float: left; margin-left: 16px; } #footer .last-div { margin-right: 16px; } #footer ul { list-style: none; margin: 0; padding: 0; } #footer li { margin: 0; padding: 3px 0; border-bottom: 1px dotted #aea79f; } h1, h2, h3, h4, h5 { padding: 0; margin: 0; font-weight: normal; } h1 { font-size: 36px; line-height: 40px; color: #dd4814; } h2 { font-size: 24px; line-height: 28px; margin-bottom: 8px; } h3 { font-size: 16px; line-height: 20px; margin-bottom: 8px; } h3.link-other { color: #333; } h3.link-services { color: #fff; } h4 { font-size: 12px; line-height: 14px; } h4.partners { color: #333; font-size: 16px; line-height: 20px; } h5 { color: #333; font-size: 10px; line-height: 14px; } h1 span.grey, h2 span.grey, h1 span, h2 span{ color: #aea79f; } p { font-size: 12px; line-height: 14px; margin-bottom: 8px; } strong { font-weight: bold; } a { color: #333; text-decoration: none; } a:hover { color: #dd4814; text-decoration: underline; } div.footer-div:hover a, div#content:hover a { color: #dd4814; text-decoration: none; } div.footer-div:hover a:hover, div#content:hover a:hover { color: #dd4814; text-decoration: underline; } ul { margin-bottom: 16px; list-style-image: url(report/images/bullet.png); } ul li { margin-bottom: 8px; line-height: 14px; } ul li:last-child { margin-bottom: 0px; } p.call-to-action { color: #333; } p.case-study { color: #333; } p.highlight { font-size: 16px; line-height: 20px; } p.introduction { color: #333; font-size: 16px; line-height: 20px; } p.services { color: #fff; } p.small-text { color: #333; font-size: 10px; } /* Clearing floats without extra markup Based on How To Clear Floats Without Structural Markup by PiE [http://www.positioniseverything.net/easyclearing.html] */ .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .clearfix { -moz-border-radius: 5px 5px 5px 5px; -webkit-border-bottom-top-radius: 5px; -webkit-border-bottom-left-radius: 5px; -webkit-border-bottom-bottom-radius: 5px; -webkit-border-bottom-right-radius: 5px; -moz-box-shadow: #bbb 0px 0px 5px; -webkit-box-shadow: #bbb 0px 0px 5px; display: inline-block; } /* for IE/Mac */ td { margin: 0; padding-bottom: 3px; border-bottom: 1px dotted #aea79f; font-size: 10px; line-height: 14px; } .resultimg { height: 12px; } .disclosureimg { height: .75em; vertical-align: middle; } .data { display: none; } plainbox-0.5.3/plainbox/data/report/checkbox.xsl0000664000175000017500000002117212320461715021665 0ustar zygazyga00000000000000 System Testing Report

System Testing Report

Hardware Information

Software Information

Tests Performed

Log Files and Environment Information

This report was created using on

Devices detected in the system (udev)

Desktop Management Interface information

sysfs-attributes

Processors

Processor

Property Value

Installed version of Ubuntu

Packages Installed

Name Description

Requirements

Tests

Name Result Comment
FAILED PASSED not required on this system skipped

plainbox-0.5.3/plainbox/data/report/checkbox.js0000664000175000017500000000101312320461715021463 0ustar zygazyga00000000000000function showHide(what) { var heading = document.getElementById(what); var contents = document.getElementById(what + "-contents"); var headingcontents = heading.innerHTML; var newcontents; if (contents.style.display != "block") { newcontents = headingcontents.replace("closed", "open"); contents.style.display = "block"; } else { newcontents = headingcontents.replace("open", "closed"); contents.style.display = "none"; } heading.innerHTML = newcontents; } plainbox-0.5.3/plainbox/data/report/hardware-1_0.rng0000664000175000017500000004610612320461715022235 0ustar zygazyga00000000000000 1.0 The attribute "plugin" must be set, if the question is generated by a plugin. multiple_choice measurement convenience for Python code: 'True'/'False' for boolean values instead of 'true'/'false' as defined by http://www.w3.org/2001/XMLSchema-datatypes . True False Allowed types and values: The dbus... data types are used for HAL properties; the data types are specified in http://dbus.freedesktop.org/doc/dbus-specification.html The other data types are Python data types, defined in http://docs.python.org/lib/types.html dbus.Boolean bool dbus.String dbus.UTF8String str dbus.Byte dbus.Int16 dbus.Int32 dbus.Int64 dbus.UInt16 dbus.UInt32 dbus.UInt64 int long dbus.Double float dbus.Array list dbus.Dictionary dict plainbox-0.5.3/plainbox/i18n.py0000664000175000017500000003170312320461715016255 0ustar zygazyga00000000000000# This file is part of Checkbox. # # Copyright 2014 Canonical Ltd. # Written by: # Zygmunt Krynicki # # Checkbox is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, # as published by the Free Software Foundation. # # Checkbox 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 Checkbox. If not, see . """ :mod:`plainbox.i18n` -- i18n support ==================================== This module provides public APIs for plainbox translation system. """ import collections import gettext as gettext_module import logging import os import random import re __all__ = [ 'bindtextdomain', 'dgettext', 'gettext', 'ngettext', 'textdomain', ] _logger = logging.getLogger("plainbox.i18n") class NoOpTranslator: @classmethod def gettext(cls, msgid): return msgid @classmethod def dgettext(cls, domain, msgid): return msgid @classmethod def ngettext(cls, msgid1, msgid2, n): if n == 1: return msgid1 else: return msgid2 class LoremIpsumTranslator: LOREM_IPSUM = { "ch": ('', """å°ç¶“ 施消 了稱 能文 安種 之用 無心 å‹å¸‚ 景內 語格。å¡å° 轉醫 題苦 å€‘æœƒå“¡ï¼ æˆ‘è¦ªå°± è—äº†åƒ é–“é€šã€‚ 有發 è½‰å‰ è—¥æƒ³ 亞沒,通須 æ‡‰ç®¡ã€æ‰“者 å°æˆ 公出? 般記 中æˆåŒ– ä»–å››è¯ åˆ†åœ‹è¶Š 分ä½é›¢ï¼Œæ›´ç‚ºè€… 文難 我如 我布?經動 著為 安經, 們天然 我親 唱顯 ä¸ï¼›å¾—ç•¶ 出一來得金 著作 到到 æ“弟 人望ï¼åŽ»æŒ‡ 在格據ï¼"""), "kr": (' ' """ë§ì„ 하고 ê³ì—서 ì¼ ë§ë ¤ê°€ê³  그걸로 하다 ê°™ì€ ì—†ë„¤ ì•‰ì€ ë¿Œë¦¬ì¹˜ë”니 ë™ì†Œë¬¸ ì¼ ë³´ì§€ 재우쳤다 분량 ë§ì„ 가지고 ê¹€ì²¨ì§€ì˜ ì‹œìž‘í•˜ì˜€ë‹¤ 내리는 나를 김첨지는 ì¢ìŒ€ 준 반가운지 김첨지는 놓치겠구먼 늦추잡았다 ì¸ë ¥ê±° ì† ìƒê°í•˜ê²Œ ëˆì„ 시체를 한 정거장까지 ëŠë¼ì—ˆë‹¤ ê·€ì— ë„˜ì–´ 왜목 ê²ƒì„ ì‹¶ì–´ 설레는 맞붙들고 하네 오늘 ë°°ê°€ í•˜ëŠ˜ì€ í•˜ìžë§ˆìž 맞물고 ì¼ì´ì—ˆë‹¤ 운수가 못쓸 ëˆì˜ ë¼ê³  ì–´ì´ ì—†ì§€ë§Œ 받아야 ì•„ë‚´ì˜ ì‹œìž‘í•˜ì˜€ë‹¤ ì°¨ë„ ì™œ 사용ìžë¡œë¶€í„° ì¶”ì–´íƒ•ì„ ì²˜ìŒ ë³´ë¼ ì¶œíŒì‚¬ ì°¨ì› ë”°ë¼ì„œ 펴서 í’€ì´ ì‚¬ëžŒì€ ê·¼ì‹¬ê³¼ 초조해온다 트고 ì œ ì°½ì„ ë‚´ë¦¬ì—ˆë‹¤ ì¸ë ¥ê±°í•˜ê³  같으면 í° ì´ë†ˆì•„ 어린애 ê·¸ 넘어 울었다V"""), "he": (' ', """תורת קרימינולוגיה ×ל ×תה הטבע לחיבור ×× ×חר מדע חינוך ממונרכיה ×’× ×¤× ××™ ××—×¨×™× ×”×ž×§×•×‘×œ ×ת ×תה תנך ××—×¨×™× ×œ×˜×™×¤×•×œ של ×ת תי×טרון ו×לקטרוניקה מתן דת והנדסה ×©×™×ž×•×©×™×™× ×¡×“×¨ בה סרבול ×ינטרנט שתי ב ×× × ×ª×•×›×œ לערך רוסית כדי ×ת תוכל כניסה המלחמה עוד מה מיזמי ×ודות ומהימנה"""), "ar": (' ', """ دار أن منتص٠أوراقهم الرئيسية هو الا الحرب الجبهة لان مع تنÙّس للصين لإنعدام نتيجة الثقيلة أي شيء عقبت وأزيز لألمانيا ÙˆÙÙŠ كل حدى إختار المنتصرة أي به، بغزو بالسيطرة أن جدول Ø¨Ø§Ù„ÙØ´Ù„ إيطاليا قام كل هنا؟ ÙØ±Ù†Ø³Ø§ الهجوم هذه مع حقول الإمبراطورية لها أي قدما اليابانية عام مع جنود أراضي السوÙييتي، هو بلا لم وجهان الساحة الإمبراطورية لان ما بحق ألمانيا الياباني، ÙØ¹Ù„ ÙØ§ØªÙ‘بع الشّعبين المعركة، ما الى ما يطول المشتّتون وكسبت وإيطالي ذات أم تلك ثم القص٠قبضتهم قد وأزيز إستمات ونستون غزو الأرض الأولية عن بين بـ دÙّة كانت Ø§Ù„Ù†ÙØ· لمّ تلك Ùهرست الأرض Ø§Ù„Ø¥ØªÙØ§Ù‚ية مع"""), "ru": (' ', """Магна азжюывырит мÑль ут нам ыт видырÑÑ€ такематыш кибо ыррор ут квюо Ð’Ñш аппарÑат пондÑрюм интылльÑгÑбат Ñи про ед еллум дикунт Квюо Ñкз льаборÑж нужквюам анкилльаы мÑль омйттам мÑÐ½Ð°Ð½Ð´Ñ€Ñ ÐµÐ´ МÑль Ñи Ñ€ÑктÑÐºÐ²ÑƒÑ ÐºÐ¾Ð½ÑÑквюат контынтёонÑж ты ёужто Ñ„ÑугÑат вивÑндюм шÑа Ðтквюе трётанё ÑÑŽ квуй омнеж латины Ñкз вимi"""), "jp": ('', """戸ã¶ã  ã®æ„ 化巡奇 ä¾› クソリヤ ç„¡æ–­ ヨサリヲ 念休ã°ã‚¤ 例会 コトヤ 耕智ㆠã°ã£ã‚ƒ ä½å‘Šæ±ºã† ã§æ‰“表 ãž ã¼ã³æƒ…記ト レ表関銀 ロモア ãƒ‹æ¬¡å· ã‚ˆå…¨å­ ã‚³ãƒ­ãƒ• ソ政象 ä½å²³ã´ 読ワ ä¸€é‡ ãƒ˜æ–­ 首画リ ã®ã½ ã›è¶³ 決属 è¡“ã“ ã¦ãƒ© é ˜ 技 ã‘リ㴠分率㴠ããœã£ 物味ドン ãŠãŽä¸€ç”°ã´ ã¶ã®è¬™ 調ヲ星度 レã¼ã‚€å›² 舗åŒè„ˆ 鶴挑㒠ã»ã¶ã€‚ç„¡ç„¡ ツ縄第㌠本公作 ゅゃ㵠ã質失フ 米上議 ア記治 ãˆã‚Œæœ¬ æ„ã¤ã‚“ ãŽãƒ¬å±€ ç·ã‚±ç›› 載テ コ部止 メツ輪 帰歴 就些ル ã£ã"""), "pl": (' ', """ litwo ojczyzno moja ty jesteÅ› jak zdrowie ile ciÄ™ straciÅ‚ dziÅ› piÄ™kność widziana wiÄ™c wszyscy dokoÅ‚a brali stronÄ™ kusego albo sam wewnÄ…trz siebie czuÅ‚ siÄ™ poÅ‚ożyÅ‚ co by stary dÄ…browskiego usÅ‚yszeć mazurek biegaÅ‚ po stole i krwi tonęła gdy sÄ™dziego sÅ‚użono niedbale sÅ‚udzy nie na utrzymanie lecz mniej piÄ™kne niż myÅ›liwi mÅ‚odzi tak nie zmruża jako swe osadzaÅ‚ dziwna rzecz miejsca wkoÅ‚o pali nawet stary który teraz za nim psów gromada gracz szarak skoro poczuÅ‚ wszystkie charty w drobne strÄ…czki biaÅ‚e dziwnie ozdabiaÅ‚ gÅ‚owÄ™ bo tak przekradÅ‚ siÄ™ uparta coraz gÅ‚oÅ›niejsza kłótnia o wiejskiego pożycia nudach i dÅ‚ugie paznokcie przedstawiajÄ…c dwa tysiÄ…ce jako jeneraÅ‚ dÄ…browski z wysogierdem radziwiłł z drzewa lecz lekki odgadniesz że pewnie na jutro solwujÄ™ i na ksztaÅ‚t ogrodowych grzÄ…dek że jÄ… bardzo szybko suwaÅ‚a siÄ™ na przeciwnej zajadÅ‚ość dowiodÄ™ że dziÅ› z lasu wracaÅ‚o towarzystwo caÅ‚e wesoÅ‚o lecz go grzecznie na zÅ‚ość rejentowi że u wieczerzy bÄ™dzie jego upadkiem domy i bagnami skradaÅ‚ siÄ™ tÅ‚ocz i jak bawić siÄ™ nie byÅ‚o bo tak na jutro solwujÄ™ i przepraszaÅ‚ sÄ™dziego sÄ™dzia sam na poczÄ…tek dać małą kiedy"""), } def __init__(self, kind): self.kind = kind self.space = self.LOREM_IPSUM[self.kind][0] self.words = self.LOREM_IPSUM[self.kind][1].split() self.n_words = collections.defaultdict(list) for word in self.words: self.n_words[len(word)].append(word) def _get_ipsum(self, text): return re.sub( '(%[sdr]|{[^}]*}|[a-zA-Z]+)', lambda match: self._tr_word(match.group(1)), text) def _tr_word(self, word): if re.search("(%[sdr])|({[^}]*})", word): return word elif word.startswith("--"): return "--{}".format(self._tr_word(word[2:])) elif word.startswith("-"): return "-{}".format(self._tr_word(word[1:])) elif word.startswith("[") and word.endswith("]"): return "[{}]".format(self._tr_word(word[1:-1])) elif word.startswith("<") and word.endswith(">"): return "<{}>".format(self._tr_word(word[1:-1])) else: tr_word = self._tr_approx(len(word)) if word.isupper(): return tr_word.upper() if word[0].isupper(): return tr_word.capitalize() else: return tr_word def _tr_approx(self, desired_length): for avail_length in sorted(self.n_words): if desired_length <= avail_length: break return random.choice(self.n_words[avail_length]) def gettext(self, msgid): return self.dgettext("plainbox", msgid) def dgettext(self, domain, msgid): return "<{}: {}>".format(domain, self._get_ipsum(msgid)) def ngettext(self, msgid1, msgid2, n): if n == 1: return self._get_ipsum(msgid1) else: return self._get_ipsum(msgid2) pass class GettextTranslator: def __init__(self, domain): self._domain = domain self._translations = {} self._locale_dir = os.getenv("PLAINBOX_LOCALE_DIR", None) def _get_translation(self, domain): try: return self._translations[domain] except KeyError: try: translation = gettext_module.translation( domain, self._locale_dir) except IOError: translation = gettext_module.NullTranslations() self._translations[domain] = translation return translation def dgettext(self, domain, msgid): return self._get_translation(domain).gettext(msgid) def gettext(self, msgid): return self._get_translation(self._domain).gettext(msgid) def ngettext(self, msgid1, msgid2, n): return self._get_translation(self._domain).ngettext(msgid1, msgid2, n) def docstring(docstring): """ Decorator factory for assigning docstrings to functions. This decorator is intended for functions that reuse their docstring as translatable text that needs to be tagged with gettext_noop. Example: @docstring("the foo function") def foo(): pass @docstring("the Foo class") class Foo: pass """ def decorator(cls_or_func): try: cls_or_func.__doc__ = docstring return cls_or_func except AttributeError: assert isinstance(cls_or_func, type) return type( cls_or_func.__name__, (cls_or_func,), {'__doc__': docstring}) return decorator def textdomain(domain): """ Set global gettext domain :param domain: Name of the global gettext domain. This domain will be used to all unqualified calls to gettext() and ngettext(). .. note:: gettext and ngettext exposed from this module transparently use "plainbox" as the domain name. This call affects all *other*, typical gettext calls. """ _logger.debug("textdomain(%r)", domain) return gettext_module.textdomain(domain) def bindtextdomain(domain, localedir=None): """ Set set directory for gettext messages for a specific domain :param domain: Name of the domain to configure :param localedir: Name of the directory with translation catalogs. """ _logger.debug("bindtextdomain(%r, %r)", domain, localedir) return gettext_module.bindtextdomain(domain, localedir) def gettext_noop(msgid): """ No-operation gettext implementation. :param msgid: The message not to translate :returns: msgid itself This function should be used (typically aliased as ``N_`` to mark strings that don't require translation at the place where they are defined but will be translated later on. This is just a hint to the message extraction system. """ return msgid # This is the global plainbox-specific translator. try: _translator = { "gettext": GettextTranslator("plainbox"), "no-op": NoOpTranslator, "lorem-ipsum-ar": LoremIpsumTranslator("ar"), "lorem-ipsum-ch": LoremIpsumTranslator("ch"), "lorem-ipsum-he": LoremIpsumTranslator("he"), "lorem-ipsum-jp": LoremIpsumTranslator("jp"), "lorem-ipsum-kr": LoremIpsumTranslator("kr"), "lorem-ipsum-pl": LoremIpsumTranslator("pl"), "lorem-ipsum-ru": LoremIpsumTranslator("ru"), }[os.getenv("PLAINBOX_I18N_MODE", "gettext")] except KeyError as exc: raise RuntimeError( "Unsupported PLAINBOX_I18N_MODE: {!r}".format(exc.args[0])) # This is the public API of this module gettext = _translator.gettext ngettext = _translator.ngettext dgettext = _translator.dgettext plainbox-0.5.3/plainbox/test_provider_manager.py0000664000175000017500000004723712320461715022072 0ustar zygazyga00000000000000# This file is part of Checkbox. # # Copyright 2014 Canonical Ltd. # Written by: # Zygmunt Krynicki # # Checkbox is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, # as published by the Free Software Foundation. # # Checkbox 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 Checkbox. If not, see . """ plainbox.test_provider_manager ============================== Test definitions for plainbox.provider_manager module """ from unittest import TestCase import inspect import os import shutil import tarfile import tempfile from plainbox.impl.secure.providers.v1 import Provider1Definition from plainbox.provider_manager import InstallCommand from plainbox.provider_manager import ManageCommand from plainbox.provider_manager import ProviderManagerTool from plainbox.provider_manager import manage_py_extension from plainbox.testing_utils.io import TestIO from plainbox.vendor import mock class ProviderManagerToolTests(TestCase): """ Unit tests for the ``./manage.py`` tool """ def test_help(self): """ verify that ``manage.py validate`` says everything is okay when it is """ with TestIO() as test_io: with self.assertRaises(SystemExit): self.tool.main(["--help"]) self.maxDiff = None self.assertEqual( test_io.stdout, inspect.cleandoc( """ usage: manage.py [--help] [--version] [options] positional arguments: {info,validate,develop,install,sdist,i18n,build,clean} info display basic information about this provider validate perform various static analysis and validation develop install/remove this provider, only for development install install this provider in the system sdist create a source tarball i18n update, merge and build translation catalogs build build provider specific executables from source clean clean build results optional arguments: -h, --help show this help message and exit --version show program's version number and exit logging and debugging: -v, --verbose be more verbose (same as --log-level=INFO) -D, --debug enable DEBUG messages on the root logger -C, --debug-console display DEBUG messages in the console -T LOGGER, --trace LOGGER enable DEBUG messages on the specified logger (can be used multiple times) -P, --pdb jump into pdb (python debugger) when a command crashes -I, --debug-interrupt crash on SIGINT/KeyboardInterrupt, useful with --pdb """) + '\n') def assert_common_flat_install(self, prefix="/foo"): filename = self.tmpdir + os.path.join( prefix, "share", "plainbox-providers-1", "2014.com.example.test.provider") content = ( "[PlainBox Provider]\n" "description = description\n" "gettext_domain = domain\n" "location = {prefix}/lib/plainbox-providers-1/2014.com.example:test\n" "name = 2014.com.example:test\n" "version = 1.0\n" "\n".format(prefix=prefix)) self.assertFileContent(filename, content) self.assertFileContent( self.tmpdir + os.path.join( prefix, "lib", "plainbox-providers-1", "2014.com.example:test", "whitelists", "test.whitelist"), "dummy\n") self.assertFileContent( self.tmpdir + os.path.join( prefix, "lib", "plainbox-providers-1", "2014.com.example:test", "data", "test.dat"), "data\n") self.assertFileContent( self.tmpdir + os.path.join( prefix, "lib", "plainbox-providers-1", "2014.com.example:test", "bin", "test.sh"), "#!/bin/sh\n:\n") def test_install__flat(self): """ verify that ``manage.py install --layout=flat`` works """ self.tool.main( ["install", "--prefix=/foo", "--root={}".format(self.tmpdir)]) self.assert_common_flat_install() self.assertFileContent( self.tmpdir + os.path.join("/foo", "lib", "plainbox-providers-1", "2014.com.example:test", "jobs", "jobs.txt"), "id: dummy\nplugin: shell\ncommand: true\n") def test_install__flat_partial(self): """ verify that ``manage.py install --layout=flat`` works when some files are missing """ shutil.rmtree(os.path.join(self.tmpdir, "jobs")) self.tool.main( ["install", "--prefix=/foo", "--root={}".format(self.tmpdir)]) self.assert_common_flat_install() self.assertFalse( os.path.exists(self.tmpdir + os.path.join( "/foo", "lib", "plainbox-providers-1", "2014.com.example:test", "jobs", "jobs.txt"))) def assert_common_unix_install(self, prefix="/foo"): filename = self.tmpdir + os.path.join( prefix, "share", "plainbox-providers-1", "2014.com.example.test.provider") content = ( "[PlainBox Provider]\n" "bin_dir = {prefix}/lib/2014.com.example:test/bin\n" "data_dir = {prefix}/share/2014.com.example:test/data\n" "description = description\n" "gettext_domain = domain\n" "jobs_dir = {prefix}/share/2014.com.example:test/jobs\n" "name = 2014.com.example:test\n" "version = 1.0\n" "whitelists_dir = {prefix}/share/2014.com.example:test/whitelists\n" "\n".format(prefix=prefix)) self.assertFileContent(filename, content) self.assertFileContent( self.tmpdir + os.path.join( prefix, "share", "2014.com.example:test", "jobs", "jobs.txt"), "id: dummy\nplugin: shell\ncommand: true\n") self.assertFileContent( self.tmpdir + os.path.join( prefix, "share", "2014.com.example:test", "whitelists", "test.whitelist"), "dummy\n") self.assertFileContent( self.tmpdir + os.path.join( prefix, "share", "2014.com.example:test", "data", "test.dat"), "data\n") self.assertFileContent( self.tmpdir + os.path.join( prefix, "lib", "2014.com.example:test", "bin", "test.sh"), "#!/bin/sh\n:\n") def test_install__unix(self): """ verify that ``manage.py install --layout=unix`` works """ self.tool.main( ["install", "--prefix=/foo", "--layout=unix", "--root={}".format(self.tmpdir)]) self.assert_common_unix_install() def assert_common_sdist(self, tarball): self.assertTarballContent( tarball, "2014.com.example.test-1.0/whitelists/test.whitelist", "dummy\n") self.assertTarballContent( tarball, "2014.com.example.test-1.0/data/test.dat", "data\n") self.assertTarballContent( tarball, "2014.com.example.test-1.0/bin/test.sh", "#!/bin/sh\n:\n") self.assertTarballContent( tarball, "2014.com.example.test-1.0/src/hello.c", "int main() { return 0; }\n") def test_sdist(self): """ verify that ``manage.py sdist`` creates a proper tarball """ self.tool.main(["sdist"]) tarball = os.path.join( self.tmpdir, "dist", "2014.com.example.test-1.0.tar.gz") self.assertTarballContent( tarball, "2014.com.example.test-1.0/jobs/jobs.txt", "id: dummy\nplugin: shell\ncommand: true\n") self.assert_common_sdist(tarball) def test_sdist__partial(self): """ verify that ``manage.py sdist`` creates a proper tarball even if some files are missing """ shutil.rmtree(os.path.join(self.tmpdir, "jobs")) self.tool.main(["sdist"]) tarball = os.path.join( self.tmpdir, "dist", "2014.com.example.test-1.0.tar.gz") self.assertNoTarballContent( tarball, "2014.com.example.test-1.0/jobs/jobs.txt") self.assert_common_sdist(tarball) def test_develop(self): """ verify that ``manage.py develop`` creates a provider file """ xdg_data_home = os.path.join(self.tmpdir, "xdg-data-home") filename = os.path.join(xdg_data_home, "plainbox-providers-1", "2014.com.example.test.provider") content = ( "[PlainBox Provider]\n" "description = description\n" "gettext_domain = domain\n" "location = {}\n" "name = 2014.com.example:test\n" "version = 1.0\n" "\n").format(self.tmpdir) with mock.patch.dict('os.environ', clear=True, XDG_DATA_HOME=xdg_data_home): self.tool.main(["develop"]) self.assertFileContent(filename, content) def test_develop__force(self): """ verify that ``manage.py develop --force`` overwrites existing .provider file """ xdg_data_home = os.path.join(self.tmpdir, "xdg-data-home") filename = os.path.join(xdg_data_home, "plainbox-providers-1", "2014.com.example.test.provider") content = ( "[PlainBox Provider]\n" "description = description\n" "gettext_domain = domain\n" "location = {}\n" "name = 2014.com.example:test\n" "version = 1.0\n" "\n").format(self.tmpdir) os.makedirs(os.path.dirname(filename)) with open(filename, "wt") as stream: stream.write("should have been overwritten") with mock.patch.dict('os.environ', clear=True, XDG_DATA_HOME=xdg_data_home): self.tool.main(["develop", "--force"]) self.assertFileContent(filename, content) def test_develop__uninstall(self): """ verify that ``manage.py develop --uninstall`` works """ xdg_data_home = os.path.join(self.tmpdir, "xdg-data-home") filename = os.path.join(xdg_data_home, "plainbox-providers-1", "2014.com.example.test.provider") os.makedirs(os.path.dirname(filename)) with open(filename, "wt") as stream: stream.write("should have been removed") with mock.patch.dict('os.environ', clear=True, XDG_DATA_HOME=xdg_data_home): self.tool.main(["develop", "--uninstall"]) self.assertFalse(os.path.exists(filename)) def test_validate(self): """ verify that ``manage.py validate`` says everything is okay when it is """ with TestIO() as test_io: self.tool.main(["validate"]) self.assertEqual(test_io.stdout, "All jobs seem to be valid\n") def test_validate__broken_missing_field(self): """ verify that ./manage.py validate shows information about missing fields """ filename = os.path.join(self.tmpdir, "jobs", "broken.txt") with open(filename, "wt", encoding='UTF-8') as stream: print("id: broken", file=stream) print("plugin: shell", file=stream) with TestIO() as test_io: self.tool.main(["validate"]) self.assertEqual( test_io.stdout, ( "jobs/broken.txt:1-2: job '2014.com.example::broken', field 'command': " "missing definition of required field\n")) def test_validate__broken_wrong_field(self): """ verify that ./manage.py validate shows information about incorrect field values """ filename = os.path.join(self.tmpdir, "jobs", "broken.txt") with open(filename, "wt", encoding='UTF-8') as stream: print("id: broken", file=stream) print("plugin: magic", file=stream) with TestIO() as test_io: self.tool.main(["validate"]) self.assertEqual( test_io.stdout, ( "jobs/broken.txt:1-2: job '2014.com.example::broken', field 'plugin': " "incorrect value supplied\n" "allowed values are: attachment, local, manual, resource" ", shell, user-interact, user-interact-verify, user-verify\n")) def test_validate__broken_useless_field(self): """ verify that ./manage.py validate shows information about useless field values """ filename = os.path.join(self.tmpdir, "jobs", "broken.txt") with open(filename, "wt", encoding='UTF-8') as stream: print("id: broken", file=stream) print("plugin: manual", file=stream) print("description: broken job definition", file=stream) print("command: true", file=stream) with TestIO() as test_io: self.tool.main(["validate"]) self.assertEqual( test_io.stdout, ( "jobs/broken.txt:1-4: job '2014.com.example::broken', field 'command': " "useless field in this context\n")) def test_validate__broken_deprecated_field(self): """ verify that ./manage.py validate shows information about deprecated fields """ filename = os.path.join(self.tmpdir, "jobs", "broken.txt") with open(filename, "wt", encoding='UTF-8') as stream: print("name: broken", file=stream) print("plugin: manual", file=stream) print("description: broken job definition", file=stream) print("command: true", file=stream) with TestIO() as test_io: self.tool.main(["validate"]) self.assertEqual( test_io.stdout, ( "jobs/broken.txt:1-4: job '2014.com.example::broken', field 'name': " "usage of deprecated field\n")) def test_info(self): """ verify that ./manage.py info shows basic provider information """ with TestIO() as test_io: self.tool.main(["info"]) self.assertEqual(test_io.stdout, ( "[Provider MetaData]\n" "\tname: 2014.com.example:test\n" "\tnamespace: 2014.com.example (derived from name)\n" "\tdescription: description\n" "\tversion: 1.0\n" "\tgettext domain: domain\n" "[Job Definitions]\n" "\t'dummy', from jobs/jobs.txt:1-3\n" "[White Lists]\n" "\t'test', from whitelists/test.whitelist:1-1\n" "[Executables]\n" "\t'test.sh'\n")) def setUp(self): self.tmpdir = tempfile.mkdtemp() self.definition = self._create_definition(self.tmpdir) self.tool = ProviderManagerTool(self.definition) def _create_definition(self, tmpdir): os.mkdir(os.path.join(tmpdir, "jobs")) filename = os.path.join(tmpdir, "jobs", "jobs.txt") with open(filename, "wt", encoding='UTF-8') as stream: print("id: dummy", file=stream) print("plugin: shell", file=stream) print("command: true", file=stream) os.mkdir(os.path.join(tmpdir, "whitelists")) filename = os.path.join(tmpdir, "whitelists", "test.whitelist") with open(filename, "wt", encoding='UTF-8') as stream: print("dummy", file=stream) os.mkdir(os.path.join(tmpdir, "data")) filename = os.path.join(tmpdir, "data", "test.dat") with open(filename, "wt", encoding='UTF-8') as stream: print("data", file=stream) os.mkdir(os.path.join(tmpdir, "bin")) filename = os.path.join(tmpdir, "bin", "test.sh") with open(filename, "wt", encoding='UTF-8') as stream: print("#!/bin/sh", file=stream) print(":", file=stream) os.chmod(filename, 0o755) os.mkdir(os.path.join(tmpdir, "src")) filename = os.path.join(tmpdir, "src", "hello.c") with open(filename, "wt", encoding='UTF-8') as stream: print("int main() { return 0; }", file=stream) definition = Provider1Definition() definition.location = tmpdir definition.name = "2014.com.example:test" definition.version = "1.0" definition.description = "description" definition.gettext_domain = "domain" return definition def tearDown(self): shutil.rmtree(self.tmpdir) def assertFileContent(self, filename, content): """ assert that a file has the specified content :param filename: name of the file to open :param content: expected text of the file """ if os.path.isfile(filename): with open(filename, "rt", encoding="UTF-8") as stream: self.assertEqual(stream.read(), content) else: self.fail("The file {} didn't exist".format(filename)) def assertTarballContent(self, tarball, member, content): """ assert that a tarball has an entry with the specified content :param tarball: pathname of a tarball to open :param member: pathname of a member inside the tarball :param content: expected text of the extracted member """ with tarfile.open(tarball, "r:*") as tar: with tempfile.TemporaryDirectory() as temp: tar.extract(member, temp) extracted = os.path.join(temp, member) with open(extracted, "rt", encoding="UTF-8") as stream: self.assertEqual(stream.read(), content) def assertNoTarballContent(self, tarball, member): """ assert that a tarball has no entry with the given name :param tarball: pathname of a tarball to open :param member: pathname of a member inside the tarball """ with tarfile.open(tarball, "r:*") as tar: with self.assertRaises(KeyError): tar.getmember(member) class ExtensionTests(TestCase): """ Test cases for the manage_py_extension decorator """ def setUp(self): self.saved = ProviderManagerTool._SUB_COMMANDS[:] def tearDown(self): ProviderManagerTool._SUB_COMMANDS[:] = self.saved def test_add_new_command(self): @manage_py_extension class NewCommand(ManageCommand): """ Some new command """ self.assertIn(NewCommand, ProviderManagerTool._SUB_COMMANDS) def test_replace_command(self): self.assertIn(InstallCommand, ProviderManagerTool._SUB_COMMANDS) @manage_py_extension class BetterInstallCommand(InstallCommand): """ Improved version of an existing command """ self.assertNotIn(InstallCommand, ProviderManagerTool._SUB_COMMANDS) self.assertIn(BetterInstallCommand, ProviderManagerTool._SUB_COMMANDS) plainbox-0.5.3/plainbox/public.py0000664000175000017500000000314412320461715016752 0ustar zygazyga00000000000000# This file is part of Checkbox. # # Copyright 2012 Canonical Ltd. # Written by: # Zygmunt Krynicki # # Checkbox is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, # as published by the Free Software Foundation. # # Checkbox 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 Checkbox. If not, see . """ :mod:`plainbox.public` -- public, stable API ============================================ Public, high-level API for third party developers. The are actually implemented by the plainbox.impl package. This module is here so that the essential API concepts are in a single spot and are easier to understand (by not being mixed with additional source code). .. warning:: This module is ironically UNSTABLE until the 1.0 release .. note:: This module has API stability guarantees. We are not going to break or introduce backwards incompatible interfaces here without following our API deprecation policy. All existing features will be retained for at least three releases. All deprecated symbols will warn when they will cease to be available. """ from plainbox.impl import public @public('plainbox.impl.box') def main(argv=None): """ Entry point for the temporary new PlainBox executable """ plainbox-0.5.3/plainbox/abc.py0000664000175000017500000006320412320461715016224 0ustar zygazyga00000000000000# This file is part of Checkbox. # # Copyright 2012, 2013, 2014 Canonical Ltd. # Written by: # Zygmunt Krynicki # # Checkbox is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, # as published by the Free Software Foundation. # # Checkbox 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 Checkbox. If not, see . """ :mod:`plainbox.abc` -- abstract base classes ============================================ Those classes are actually implemented in the plainbox.impl package. This module is here so that the essential API concepts are in a single spot and are easier to understand (by not being mixed with additional source code). .. note:: This module has API stability guarantees. We are not going to break or introduce backwards incompatible interfaces here without following our API deprecation policy. All existing features will be retained for at least three releases. All deprecated symbols will warn when they will cease to be available. """ from abc import ABCMeta, abstractproperty, abstractmethod class ITextSource(metaclass=ABCMeta): """ An abstract source of text. Concrete instances of this class are used by :class:`plainbox.impl.rfc822.Origin` to keep track of where each entry of a RFC822-like document came from. """ class IJobDefinition(metaclass=ABCMeta): """ Job definition that contains a mixture of meta-data and executable information that can be consumed by the job runner to produce results. """ # XXX: All IO methods to save/load this would be in a helper class/function # that would also handle format detection, serialization and validation. @abstractproperty def plugin(self): """ Name of the job interpreter. Various interpreters are provided by the job runner. """ @abstractproperty def name(self): """ Name of the job """ @abstractproperty def summary(self): """ Short (one line) description of the job """ @abstractproperty def id(self): """ Unique job identifier The identifier is unique within the provider a job belongs to """ @abstractproperty def requires(self): """ List of expressions that need to be true for this job to be available This value can be None """ @abstractproperty def command(self): """ The shell command to execute to perform the job. The return code, standard output and standard error streams are automatically recorded and processed, depending on the plugin type. This value can be None """ @abstractproperty def description(self): """ Human-readable description of the job. This field is typically used to include execution and verification steps for manual and human-assisted tests. This value can be None """ @abstractproperty def depends(self): """ Comma-delimited dependency expression This field can be used to express job dependencies. If a job depends on another job it can only start if the other job had ran and succeeded. This is the original data as provided when constructed. Use get_direct_dependencies() to obtain the parsed equivalent. This value can be None """ class IJobResult(metaclass=ABCMeta): """ Class for representing results from a single job """ # XXX: We could also store stuff like job duration and other meta-data but # I wanted to avoid polluting this proposal with mundane details # The outcome of a job is a one-word classification how how it ran. There # are several values that were not used in the original implementation but # their existence helps to organize and implement plainbox. They are # discussed below to make their intended meaning more detailed than is # possible from the variable name alone. # # The None outcome - a job that basically did not run at all. OUTCOME_NONE = None # The pass and fail outcomes are the two most essential, and externally # visible, job outcomes. They can be provided by either automated or manual # "classifier" - a script or a person that clicks a "pass" or "fail" # button. OUTCOME_PASS = 'pass' OUTCOME_FAIL = 'fail' # The skip outcome is used when the operator selected a job but then # skipped it. This is typically used for a manual job that is tedious or # was selected by accident. OUTCOME_SKIP = 'skip' # The not supported outcome is used when a job was about to run but a # dependency or resource requirement prevent it from running. XXX: perhaps # this should be called "not available", not supported has the "unsupported # code" feeling associated with it. OUTCOME_NOT_SUPPORTED = 'not-supported' # A temporary state that should be removed later on, used to indicate that # job runner is not implemented but the job "ran" so to speak. OUTCOME_NOT_IMPLEMENTED = 'not-implemented' # A temporary state before the user decides on the outcome of a manual # job or any other job that requires manual verification OUTCOME_UNDECIDED = 'undecided' # List of all valid values of OUTCOME_xxx ALL_OUTCOME_LIST = [ OUTCOME_NONE, OUTCOME_PASS, OUTCOME_FAIL, OUTCOME_SKIP, OUTCOME_NOT_SUPPORTED, OUTCOME_NOT_IMPLEMENTED, OUTCOME_UNDECIDED, ] @abstractproperty def outcome(self): """ Outcome of the test. The result of either automatic or manual verification. Depending on the plugin (test type). Available values are defined as class properties above. """ @abstractproperty def comments(self): """ The comment that was added by the user, if any """ @abstractproperty def io_log(self): """ A sequence of tuples (delay, stream-name, data) where delay is the delay since the previous message seconds (typically a fractional number), stream name is either 'stdout' or 'stderr' and data is the bytes object that was obtained from that stream. """ # XXX: it could also encode 'stdin' if the user was presented with a # console to type in and we sent that to the process. # XXX: This interface is low-level but captures everything that has # occurred and is text-safe. You can call an utility function to # convert that to a text string that most closely represents what a # user would see, having ran this command in the terminal. @abstractproperty def return_code(self): """ Command return code. This is the return code of the process started to execute the command from the job definition. It can also encode the signal that the process was killed with, if any. """ @abstractmethod def get_io_log(self): """ Compute and return the sequence of IOLogRecord objects. :returns: A sequence of tuples (delay, stream-name, data) where delay is the delay since the previous message seconds (typically a fractional number), stream name is either 'stdout' or 'stderr' and data is the bytes object that was obtained from that stream. """ class IJobQualifier(metaclass=ABCMeta): """ An opaque qualifier for a job definition. This is an abstraction for matching jobs definitions to names, patterns and other means of selecting jobs. There are two ways to use a qualifier object. The naive, direct, old API can simply check if a qualifier designates a particular job (if it selects it and marks for subsequent execution). This API works fine for certain tasks but it was found that it is insufficient to implement so-called whitelist ordering, where the order of jobs in a whitelist is preserved when selecting that whitelist for execution. This spawned the second, lower-level API, that gives portable visibility into composite qualifiers (such as a whitelist) and distinct select, deselect vote so that full range of current expressiveness can be preserved. :attr VOTE_EXCLUDE: (0) vote indicating that a job should *not* be included for selection. It overwrites any other votes. :attr VOTE_INCLUDE: (1) vote indicating that a job should be included for selection. It is overridden by VOTE_EXCLUDE. :attr VOTE_IGNORE: (2) vote indicating that a job should neither be included nor excluded for selection. This is a neutral value overridden by all other votes. """ # NOTE: VOTE_xxx are sorted by priority, lowest being the most important # one. When multiple votes are cast, the one with lowest value (highest # priority) takes precedence. When adding additional votes keep this in # mind. VOTE_EXCLUDE = 0 VOTE_INCLUDE = 1 VOTE_IGNORE = 2 @abstractmethod def get_vote(self, job): """ Get one of the :attr:`VOTE_IGNORE`, :attr:`VOTE_INCLUDE`, :attr:`VOTE_EXCLUDE` votes that this qualifier associated with the specified job. :param job: A IJobDefinition instance that is to be visited :returns: one of the ``VOTE_xxx`` constants .. versionadded: 0.5 """ @abstractmethod def get_primitive_qualifiers(self): """ Return a list of primitives that constitute this qualifier. :returns: A list of IJobQualifier objects that each is the smallest, indivisible entity. When each vote cast by those qualifiers is applied sequentially to a given job then the result is the same as the return value of the :meth:`designates()` method. The resulting list has more structure and this structure may matter to job ordering when a list of jobs is matched against a list of qualifiers. The resulting sets are identical but ordering of results is more accurately reflected by iterating over the fine structure of each qualifier. .. versionadded: 0.5 """ @abstractproperty def is_primitive(self): """ property indicating that a qualifier is not divisible by calling :meth:`get_primitive_qualifiers()`. If a qualifier is not primitive it can be replaced with a list of qualifiers it produces by the call to the aforementioned method. .. versionadded: 0.5 """ @abstractmethod def designates(self, job): """ Check if this qualifier designates the specified :class:`plainbox.abc.IJobDefinition` :returns True: if the qualifier designates the specified job :returns False: otherwise """ class IJobRunner(metaclass=ABCMeta): """ Something that can run a job definition and produce results. You can run many jobs with one runner, each time you'll get additional result object. Typically you will need to connect the runner to a user interface but headless mode is also possible. """ @abstractmethod def run_job(self, job): """ Run the specified job. Calling this method may block for arbitrary amount of time. User interfaces should ensure that it runs in a separate thread. The return value is a JobResult object that contains all the data that was captured during the execution of the job. Some jobs may not return a JobResult value. """ # XXX: threads suck, could we make this fully asynchronous? The only # thing that we really want is to know when the command has stopped # executing. We could expose the underlying process mechanics so that # QT/GTK applications could tie that directly into their event loop. class IUserInterfaceIO(metaclass=ABCMeta): """ Base class that allows job runner to interact with the user interface. """ @abstractmethod def get_manual_verification_outcome(self): """ Get the outcome of the manual verification, as according to the user May raise NotImplementedError if the user interface cannot provide this answer. """ class IProviderBackend1(metaclass=ABCMeta): """ Provider for the current type of tests. This class provides the APIs required by the internal implementation that are not considered normal public APIs. The only consumer of the those methods and properties are internal to plainbox. """ @abstractproperty def CHECKBOX_SHARE(self): """ Return the required value of CHECKBOX_SHARE environment variable. .. note:: This variable is only required by one script. It would be nice to remove this later on. """ @abstractproperty def extra_PYTHONPATH(self): """ Return additional entry for PYTHONPATH, if needed. This entry is required for CheckBox scripts to import the correct CheckBox python libraries. .. note:: The result may be None """ @abstractproperty def bin_dir(self): """ directory where all the executables needed by this provider reside """ @abstractproperty def jobs_dir(self): """ Return an absolute path of the jobs directory """ @abstractproperty def whitelists_dir(self): """ Return an absolute path of the whitelist directory """ @abstractproperty def data_dir(self): """ absolute path of the data directory """ @abstractproperty def base_dir(self): """ absolute path of the base directory with other directories. May be None """ @abstractproperty def secure(self): """ flag indicating that this provider was loaded from the secure portion of PROVIDERPATH and thus can be used with the plainbox-trusted-launcher-1. """ class IProvider1(metaclass=ABCMeta): """ Provider for the current type of tests Also known as the 'checkbox-like' provider. """ @abstractproperty def name(self): """ name of this provider This name should be dbus-friendly. It should not be localizable. """ @abstractproperty def namespace(self): """ namespace component of the provider name This property defines the namespace in which all provider jobs are defined in. Jobs within one namespace do not need to be fully qualified by prefixing their partial identifier with provider namespace (so all stays 'as-is'). Jobs that need to interact with other provider namespaces need to use the fully qualified job identifier instead. The identifier is defined as the part of the provider name, up to the colon. This effectively gives organizations flat namespace within one year-domain pair and allows to create private namespaces by using sub-domains. """ @abstractproperty def version(self): """ version of this provider """ @abstractproperty def description(self): """ description of this provider """ @abstractproperty def gettext_domain(self): """ the name of the gettext domain associated with this provider This value may be empty, in such case provider data cannot be localized for the user environment. """ @abstractproperty def locale_dir(self): """ absolute path of the directory with locale data The value is applicable as argument bindtextdomain() """ @abstractmethod def get_builtin_jobs(self): """ Load and parse all of the job definitions of this provider. :returns: A sorted list of JobDefinition objects :raises RFC822SyntaxError: if any of the loaded files was not valid RFC822 :raises IOError, OSError: if there were any problems accessing files or directories. Note that OSError is silently ignored when the `jobs_dir` directory is missing. ..note:: This method should not be used anymore. Consider transitioning your code to :meth:`load_all_jobs()` which is more reliable. """ @abstractmethod def load_all_jobs(self): """ Load and parse all of the job definitions of this provider. Unlike :meth:`get_builtin_jobs()` this method does not stop after the first problem encountered and instead collects all of the problems into a list which is returned alongside the job list. :returns: Pair (job_list, problem_list) where each job_list is a sorted list of JobDefinition objects and each item from problem_list is an exception. """ @abstractmethod def get_builtin_whitelists(self): """ Load all the built-in whitelists and return them """ def get_all_executables(self): """ Discover and return all executables offered by this provider """ class ISessionStateController(metaclass=ABCMeta): """ Interface for session state controller classes. Session state controller classes cooperate with :class:`~plainbox.impl.session.state.SessionState` and :class:`~plainbox.impl.depmgr.DependencySolver` classes and implement knowledge unique to particular job semantics. Before execution the controller can influence job runnability (by setting inhibitors). After execution the controller can observe the result and influence session state """ @abstractmethod def get_dependency_set(self, job): """ Get the set of direct dependencies of a particular job. :param job: A IJobDefinition instance that is to be visited :returns: set of pairs (dep_type, job_name) Returns a set of pairs (dep_type, job_name) that describe all dependencies of the specified job. The first element in the pair, dep_type, is either DEP_TYPE_DIRECT or DEP_TYPE_RESOURCE. The second element is the name of the job. """ @abstractmethod def get_inhibitor_list(self, session_state, job): """ Get a list of readiness inhibitors that inhibit a particular job. :param session_state: A SessionState instance that is used to interrogate the state of the session where it matters for a particular job. Currently this is used to access resources and job results. :param job: A JobDefinition instance :returns: List of JobReadinessInhibitor """ @abstractmethod def observe_result(self, session_state, job, result): """ Notice the specified test result and update readiness state. :param session_state: A SessionState object :param job: A JobDefinition object :param result: A IJobResult object This function updates the internal result collection with the data from the specified test result. Results can safely override older results. Results also change the ready map (jobs that can run) because of dependency relations. """ class IExecutionController(metaclass=ABCMeta): """ Interface for job execution controller clases. Execution controllers encapsulate knowledge on how to run command associated with a particular job. Some executors might run the command directly, others might delegate the task to a helper program or perform some special-cased customization to the execution environment. """ @abstractmethod def execute_job(self, job, config, extcmd_popen): """ Execute the specified job using the specified subprocess-like object :param job: The JobDefinition to execute :param config: A PlainBoxConfig instance which can be used to load missing environment definitions that apply to all jobs. It is used to provide values for missing environment variables that are required by the job (as expressed by the environ key in the job definition file). :param extcmd_popen: A subprocess.Popen like object :returns: The return code of the command, as returned by subprocess.call() """ @abstractmethod def get_score(self, job): """ Compute how applicable this controller is for the specified job. :returns: A numeric score, or None if the controller cannot run this job. The higher the value, the more applicable this controller is. """ class IBuildSystem(metaclass=ABCMeta): """ A pluggable build system definition PlainBox uses build systems to assist provider authors in building additional executables from source code. To facilitate support for a specific language or toolkit a build system may detect it and offer proper commands without the test developer having to copy/paste those commands from provider to provider. PlainBox discovers providers from the ``plainbox.buildsystem`` entry point. Each entry point there must be a class implementing this interface. """ @abstractmethod def probe(self, src_dir: str) -> int: """ Look at the source directory and determine how applicable this build system is. :param src_dir: absolute path of the directory with source code :returns: the suitability value, 0 if the build system doesn't support sources of the particular kind, all values greater than zero indicate some level of suitability. The largest return value wins. The return value is a number. Values closer to zero mean that the build system is not suitable, values closer to one mean the build system is more suitable. Value of 0 mean that the build system is totally unsuitable and will not be applied, even if no other choices are available. The idea is that multiple build systems may recognize a source directory but since the system is extensible, other people may come up with more suitable build system that spots additional files and returns a score better than the average. """ @abstractmethod def get_build_command(self, src_dir: str, build_dir: str) -> str: """ Get shell command to build the sources. :param src_dir: absolute path of the source directory :param build_dir: absolute path of the build directory :returns: shell command to execute With the given source and build directory, come up with a piece of shell that knows how to build stuff so that it ends up in the build directory. .. note:: The command will be executed in build_dir. """ class ISessionStateTransport(metaclass=ABCMeta): """ Interface for transports that send test data somewhere. They handle just the transmission portion of data sending; exporters are expected to produce data in the proper format (e.g. json, xml). Each transport can have specific parameters that are required for the other end to properly process received information (like system identification, authorization data and so on), and that don't semantically belong in the test data as produced by the exporter. Additionally each transport needs to be told *where* to send test data. This is transport-dependent; things like a HTTP endpoint, IP address, port are good examples. """ @abstractmethod def __init__(self, where, option_string): """ Initialize the transport object :param where: a string encoding the destination location :param option_string: a string of additonal configuration for the transport :raises ValueError: if any of the arguments are somehow invalid """ @abstractmethod def send(self, data, config=None, session_state=None): """ Send data somewhere. :param data: a stream-like object of data to send (read only) :param config: a PlainBoxConfig object (optional) :param session_state: the session for which this transport is associated with the data being sent (optional) :raises ValueError: if any of the arguments are somehow invalid :raises TransportError: if any transport-specific problem arises :returns: a dictionary with additional items, see notes below .. note:: The return value is especially vague specifically to allow various transports to express whatever they may need to express for a particular vertical use case yet still to allow most of the code to just work with all transports. It is expected that certain keys in the returned dictionary will gain special semantics that can be further standardized. As of this writing there are no standard keys. """ plainbox-0.5.3/plainbox/impl/0000775000175000017500000000000012320462103016051 5ustar zygazyga00000000000000plainbox-0.5.3/plainbox/impl/test_depmgr.py0000664000175000017500000002463112320461715020756 0ustar zygazyga00000000000000# This file is part of Checkbox. # # Copyright 2012, 2013 Canonical Ltd. # Written by: # Zygmunt Krynicki # # Checkbox is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, # as published by the Free Software Foundation. # # Checkbox 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 Checkbox. If not, see . """ plainbox.impl.test_depmgr ========================= Test definitions for plainbox.impl.depmgr module """ from unittest import TestCase from plainbox.impl.depmgr import DependencyCycleError from plainbox.impl.depmgr import DependencyDuplicateError from plainbox.impl.depmgr import DependencyMissingError from plainbox.impl.depmgr import DependencySolver from plainbox.impl.testing_utils import make_job class DependencyCycleErrorTests(TestCase): def setUp(self): self.A = make_job("A", depends="B") self.B = make_job("B", depends="A") self.exc = DependencyCycleError([self.A, self.B, self.A]) def test_job_list(self): self.assertEqual(self.exc.job_list, [self.A, self.B, self.A]) def test_affected_job(self): self.assertIs(self.exc.affected_job, self.A) def test_affecting_job(self): # This is the same as affected_job as this is a cycle self.assertIs(self.exc.affecting_job, self.A) def test_str(self): expected = "dependency cycle detected: A -> B -> A" observed = str(self.exc) self.assertEqual(expected, observed) def test_repr(self): expected = (", " ", " "]>") observed = repr(self.exc) self.assertEqual(expected, observed) class DependencyMissingErrorTests(TestCase): def setUp(self): self.A = make_job("A") self.exc_direct = DependencyMissingError( self.A, 'B', DependencyMissingError.DEP_TYPE_DIRECT) self.exc_resource = DependencyMissingError( self.A, 'B', DependencyMissingError.DEP_TYPE_RESOURCE) def test_job(self): self.assertIs(self.exc_direct.job, self.A) self.assertIs(self.exc_resource.job, self.A) def test_affected_job(self): self.assertIs(self.exc_direct.affected_job, self.A) self.assertIs(self.exc_resource.affected_job, self.A) def test_affecting_job(self): self.assertIs(self.exc_direct.affecting_job, None) self.assertIs(self.exc_resource.affecting_job, None) def test_missing_job_id(self): self.assertEqual(self.exc_direct.missing_job_id, 'B') self.assertEqual(self.exc_resource.missing_job_id, 'B') def test_str_direct(self): expected = "missing dependency: 'B' (direct)" observed = str(self.exc_direct) self.assertEqual(expected, observed) def test_str_resoucee(self): expected = "missing dependency: 'B' (resource)" observed = str(self.exc_resource) self.assertEqual(expected, observed) def test_repr_direct(self): expected = (" " "missing_job_id:'B' " "dep_type:'direct'>") observed = repr(self.exc_direct) self.assertEqual(expected, observed) def test_repr_resource(self): expected = (" " "missing_job_id:'B' " "dep_type:'resource'>") observed = repr(self.exc_resource) self.assertEqual(expected, observed) class DependencyDuplicateErrorTests(TestCase): def setUp(self): self.A = make_job("A") self.another_A = make_job("A") self.exc = DependencyDuplicateError(self.A, self.another_A) def test_job(self): self.assertIs(self.exc.job, self.A) def test_duplicate_job(self): self.assertIs(self.exc.duplicate_job, self.another_A) def test_affected_job(self): self.assertIs(self.exc.affected_job, self.A) def test_affecting_job(self): self.assertIs(self.exc.affecting_job, self.another_A) def test_str(self): expected = "duplicate job id: 'A'" observed = str(self.exc) self.assertEqual(expected, observed) def test_repr(self): expected = (" " "duplicate_job:>") observed = repr(self.exc) self.assertEqual(expected, observed) class DependencySolverInternalsTests(TestCase): def test_get_job_map_produces_map(self): A = make_job('A') B = make_job('B') expected = {'A': A, 'B': B} observed = DependencySolver._get_job_map([A, B]) self.assertEqual(expected, observed) def test_get_job_map_find_duplicates(self): A = make_job('A') another_A = make_job('A') with self.assertRaises(DependencyDuplicateError) as call: DependencySolver._get_job_map([A, another_A]) self.assertIs(call.exception.job, A) self.assertIs(call.exception.duplicate_job, another_A) class TestDependencySolver(TestCase): def test_empty(self): observed = DependencySolver.resolve_dependencies([]) expected = [] self.assertEqual(expected, observed) def test_direct_deps(self): # This tests the following simple job chain # A -> B -> C A = make_job(id='A', depends='B') B = make_job(id='B', depends='C') C = make_job(id='C') job_list = [A, B, C] expected = [C, B, A] observed = DependencySolver.resolve_dependencies(job_list) self.assertEqual(expected, observed) def test_independent_groups_deps(self): # This tests two independent job chains # A1 -> B1 # A2 -> B2 A1 = make_job(id='A1', depends='B1') B1 = make_job(id='B1',) A2 = make_job(id='A2', depends='B2') B2 = make_job(id='B2') job_list = [A1, B1, A2, B2] expected = [B1, A1, B2, A2] observed = DependencySolver.resolve_dependencies(job_list) self.assertEqual(expected, observed) def test_visiting_blackend_node(self): # This tests a visit to already visited job # A # B -> A # A will be visited twice A = make_job(id='A') B = make_job(id='B', depends='A') job_list = [A, B] expected = [A, B] observed = DependencySolver.resolve_dependencies(job_list) self.assertEqual(expected, observed) def test_resource_deps(self): # This tests resource deps # A ~> R A = make_job(id='A', requires='R.foo == "bar"') R = make_job(id='R', plugin='resource') job_list = [A, R] expected = [R, A] observed = DependencySolver.resolve_dependencies(job_list) self.assertEqual(expected, observed) def test_duplicate_error(self): A = make_job('A') another_A = make_job('A') job_list = [A, another_A] with self.assertRaises(DependencyDuplicateError) as call: DependencySolver.resolve_dependencies(job_list) self.assertIs(call.exception.job, A) self.assertIs(call.exception.duplicate_job, another_A) def test_missing_direct_dependency(self): # This tests missing dependencies # A -> (inexisting B) A = make_job(id='A', depends='B') job_list = [A] with self.assertRaises(DependencyMissingError) as call: DependencySolver.resolve_dependencies(job_list) self.assertIs(call.exception.job, A) self.assertEqual(call.exception.missing_job_id, 'B') self.assertEqual(call.exception.dep_type, call.exception.DEP_TYPE_DIRECT) def test_missing_resource_dependency(self): # This tests missing resource dependencies # A ~> (inexisting R) A = make_job(id='A', requires='R.attr == "value"') job_list = [A] with self.assertRaises(DependencyMissingError) as call: DependencySolver.resolve_dependencies(job_list) self.assertIs(call.exception.job, A) self.assertEqual(call.exception.missing_job_id, 'R') self.assertEqual(call.exception.dep_type, call.exception.DEP_TYPE_RESOURCE) def test_dependency_cycle_self(self): # This tests dependency loops # A -> A A = make_job(id='A', depends='A') job_list = [A] with self.assertRaises(DependencyCycleError) as call: DependencySolver.resolve_dependencies(job_list) self.assertEqual(call.exception.job_list, [A, A]) def test_dependency_cycle_simple(self): # This tests dependency loops # A -> B -> A A = make_job(id='A', depends='B') B = make_job(id='B', depends='A') job_list = [A, B] with self.assertRaises(DependencyCycleError) as call: DependencySolver.resolve_dependencies(job_list) self.assertEqual(call.exception.job_list, [A, B, A]) def test_dependency_cycle_longer(self): # This tests dependency loops # A -> B -> C -> D -> B A = make_job(id='A', depends='B') B = make_job(id='B', depends='C') C = make_job(id='C', depends='D') D = make_job(id='D', depends='B') job_list = [A, B, C, D] with self.assertRaises(DependencyCycleError) as call: DependencySolver.resolve_dependencies(job_list) self.assertEqual(call.exception.job_list, [B, C, D, B]) def test_dependency_cycle_via_resource(self): # This tests dependency loops # A -> R -> A A = make_job(id='A', requires='R.key == "value"') R = make_job(id='R', depends='A', plugin="resource") job_list = [A, R] with self.assertRaises(DependencyCycleError) as call: DependencySolver.resolve_dependencies(job_list) self.assertEqual(call.exception.job_list, [A, R, A]) plainbox-0.5.3/plainbox/impl/_shlex.py0000664000175000017500000000127412320461715017721 0ustar zygazyga00000000000000# Module and documentation by Eric S. Raymond, 21 Dec 1998 # Input stacking and error message cleanup added by ESR, March 2000 # push_source() and pop_source() made explicit by ESR, January 2001. # Posix compliance, split(), string arguments, and # iterator interface by Gustavo Niemeyer, April 2003. import re _find_unsafe = re.compile(r'[^\w@%+=:,./-]', re.ASCII).search def quote(s): """Return a shell-escaped version of the string *s*.""" if not s: return "''" if _find_unsafe(s) is None: return s # use single quotes, and put single quotes into double quotes # the string $'b is then quoted as '$'"'"'b' return "'" + s.replace("'", "'\"'\"'") + "'" plainbox-0.5.3/plainbox/impl/exporter/0000775000175000017500000000000012320462103017721 5ustar zygazyga00000000000000plainbox-0.5.3/plainbox/impl/exporter/test_text.py0000664000175000017500000000261012320461715022325 0ustar zygazyga00000000000000# This file is part of Checkbox. # # Copyright 2012 Canonical Ltd. # Written by: # Zygmunt Krynicki # Daniel Manrique # # Checkbox is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, # as published by the Free Software Foundation. # # Checkbox 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 Checkbox. If not, see . """ plainbox.impl.exporter.test_text ================================ Test definitions for plainbox.impl.exporter.text module """ from io import BytesIO from unittest import TestCase from plainbox.impl.exporter.text import TextSessionStateExporter class TextSessionStateExporterTests(TestCase): def test_default_dump(self): exporter = TextSessionStateExporter() # Text exporter expects this data format data = {'result_map': {'job_name': {'outcome': 'fail'}}} stream = BytesIO() exporter.dump(data, stream) expected_bytes = "job_name: fail\n".encode('UTF-8') self.assertEqual(stream.getvalue(), expected_bytes) plainbox-0.5.3/plainbox/impl/exporter/test_init.py0000664000175000017500000002314012320461715022305 0ustar zygazyga00000000000000# This file is part of Checkbox. # # Copyright 2012, 2013 Canonical Ltd. # Written by: # Zygmunt Krynicki # Daniel Manrique # # Checkbox is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, # as published by the Free Software Foundation. # # Checkbox 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 Checkbox. If not, see . """ plainbox.impl.exporter.test_init ================================ Test definitions for plainbox.impl.exporter module """ from io import StringIO, BytesIO from tempfile import TemporaryDirectory from unittest import TestCase from plainbox.abc import IJobResult from plainbox.impl.exporter import ByteStringStreamTranslator from plainbox.impl.exporter import SessionStateExporterBase from plainbox.impl.exporter import classproperty from plainbox.impl.job import JobDefinition from plainbox.impl.result import MemoryJobResult, IOLogRecord from plainbox.impl.session import SessionState from plainbox.impl.testing_utils import make_job, make_job_result class ClassPropertyTests(TestCase): def get_C(self): class C: attr = "data" @classproperty def prop(cls): return cls.attr return C def test_classproperty_on_cls(self): cls = self.get_C() self.assertEqual(cls.prop, cls.attr) def test_classproperty_on_obj(self): cls = self.get_C() obj = cls() self.assertEqual(obj.prop, obj.attr) class SessionStateExporterBaseTests(TestCase): class TestSessionStateExporter(SessionStateExporterBase): def dump(self, data, stream): """ Dummy implementation of a method required by the base class. """ def make_test_session(self): # Create a small session with two jobs and two results job_a = make_job('job_a') job_b = make_job('job_b') session = SessionState([job_a, job_b]) session.update_desired_job_list([job_a, job_b]) result_a = make_job_result(outcome=IJobResult.OUTCOME_PASS) result_b = make_job_result(outcome=IJobResult.OUTCOME_FAIL) session.update_job_result(job_a, result_a) session.update_job_result(job_b, result_b) return session def test_option_list_setting_boolean(self): exporter = self.TestSessionStateExporter() exporter._option_list = [ SessionStateExporterBase.OPTION_WITH_IO_LOG, SessionStateExporterBase.OPTION_FLATTEN_IO_LOG] self.assertEqual(exporter._option_list, sorted([ SessionStateExporterBase.OPTION_WITH_IO_LOG, SessionStateExporterBase.OPTION_FLATTEN_IO_LOG])) def test_option_list_setting_boolean_all_at_once(self): # Test every option set, all at once # Just to be paranoid, ensure the options I set are the ones the # exporter actually thinks it has exporter = self.TestSessionStateExporter( self.TestSessionStateExporter.supported_option_list) self.assertEqual(exporter._option_list, sorted(self.TestSessionStateExporter.supported_option_list)) def test_option_list_init_non_boolean(self): option = SessionStateExporterBase.OPTION_WITH_COMMENTS exporter = self.TestSessionStateExporter(["{}=detailed".format(option)]) self.assertEqual(exporter.get_option_value(option), "detailed") def test_option_list_non_duplicated_options(self): # Setting the same option twice makes no sense, check it gets squashed # into only one item in the option_list. option = SessionStateExporterBase.OPTION_WITH_COMMENTS exporter = self.TestSessionStateExporter([option, option]) self.assertEqual(exporter._option_list, [option]) def test_option_list_setting_api(self): exporter = self.TestSessionStateExporter( [SessionStateExporterBase.OPTION_WITH_IO_LOG]) exporter.set_option_value("with-comments") self.assertEqual(exporter.get_option_value('with-comments'), True) exporter.set_option_value("with-comments", "detailed") self.assertEqual(exporter.get_option_value('with-comments'), "detailed") def test_defaults(self): # Test all defaults, with all options unset exporter = self.TestSessionStateExporter() session = self.make_test_session() data = exporter.get_session_data_subset(session) expected_data = { 'result_map': { 'job_a': { 'outcome': 'pass' }, 'job_b': { 'outcome': 'fail' } } } self.assertEqual(data, expected_data) def make_realistic_test_session(self, session_dir): # Create a more realistic session with two jobs but with richer set # of data in the actual jobs and results. job_a = JobDefinition({ 'plugin': 'shell', 'name': 'job_a', 'command': 'echo testing && true', 'requires': 'job_b.ready == "yes"' }) job_b = JobDefinition({ 'plugin': 'resource', 'name': 'job_b', 'command': 'echo ready: yes' }) session = SessionState([job_a, job_b]) session.update_desired_job_list([job_a, job_b]) result_a = MemoryJobResult({ 'outcome': IJobResult.OUTCOME_PASS, 'return_code': 0, 'io_log': [(0, 'stdout', b'testing\n')], }) result_b = MemoryJobResult({ 'outcome': IJobResult.OUTCOME_PASS, 'return_code': 0, 'comments': 'foo', 'io_log': [(0, 'stdout', b'ready: yes\n')], }) session.update_job_result(job_a, result_a) session.update_job_result(job_b, result_b) return session def test_all_at_once(self): # Test every option set, all at once # Currently this sets both OPTION_WITH_IO_LOG and # one of the two mutually exclusive options: # - OPTION_SQUASH_IO_LOG # - OPTION_FLATTEN_IO_LOG # The implementation favours SQUASH_IO_LOG # and thus the code below tests that option with TemporaryDirectory() as scratch_dir: exporter = self.TestSessionStateExporter( self.TestSessionStateExporter.supported_option_list) session = self.make_realistic_test_session(scratch_dir) data = exporter.get_session_data_subset(session) expected_data = { 'job_list': ['job_a', 'job_b'], 'run_list': ['job_b', 'job_a'], 'desired_job_list': ['job_a', 'job_b'], 'resource_map': { 'job_b': [{ 'ready': 'yes' }] }, 'result_map': { 'job_a': { 'outcome': 'pass', 'plugin': 'shell', 'command': 'echo testing && true', 'io_log': ['dGVzdGluZwo='], 'requires': 'job_b.ready == "yes"', 'comments': None, 'via': None, 'hash': '1dbae753f6cb823af370ef9fcb5916' 'eba82185992e81813316fe77332a60f1e0', }, 'job_b': { 'outcome': 'pass', 'plugin': 'resource', 'command': 'echo ready: yes', 'io_log': ['cmVhZHk6IHllcwo='], 'comments': 'foo', 'via': None, 'hash': 'a914c7396e29c2a4669055bf38bd7c' '7f0eae0bc67f8bc2d90ba7d37f83e52132', } }, 'attachment_map': { } } # This is just to make debugging easier self.assertEqual(expected_data.keys(), data.keys()) for key in data.keys(): self.assertEqual(expected_data[key], data[key], msg="wrong data in %r" % key) # This is to make sure we didn't miss anything by being too smart self.assertEqual(data, expected_data) def test_io_log_processors(self): # Test all of the io_log processors that are built into # the base SessionStateExporter class cls = self.TestSessionStateExporter io_log = ( IOLogRecord(0, 'stdout', b'foo\n'), IOLogRecord(1, 'stderr', b'bar\n'), IOLogRecord(2, 'stdout', b'quxx\n') ) self.assertEqual( cls._squash_io_log(io_log), [ 'Zm9vCg==', 'YmFyCg==', 'cXV4eAo=']) self.assertEqual( cls._flatten_io_log(io_log), 'Zm9vCmJhcgpxdXh4Cg==') self.assertEqual( cls._io_log(io_log), [ (0, 'stdout', 'Zm9vCg=='), (1, 'stderr', 'YmFyCg=='), (2, 'stdout', 'cXV4eAo=')]) class ByteStringStreamTranslatorTests(TestCase): def test_smoke(self): dest_stream = StringIO() source_stream = BytesIO(b'This is a bytes literal') encoding = 'utf-8' translator = ByteStringStreamTranslator(dest_stream, encoding) translator.write(source_stream.getvalue()) self.assertEqual('This is a bytes literal', dest_stream.getvalue()) plainbox-0.5.3/plainbox/impl/exporter/test_html.py0000664000175000017500000001257312320461715022316 0ustar zygazyga00000000000000# This file is part of Checkbox. # # Copyright 2013 Canonical Ltd. # Written by: # Sylvain Pineau # Zygmunt Krynicki # Daniel Manrique # # Checkbox is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, # as published by the Free Software Foundation. # # Checkbox 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 Checkbox. If not, see . """ plainbox.impl.exporter.test_html ================================ Test definitions for plainbox.impl.exporter.html module """ from io import StringIO from string import Template from unittest import TestCase import io from lxml import etree as ET from pkg_resources import resource_filename from pkg_resources import resource_string from plainbox.testing_utils import resource_json from plainbox.impl.exporter.html import HTMLResourceInliner from plainbox.impl.exporter.html import HTMLSessionStateExporter class HTMLInlinerTests(TestCase): def setUp(self): template_substitutions = { 'PLAINBOX_ASSETS': resource_filename("plainbox", "data/")} test_file_location = "test-data/html-exporter/html-inliner.html" test_file = resource_filename("plainbox", test_file_location) with open(test_file) as html_file: html_template = Template(html_file.read()) html_content = html_template.substitute(template_substitutions) self.tree = ET.parse(StringIO(html_content), ET.HTMLParser()) # Now self.tree contains a tree with adequately-substituted # paths and resources inliner = HTMLResourceInliner() self.inlined_tree = inliner.inline_resources(self.tree) def test_script_inlining(self): """Test that a