[
  {
    "path": ".coveragerc",
    "content": "# Copyright (c) 2018 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\n#\n# coverage.py configuration (https://pypi.org/project/coverage/)\n#\n\n[run]\nsource=shotgun_api3\nomit=\n    shotgun_api3/lib/httplib2/*\n    shotgun_api3/lib/certifi/*\n    shotgun_api3/lib/pyparsing.py\n"
  },
  {
    "path": ".flake8",
    "content": "# Copyright (c) 2019 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\n\n[flake8]\nmax-line-length = 120\nexclude = shotgun_api3/lib/httplib2/*,tests/httplib2test.py\n"
  },
  {
    "path": ".gitattributes",
    "content": "# Handle line endings automatically for files detected as text\n# and leave all files detected as binary untouched.\n* text=auto\n\n# Force the following filetypes to have unix eols, so Windows does not break them\n*.pickle text eol=lf\n"
  },
  {
    "path": ".gitignore",
    "content": "# Copyright (c) 2019 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\n\n#python specific\n*.pyc\n\n## generic files to ignore\n*~\n*.lock\n*.DS_Store\n*.swp\n*.out\n*.bak\n\n# test related\ntests/config\n.coverage\n.cache\n.travis-solo\nhtmlcov\ntest-output.xml\ncoverage.xml\n\n# setup related\nbuild\ndist\nshotgun_api3.egg-info\n/%1\n"
  },
  {
    "path": ".pre-commit-config.yaml",
    "content": "# Copyright (c) 2024, Shotgun Software Inc.\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are met:\n#\n#  - Redistributions of source code must retain the above copyright notice, this\n#    list of conditions and the following disclaimer.\n#\n#  - Redistributions in binary form must reproduce the above copyright notice,\n#    this list of conditions and the following disclaimer in the documentation\n#    and/or other materials provided with the distribution.\n#\n#  - Neither the name of the Shotgun Software Inc nor the names of its\n#    contributors may be used to endorse or promote products derived from this\n#    software without specific prior written permission.\n#\n# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n# Styles the code properly\n\n# Exclude Third Pary components\nexclude: \"shotgun_api3/lib/.*\"\n\n# List of super useful formatters.\nrepos:\n  - repo: https://github.com/pre-commit/pre-commit-hooks\n    rev: v6.0.0\n    hooks:\n    - id: check-ast\n    - id: check-case-conflict\n    - id: check-executables-have-shebangs\n    - id: check-merge-conflict\n    - id: end-of-file-fixer\n    - id: requirements-txt-fixer\n    - id: trailing-whitespace\n\n  - repo: https://github.com/psf/black\n    rev: 26.1.0\n    hooks:\n    - id: black\n"
  },
  {
    "path": "HISTORY.rst",
    "content": "*********************************************\nFlow Production Tracking Python API Changelog\n*********************************************\n\nHere you can see the full list of changes between each Python API release.\n\nv3.10.1 (2026 Feb 10)\n=====================\n\n- Update bundled certifi to version 2026.1.4.\n\nv3.10.0 (2026 Feb 3)\n====================\n\n- Add support for Python 3.13.\n\nv3.9.2 (2025 Dec 10)\n====================\n\n- Add ``export_page`` method to Shotgun class.\n- Documentation has been updated to reflect this addition.\n\nv3.9.1 (2025 Nov 25)\n====================\n\n- Removed the deprecated ``CACertsHTTPSConnection`` class, which was no longer needed after dropping Python 2 support.\n- Added basic type annotations throughout the package to improve IDE support and code completion. Note: Some typing improvements are still in progress and will be refined in future releases. Special thanks to @chadrik for this contribution!\n- Introduced a new environment variable ``SHOTGUN_ALLOW_OLD_PYTHON`` to temporarily bypass Python version warnings for users still on Python 3.7 or 3.8. While this provides flexibility during transition, we strongly recommend upgrading to Python 3.9 or newer for continued support and security updates.\n- Enhanced payload optimization for entity dictionaries, making it more flexible and preventing potential issues when working with special fields like ``type`` and ``url``.\n- Updated attachment documentation with detailed information about the ``relative_path`` field and its usage.\n- Python versions older than 3.9 are now deprecated. A runtime warning will be displayed during initialization if you're using Python 3.7 or 3.8. Please plan to upgrade to Python 3.9 or newer as these older versions will not be supported in future releases.\n\nv3.9.0 (2025 Sep 10)\n====================\n\n- Removed Python 2 code.\n- Removed the six module. Note: if your code depends on the six library previously included in this package, you will need to update it, as it is no longer supported.\n\nv3.8.5 (2025 Jul 31)\n====================\n\n- We don't want to retry on general exceptions (e.g. timeout or remote disconnection)\n  because we might send a resource modification request (create, batch create, etc) and\n  we can end up duplicating things.\n\nv3.8.4 (2025 Jun 11)\n====================\n\n- Replace ``utcfromtimestamp`` to prevent breaking changes in Python 3.12.\n\nv3.8.3 (2025 May 22)\n====================\n\n- Add improvements to Mockgun.\n  Ensure string comparison are case insensitive.\n  Ignore duplicate entities when ``multi_entity_update_mode`` is added.\n  Support for ``None`` in mockgun when using ordering.\n  Thank you rlessardrodeofx, slingshotsys, and MHendricks for your contributions.\n- Minor fixes on unit tests and documentation.\n\n\nv3.8.2 (2025 Mar 11)\n====================\n\n- Prevent flaky disconnection when uploading thumbnails on publish.\n  There's a flaky disconnection when the publisher uploads the thumbnail to the server.\n  The most common errors were: ``Connection closed by peer`` and ``URLopen error EOF occurred in violation of protocol ssl.c:1006``.\n\nv3.8.1 (2025 Feb 25)\n====================\n\n- Upgrade certifi to 2024.12.14.\n- Apply black 25.1.0 formatting to the source code.\n- Update Software Credits\n\nv3.8.0 (2025 Feb 7)\n===================\n\n- Extend the payload optimizations to the ``in`` and ``not_in`` filters and\n  the ``update`` method.\n- The payload optimization is now enabled by default.\n  It can be disabled with the ``SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION``\n  environment variable.\n\nv3.7.0 (2024 Dec 9)\n===================\n- Remove unnecessary data in the payload when combining related queries before sending it to the server.\n  This would improve overall performance decreasing network latency and server processing.\n  See documentation for more information.\n\n\nv3.6.2 (2024 Aug 13)\n====================\n- Remove Ticket entity reference and prepare this to run in CI.\n- Condition auth for Jenkins environment.\n- Update certifi to 2024.7.4.\n- FIRST PHASE Python2 removing.\n\nv3.6.1 (2024 Jun 6)\n===================\n- Adds multi_entity_update_modes support to mockgun ``update()`` and ``batch()`` methods.\n- Implements a retry strategy only when encountering an URLError or SSLEOFError.\n- Fixes the issue with deleting prefix and suffix for ``display_name`` variable at the moment of upload for a local install.\n- Clarifies the use of ``_build_opener`` in ``download_attachment()``.\n\nv3.6.0 (2024 May 1)\n===================\n- Drop support for Python 2.7\n- certifi version changed to 2024.2.2\n- Documentation update\n\nv3.5.1 (2024 Apr 3)\n===================\n- Documentation: Revert to Shotgun in the API Reference headers to keep consistency with the API methods\n- Mockgun: fix entity data type\n- Mockgun: add support for ``add_user_agent`` and ``set_session_uuid`` methods\n\nv3.5.0 (2024 Mar 26)\n====================\n- Rebranding component for Flow Production Tracking\n\nv3.4.2 (2024 Feb 6)\n===================\n- Add support for Python 3.11\n\nv3.4.1 (2024 Jan 29)\n====================\n- Flaky Tests\n- Documentation: Fix issue regarding \"in\" filter prototype\n- Documentation: Travis badge image is no working anymore\n- Documentation: Add ``user_subscription_read`` and ``user_subscription_create`` methods\n- Update Python Certifi license block\n- Add methods for the user_subscriptions API end points\n- Retry ShotGrid request also on error 504\n- Retry S3 uploads on error 500\n- Comment typing annotation breaks Python 2 compatibility\n- Add field type ``entity_type`` to mockgun\n\n\nv3.4.0 (2023 Sep 22)\n====================\n- Started support for Python 3.10 for CI.\n- Add documentation for PublishedFiles preset filters.\n- Upgrade httplib2 to 0.22.0.\n- Update licensing.\n- Updates Autodesk URLs.\n- Fix flaky tests.\n\nv3.3.6 (2023 Aug 29)\n====================\n- Update docs for entity fields.\n- Fix typo.\n- Fix incorrect hint.\n- Reformat code examples to prevent text overflow.\n- Bump certifi from 2020.06.20 to 2022.12.7 in /shotgun_api3/lib.\n- Skip SG-MIM entities.\n- Replace shotgunsoftware references.\n- Deprecation of Python 2.\n- Security upgrade certifi to latest version 2023.07.22.\n\nv3.3.5 (2023 Jan 5)\n====================\n- Add \"Setting Up Your Environment with the Python API\" to Python Docs (python-api docs).\n- [Python API Documentation] Update Python version requirements.\n- Rename Shotgun to Shotgrid in every about text like tk-multi-demo git repository.\n- Rename Shotgun servers to ShotGrid servers in the documentation.\n\nv3.3.4 (2022 June 9)\n====================\n- Adds Retries on 503 Errors when uploading to S3.\n- Updates AMI Documentation to Support Python 3.\n- Adds Python 3.9 coverage in Azure Pipeline CI tests.\n- Fixes git protocol for the installation.\n\nv3.3.3 (2021 December 1)\n==========================\n- Replaces shotgunsoftware urls with Autodesk Knowledge Network and ShotGrid Developer Documentation pages.\n\nv3.3.2 (2021 September 27)\n==========================\n- Updates version of httplib2.\n\nv3.3.1 (2021 July 12)\n=====================\n- Implements retries with incremental backoff on 502 errors.\n\nv3.3.0 (2021 Jun 7)\n===================\n- Updates documentation and error messages to mention ShotGrid.\n\nv3.2.6 (2020 Nov 24)\n=====================\n- Now includes ``certifi`` and defaults to using the certificates provided with that module.\n\nv3.2.4 (2020 May 25)\n=====================\n- Updates httplib2 to v0.18.0.\n\nv3.2.3 (2020 Apr 21)\n=====================\n- Fixes an import bug in httplib2 by using the `forked repository <https://github.com/shotgunsoftware/httplib2>`_.\n\nv3.2.2 (2019 Dec 11)\n=====================\n- Upgrades packaged six module to 1.13.0\n- Adds ``platform`` and ``normalize_platform`` to sgsix module to provide unified platform value across Python 2/3\n- Changes httplib import procedure to emulate direct import of the module\n- Adds test to ensure httplib2 is importable as expected\n\nv3.2.1 (2019 Oct 29)\n=====================\n- Returns a specific error from ``share_thumbnail`` when the source thumbnail is a 'transient' thumbnail.\n\nv3.2.0 (2019 Sept 23)\n=====================\n- Adds a new ``project_entity`` parameter to  ``schema_field_update`` that allows to modify field visibility for a given project.\n\nv3.1.2 (2019 Sept 17)\n=====================\n- Adds an optional `localized` property on the Shotgun object which allows to retrieve localized display names on\n  methods ``schema_entity_read()``, ``schema_field_read()``, and ``schema_read()``.\n\nv3.1.1 (2019 August 29)\n=======================\n- Fixes a regression on Python 2.7.0-2.7.9 on Windows with the mimetypes module.\n\nv3.1.0 (2019 July 29)\n=====================\n- Adds support for Python 3.7\n\nv3.0.41 (2019 June 28)\n======================\n- Adds an optional sleep between retries specified via the `SHOTGUN_API_RETRY_INTERVAL` environment variable, or by setting `sg.config.rpc_attempt_interval`.\n\nv3.0.40 (2019 March 13)\n=======================\n- Updates encoding method to use shutil when uploading, to avoid memory and overflow errors when reading large files. (contributed by @eestrada)\n\nv3.0.39 (2019 February 20)\n==========================\n- Ensures the certificates packaged with the API and those specified via the `SHOTGUN_API_CACERTS` environment variable\n  are used when uploading a file.\n\nv3.0.38 (2019 February 7)\n=========================\n- Upgrades the version of ``httplib2`` to ``0.12.0``, which fixes SNI issues. Note this\n  version contains a more recent list of certificate authorities. If you are running Shotgun locally and have\n  signed your https certificate with an outdated certificate authority, the Shotgun connection will be rejected.\n\nv3.0.37 (2018 July 19)\n======================\n\n- Proper support added for unicode and utf-8 string paths given to upload methods, and a sane error is raised when an unusable string encoding is used.\n- Adds support for querying preferences from Shotgun via the new preferences_read method.\n- Under-the-hood changes to add support for direct to s3 uploads to Shotgun. This change should be transparent to users.\n\nv3.0.36 (2018 April 3)\n======================\n\n- Fixes an error where ``connect=False`` during ``__init__`` would still connect to Shotgun.\n- Adds support for ``SHOTGUN_API_CACERTS`` when uploading and downloading files.\n- Properly handles failed downloads due to malware scanning.\n\nv3.0.35 (2017 December 8)\n=========================\n\n- Add exception UserCredentialsNotAllowedForSSOAuthenticationFault.\n  Triggered when attempting to initiate a connection with a username/password\n  pair on an SSO-enabled Shotgun site.\n\nv3.0.34 (2017 September 18)\n===========================\n\n- Optimized pagination strategy for Shotgun 7.4+\n- Switched from a hard-coded value of 500 for \"records_per_page\" to a server-defined value. We will be experimenting with higher values with the goal of increasing performance for large result sets.\n\nv3.0.33 (2017 July 18)\n======================\n\n- Raise an exception when uploading an empty file using :meth:`upload`, :meth:`upload_thumbnail`\n  or :meth:`upload_filmstrip_thumbnail` before calling out to the server.\n- Multiple enhancements and bugfixes to Mockgun\n- Added ``nav_search_string()`` and ``nav_search_entity()`` methods as experimental, internal methods for querying SG hierarchy.\n- Introduces a :meth:`following` query method, that accepts a user entity and optionally an entity type and/or project.\n\nv3.0.32 (2016 Sep 22)\n=====================\n\n- Optimized import speed of the API on Python 2.7.\n- Integrated the latest fixes to the ``mimetypes`` module.\n- Added ``nav_expand()`` method as an experimental, internal method for querying SG hierarchy.\n- Ported all documentation to sphinx. See http://developer.shotgridsoftware.com/python-api.\n- Moved Changelog to dedicated HISTORY file.\n\nv3.0.31 (2016 May 18)\n=====================\n\n- Add optional ``additional_filter_presets`` argument to :meth:`find` and :meth:`find_one`\n\nv3.0.30 (2016 Apr 25)\n=====================\n\n- Add option to use add/remove/set modes when updating multi-entity fields.\n- Add explicit file handler close to download_attachment.\n- Add basic :meth:`find` ordering support to mockgun.\n- Allow for product specific authorization parameters.\n\nv3.0.29 (2016 Mar 7)\n====================\n\n- Reverted the change to the default field names for image uploading.\n\nv3.0.28 (2016 Mar 3)\n====================\n\n- Refactored nested classing of ``sgtimezone`` library to allow for serializable timestamps.\n\nv3.0.27 (2016 Feb 18)\n=====================\n\n- Make sure HTTP proxy authentication works with the ``@`` character in a password.\n- Make sure sudo authentication test works with Shotgun versions after v6.3.10.\n- Smarter uploading of thumbnails and filmstrips with the :meth:`upload` method.\n- Improve Travis build integration of the Python-API to run the full suite of\n  API tests instead of just the unit and client tests.\n\nv3.0.26 (2016 Feb 1)\n====================\n\n- Updating testing framework to use environment variables inconjunction with existing\n  ``example_config`` file so that commits and pull requests are automatically run on travis-ci.\n- Fix to prevent stripping out case-sensitivity of a URL if the user passes their credentials to\n  ``config.server`` as an authorization header.\n\nv3.0.25 (2016 Jan 12)\n=====================\n\n- Add handling for Python versions incompatible with SHA-2 (see `this blog post\n  <https://www.shotgridsoftware.com/blog/important-ssl-certificate-renewal-and-sha-2/>`_).\n- Add ``SHOTGUN_FORCE_CERTIFICATE_VALIDATION`` environment variable to prevent disabling certficate\n  validation when SHA-2 validation is not available.\n- Add SSL info to user-agent header.\n\nv3.0.24 (2016 Jan 08)\n=====================\n\n- Not released.\n\nv3.0.23 (2015 Oct 26)\n=====================\n\n- Fix for `python bug #23371 <http://bugs.python.org/issue23371>`_ on Windows loading mimetypes\n  module (thanks `@patrickwolf <http://github.com/patrickwolf>`_).\n- Fix for tests on older versions of python.\n- Sanitize authentication values before raising error.\n\nv3.0.22 (2015 Sept 9)\n=====================\n\n- Added method :meth:`text_search` which allows an API client to access the Shotgun global search\n  and auto completer.\n- Added method :meth:`activity_stream_read` which allows an API client to access the activity\n  stream for a given Shotgun entity.\n- Added method :meth:`note_thread_read` which allows an API client to download an entire Note\n  conversation, including Replies and Attachments, using a single API call.\n- Added an experimental ``mockgun`` module which can be used to emulate the Shotgun API, for\n  example inside unit test rigs.\n- [minor] Improved docstrings.\n\nv3.0.21 (2015 Aug 13)\n=====================\n\n- Update bundled ``httplib2`` module to latest v0.9.1 - fixes some bugs\n\nv3.0.20 (2015 Jun 10)\n=====================\n\n- Add authentication support for Shotgun servers with two-factor authentication turned on.\n\nv3.0.19 (2015 Mar 25)\n=====================\n\n- Add ability to authenticate with Shotgun using ``session_token``.\n- Add  :meth:`get_session_token` method for obtaining token to authenticate with.\n- Add new ``AuthenticationFault`` exception type to indicate when server communication has failed\n  due to authentication reasons.\n- Add support for ``SHOTGUN_API_CACERTS`` environment variable to provide location of external\n  SSL certificates file.\n- Fixes and updates to various tests.\n\nv3.0.18 (2015 Mar 13)\n=====================\n\n- Add ability to query the per-project visibility status for entities, fields and statuses.\n  (requires Shotgun server >= v5.4.4)\n\nv3.0.17 (2014 Jul 10)\n=====================\n\n- Add ability to update ``last_accessed_by_current_user`` on Project.\n- Add workaround for `bug #9291 in Python 2.7 <http://bugs.python.org/issue9291>`_ affecting\n  mimetypes library on Windows.\n- Add platform and Python version to user-agent (eg. ``shotgun-json (3.0.17); Python 2.7 (Mac)``)\n\nv3.0.16 (2014 May 23)\n=====================\n\n- Add flag to ignore entities from archived Projects.\n- Add support for differentiating between zero and ``None`` for number fields.\n- Add ability to act as a different user.\n\nv3.0.15 (2014 Mar 6)\n====================\n\n- Fixed bug which allowed a value of ``None`` for password parameter in\n  :meth:`authenticate_human_user`\n- Add :meth:`follow`, :meth:`unfollow` and :meth:`followers` methods.\n- Add ability to login as HumanUser.\n- Ensure that webm/mp4 mime types are always available.\n- Updated link to video tour in README.\n- Fixes and updates to various tests.\n\nv3.0.14 (2013 Jun 26)\n=====================\n\n- added: additional tests for thumbnails.\n- added: support for downloading from s3 in :meth:`download_attachment`. Accepts an Attachment\n  entity dict as a parameter (is still backwards compatible with passing in an Attachment id).\n- added: optional ``file_path`` parameter to :meth:`download_attachment` to write data directly to\n  disk instead of loading into memory. (thanks to Adam Goforth `@aag <https://github.com/aag>`_)\n\nv3.0.13 (2013 Apr 11)\n=====================\n\n- fixed: #20856 :meth:`authenticate_human_user` login was sticky and would be used for permissions\n  and logging.\n\nv3.0.12 (2013 Feb 22)\n=====================\n*no tag*\n\n- added: #18171 New ``ca_certs`` argument to the :class:`Shotgun` constructor to specify the\n  certificates to use in SSL validation.\n- added: ``setup.py`` doesn't compress the installed ``.egg`` file which makes the\n  ``cacerts.txt`` file accessible.\n\nv3.0.11 (2013 Jan 31)\n=====================\n\n- added: nested filter syntax (see :ref:`filter_syntax`)\n\nv3.0.10 (2013 Jan 25)\n=====================\n\n- added: :meth:`add_user_agent()` and :meth:`reset_user_agent` methods to allow client code to add\n  strings to track.\n- added: Changed default ``user-agent`` to include API version.\n- updated: advanced summarize filter support.\n- fixed: #19830 :meth:`share_thumbnail` errors when source has no thumbnail.\n\nv3.0.9 (2012 Dec 05)\n====================\n\n- added: :meth:`share_thumbnail` method to share the same thumbnail record and media between\n  entities.\n- added: proxy handling to methods that transfer binary data (ie. :meth:`upload`,\n  :meth:`upload_thumbnail`, etc.).\n- updated: default logging level to WARN.\n- updated: documentation for :meth:`summarize()` method, previously released but without\n  documentation.\n- fixed: unicode strings not always being encoded correctly.\n- fixed: :meth:`create()` generates error when ``return_fields`` is None.\n- fixed: clearing thumbnail by setting ``image`` value to ``None`` not working as expected.\n- fixed: some html entities being returned sanitized via API.\n- improved: ``simplejson`` fallback now uses relative imports to match other bundled packages.\n- improved: various error messages are now clearer and more informative.\n- installation is now ``pip`` compatible.\n\nv3.0.9.beta2 (2012 Mar 19)\n==========================\n\n- use relative imports for included libraries when using Python v2.5 or later.\n- replace sideband request for ``image`` (thumbnail) field with native support (requires Shotgun\n  server >= v3.3.0. Request will still work on older versions but fallback to slow sideband\n  method).\n- allow setting ``image`` and ``filmstrip_thumbnail`` in data dict on :meth:`create` and\n  :meth:`update` (thanks `@hughmacdonald <https://github.com/HughMacdonald>`_).\n- fixed bug causing ``Attachment.tag_list`` to be set to ``\"None\"`` (str) for uploads.\n\nv3.0.9.beta1 (2012 Feb 23)\n==========================\n\n- added support for access to WorkDayRules (requires Shotgun server >= v3.2.0).\n- added support for filmstrip thumbnails (requires Shotgun server >= v3.1.0).\n- fixed :meth:`download_attachment` pointing to incorrect url.\n- fixed some issues with module import paths.\n\nv3.0.8 (2011 Oct 7)\n===================\n\n- now uses JSON as a transport rather than XML-RPC. This provides as much as a 40% speed boost.\n- added the :meth:`summarize` method.\n- refactored single file into package.\n- tests added (Thanks to Aaron Morton `@amorton <https://github.com/amorton>`_).\n- return all strings as ascii for backwards compatibility, added ``ensure_ascii`` parameter to\n  enable returning unicode.\n\nv3.0.7 (2011 Apr 04)\n====================\n\n- fix: :meth:`update()` method should return a ``dict`` object not a ``list``.\n\nv3.0.6 (2010 Jan 25)\n====================\n\n- optimization: don't request ``paging_info`` unless required (and server support is available).\n\nv3.0.5 (2010 Dec 20)\n====================\n\n- officially remove support for old ``api3_preview`` controller.\n- :meth:`find`: allow requesting a specific page of results instead of returning them all at once.\n- add support for ``session_uuid`` parameter for communicating with a web browser session.\n\nv3.0.4 (2010 Nov 22)\n====================\n\n- fix for issue where :meth:`create` method was returning list type instead of dictionary.\n- support new style classes (thanks to Alex Schworer `@schworer <https://github.com/schworer>`_).\n\nv3.0.3 (2010 Nov 12)\n====================\n\n- add support for local files. Injects convenience info into returned hash for local file links.\n- add support for authentication through http proxy server.\n\nv3.0.2 (2010 Aug 27)\n====================\n\n- add :meth:`revive` method to revive deleted entities.\n\nv3.0.1 (2010 May 10)\n====================\n\n- :meth:`find`: default sorting to ascending, if not set (instead of requiring\n  ascending/descending).\n- :meth:`upload` and :meth:`upload_thumbnail`: pass auth info through.\n\nv3.0 (2010 May 5)\n=================\n\n- non-beta!\n- add :meth:`batch` method to do multiple :meth:`create`, :meth:`update`, and :meth:`delete`\n  operations in one request to the server (requires Shotgun server to be v1.13.0 or higher).\n\nv3.0b8 (2010 Feb 19)\n====================\n\n- fix python gotcha about using lists / dictionaries as defaults (`see this page for more info <http://www.ferg.org/projects/python_gotchas.html#contents_item_6>`_).\n- add :meth:`schema_read` method.\n\nv3.0b7 (2009 Nov 30)\n====================\n\n- add additional retries for connection errors and a catch for broken pipe exceptions.\n\nv3.0b6 (2009 Oct 20)\n====================\n\n- add support for ``HTTP/1.1 keepalive``, which greatly improves performance for multiple\n  requests.\n- add more helpful error if server entered is not ``http`` or ``https``\n- add support assigning tags to file uploads (for Shotgun version >= 1.10.6).\n\nv3.0b5 (2009 Sept 29)\n=====================\n\n- fixed deprecation warnings to raise ``Exception`` class for python 2.5.\n\nv3.0b4 (2009 July 3)\n====================\n\n- made :meth:`upload` and :meth:`upload_thumbnail` methods more backwards compatible.\n- changes to :meth:`find_one`: now defaults to no ``filter_operator``.\n\nv3.0b3 (2009 June 24)\n=====================\n\n- fixed :meth:`upload` and :meth:`upload_thumbnail` methods.\n- added :meth:`download_attachment` method.\n- added ``schema_*`` methods for accessing entities and fields.\n- added support for http proxy servers.\n- added ``__version__`` string.\n- removed ``RECORDS_PER_PAGE`` global (can just set ``records_per_page`` on the Shotgun object\n  after initializing it).\n- removed ``api_ver`` from the constructor, as this class is only designed to work with API v3.\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright (c) 2009-2011, Shotgun Software Inc\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n - Redistributions of source code must retain the above copyright notice, this\n   list of conditions and the following disclaimer.\n\n - Redistributions in binary form must reproduce the above copyright notice,\n   this list of conditions and the following disclaimer in the documentation\n   and/or other materials provided with the distribution.\n\n - Neither the name of the Shotgun Software Inc nor the names of its\n   contributors may be used to endorse or promote products derived from this\n   software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nPortions of code (xml-rpc client libs from standard python distro):\n\nCopyright (c) 1999-2002 by Secret Labs AB\nCopyright (c) 1999-2002 by Fredrik Lundh\n\nBy obtaining, using, and/or copying this software and/or its\nassociated documentation, you agree that you have read, understood,\nand will comply with the following terms and conditions:\n\nPermission to use, copy, modify, and distribute this software and\nits associated documentation for any purpose and without fee is\nhereby granted, provided that the above copyright notice appears in\nall copies, and that both that copyright notice and this permission\nnotice appear in supporting documentation, and that the name of\nSecret Labs AB or the author not be used in advertising or publicity\npertaining to distribution of the software without specific, written\nprior permission.\n\nSECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD\nTO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT-\nABILITY AND FITNESS.  IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR\nBE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY\nDAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,\nWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS\nACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE\nOF THIS SOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "[![Supported Python versions: 3.9, 3.10, 3.11, 3.13](https://img.shields.io/badge/Python-3.9_|_3.10_|_3.11_|_3.13-blue?logo=python&logoColor=f5f5f5)](https://www.python.org/ \"Supported Python versions\")\n[![Reference Documentation](http://img.shields.io/badge/Reference-documentation-blue.svg?logo=wikibooks&logoColor=f5f5f5)](http://developer.shotgridsoftware.com/python-api)\n\n[![Build Status](https://dev.azure.com/shotgun-ecosystem/Python%20API/_apis/build/status/shotgunsoftware.python-api?branchName=master)](https://dev.azure.com/shotgun-ecosystem/Python%20API/_build/latest?definitionId=108&branchName=master)\n[![Coverage Status](https://codecov.io/gh/shotgunsoftware/python-api/branch/master/graph/badge.svg)](https://codecov.io/gh/shotgunsoftware/python-api)\n\n# Flow Production Tracking Python API\n\nAutodesk provides a simple Python-based API for accessing Flow Production Tracking and integrating with other tools. This is the official API that is maintained by Autodesk (https://www.autodesk.com/support)\n\nThe latest version can always be found at http://github.com/shotgunsoftware/python-api\n\n## Documentation\nTutorials and detailed documentation about the Python API are available at http://developer.shotgridsoftware.com/python-api.\n\nSome useful direct links:\n\n* [Installing](http://developer.shotgridsoftware.com/python-api/installation.html)\n* [Tutorials](http://developer.shotgridsoftware.com/python-api/cookbook/tutorials.html)\n* [API Reference](http://developer.shotgridsoftware.com/python-api/reference.html)\n* [Data Types](http://developer.shotgridsoftware.com/python-api/reference.html#data-types)\n* [Filter Syntax](http://developer.shotgridsoftware.com/python-api/reference.html#filter-syntax)\n\n## Changelog\n\nYou can see the [full history of the Python API on the documentation site](http://developer.shotgridsoftware.com/python-api/changelog.html).\n\n\n## Tests\n\nIntegration and unit tests are provided.\n\n- All tests require:\n    - [pytest](https://docs.pytest.org/) and related plugins\n    - (Note: Running `pip install -r tests/requirements.txt` will install all required packages)\n- A `tests/config` file (you can copy an example from `tests/example_config`).\n- Tests can be run individually like this: `pytest tests/test_client.py`\n- To run all tests: `pytest`\n- To run tests with coverage: `pytest --cov shotgun_api3 --cov-report html`\n- `test_client` and `test_unit` use mock server interaction and do not require a Flow Production Tracking instance to be available (no modifications to `tests/config` are necessary).\n- `test_api` and `test_api_long` *do* require a Flow Production Tracking instance, with a script key available for the tests. The server and script user values must be supplied in the `tests/config` file. The tests will add test data to your server based on information in your config. This data will be manipulated by the tests, and should not be used for other purposes.\n"
  },
  {
    "path": "SECURITY.md",
    "content": "# Security Policy\n\n## Security\n\nAt Autodesk, we know that the security of your data is critical to your studio’s\noperation.\nAs the industry shifts to the cloud, Flow Production Tracking knows that security and service\nmodels are more important than ever.\n\nThe confidentiality, integrity, and availability of your content is at the top\nof our priority list.\nNot only do we have a team of Flow Production Tracking engineers dedicated to platform security\nand performance, we are also backed by Autodesk’s security team, also invests\nheavily in the security for broad range of industries and customers.\nWe constantly reassess, develop, and improve our risk management program because\nwe know that the landscape of security is ever-changing.\n\nIf you believe you have found a security vulnerability in any Flow Production Tracking-owned\nrepository, please report it to us as described below.\n\n\n## Reporting Security Issues\n\n**Please do not report security vulnerabilities through public GitHub issues.**\n\nInstead, please report them by sending a message to\n[Autodesk Trust Center](https://www.autodesk.com/trust/contact-us).\n\nPlease include as much information as you can provide such as locations,\nconfigurations, reproduction steps, exploit code, impact, etc.\n\n\n## Additional Information\n\nPlease check out the [Flow Production Tracking Security White Paper](https://help.autodesk.com/view/SGSUB/ENU/?guid=SG_Administrator_ar_general_security_ar_security_white_paper_html).\n"
  },
  {
    "path": "azure-pipelines-templates/run-tests.yml",
    "content": "# -----------------------------------------------------------------------------\n# Copyright (c) 2009-2021, Shotgun Software Inc.\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are met:\n#\n#  - Redistributions of source code must retain the above copyright notice, this\n#    list of conditions and the following disclaimer.\n#\n#  - Redistributions in binary form must reproduce the above copyright notice,\n#    this list of conditions and the following disclaimer in the documentation\n#    and/or other materials provided with the distribution.\n#\n#  - Neither the name of the Shotgun Software Inc nor the names of its\n#    contributors may be used to endorse or promote products derived from this\n#    software without specific prior written permission.\n#\n# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nparameters:\n  # Using the most formal way of defining parameters so we don't define a\n  # default value for mandatory parameters. This way, CI will fail if we forget\n  # to pass it when invoking the template.\n\n  - name: codecov_download_url\n    type: string\n\n  - name: os_name\n    type: string\n\n  - name: python_version\n    type: string\n\n  - name: vm_image\n    type: string\n\njobs:\n- job:\n  displayName: \"${{ parameters.os_name }} - Python ${{ parameters.python_version }}\"\n  pool:\n    vmImage: ${{ parameters.vm_image }}\n\n  variables:\n    group: sg-credentials\n\n  # These are the steps that will be executed inside each job.\n  steps:\n  # Specifies which version of Python we want to use.\n  # TODO: We should provide `githubToken` if we want to download a python release.\n  #       Otherwise we may hit the GitHub anonymous download limit.\n  - task: UsePythonVersion@0\n    inputs:\n      versionSpec: ${{ parameters.python_version }}\n\n  # Install all dependencies needed for running the tests. This command is good\n  # for all OSes\n  - task: Bash@3\n    displayName: Install dependencies\n    inputs:\n      targetType: inline\n      script: |\n        set -e\n        python -m pip install --upgrade pip\n        python -m pip install --upgrade setuptools wheel\n        python -m pip install --upgrade --requirement tests/requirements.txt\n      # Need to use the \"python -m\" prefix to make Windows happy.\n\n  # The {{}} syntax is meant for the the pre-processor of Azure pipeline. Every statement inside\n  # a {{}} block will be evaluated and substituted before the file is parsed to create the jobs.\n  # So here we're inserting an extra step if the template is being invoked for Windows.\n  - ${{ if eq(parameters.os_name, 'Windows') }}:\n    # On Windows, we need to update the certificates, the cert store is missing the newer one\n    # from Amazon like some clients experienced a while back. Who would have thought Microsoft\n    # would have been out of date! ;)\n    - powershell: |\n        $cert_url = \"https://www.amazontrust.com/repository/SFSRootCAG2.cer\"\n        $cert_file = New-TemporaryFile\n        Invoke-WebRequest -Uri $cert_url -UseBasicParsing -OutFile $cert_file.FullName\n        Import-Certificate -FilePath $cert_file.FullName -CertStoreLocation Cert:\\LocalMachine\\Root\n      displayName: Updating OS Certificates\n\n  # Runs the tests and generates both test report and code coverage\n  - task: Bash@3\n    displayName: Running tests\n    inputs:\n      targetType: inline\n      script: |\n        set -e\n        cp ./tests/example_config ./tests/config\n        python -m pytest \\\n          --cov \\\n          --cov-report xml:coverage.xml \\\n          --durations=0 \\\n          --nunit-xml=test-results.xml \\\n          --verbose \\\n    env:\n      # Tell Pytest that we're running in a CI environment\n      CI: 1\n\n      # Pass the values needed to authenticate with the Flow Production Tracking site and create some entities.\n      # Remember, on a pull request from a client or on forked repos, those variables\n      # will be empty!\n      SG_SERVER_URL: $(ci_site)\n      SG_SCRIPT_NAME: $(ci_site_script_name)\n      SG_API_KEY: $(ci_site_script_key)\n      # The unit tests manipulate the user and project during the tests, which can cause collisions,\n      # so sandbox each build variant.\n      # Ideally, we would use the agent name here. The problem is that the agent name is in a build\n      # variable, so we can't edit it's value through a ${{replace(a,b,c)}} expression, which are evaluated before\n      # build variables are available. Because of this, we need to find another way to generate a\n      # unique login. So instead, we'll use the the name of the platform and the python version,\n      # which should make it unique.\n      SG_HUMAN_LOGIN: $(python_api_human_login)-${{ parameters.os_name }}-${{ parameters.python_version }}\n      # This will give a user name like 'something macOS 2.7'\n      SG_HUMAN_NAME: $(python_api_human_name) ${{ parameters.os_name }} ${{ parameters.python_version }}\n      SG_HUMAN_PASSWORD: $(python_api_human_password)\n      # So, first, we need to make sure that two builds running at the same time do not manipulate\n      # the same entities, so we're sandboxing build nodes based on their name.\n      SG_PROJECT_NAME: Python API CI - $(Agent.Name)\n      # The entities created and then reused between tests assume that the same user is always\n      # manipulating them. Because different builds will be assigned different agents and therefore\n      # different projects, it means each project needs to have an entity specific to a given user.\n      # Again, this would have been a lot simpler if we could simply have had a login based on the\n      # agent name, but alas, the agent name has a space in it which needs to be replaced to something\n      # else and string substitution can't be made on build variables, only template parameters.\n      SG_ASSET_CODE: CI-$(python_api_human_login)-${{ parameters.os_name }}-${{ parameters.python_version }}\n      SG_VERSION_CODE: CI-$(python_api_human_login)-${{ parameters.os_name }}-${{ parameters.python_version }}\n      SG_SHOT_CODE: CI-$(python_api_human_login)-${{ parameters.os_name }}-${{ parameters.python_version }}\n      SG_TASK_CONTENT: CI-$(python_api_human_login)-${{ parameters.os_name }}-${{ parameters.python_version }}\n      SG_PLAYLIST_CODE: CI-$(python_api_human_login)-${{ parameters.os_name }}-${{ parameters.python_version }}\n\n  # Explicit call to PublishTestResults@2 and PublishCodeCoverageResults@2 here\n  # instead of relying on pytest-azurepipelines because pytest-azurepipelines\n  # does not seem to be maintained anymore and is still using earlier versions\n  # of the PublishTestResults and PublishCodeCoverageResults Azure Pipelines\n  # jobs.\n\n  - task: PublishTestResults@2\n    displayName: Publish test results\n    inputs:\n      failTaskOnFailureToPublishResults: true\n      failTaskOnMissingResultsFile: true\n      testResultsFiles: test-results.xml\n      testResultsFormat: NUnit\n      testRunTitle: \"${{ parameters.os_name }} - Python ${{ parameters.python_version }}\"\n    condition: succeededOrFailed()\n\n  - task: PublishCodeCoverageResults@2\n    displayName: Publish code coverage\n    inputs:\n      summaryFileLocation: coverage.xml\n      failIfCoverageEmpty: true\n\n  - task: Bash@3\n    displayName: Uploading coverage to Codecov.io\n    inputs:\n      targetType: inline\n      script: |\n        set -e\n        curl --remote-name --silent \"${{ parameters.codecov_download_url }}\"\n        chmod +x codecov\n        ./codecov  \\\n          --file coverage.xml \\\n          --flags \"${{ parameters.os_name }}\" \\\n          --flags \"Python-${{ parameters.python_version }}\" \\\n          --name \"Tested on ${{ parameters.os_name }} with Python ${{ parameters.python_version }}\" \\\n"
  },
  {
    "path": "azure-pipelines-templates/type_checking.yml",
    "content": "# Copyright (c) 2025, Shotgun Software Inc.\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are met:\n#\n#  - Redistributions of source code must retain the above copyright notice, this\n#    list of conditions and the following disclaimer.\n#\n#  - Redistributions in binary form must reproduce the above copyright notice,\n#    this list of conditions and the following disclaimer in the documentation\n#    and/or other materials provided with the distribution.\n#\n#  - Neither the name of the Shotgun Software Inc nor the names of its\n#    contributors may be used to endorse or promote products derived from this\n#    software without specific prior written permission.\n#\n# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\njobs:\n- job: type_checking\n  displayName: Type Checking (beta)\n  pool:\n    vmImage: 'ubuntu-latest'\n\n  steps:\n  - task: UsePythonVersion@0\n    inputs:\n      versionSpec: 3.9\n      addToPath: True\n      architecture: 'x64'\n\n  - script: |\n      pip install --upgrade pip setuptools wheel\n      pip install --upgrade mypy\n    displayName: Install dependencies\n\n  # Placeholder to future static type checking. For now we just run mypy and skip all known errors.\n  - bash: mypy shotgun_api3/shotgun.py --follow-imports skip --pretty --no-strict-optional --disable-error-code arg-type --disable-error-code assignment --disable-error-code return --disable-error-code return-value --disable-error-code attr-defined\n    displayName: Run type checking\n"
  },
  {
    "path": "azure-pipelines.yml",
    "content": "# -----------------------------------------------------------------------------\n# Copyright (c) 2009-2021, Shotgun Software Inc.\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are met:\n#\n#  - Redistributions of source code must retain the above copyright notice, this\n#    list of conditions and the following disclaimer.\n#\n#  - Redistributions in binary form must reproduce the above copyright notice,\n#    this list of conditions and the following disclaimer in the documentation\n#    and/or other materials provided with the distribution.\n#\n#  - Neither the name of the Shotgun Software Inc nor the names of its\n#    contributors may be used to endorse or promote products derived from this\n#    software without specific prior written permission.\n#\n# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nresources:\n  repositories:\n    - repository: templates\n      type: github\n      name: shotgunsoftware/tk-ci-tools\n      ref: refs/heads/master\n      endpoint: shotgunsoftware\n      # Despite using the \"tk-\" prefix, tk-ci-tools is not a Toolkit only tool.\n      # We use it to avoid duplicating and maintaining CI pipeline code.\n\n# We've stored some variables in Azure. They contain credentials\n# and are encrypted. They are also not available to clients.\n# This statement says which variable groups this repo requires.\n# We have two: one that can be shared by all repos that use CI\n# and another that is used just by the Python API, which creates\n# HumanUser's and as such need a password, which we can't\n# hardcode in the .yml files.\nvariables:\n  - group: sg-credentials\n\n# We want builds to trigger for 3 reasons:\n# - The master branch sees new commits\n# - Each PR should get rebuilt when commits are added to it.\ntrigger:\n  branches:\n    include:\n    - master\npr:\n  branches:\n    include:\n    - \"*\"\n\nparameters:\n  - name: python_versions\n    type: object\n    default:\n      - '3.9'\n      - '3.10'\n      - '3.11'\n      - '3.13'\n\n  - name: os_versions\n    type: object\n    default:\n      - name: Linux\n        vm_image: ubuntu-latest\n        codecov_download_url: https://uploader.codecov.io/latest/linux/codecov\n\n      - name: macOS\n        vm_image: macOS-latest\n        codecov_download_url: https://uploader.codecov.io/v0.7.3/macos/codecov\n        # macOS & codecov note:\n        # In Nov 2024 (SG-36700), we pinned macOS to codecov v0.7.3 because the\n        # macOS-latest Azure Pipelines agent is Intel (x86_64), but Codecov\n        # started shipping arm64-only binaries.\n        # When we will change the macOs image to a arm64 arch, we can use the\n        # \"latest\" version again.\n\n      - name: Windows\n        vm_image: windows-latest\n        codecov_download_url: https://uploader.codecov.io/latest/windows/codecov.exe\n\n# This here is the list of jobs we want to run for our build.\n# Jobs run in parallel.\njobs:\n- template: build-pipeline.yml@templates\n  parameters:\n    # Python API does not follow the exact same Python version lifecycle than\n    # Toolkit. So we prefer to control the test execution here instead.\n    has_unit_tests: false\n\n    has_ui_resources: false\n\n- template: azure-pipelines-templates/type_checking.yml\n\n- ${{ each os_version in parameters.os_versions }}:\n  - ${{ each python_version in parameters.python_versions }}:\n    - template: azure-pipelines-templates/run-tests.yml\n      parameters:\n        codecov_download_url: ${{ os_version.codecov_download_url }}\n        os_name: ${{ os_version.name }}\n        python_version: ${{ python_version }}\n        vm_image: ${{ os_version.vm_image }}\n"
  },
  {
    "path": "developer/README.md",
    "content": "\n# Updating HTTPLib2\n\nThe API comes with a copy of the `httplib2` inside the `shotgun_api3/lib` folder. To update the copy to a more recent version of the API, you can run the `update_httplib2.py` script at the root of this repository like this:\n\n    python update_httplib2.py vX.Y.Z\n\nwhere `vX.Y.Z` is a release found on `httplib2`'s [release page](https://github.com/httplib2/httplib2/releases).\n\n\n# Release process\n\n## Packaging up new release\n\n1) Update the Changelog in the `HISTORY.rst` file\n    - Add bullet points for any changes that have happened since the previous release. This may include changes you did not make so look at the commit history and make sure we don't miss anything. If you notice something was done that wasn't added to the changelog, hunt down that engineer and make them feel guilty for not doing so. This is a required step in making changes to the API.\n    - Try and match the language of previous change log messages. We want to keep a consistent voice.\n    - Make sure the date of the release matches today. We try and keep this TBD until we're ready to do a release so it's easy to catch that it needs to be updated.\n    - Make sure the version number is filled out and correct. We follow semantic versioning.\n2) Ensure any changes or additions to public methods are documented\n    - Ensure that doc strings are updated in the code itself to work with Sphinx and are correctly formatted.\n    - Examples are always good especially if this a new feature or method.\n    - Think about a new user to the API trying to figure out how to use the features you're documenting.\n3) Update the version value in `python-api/setup.py`  to match the version you are packaging. This controls what version users will get when installing via pip.\n4) Update the `__version__` value in `shotgun_api3/shotgun.py` to the version you're releasing. This identifies the current version within the API itself.\n5) Commit these changes in master with a commit message like `packaging for the vx.x.x release`.\n6) Create a tag based off of the master branch called `vx.x.x` to match the version number you're releasing.\n7) Push master and your tag to Github.\n8) Update the Releases page with your new release.\n    - The release should already be there from your tag but if not, create a new one.\n    - Add more detailed information regarding the changes in this release. This is a great place to add examples, and reasons for the change!\n\n## Letting the world know\nPost a message in the [Pipeline Community channel](https://community.shotgridsoftware.com/c/pipeline).\n\n## Prepare for the Next Dev Cycle\n1) Update the `__version__` value in `shotgun_api3/shotgun.py` to the next version number with `.dev` appended to it. For example, `v3.0.24.dev`\n2) Add a new section to the Changelog in the `HISTORY.rst` file with the next version number and a TBD date\n```\n    **v3.0.24 - TBD**\n       + TBD\n```\n3) Commit the changes to master with a commit message like `Bump version to v3.0.24.dev`\n4) Push master to Github\n"
  },
  {
    "path": "docs/advanced/iron_python.rst",
    "content": "**********\nIronPython\n**********\n\nWe do not test against IronPython and cannot be sure that we won't introduce breaking changes or\nthat we will be compatible with future releases of IronPython. While we don't officially support\nIronPython, we certainly will do our best to figure out any issues that come up while using it and\nhow to avoid them.\n\n\nLegacy Information\n------------------\n\nThis following information is provided for historical purposes only.\n\nAs of July 9, 2015 you can look at this fork of the repo to see what changes were needed as of that\ndate to make things work. The original fork was as of v3.0.20 of the API. Big thanks to our awesome\nclients Pixomondo for making their work public and letting us refer to it:\n\nhttps://github.com/Pixomondo/python-api/tree/v3.0.20.ipy\n\nv3.0.20 can be used with IronPython with a little bit of added work:\n\n- The Python API uses the zlib module to handle decompressing the gzipped response from the server.\n  There's no built-in zlib module in IronPython, but there's a potential solution from Jeff Hardy at\n  https://bitbucket.org/jdhardy/ironpythonzlib/src/. And the blog post about it here\n  http://blog.jdhardy.ca/2008/12/solving-zlib-problem-ironpythonzlib.html\n\n- If you encounter ``LookupError: unknown encoding: idna``, you can force utf-8 by changing\n  iri2uri.py ~ln 71 from ``authority = authority.encode('idna')`` to\n  ``authority = authority.encode('utf-8')``\n\n- If you encounter an SSL error such as ``SSL3_READ_BYTES:sslv3 alert handshake failure``, then the\n  lower level SSL library backing python's network infrastructure is attempting to connect to our\n  servers via SSLv3, which is no longer supported. You can use the code from this gist to force the\n  SSL connections to use a specific protocol. The forked repo linked above has an example of how to\n  do that to force the use of TLSv1.\n"
  },
  {
    "path": "docs/advanced/packaging.rst",
    "content": ".. _packaging:\n\n################################################\nPackaging an application with py2app (or py2exe)\n################################################\n\nYou can create standalone applications with Python scripts by using\n`py2app <https://pythonhosted.org/py2app/>`_ on OS X or `py2exe <http://www.py2exe.org/>`_ on\nWindows. This is often done to more easily distribute applications that have a GUI based on\ntoolkits like Tk, Qt or others.\n\nThere are caveats you need to be aware of when creating such an app.\n\n********************************\nHTTPS Validation and cacerts.txt\n********************************\nWhen creating the connection to Flow Production Tracking, a file is used to validate the Flow Production Tracking\ncertificate. This file is located at ``shotgun_api3/lib/httplib2/cacerts.txt``. Because this file is not a Python\nfile imported by your application, py2app will not know to include it in your package, it will\nneed to be explicitly specified in your ``setup.py`` file (edit the path based on the location\nwhere your ``shotgun_api3`` package is located)::\n\n    DATA_FILES = [\n        ('shotgun_api3', ['/shotgun/src/python-api/shotgun_api3/lib/httplib2/cacerts.txt'])\n    ]\n\nOnce you create your py2app package its contents should include two files (among others) in the\nfollowing structure::\n\n    ./Contents/Resources/shotgun_api3/cacerts.txt\n    ./Contents/Resources/my_script.py\n\nWhere in ``my_script.py`` you can access the ``cacerts.txt`` file using a relative path to pass it\ninto the Flow Production Tracking connection's constructor::\n\n    ca_certs = os.path.join(os.path.dirname(__file__), 'shotgun_api3', 'cacerts.txt')\n    sg = shotgun_api3.Shotgun('https://my-site.shotgrid.autodesk.com', 'script_name', 'script_key',\n                              ca_certs=ca_certs)\n\nThe process for py2exe should be similar.\n"
  },
  {
    "path": "docs/advanced.rst",
    "content": ".. _advanced_topics:\n\n###############\nAdvanced Topics\n###############\n\nBelow are some more advanced topics regarding usage of the Python API. If you would like to see\nsomething that's missing here, please feel free to contact support at https://www.autodesk.com/support\nwith your suggestions and we'll get it added!\n\n.. toctree::\n    :maxdepth: 1\n\n    advanced/packaging\n    advanced/iron_python\n    changelog\n"
  },
  {
    "path": "docs/authentication.rst",
    "content": "##############\nAuthentication\n##############\n\nIn order to communicate with your server via the API, you must provide valid authentication credentials. The API allows you to authenticate with user-based, or script-based credentials.\n\n*************************\nUser-based Authentication\n*************************\nWhen authenticating as a user, you provide your normal login and password when instantiating your :class:`shotgun_api3.Shotgun` object. The actions performed by this instance will be limited to your permission level just as they are in the  web application. ::\n\n    sg = shotgun_api3.Shotgun(\"https://my-site.shotgrid.autodesk.com\",\n                              login=\"rhendriks\",\n                              password=\"c0mPre$Hi0n\")\n\n\n***************************\nScript-based Authentication\n***************************\nIn order to authenticate as a script, your script must be :ref:`registered with Flow Production Tracking and have a valid API key <setting_up_shotgrid>`. When creating your :class:`shotgun_api3.Shotgun` object, provide the ``script_name`` and ``api_key``.::\n\n    sg = shotgun_api3.Shotgun(\"https://my-site.shotgrid.autodesk.com\",\n                              script_name=\"compress\",\n                              api_key=\"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\")\n\n.. note:: When using script-based authentication, we **strongly** recommend you register each script separately with Flow Production Tracking and have individual API keys for each. This allows you to track down each of your scripts and the actions they are performing much more accurately in the event logs.\n\n\n.. _setting_up_shotgrid:\n\nAdding Script Users\n===================\nIf you'll be using script-based authentication, you need to create a Script entity in Flow Production Tracking. To create a new key, click the + button on the \"Scripts\" page in the Admin section and give your script a useful name. It's a good idea to add any other relevant information that be be helpful to your other friendly Flow Production Tracking users such as a description of what the script does that is using this key, the email address of the maintainer, etc.:\n\n.. image:: images/scripts_page.png\n\nOnce you save your new Script entity, Flow Production Tracking will automatically generate an application key which will act as the script's password. The key will look something like this: ``0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef``.\n\nWhy have different application keys for different scripts?\n==========================================================\nWe recommend you create a new Script entity (and application key) for each script that is using script-based authentication so you can accurately log what scripts are doing what in case one of them causes problems. This will also allow you to better see what scripts are performing what actions in the EventLog. We've found that even though you may *think* you'll probably never need to know, the extra 2 minutes of setup now can prevent hours of headache in the future.\n\nEvent Logging\n=============\nBy default, events generated by scripts using an script-based authentication are logged in Flow Production Tracking's event log. You can turn this off by un-checking the \"Generate Events\" checkbox either in the script detail page or from the main Scripts admin page in Flow Production Tracking.\n\n.. note:: Turning off event logging will also prevent any email notifications from being triggered by your scripts since the email notifier relies on the event log to find events to notify for.\n\nScripts using user-based authentication will generate events similarly to if you were performing the same actions in the Flow Production Tracking web application, though there is some additional metadata stored in the ``EventLogEntry`` that identifies the event as created from a script acting on behalf of the user.\n\nWhy would you want to turn event logging off for scripts?\n---------------------------------------------------------\nIt is an optimization that is not used often, but some users have integration scripts that are pushing data into Flow Production Tracking just for reference, like publishes from their asset management system. This publish data is never changed later, so the data itself has the entire history, and the events would just clutter the event log. The event log can grow very large. So if you have no need to audit the history of what your script does, and it's generating an large amount of event log entries, you may find it's not necessary to create these events.\n\n***********\nPermissions\n***********\nUsers and scripts are both bound by the restrictions of their permission role in Flow Production Tracking. The permission role is assigned by the **Permission Role** field for each entity type.\n\nFor Scripts, the default permission role is \"API Admin User\" which allows full access to create, update, and delete entities and fields, including editing the \"date created\" audit field and creating event log entries. If you have other permission roles for ApiUsers, you can set the default role that will be assigned when a new script is created, in your Flow Production Tracking site preferences.\n\nWhen using user-based authentication in your script, it will be bound by the permission role assigned to you in Flow Production Tracking. For example, if you don't have access to edit the status field on Shots, your script won't be able to either. Attempting to perform actions that are prohibited by permissions will raise an appropriate exception.\n\n.. seealso:: `Permissions Documentation <https://help.autodesk.com/view/SGSUB/ENU/?guid=SG_Administrator_ar_site_configuration_ar_permissions_html>`_\n"
  },
  {
    "path": "docs/changelog.rst",
    "content": ".. currentmodule:: shotgun_api3.shotgun.Shotgun\n\n.. include:: ../HISTORY.rst\n"
  },
  {
    "path": "docs/cookbook/attachments.rst",
    "content": ".. _attachments:\n\n################################\nDetails About Working With Files\n################################\n\nThe Flow Production Tracking web application stores Files as Attachment entities. You can see these on a Files page,\nor a Files tab on a detail page, for example. You can access Attachments via the API to create and\nmodify uploaded files, url links, and local files, and link them to other entities (Shots,\nVersions, etc). This entity works a lot like other entity types within Flow Production Tracking with a few\nexceptions which are detailed below.\n\n.. note::\n    If you are simply looking for information about how to upload and link things in Flow Production Tracking, this\n    doc is not for you. Instead look at the :meth:`~shotgun_api3.Shotgun.upload` and\n    :meth:`~shotgun_api3.Shotgun.upload_thumbnail` methods.\n\n    This doc describes the detailed structure of the Attachment entities that represent files\n    in Flow Production Tracking and how to interact with them. If that sounds cool too, then read on!\n\n.. versionadded:: 3.0.3\n\n*****************\nDefault structure\n*****************\nThe following is a list of the default fields that Flow Production Tracking creates for Attachments. Your server\ninstance may look slightly different depending on your own customizations. Many of these fields are\noptional and some are automatically filled in. These exceptions are listed below in the\ndescriptions of each field.\n\n- **description** (:obj:`str`):\n    Optional field to provide descriptive text about the file.\n\n- **this_file** (:obj:`dict`):\n     The actual file reference. Within the dictionary is a ``link_type`` key which designates the\n     Attachment as an uploaded file, a url link, or a local file. There are additional keys\n     returned for :ref:`local_files`. You cannot modify this field after you have created an\n     Attachment. See below for examples of this field.\n\n- **filename** (:obj:`str`):\n    For uploaded files only. This is automatically assigned when the file is uploaded and stores\n    the filename of the file.\n\n- **file_size** (:obj:`int`):\n    For uploaded files only. This is automatically assigned when the file is uploaded and stores\n    the size of the file in bytes.\n\n- **id** (:obj:`int`):\n    The internal Flow Production Tracking id for this Attachment entity.\n\n- **attachment_links** (:obj:`list`):\n    A list of entity dictionaries used for linking Attachments to multiple entities.\n\n- **open_notes** (:obj:`list`):\n    A List of Note entities linked to the current Attachment that have a status that does not\n    equal 'clsd'. *Read-only*\n\n- **open_notes_count** (:obj:`int`):\n    An integer count of the list of Note entities linked to the current Attachment that have a\n    status that does not equal 'clsd'. *(Read-only)*\n\n- **project** (:obj:`dict`):\n    *(Required)* The Project entity that this Attachment belongs to. This must be assigned when\n    creating an Attachment.\n\n- **attachment_reference_links** (:obj:`list`):\n    Similar to ``attachment_links`` but used specifically for linking files to multiple entities as\n    reference.\n\n- **sg_status_list** (:obj:`str`):\n    Status value returned as the short code.\n\n- **tag_list** (:obj:`list`):\n    List of tags (as strings) that are currently assigned to the Attachment.\n\n- **image** (:obj:`str`):\n    The url location of the thumbnail image assigned to this Attachment. For uploads, Flow Production Tracking\n    automatically tries to create a thumbnail from the file.\n    See :ref:`interpreting_image_field_strings`. Alternatively, you can assign your\n    own thumbnail to an Attachment using the :meth:`~shotgun_api3.Shotgun.upload_thumbnail` method.\n\n- **sg_type** (:obj:`str`):\n    An optional field for designating different types of Attachments\n\n- **processing_status** (:obj:`str`):\n    Reflects the status of the attachment (File entity).\n    When processing the thumbnail, this field is set to ‘Thumbnail Pending’.\n\n\nFile type structures (``this_file``)\n====================================\n\nDepending on the type of file the Attachment entity is representing, the value of ``this_file``\nwill vary.\n\n- **Uploads**\n    Designated by ``link_type: 'upload'``, this represents a file that was uploaded to Flow Production Tracking.\n    Uploading files to Flow Production Tracking can be done using the :meth:`~shotgun_api3.Shotgun.upload` method.\n    You cannot create an Attachment with an uploaded file directly.\n\n    ::\n\n      {'content_type': 'image/jpeg',\n       'link_type': 'upload',\n       'name': 'western1FULL.jpg',\n       'url': 'https://my-site.shotgrid.autodesk.com/file_serve/attachment/538'}\n\n- **Web links**\n    Designated by ``link_type: 'web'``, this is represents a url link. Examples include an\n    ``http://`` link to another server or a custom protocol used to launch a local application\n    like ``rvlink://`` or ``cinesync://``\n    ::\n\n      {'content_type': None,\n       'link_type': 'web',\n       'name': 'Join GUN12158',\n       'url': 'cinesync://session/GUN12158'}\n\n- **Local Files**\n    Designated by ``link_type: 'local'``, this is represents a local file link. Additional keys\n    are provided in order to give access to the relative path information on other platforms.\n\n    .. seealso:: :ref:`local_files`\n\n    ::\n\n      {\n        'content_type': 'video/quicktime',\n        'link_type': 'local',\n        'local_path': '/Users/kp/Movies/testing/test_movie_002.mov',\n        'local_path_linux': '/home/users/macusers/kp/Movies/testing/test_movie_002.mov',\n        'local_path_mac': '/Users/kp/Movies/testing/test_movie_002.mov',\n        'local_path_windows': 'M:\\\\macusers\\\\kp\\\\Movies\\\\testing\\\\test_movie_002.mov',\n        'local_storage': {\n          'id': 1,\n          'name': 'Dailies Directories',\n          'type': 'LocalStorage',\n        },\n        'name': 'my_test_movie.mov',\n        'relative_path': 'testing/test_movie_002.mov',\n        'url': 'file:///Users/kp/Movies/testing/test_movie_002.mov',\n      }\n\n\n********************\nCreating Attachments\n********************\n\nWeb Links\n=========\n::\n\n    myurl = {\n      'url': 'http://apple.com/itunes',\n      'name': 'Apple: iTunes'\n    }\n    data = {\n        'this_file': myurl,\n        'project': {'type':'Project','id':64}\n    }\n    result = sg.create('Attachment', data)\n\n\nUploads\n=======\nUploads cannot be created directly on Attachments. Instead, you need to use the\n:meth:`~shotgun_api3.Shotgun.upload` method.\n\nMake sure to have retries for file uploads. Failures when uploading will occasionally happen. When\nit does, immediately retrying to upload usually works.\n\n\nLocal Files\n===========\nSee :ref:`creating_local_files`.\n\n********************\nUpdating Attachments\n********************\nYou cannot modify the ``this_file`` field after you create an Attachment. If you need to provide a\ndifferent file, you will have to create a new Attachment entity. Otherwise, the process for\nupdating Attachments is exactly like updating other entity types in Flow Production Tracking and is the same for all\nAttachment types. See :meth:`~shotgun_api3.Shotgun.update` for more info.\n\n\n********************\nDeleting Attachments\n********************\nThe process of deleting an Attachment is just like other entities in Flow Production Tracking. See\n:meth:`~shotgun_api3.Shotgun.delete` for more info.\n\n.. _local_files:\n\n*****************************\nWorking With Local File Types\n*****************************\n\nWe added support for linking to local files in the UI in Flow Production Tracking Server v2.1. This doc covers how\nto work with these local file links using the API.\n\nRequirements\n============\n\n- Python API v3.0.3+\n- Flow Production Tracking Server v2.1.10+\n\nStructure of Local File Values\n==============================\n\nThere is a key in the dictionary that represents file/link fields called ``link_type`` which can be\none of ``local``, ``upload``, ``web``. This is used to determine what type of link the field value\ncontains. For local files this value is always ``local`` and there are additional keys that\nare available:\n\n- **content_type** (:obj:`str`):\n    The mime-type of the associated local file. This is assigned\n    automatically using a best-guess based on the file extension. You can override this by setting\n    this explicitly.\n\n- **link_type** (:obj:`str`) *read-only*:\n    Always 'local' for local files.\n\n- **name** (:obj:`str`):\n    the display name of the local file. This is set to the filename by\n    default but can be overridden by setting this explicitly.\n\n- **local_path** (:obj:`str`):\n    The full path to the file on the current platform. The Python API tries to determine the\n    platform it is currently running on and then copies the value from the corresponding key above\n    to this field for convenience.\n\n- **local_path_linux** (:obj:`str`) *read-only*:\n    Full path to file on Linux as defined by the LocalStorage (or ``None`` if no Linux path is set)\n\n- **local_path_mac** (:obj:`str`) *read-only*:\n    Full path to file on Mac OS X as defined by the LocalStorage (or ``None`` if no Mac path is set)\n\n- **local_path_windows** (:obj:`str`) *read-only*:\n    Full path to file on Windows as defined by the LocalStorage (or ``None`` if no Windows path\n    is set)\n\n- **local_storage** (:obj:`dict`) *read-only*:\n    A dictionary representing which LocalStorage entity is applied for this local file link.\n\n- **relative_path** (:obj:`str`) *read-only*:\n    The path to the file relative to the ``local_storage`` root.\n\n- **url** (:obj:`str`) *read-only*:\n    A file URI (``file://``) path provided for convenience pointing to the value in the ``local_path``\n\nReading Local File Fields\n=========================\n\n::\n\n    fields = ['sg_uploaded_movie']\n    result = sg.find('Version', [['id', 'is', 123]], fields)\n\nReturns::\n\n    {\n        'id': 123,\n        'sg_uploaded_movie': {\n            'content_type': None,\n            'link_type': 'local',\n            'local_path': '/Users/kp/Movies/testing/test_movie_001_.mov',\n            'local_path_linux': '/home/users/macusers/kp/Movies/testing/test_movie_001_.mov',\n            'local_path_mac': '/Users/kp/Movies/testing/test_movie_001_.mov',\n            'local_path_windows': 'M:\\\\macusers\\\\kp\\\\Movies\\\\testing\\\\test_movie_001_.mov',\n            'local_storage': {\n                'id': 1,\n                'name': 'Dailies Directories',\n                'type': 'LocalStorage',\n            },\n            'relative_path': 'testing/test_movie_001_.mov',\n            'name': 'my_test_movie.mov',\n            'url': 'file:///Users/kp/Movies/testing/test_movie_001_.mov',\n        },\n        'type': 'Version',\n    }\n\n.. note::\n    When viewing results that include file/link fields with local file link values, all of the\n    keys will be returned regardless of whether there are values in them. So in the above example,\n    if there was no Windows path set for the local storage, ``local_path_windows`` would be\n    ``None``.\n\n.. _creating_local_files:\n\nCreating & Updating Local file Fields\n=====================================\n\nWhen setting a file/link field value to a local file, only the ``local_path`` is mandatory. Flow Production Tracking\nwill automatically select the appropriate matching local storage for your file based on the path.\nYou can optionally specify the ``name`` and ``content_type`` fields if you wish to override their\ndefaults. Any other keys that are provided will be ignored.\n\n* **content_type** :obj:`str`:\n    Optionally set the mime-type of the associated local file. This is assigned automatically\n    using a best-guess based on the file extension.\n\n* **name** :obj:`str`:\n    Optional display name of the local file. This is set to the filename by default.\n\n* **local_path** :obj:`str`:\n    The full local path to the file. Flow Production Tracking will find the ``LocalStorage``\n    that has the most specific match to this path and automatically assign that LocalStorage to\n    the file.\n    Alternative to ``relative_path``\n\n* **local_storage** :obj:`dict`:\n    The reference to an existing ``LocalStorage``.\n    Must contain ``type: LocalStorage`` plus either an ``id`` or a ``name``\n\n* **relative_path** :obj:`str`:\n    The path to the file relative ``local_storage`` root.\n    Requires ``local_storage``\n    Only accepting slash ``/`` separated path. Does not accept Windows path.\n    Alternative to ``local_path``\n\nExample 1: Using ``local_path``\n-------------------------------\n\n::\n\n    result = sg.update(\n        'Version',\n        123,\n        {\n            'sg_uploaded_movie': {\n                'local_path': '/Users/kp/Movies/testing/test_movie_002.mov',\n                'name': 'Better Movie',\n            }\n        )\n\nReturns::\n\n    {\n        'id':123,\n        'sg_uploaded_movie': {\n            'content_type': 'video/quicktime',\n            'link_type': 'local',\n            'name': 'my_test_movie.mov',\n            'local_path': '/Users/kp/Movies/testing/test_movie_002.mov'\n            'local_path_linux': '/home/users/macusers/kp/Movies/testing/test_movie_002.mov'\n            'local_path_mac': '/Users/kp/Movies/testing/test_movie_002.mov'\n            'local_path_windows': 'M:\\\\macusers\\kp\\Movies\\testing\\test_movie_002.mov'\n            'local_storage': {\n                'id': 1,\n                'name': 'Dailies Directories',\n                'type': 'LocalStorage'\n            },\n            'relative_path': 'testing/test_movie_002.mov',\n            'url': 'file:///Users/kp/Movies/testing/test_movie_002.mov',\n        },\n        'type': 'Version',\n    }\n\nThe ``content_type`` was assigned a best-guess value based on the file extension. Flow Production Tracking selected\nthe most appropriate specific LocalStorage match and assigned it to local_storage automatically.\n\n\nExample 2: Using ``relative_path``\n----------------------------------\n\n::\n\n    result = sg.update(\n        'Version',\n        123,\n        {\n            'sg_uploaded_movie': {\n                'local_storage': {\n                    'type': 'LocalStorage',\n                    'name': 'Dailies Directories',\n                },\n                'relative_path': 'testing/test_movie_002.mov',\n            }\n        )\n\nReturns::\n\n    {\n        'id':123,\n        'sg_uploaded_movie': {\n            'content_type': 'video/quicktime',\n            'link_type': 'local',\n            'name': 'my_test_movie.mov',\n            'local_path': '/Users/kp/Movies/testing/test_movie_002.mov',\n            'local_path_linux': '/home/users/macusers/kp/Movies/testing/test_movie_002.mov',\n            'local_path_mac': '/Users/kp/Movies/testing/test_movie_002.mov',\n            'local_path_windows': 'M:\\\\macusers\\kp\\Movies\\testing\\test_movie_002.mov',\n            'local_storage': {\n                'id': 1,\n                'name': 'Dailies Directories',\n                'type': 'LocalStorage'\n            },\n            'relative_path': 'testing/test_movie_002.mov',\n            'url': 'file:///Users/kp/Movies/testing/test_movie_002.mov'\n        },\n        'type': 'Version',\n    }\n\n\nUn-setting local file field values\n==================================\n\nRemoving a a local file field value is simple. Just set the value to ``None``::\n\n    data = {'sg_uploaded_movie': None}\n    result = sg.update('Version', 123, data)\n\nReturns::\n\n    {'id':123,\n     'sg_uploaded_movie': None,\n     'type': 'Version'}]\n"
  },
  {
    "path": "docs/cookbook/examples/ami_handler.rst",
    "content": ".. _ami_handler:\n\n###############################\nHandling Action Menu Item Calls\n###############################\n\nThis is an example ActionMenu Python class to handle the ``GET`` request sent from an\nActionMenuItem. It doesn't manage dispatching custom protocols but rather takes the arguments\nfrom any ``GET`` data and parses them into the easily accessible and correctly typed instance\nvariables for your Python scripts.\n\nAvailable as a Gist at https://gist.github.com/3253287\n\n.. seealso::\n    Our `support site has more information about Action Menu Items\n    <https://developer.shotgridsoftware.com/python-api/cookbook/examples/ami_handler.html>`_.\n\n************\nGET vs. POST\n************\n\nAction Menu Items that open a url via `http` or `https` to another web server send their data\nvia ``POST``. If you're using a custom protocol the data is sent via ``GET``.\n\n.. note::\n    Browsers limit the length of a ``GET`` request. If you exceed this limit by attempting to\n    select a lot of rows and launch your custom protocol, you may encounter\n    \"Failed to load resource\" errors in your console.\n\n.. seealso::\n    This `Stack Overflow article \"What is the maximum length of a URL in different browsers?\"\n    <http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers>`_\n\n::\n\n    #!/usr/bin/env python\n    # encoding: utf-8\n\n    # ---------------------------------------------------------------------------------------------\n    # Description\n    # ---------------------------------------------------------------------------------------------\n    \"\"\"\n    The values sent by the Action Menu Item are in the form of a GET request that is similar to the\n    format: myCoolProtocol://doSomethingCool?user_id=24&user_login=shotgun&title=All%20Versions&...\n\n    In a more human-readable state that would translate to something like this:\n    {\n        'project_name': 'Demo Project',\n         'user_id': '24',\n         'title': 'All Versions',\n         'user_login': 'shotgun',\n         'sort_column': 'created_at',\n         'entity_type': 'Version',\n         'cols': 'created_at',\n         'ids': '5,2',\n         'selected_ids': '2,5',\n         'sort_direction': 'desc',\n         'project_id': '4',\n         'session_uuid': 'd8592bd6-fc41-11e1-b2c5-000c297a5f50',\n         'column_display_names':\n        [\n            'Version Name',\n             'Thumbnail',\n             'Link',\n             'Artist',\n             'Description',\n             'Status',\n             'Path to frames',\n             'QT',\n             'Date Created'\n        ]\n    }\n\n    This simple class parses the url into easy to access types variables from the parameters,\n    action, and protocol sections of the url. This example url\n    myCoolProtocol://doSomethingCool?user_id=123&user_login=miled&title=All%20Versions&...\n    would be parsed like this:\n\n        (string) protocol: myCoolProtocol\n        (string) action: doSomethingCool\n        (dict)   params: user_id=123&user_login=miled&title=All%20Versions&...\n\n    The parameters variable will be returned as a dictionary of string key/value pairs. Here's\n    how to instantiate:\n\n      sa = ShotgunAction(sys.argv[1]) # sys.argv[1]\n\n      sa.params['user_login'] # returns 'miled'\n      sa.params['user_id'] # returns 123\n      sa.protocol # returns 'myCoolProtocol'\n    \"\"\"\n\n\n    # ---------------------------------------------------------------------------------------------\n    # Imports\n    # ---------------------------------------------------------------------------------------------\n    import sys, os\n    import logging as logger\n\n    # ---------------------------------------------------------------------------------------------\n    # Variables\n    # ---------------------------------------------------------------------------------------------\n    # location to write logfile for this script\n    # logging is a bit of overkill for this class, but can still be useful.\n    logfile = os.path.dirname(sys.argv[0]) + \"/shotgun_action.log\"\n\n\n    # ----------------------------------------------\n    # Generic ShotgunAction Exception Class\n    # ----------------------------------------------\n    class ShotgunActionException(Exception):\n        pass\n\n\n    # ----------------------------------------------\n    # ShotgunAction Class to manage ActionMenuItem call\n    # ----------------------------------------------\n    class ShotgunAction:\n        def __init__(self, url):\n            self.logger = self._init_log(logfile)\n            self.url = url\n            self.protocol, self.action, self.params = self._parse_url()\n\n            # entity type that the page was displaying\n            self.entity_type = self.params[\"entity_type\"]\n\n            # Project info (if the ActionMenuItem was launched from a page not belonging\n            # to a Project (Global Page, My Page, etc.), this will be blank\n            if \"project_id\" in self.params:\n                self.project = {\n                    \"id\": int(self.params[\"project_id\"]),\n                    \"name\": self.params[\"project_name\"],\n                }\n            else:\n                self.project = None\n\n            # Internal column names currently displayed on the page\n            self.columns = self.params[\"cols\"]\n\n            # Human readable names of the columns currently displayed on the page\n            self.column_display_names = self.params[\"column_display_names\"]\n\n            # All ids of the entities returned by the query (not just those visible on the page)\n            self.ids = []\n            if len(self.params[\"ids\"]) > 0:\n                ids = self.params[\"ids\"].split(\",\")\n                self.ids = [int(id) for id in ids]\n\n            # All ids of the entities returned by the query in filter format ready\n            # to use in a find() query\n            self.ids_filter = self._convert_ids_to_filter(self.ids)\n\n            # ids of entities that were currently selected\n            self.selected_ids = []\n            if len(self.params[\"selected_ids\"]) > 0:\n                sids = self.params[\"selected_ids\"].split(\",\")\n                self.selected_ids = [int(id) for id in sids]\n\n            # All selected ids of the entities returned by the query in filter format ready\n            # to use in a find() query\n            self.selected_ids_filter = self._convert_ids_to_filter(self.selected_ids)\n\n            # sort values for the page\n            # (we don't allow no sort anymore, but not sure if there's legacy here)\n            if \"sort_column\" in self.params:\n                self.sort = {\n                    \"column\": self.params[\"sort_column\"],\n                    \"direction\": self.params[\"sort_direction\"],\n                }\n            else:\n                self.sort = None\n\n            # title of the page\n            self.title = self.params[\"title\"]\n\n            # user info who launched the ActionMenuItem\n            self.user = {\"id\": self.params[\"user_id\"], \"login\": self.params[\"user_login\"]}\n\n            # session_uuid\n            self.session_uuid = self.params[\"session_uuid\"]\n\n        # ----------------------------------------------\n        # Set up logging\n        # ----------------------------------------------\n        def _init_log(self, filename=\"shotgun_action.log\"):\n            try:\n                logger.basicConfig(\n                    level=logger.DEBUG,\n                    format=\"%(asctime)s %(levelname)-8s %(message)s\",\n                    datefmt=\"%Y-%b-%d %H:%M:%S\",\n                    filename=filename,\n                    filemode=\"w+\",\n                )\n            except IOError as e:\n                raise ShotgunActionException(\"Unable to open logfile for writing: %s\" % e)\n            logger.info(\"ShotgunAction logging started.\")\n            return logger\n\n            # ----------------------------------------------\n\n        # Parse ActionMenuItem call into protocol, action and params\n        # ----------------------------------------------\n        def _parse_url(self):\n            logger.info(\"Parsing full url received: %s\" % self.url)\n\n            # get the protocol used\n            protocol, path = self.url.split(\":\", 1)\n            logger.info(\"protocol: %s\" % protocol)\n\n            # extract the action\n            action, params = path.split(\"?\", 1)\n            action = action.strip(\"/\")\n            logger.info(\"action: %s\" % action)\n\n            # extract the parameters\n            # 'column_display_names' and 'cols' occurs once for each column displayed so we store it as a list\n            params = params.split(\"&\")\n            p = {\"column_display_names\": [], \"cols\": []}\n            for arg in params:\n                key, value = map(urllib.parse.unquote, arg.split(\"=\", 1))\n                if key == \"column_display_names\" or key == \"cols\":\n                    p[key].append(value)\n                else:\n                    p[key] = value\n            params = p\n            logger.info(\"params: %s\" % params)\n            return (protocol, action, params)\n\n        # ----------------------------------------------\n        # Convert IDs to filter format to us in find() queries\n        # ----------------------------------------------\n        def _convert_ids_to_filter(self, ids):\n            filter = []\n            for id in ids:\n                filter.append([\"id\", \"is\", id])\n            logger.debug(\"parsed ids into: %s\" % filter)\n            return filter\n\n\n    # ----------------------------------------------\n    # Main Block\n    # ----------------------------------------------\n    if __name__ == \"__main__\":\n        try:\n            sa = ShotgunAction(sys.argv[1])\n            logger.info(\"ShotgunAction: Firing... %s\" % (sys.argv[1]))\n        except IndexError as e:\n            raise ShotgunActionException(\"Missing GET arguments\")\n        logger.info(\"ShotgunAction process finished.\")\n"
  },
  {
    "path": "docs/cookbook/examples/ami_version_packager.rst",
    "content": ".. _ami_version_packager:\n\n########################################################\nUsing an ActionMenuItem to Package Versions for a Client\n########################################################\n\nThis is an example script to demonstrate how you can use an ActionMenuItem to launch a local\nscript to package up files for a client. It performs the following:\n\n-  Downloads Attachments from a specified field for all selected entities.\n-  Creates an archive.\n-  Copies the archive to a specified directory.\n\nIt is intended to be used in conjunction with the script dicussed in :ref:`ami_handler`.\n\n::\n\n    #!/usr/bin/env python\n    # encoding: utf-8\n    \"\"\"\n    version_packager.py\n\n    This example script is meant to be run from an ActionMenuItem in Flow Production Tracking. The menu item uses a custom\n    protocol in order to launch this script, and is followed by the action 'package4client'. So the full\n    url would be something like launchme://package4client?.... See:\n    https://developer.shotgridsoftware.com/python-api/cookbook/examples/ami_handler.html\n\n    It uses the example ActionMenu Python class also located in our docs for parsing the ActionMenuItem\n    POST variables. For more information about it and accessing the variables in the ActionMenuItem POST request,\n    See: http://developer.shotgridsoftware.com/python-api/examples/ami_handler\n\n    The purpose of this script is to download attachment files from Flow Production Tracking, create an archive of them\n    and copy them to a specified directory. You can invoke it with the following minimal example to connect\n    to Flow Production Tracking, download any file that exists in the specified field ('sg_qt') for each selected_id passed from the\n    ActionMenu. Then it will create a single archive of the files and move it to the specified directory\n    ('/path/where/i/want/to/put/the/archive/'). The archive is named with the Project Name, timestamp, and user\n    login who ran the ActionMenuItem ('Demo_Project_2010-04-29-172210_kp.tar.gz'):\n\n        sa = ShotgunAction(sys.argv[1])\n        sg = shotgun_connect()\n        if sa.action == 'package4client':\n            r = packageFilesForClient('sg_qt','/path/where/i/want/to/put/the/archive/')\n\n    \"\"\"\n\n    # ---------------------------------------------------------------------------------------------\n    # Imports\n    # ---------------------------------------------------------------------------------------------\n    import sys, os\n    import logging as logger\n    import subprocess\n    import re\n    from datetime import datetime\n\n    from shotgun_api3 import Shotgun\n    from shotgun_action import ShotgunAction\n    from pprint import pprint\n\n    # ---------------------------------------------------------------------------------------------\n    # Variables\n    # ---------------------------------------------------------------------------------------------\n    # Flow Production Tracking server auth info\n    shotgun_conf = {\n        'url':'https://my-site.shotgrid.autodesk.com',\n        'name':'YOUR_SCRIPT_NAME_HERE',\n        'key':'YOUR_SCRIPT_KEY_HERE'\n        }\n\n    # location to write logfile for this script\n    logfile = os.path.dirname(sys.argv[0])+\"/version_packager.log\"\n\n    # temporary directory to download movie files to and create thumbnail files in\n    file_dir = os.path.dirname(sys.argv[0])+\"/tmp\"\n\n    # compress command\n    # tar czf /home/user/backup_www.tar.gz -C / var/www/html\n    compress_cmd = \"tar czf %s -C / %s\"\n\n\n\n    # ----------------------------------------------\n    # Generic Flow Production Tracking Exception Class\n    # ----------------------------------------------\n    class ShotgunException(Exception):\n        pass\n\n\n\n    # ----------------------------------------------\n    # Set up logging\n    # ----------------------------------------------\n    def init_log(filename=\"version_packager.log\"):\n        try:\n            logger.basicConfig(level=logger.DEBUG,\n                            format='%(asctime)s %(levelname)-8s %(message)s',\n                            datefmt='%Y-%b-%d %H:%M:%s',\n                            filename=filename,\n                            filemode='w+')\n        except IOError, e:\n            raise ShotgunException (\"Unable to open logfile for writing: %s\" % e)\n        logger.info(\"Version Packager logging started.\")\n        return logger\n\n\n    # ----------------------------------------------\n    # Extract Attachment id from entity field\n    # ----------------------------------------------\n    def extract_attachment_id(attachment):\n        # extract the Attachment id from the url location\n        attachment_id = attachment['url'].rsplit('/',1)[1]\n        try:\n            attachment_id = int(attachment_id)\n        except:\n            # not an integer.\n            return None\n            # raise ShotgunException(\"invalid Attachment id returned. Expected an integer: %s \"% attachment_id)\n\n        return attachment_id\n\n\n    # ----------------------------------------------\n    # Download Movie to Disk\n    # ----------------------------------------------\n    def download_attachment_to_disk(attachment,destination_filename):\n        attachment_id = extract_attachment_id(attachment)\n        if type(attachment_id) != int:\n            return None\n        # download the attachment file from Flow Production Tracking and write it to local disk\n        logger.info(\"Downloading Attachment #%s\" % (attachment_id))\n        stream = sg.download_attachment(attachment_id)\n        try:\n            file = open(destination_filename, 'w')\n            file.write(stream)\n            file.close()\n            logger.info(\"Downloaded attachment %s\" % (destination_filename))\n            return True\n        except e:\n            raise ShotgunException(\"unable to write attachment to disk: %s\"% e)\n\n\n    # ----------------------------------------------\n    # Compress files\n    # ----------------------------------------------\n    def compress_files(files,destination_filename):\n        destination_filename += \".tar.gz\"\n        files = [path.lstrip(\"/\") for path in files]\n        squish_me = compress_cmd % (destination_filename, \" \".join(files) )\n        logger.info(\"Compressing %s files...\" % len(files))\n        logger.info(\"Running command: %s\" % squish_me)\n        try:\n            output = subprocess.Popen(squish_me, shell=True, stdout=subprocess.PIPE).stdout.read()\n            logger.info('tar/gzip command returned: %s' % output)\n        except e:\n            raise ShotgunException(\"unable compress files: %s\"% e)\n        logger.info(\"compressed files to: %s\" % destination_filename)\n        return destination_filename\n\n\n    # ----------------------------------------------\n    # Remove downloaded files\n    # ----------------------------------------------\n    def remove_downloaded_files(files):\n        remove_me = 'rm %s' % ( \" \".join(files) )\n        logger.info(\"Removing %s files...\" % len(files))\n        logger.info(\"Running command: %s\" % remove_me)\n        try:\n            output = subprocess.Popen(remove_me, shell=True, stdout=subprocess.PIPE).stdout.read()\n            logger.info('rm command returned: %s' % output)\n            logger.info(\"removed downloaded files\")\n            return True\n        except e:\n            logger.error(\"unable remove files: %s\"% e)\n            return False\n\n\n    # ----------------------------------------------\n    # Copy files\n    # ----------------------------------------------\n    def copy_files(files,destination_directory):\n        if type(files) == list:\n            files = \" \".join(files)\n        copy_me_args = \"%s %s\" % (files, destination_directory)\n        logger.info(\"Running command: mv %s\" % copy_me_args)\n        try:\n            result = subprocess.Popen(\"mv \" + copy_me_args, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n            # 0 = success, 1 = recoverable issues\n            if result.returncode > 0:\n                response = result.stderr.read()\n                logger.error(\"Copy failed: %s\"% response)\n                raise ShotgunException(\"Copy failed: %s\"% response)\n        except OSError, e:\n            raise ShotgunException(\"unable copy files: %s\"% e)\n\n        logger.info(\"copied files to: %s\" % destination_directory)\n        return destination_directory\n\n\n\n    def packageFilesForClient(file_field,destination_dir):\n\n        # get entities matching the selected ids\n        logger.info(\"Querying Shotgun for %s %ss\" % (len(sa.selected_ids_filter), sa.params['entity_type']))\n        entities = sg.find(sa.params['entity_type'],sa.selected_ids_filter,['id','code',file_field],filter_operator='any')\n\n        # download the attachments for each entity, zip them, and copy to destination directory\n        files = []\n        for e in entities:\n            if not e[file_field]:\n                logger.info(\"%s #%s: No file exists. Skippinsa.\" % (sa.params['entity_type'], e['id']))\n            else:\n                logger.info(\"%s #%s: %s\" % (sa.params['entity_type'], e['id'], e[file_field]))\n                path_to_file = file_dir+\"/\"+re.sub(r\"\\s+\", '_', e[file_field]['name'])\n                result = download_attachment_to_disk(e[file_field], path_to_file )\n\n                # only include attachments. urls won't return true\n                if result:\n                    files.append(path_to_file)\n\n        # compress files\n        # create a nice valid destination filename\n        project_name = ''\n        if 'project_name' in sa.params:\n            project_name = re.sub(r\"\\s+\", '_', sa.params['project_name'])+'_'\n        dest_filename = project_name+datetime.today().strftime('%Y-%m-%d-%H%M%S')+\"_\"+sa.params['user_login']\n        archive = compress_files(files,file_dir+\"/\"+dest_filename)\n\n        # now that we have the archive, remove the downloads\n        r = remove_downloaded_files(files)\n\n        # copy to directory\n        result = copy_files([archive],destination_dir)\n\n        return True\n\n\n    # ----------------------------------------------\n    # Main Block\n    # ----------------------------------------------\n    if __name__ == \"__main__\":\n        init_log(logfile)\n\n        try:\n            sa = ShotgunAction(sys.argv[1])\n            logger.info(\"Firing... %s\" % (sys.argv[1]) )\n        except IndexError, e:\n            raise ShotgunException(\"Missing POST arguments\")\n\n        sg = Shotgun(shotgun_conf['url'], shotgun_conf['name'], shotgun_conf['key'],convert_datetimes_to_utc=convert_tz)\n\n        if sa.action == 'package4client':\n            result = packageFilesForClient('sg_qt','/Users/kp/Documents/shotgun/dev/api/files/')\n        else:\n            raise ShotgunException(\"Unknown action... :%s\" % sa.action)\n\n\n        print(\"\\nVersion Packager done!\")\n"
  },
  {
    "path": "docs/cookbook/examples/basic_create_shot.rst",
    "content": ".. _example_create_shot:\n\nCreate A Shot\n=============\n\nBuilding the data and calling :meth:`~shotgun_api3.Shotgun.create`\n------------------------------------------------------------------\nTo create a Shot, you need to provide the following values:\n\n- ``project`` is a link to the Project the Shot belongs to. It should be a dictionary like\n  ``{\"type\": \"Project\", \"id\": 123}`` where ``id`` is the ``id`` of the Project.\n- ``code`` (this is the field that stores the name Shot)\n- optionally any other info you want to provide\n\nExample::\n\n    data = {\n        'project': {\"type\":\"Project\",\"id\": 4},\n        'code': '100_010',\n        'description': 'Open on a beautiful field with fuzzy bunnies',\n        'sg_status_list': 'ip'\n    }\n    result = sg.create('Shot', data)\n\n\nThis will create a new Shot named \"100_010\" in the Project \"Gunslinger\" (which has an ``id`` of 4).\n\n- ``data`` is a list of key/value pairs where the key is the column name to update and the value\n  is the the value to set.\n- ``sg`` is the Flow Production Tracking API instance you created in :ref:`example_sg_instance`.\n- ``create()`` is the :meth:`shotgun_api3.Shotgun.create` API method we are calling. We pass in the\n  entity type we're searching for and the data we're setting.\n\n.. rubric:: Result\n\nThe variable ``result`` now contains a dictionary hash with the Shot information you created.::\n\n    {\n        'code': '100_010',\n        'description': 'Open on a beautiful field with fuzzy bunnies',\n        'id': 40435,\n        'project': {'id': 4, 'name': 'Demo Project', 'type': 'Project'},\n        'sg_status_list': 'ip',\n        'type': 'Shot'\n    }\n\nIn addition, Flow Production Tracking has returned the ``id`` that it has assigned to the Shot, as well as a\n``type`` value. ``type`` is provided for convenience simply to help you identify what entity type\nthis dictionary represents. It does not correspond to any field in Flow Production Tracking.\n\nFlow Production Tracking will *always* return the ``id`` and ``type`` keys in the dictionary when there are results\nrepresenting an entity.\n\nThe Complete Example for creating a Shot\n----------------------------------------\n::\n\n    #!/usr/bin/env python\n\n    # --------------------------------------\n    # Imports\n    # --------------------------------------\n    import shotgun_api3\n    from pprint import pprint # useful for debugging\n\n    # --------------------------------------\n    # Globals\n    # --------------------------------------\n    # make sure to change this to match your Flow Production Tracking server and auth credentials.\n    SERVER_PATH = \"https://my-site.shotgrid.autodesk.com\"\n    SCRIPT_NAME = 'my_script'\n    SCRIPT_KEY = '27b65d7063f46b82e670fe807bd2b6f3fd1676c1'\n\n    # --------------------------------------\n    # Main\n    # --------------------------------------\n    if __name__ == '__main__':\n\n        sg = shotgun_api3.Shotgun(SERVER_PATH, SCRIPT_NAME, SCRIPT_KEY)\n\n        # --------------------------------------\n        # Create a Shot with data\n        # --------------------------------------\n        data = {\n            'project': {\"type\":\"Project\",\"id\": 4},\n            'code': '100_010',\n            'description': 'Open on a beautiful field with fuzzy bunnies',\n            'sg_status_list': 'ip'\n        }\n        result = sg.create('Shot', data)\n        pprint(result)\n        print(\"The id of the {} is {}.\".format(result['type'], result['id']))\n\nAnd here is the output::\n\n    {'code': '100_010',\n     'description': 'Open on a beautiful field with fuzzy bunnies',\n     'id': 40435,\n     'project': {'id': 4, 'name': 'Demo Project', 'type': 'Project'},\n     'sg_status_list': 'ip',\n     'type': 'Shot'}\n    The id of the Shot is 40435.\n"
  },
  {
    "path": "docs/cookbook/examples/basic_create_shot_task_template.rst",
    "content": "Create a Shot with a Task Template\n==================================\nCreating a new Shot with a Task Template is just like linking it to another entity, but Flow Production Tracking will apply the Task Template in the background and create the appropriate Tasks on the Shot for you.\n\nFind the Task Template\n----------------------\nFirst we need to find the Task Template we're going to apply. We'll assume you know the name of the Task Template you want to use.\n::\n\n    filters = [['code','is', '3D Shot Template' ]]\n    template = sg.find_one('TaskTemplate', filters)\n\n\nThe Resulting Task Template\n---------------------------\n\nAssuming the task template was found, we will now have something like this in our ``template``\nvariable::\n\n    {'type': 'TaskTemplate', 'id': 12}\n\nCreate the Shot\n---------------\nNow we can create the Shot with the link to the ``TaskTemplate`` to apply.\n::\n\n    data = {'project': {'type': 'Project','id': 4},\n            'code': '100_010',\n            'description': 'dark shot with wicked cool ninjas',\n            'task_template': template }\n    result = sg.create('Shot', data)\n\nThis will create a new Shot named \"100_010\" linked to the TaskTemplate \"3D Shot Template\" and\nFlow Production Tracking will then create the Tasks defined in the template and link them to the Shot you just\ncreated.\n\n- ``data`` is a list of key/value pairs where the key is the column name to update and the value is\n  the value.\n- ``project`` and `code` are required\n- ``description`` is just a text field that you might want to update as well\n- ``task_template`` is another entity column where we set the Task Template which has the Tasks we\n  wish to create by default on this Shot. We found the specific template we wanted to assign in the\n  previous block by searching\n\nCreate Shot Result\n------------------\nThe variable ``result`` now contains the dictionary of the new Shot that was created.\n::\n\n    {\n        'code': '010_010',\n        'description': 'dark shot with wicked cool ninjas',\n        'id': 2345,\n        'project': {'id': 4, 'name': 'Gunslinger', 'type': 'Project'},\n        'task_template': {'id': 12,\n                       'name': '3D Shot Template',\n                       'type': 'TaskTemplate'},\n        'type': 'Shot'\n    }\n\n\nIf we now search for the Tasks linked to the Shot, we'll find the Tasks that match our\n``TaskTemplate``::\n\n    tasks = sg.find('Task', filters=[['entity', 'is', result]])\n\n.. note:: You can use an entity dictionary that was returned from the API in a filter as we have\n    done above. Flow Production Tracking will only look at the ``id`` and ``type`` keys and will ignore the rest.\n    This is a handy way to pass around entity dictionaries without having to reformat them.\n\nNow the ``tasks`` variable contains the following::\n\n    [{'id': 3253, 'type': 'Task'},\n     {'id': 3254, 'type': 'Task'},\n     {'id': 3255, 'type': 'Task'},\n     {'id': 3256, 'type': 'Task'},\n     {'id': 3257, 'type': 'Task'}]\n"
  },
  {
    "path": "docs/cookbook/examples/basic_create_version_link_shot.rst",
    "content": "Create a Version Linked to a Shot\n=================================\nYou've just created a sweet new Version of your shot. Now you want to update Flow Production Tracking and create a\nnew ``Version`` entity linked to the Shot.\n\nFind the Shot\n-------------\nFirst we need to find the Shot since we'll need to know know its ``id`` in order to link our Version\nto it.\n::\n\n    filters = [ ['project', 'is', {'type': 'Project', 'id': 4}],\n                ['code', 'is', '100_010'] ]\n    shot = sg.find_one('Shot', filters)\n\n\nFind the Task\n-------------\nNow we find the Task that the Version relates to, again so we can use the ``id`` to link it to the\nVersion we're creating. For this search we'll use the Shot ``id`` (which we have now in the ``shot``\nvariable from the previous search) and the Task Name, which maps to the ``content`` field.\n::\n\n    filters = [ ['project', 'is', {'type': 'Project', 'id': 4}],\n                ['entity', 'is',{'type':'Shot', 'id': shot['id']}],\n                ['content', 'is', 'Animation'] ]\n    task = sg.find_one('Task', filters)\n\n.. note:: Linking a Task to the Version is good practice. By doing so it is easy for users to see\n    at what stage a particular Version was created, and opens up other possibilities for tracking\n    in Flow Production Tracking. We highly recommend doing this whenever possible.\n\nCreate the Version\n------------------\nNow we can create the Version with the link to the Shot and the Task::\n\n    data = { 'project': {'type': 'Project','id': 4},\n             'code': '100_010_anim_v1',\n             'description': 'first pass at opening shot with bunnies',\n             'sg_path_to_frames': '/v1/gun/s100/010/frames/anim/100_010_animv1_jack.#.jpg',\n             'sg_status_list': 'rev',\n             'entity': {'type': 'Shot', 'id': shot['id']},\n             'sg_task': {'type': 'Task', 'id': task['id']},\n             'user': {'type': 'HumanUser', 'id': 165} }\n    result = sg.create('Version', data)\n\nThis will create a new Version named '100_010_anim_v1' linked to the 'Animation' Task for Shot\n'100_010' in the Project 'Gunslinger'.\n\n- ``data`` is a list of key/value pairs where the key is the column name to update and the value is\n  the value to set.\n- ``project`` and ``code`` are required\n- ``description`` and ``sg_path_to_frames`` are just text fields that you might want to update as\n  well\n- ``sg_status_list`` is the status column for the Version. Here we are setting it to \"rev\" (Pending\n  Review) so that it will get reviewed in the next dailies session and people will \"ooh\" and \"aaah\".\n- ``entity`` is where we link this version to the Shot. Entity columns are always handled with this\n  format. You must provide the entity ``type`` and its ``id``.\n- ``sg_task`` is another entity link field specifically for the Version's Task link.  This uses the\n  same entity format as the Shot link, but pointing to the Task entity this time.\n- ``user`` is another entity column where we set the artist responsible for this masterpiece. In\n  this example, I know the 'id' that corresponds to this user, but if you don't know the id you can\n  look it up by searching on any of the fields, similar to what we did for the Shot above, like::\n\n    filters = [['login', 'is', 'jschmoe']]\n    user = sg.find('HumanUser', filters)\n\nThe ``result`` variable now contains the ``id`` of the new Version that was created::\n\n    214\n\n\nUpload a movie for review in Screening Room\n-------------------------------------------\nIf Screening Room's transcoding feature is enabled on your site (hosted sites have this by\ndefault), then you can use the :meth:`~shotgun_api3.Shotgun.upload` method to upload a QuickTime\nmovie, PDF, still image, etc. to the ``sg_uploaded_movie`` field on a Version.  Once the movie is\nuploaded, it will automatically be queued for transcoding.  When transcoding is complete, the\nVersion will be playable in the Screening Room app, or in the Overlay player by clicking on the\nPlay button that will appear on the Version's thumbnail.\n\n.. note:: Transcoding also generates a thumbnail and filmstrip thumbnail automatically.\n"
  },
  {
    "path": "docs/cookbook/examples/basic_delete_shot.rst",
    "content": "Delete A Shot\n=============\n\nCalling :meth:`~shotgun_api3.Shotgun.delete`\n--------------------------------------------\nDeleting an entity in Flow Production Tracking is pretty straight-forward. No extraneous steps required.::\n\n    result = sg.delete(\"Shot\", 40435)\n\nDelete Shot Result\n------------------\nIf the Shot was deleted successfully ``result`` will contain::\n\n    True\n\nThe Complete Example for deleting a Shot\n----------------------------------------\n::\n\n    #!/usr/bin/env python\n\n    # --------------------------------------\n    # Imports\n    # --------------------------------------\n    import shotgun_api3\n    from pprint import pprint # useful for debugging\n\n    # --------------------------------------\n    # Globals\n    # --------------------------------------\n    # make sure to change this to match your Flow Production Tracking server and auth credentials.\n    SERVER_PATH = \"https://my-site.shotgrid.autodesk.com\"\n    SCRIPT_NAME = 'my_script'\n    SCRIPT_KEY = '27b65d7063f46b82e670fe807bd2b6f3fd1676c1'\n\n    # --------------------------------------\n    # Main\n    # --------------------------------------\n    if __name__ == '__main__':\n\n        sg = shotgun_api3.Shotgun(SERVER_PATH, SCRIPT_NAME, SCRIPT_KEY)\n\n        # --------------------------------------\n        # Delete a Shot by id\n        # --------------------------------------\n        result = sg.delete(\"Shot\", 40435)\n        pprint(result)\n\nAnd here is the output::\n\n    True\n"
  },
  {
    "path": "docs/cookbook/examples/basic_find_shot.rst",
    "content": ".. _example_find_shot:\n\nFind a Shot\n===========\n\nBuilding the Query\n------------------\nWe are going to assume we know the 'id' of the Shot we're looking for in this example.::\n\n    filters = [['id', 'is', 40435]]\n    result = sg.find_one('Shot', filters)\n\nPretty simple right? Well here's a little more insight into what's going on.\n\n- ``filters`` is an list of filter conditions. In this example we are filtering for Shots where\n  the ``id`` column is **40435**.\n- ``sg`` is the Flow Production Tracking API instance.\n- ``find_one()`` is the :meth:`~shotgun_api3.Shotgun.find_one` API method we are calling. We\n  provide it with the entity type we're searching for and our filters.\n\n\nSeeing the Result\n-----------------\nSo what does this return? The variable result now contains::\n\n    {'type': 'Shot','id': 40435}\n\nBy default, :meth:`~shotgun_api3.Shotgun.find_one` returns a single dictionary object with\nthe ``type`` and ``id`` fields. So in this example, we found a Shot matching that id, and Flow Production Tracking\nreturned it as a dictionary object with ``type`` and ``id`` keys .\n\nHow do we know that result contains the Shot dictionary object? You can trust us... but just to be\nsure, the :mod:`pprint` (PrettyPrint) module from the Python standard library is a really good tool\nto help with debugging. It will print out objects in a nicely formatted way that makes things\neasier to read. So we'll add that to the import section of our script.::\n\n    import shotgun_api3\n    from pprint import pprint # useful for debugging\n\nThe Complete Example for finding a Shot\n---------------------------------------\n::\n\n    #!/usr/bin/env python\n\n    # --------------------------------------\n    # Imports\n    # --------------------------------------\n    import shotgun_api3\n    from pprint import pprint # useful for debugging\n\n    # --------------------------------------\n    # Globals\n    # --------------------------------------\n    # make sure to change this to match your Flow Production Tracking server and auth credentials.\n    SERVER_PATH = \"https://my-site.shotgrid.autodesk.com\"\n    SCRIPT_NAME = 'my_script'\n    SCRIPT_KEY = '27b65d7063f46b82e670fe807bd2b6f3fd1676c1'\n\n    # --------------------------------------\n    # Main\n    # --------------------------------------\n    if __name__ == '__main__':\n\n        sg = shotgun_api3.Shotgun(SERVER_PATH, SCRIPT_NAME, SCRIPT_KEY)\n\n        # --------------------------------------\n        # Find a Shot by id\n        # --------------------------------------\n        filters = [['id', 'is', 40435]]\n        result = sg.find_one('Shot', filters)\n        pprint(result)\n\nAnd here is the output::\n\n    {'type': 'Shot','id': 40435}\n"
  },
  {
    "path": "docs/cookbook/examples/basic_sg_instance.rst",
    "content": ".. _example_sg_instance:\n\nCreate a Flow Production Tracking API instance\n==============================================\n\nThis example shows you how to establish your initial connection to Flow Production Tracking using script-based\nauthentication. ``sg`` represents your Flow Production Tracking API instance. Be sure you've read\n:ref:`Setting Up Flow Production Tracking for API Access <setting_up_shotgrid>`.\n::\n\n    import pprint # Useful for debugging\n\n    import shotgun_api3\n\n    SERVER_PATH = \"https://my-site.shotgrid.autodesk.com\"\n    SCRIPT_NAME = 'my_script'\n    SCRIPT_KEY = '27b65d7063f46b82e670fe807bd2b6f3fd1676c1'\n\n    sg = shotgun_api3.Shotgun(SERVER_PATH, SCRIPT_NAME, SCRIPT_KEY)\n\n    # Just for demo purposes, this will print out property and method names available on the\n    # sg connection object\n    pprint.pprint([symbol for symbol in sorted(dir(sg)) if not symbol.startswith('_')])\n\nFor further information on what you can do with this Flow Production Tracking object you can read the\n:ref:`API reference <apireference>`.\n"
  },
  {
    "path": "docs/cookbook/examples/basic_update_shot.rst",
    "content": "Update A Shot\n=============\n\nBuilding the data and calling :meth:`~shotgun_api3.Shotgun.update`\n------------------------------------------------------------------\nTo update a Shot, you need to provide the ``id`` of the Shot and a list of fields you want to\nupdate.::\n\n    data = {\n        'description': 'Open on a beautiful field with fuzzy bunnies',\n        'sg_status_list': 'ip'\n        }\n    result = sg.update('Shot', 40435, data)\n\nThis will update the ``description`` and the ``sg_status_list`` fields for the Shot with ``id`` of\n**40435**.\n\n- ``data`` is a list of key/value pairs where the key is the field name to update and the value to\n  update it to.\n- ``sg`` is the Flow Production Tracking API instance.\n- ``update()`` is the :meth:`shotgun_api3.Shotgun.update` API method we are calling. We provide it\n  with the entity type we're updating, the ``id`` of the entity, and the data we're updating it\n  with.\n\nResult\n------\nThe variable ``result`` now contains the Shot object that with the updated values.::\n\n    {\n        'description': 'Opening establishing shot with titles and fuzzy bunnies',\n        'sg_status_list': 'ip',\n        'type': 'Shot',\n        'id': 40435\n    }\n\nIn addition, Flow Production Tracking has returned the ``id`` for the Shot, as well as a ``type`` value. ``type``\nis provided for convenience simply to help you identify what entity type this dictionary represents.\nIt does not correspond to any field in Flow Production Tracking.\n\nFlow Production Tracking will *always* return the ``id`` and ``type`` keys in the dictionary when there are results\nrepresenting an entity.\n\nThe Complete Example for updating a Shot\n----------------------------------------\n::\n\n    #!/usr/bin/env python\n\n    # --------------------------------------\n    # Imports\n    # --------------------------------------\n    import shotgun_api3\n    from pprint import pprint # useful for debugging\n\n    # --------------------------------------\n    # Globals\n    # --------------------------------------\n    # make sure to change this to match your Flow Production Tracking server and auth credentials.\n    SERVER_PATH = \"https://my-site.shotgrid.autodesk.com\"\n    SCRIPT_NAME = 'my_script'\n    SCRIPT_KEY = '27b65d7063f46b82e670fe807bd2b6f3fd1676c1'\n\n    # --------------------------------------\n    # Main\n    # --------------------------------------\n    if __name__ == '__main__':\n\n        sg = shotgun_api3.Shotgun(SERVER_PATH, SCRIPT_NAME, SCRIPT_KEY)\n\n        # --------------------------------------\n        # Update Shot with data\n        # --------------------------------------\n        data = {\n            'description': 'Open on a beautiful field with fuzzy bunnies',\n            'sg_status_list': 'ip'\n            }\n        result = sg.update('Shot', 40435, data)\n        pprint(result)\n\nAnd here is the output::\n\n    {'description': 'Opening establishing shot with titles and fuzzy bunnies',\n     'id': 40435,\n     'sg_status_list': 'ip',\n     'type': 'Shot'}\n"
  },
  {
    "path": "docs/cookbook/examples/basic_upload_thumbnail_version.rst",
    "content": "Upload a Thumbnail for a Version\n================================\n\nSo you've created a new Version of a Shot, and you've updated Flow Production Tracking, but now you want to upload a\nbeauty frame to display as the thumbnail for your Version. We'll assume you already have the image\nmade (located on your machine at ``/v1/gun/s100/010/beauties/anim/100_010_animv1.jpg``) . And since\nyou've just created your Version in Flow Production Tracking, you know its ``id`` is **214**.\n\n.. note:: If you upload a movie file or image to the ``sg_uploaded_movie`` field and you have\n    transcoding enabled on your server (the default for hosted sites), a thumbnail will be\n    generated automatically as well as a filmstrip thumbnail (if possible).\n    This is a basic example of how to manually provide or replace a thumbnail image.\n\nUpload the Image using :meth:`~shotgun_api3.Shotgun.upload_thumbnail`\n---------------------------------------------------------------------\n::\n\n    sg.upload_thumbnail(\"Version\", 214, \"/v1/gun/s100/010/beauties/anim/100_010_animv1.jpg\")\n\n\nFlow Production Tracking will take care of resizing the thumbnail for you. If something does go wrong, an exception\nwill be thrown and you'll see the error details.\n\n.. note:: The result returned by :meth:`~shotgun_api3.Shotgun.upload_thumbnail` is an integer\n    representing the id of a special ``Attachment`` entity in Flow Production Tracking. Working with Attachments\n    is beyond the scope of this example. :)\n"
  },
  {
    "path": "docs/cookbook/examples/svn_integration.rst",
    "content": ".. _svn_integration:\n\n############################\nSubversion (SVN) Integration\n############################\n\nIntegrating Flow Production Tracking with Subversion consists of two basic parts:\n\n- Setup a post-commit hook in Subversion.\n- Create a Flow Production Tracking API script to create the Revision in Flow Production Tracking. This script will be called by\n  the post-commit hook.\n\n****************\nPost-Commit Hook\n****************\n\nTo setup the post-commit hook:\n\n- Locate the ``post-commit.tmpl`` file, which is found inside the ``hooks`` folder in your\n  repository directory.  This is a template script that has lots of useful comments and can serve\n  as a starting point for the real thing.\n- Create your very own executable script, and save it in the same ``hooks`` folder, name it\n  ``post-commit``, and give it executable permission.\n- In your ``post-commit`` script, invoke your Flow Production Tracking API script.\n\nIf this is entirely new to you, we highly suggest reading up on the topic. O'Reilly has `a free\nonline guide for Subversion 1.5 and 1.6\n<http://svnbook.red-bean.com/nightly/en/svn.reposadmin.create.html#svn.reposadmin.create.hooks>`_\n\nHere's an example of a post-commit hook that we've made for Subversion 1.6 using an executable\nUnix shell script.  The last line invokes \"shotgun_api_script.py\" which is our Python script that\nwill do all the heavy lifting.  Lines 4 thru 8 queue up some objects that we'll use later on.\n\n.. code-block:: sh\n   :linenos:\n\n    #!/bin/sh\n    # POST-COMMIT HOOK\n\n    REPOS=\"$1\"\n    REV=\"$2\"\n\n    export AUTHOR=\"$(svnlook author $REPOS --revision $REV)\"\n    export COMMENT=\"$(svnlook log $REPOS --revision $REV)\"\n\n    /Absolute/path/to/shotgun_api_script.py\n\nExplanation of selected lines\n=============================\n\n- lines ``4-5``: After the commit, Subversion leaves us two string objects in the environment:\n  ``REPOS`` and ``REV``  (the repository path and the revision number, respectively).\n- lines ``7-8``: Here we use the shell command ``export`` to create two more string objects in the\n  environment:  ``AUTHOR`` and ``COMMENT``. To get each value, we use the ``svnlook`` command with\n  our ``REPOS`` and ``REV`` values, first with the ``author``, and then with ``log`` subcommand.\n  These are actually the first two original lines of code - everything else to this point was\n  pre-written already in the ``post-commit.tmpl`` file. nice :)\n- line ``10``: This is the absolute path to our Flow Production Tracking API Script.\n\n***********************************\nFlow Production Tracking API Script\n***********************************\n\nThis script will create the Revision and populate it with some metadata using the Flow Production Tracking Python\nAPI. It will create our Revision in Flow Production Tracking along with the author, comment, and because we use\nTrac (a web-based interface for Subversion), it will also populate a URL field with a clickable\nlink to the Revision.\n\n.. code-block:: python\n   :linenos:\n\n\n    #!/usr/bin/env python\n    # ---------------------------------------------------------------------------------------------\n\n    # ---------------------------------------------------------------------------------------------\n    # Imports\n    # ---------------------------------------------------------------------------------------------\n    import sys\n    from shotgun_api3_preview import Shotgun\n    import os\n\n    # ---------------------------------------------------------------------------------------------\n    # Globals - update all of these values to those of your studio\n    # ---------------------------------------------------------------------------------------------\n    SERVER_PATH = 'https ://my-site.shotgrid.autodesk.com' # or http:\n    SCRIPT_USER = 'script_name'\n    SCRIPT_KEY = '3333333333333333333333333333333333333333'\n    REVISIONS_PATH = 'https ://serveraddress/trac/changeset/' # or other web-based UI\n    PROJECT = {'type':'Project', 'id':27}\n\n    # ---------------------------------------------------------------------------------------------\n    # Main\n    # ---------------------------------------------------------------------------------------------\n    if __name__ == '__main__':\n\n       sg = Shotgun(SERVER_PATH, SCRIPT_USER, SCRIPT_KEY)\n\n       # Set Python variables from the environment objects\n       revision_code = os.environ['REV']\n       repository = os.environ['REPOS']\n       description = os.environ['COMMENT']\n       author = os.environ['AUTHOR']\n\n       # Set the Trac path for this specific revision\n       revision_url = REVISIONS_PATH + revision_code\n\n       # Validate that author is a valid Flow Production Tracking HumanUser\n       result = sg.find_one(\"HumanUser\", [['login', 'is', author]])\n       if result:\n           # Create Revision\n           url = {'content_type':'http_url', 'url':revision_url, 'name':'Trac'}\n           parameters = {'project':PROJECT,\n                           'code':str(revision_code),\n                           'description':description,\n                           'attachment':url,\n                           'created_by':{\"type\":\"HumanUser\", \"id\":result['id']}\n                           }\n           revision = sg.create(\"Revision\", parameters)\n           print(\"created Revision #\"+str(revision_code))\n\n       # Send error message if valid HumanUser is not found\n       else:\n           print(\"Unable to find a valid Flow Production Tracking User with login: {}, Revision not created in Flow Production Tracking.\".format(author))\n\n\n\nExplanation of selected lines:\n==============================\n\n- line ``14``: This should be the URL to your instance of Flow Production Tracking.\n- lines ``15-16``: Make sure you get these values from the \"Scripts\" page in the Admin section of\n  the Flow Production Tracking web application. If you're not sure how to do this, check out :ref:`authentication`.\n- line ``17``: This is the address of Trac, our web-based interface that we use with Subversion.\n  You may use a different interface, or none at all, so feel free to adjust this line or ignore it\n  as your case may be.\n- line ``18``: Every Revision in Flow Production Tracking must have a Project, which is passed to the API as a\n  dictionary with two keys, the ``type`` and the ``id``.  Of course the ``type`` value will always\n  remain ``Project`` (case sensitive), but the ``id`` will change by Project.  To find out the\n  ``id`` of your Project, go to the Projects page in the Flow Production Tracking web application, locate the\n  Project where you want your Revisions created, and then locate its ``id`` field (which you may\n  need to display - if you don't see it, right click on any column header then select\n  \"Insert Column\" > \"Id\").  Note that for this example we assume that all Revisions in this\n  Subversion repository will belong to the same Project.\n- lines ``28-31``: Grab the values from the objects that were left for us in the environment.\n- line ``34``: Add the Revision number to complete the path of our Trac url.\n- line ``37``: Make sure that a valid User exists in Flow Production Tracking.  In our example, we assume that our\n  Users' Flow Production Tracking logins match their Subversion names.  If the user exists in Flow Production Tracking, that\n  user's ``id`` will be returned as ``result['id']``, which we will need later on in line 46.\n- lines ``40-48``: Use all the meta data we've gathered to create a Revision in Flow Production Tracking. If none\n  of these lines make any sense, check out more on the :meth:`~shotgun_api3.Shotgun.create` method\n  here.   Line 41 deserves special mention: notice that we define a dictionary called ``url`` that\n  has three important keys: ``content_type``, ``url``, and ``name``, and we then pass this in as\n  the value for the ``attachment`` field when we create the Revision.  If you're even in doubt,\n  double check the syntax and requirements for the different field types here.\n\n***************\nTroubleshooting\n***************\n\nMy post-commit script is simply not running. I can run it manually, but commits are not triggering it.\n======================================================================================================\n\nMake sure that the script is has explicitly been made executable and that all users who will\ninvoke it have appropriate permissions for the script and that folders going back to root.\n\nMy Flow Production Tracking API script is not getting called by the post-commit hook.\n=====================================================================================\n\nMake sure that the script is called using its absolute path.\n"
  },
  {
    "path": "docs/cookbook/smart_cut_fields.rst",
    "content": ".. _smart_cut_fields:\n\n################\nSmart Cut Fields\n################\n\n.. warning::\n    Smart Cut Fields should be considered deprecated. ShotGrid v7.0, introduced a new version of\n    cut support. `Read the Cut Support Documentation here <https://knowledge.autodesk.com/support/shotgrid/learn-explore/caas/CloudHelp/cloudhelp/ENU/SG-Editorial/files/SG-Editorial-ed-cut-schema-html-html.html>`_.\n\nIf you want to work with 'smart' cut fields through the API, your script should use a corresponding\n'raw' fields for all updates. The 'smart_cut_fields' are primarily for display in the UI, the real\ndata is stored in a set of 'raw' fields that have different names.\n\n************\nSmart Fields\n************\n\nIn the UI these fields attempt to calculate values based on data entered into the various fields.\nThese fields can be queried via the API using the find() method, but not updated. Note that we are\ndeprecating this feature and recommend creating your own cut fields from scratch, which will not\ncontain any calculations which have proven to be too magical at times.\n\n- ``smart_cut_duration``\n- ``smart_cut_in``\n- ``smart_cut_out``\n- ``smart_cut_summary_display`` *\n- ``smart_cut_duration_display`` *\n- ``smart_head_duration``\n- ``smart_head_in``\n- ``smart_head_out``\n- ``smart_tail_duration``\n- ``smart_tail_in``\n- ``smart_tail_out``\n- ``smart_working_duration`` *\n\n.. note:: \\* these are special summary fields that have no corresponding \"raw\" field.\n\n**********\nRaw Fields\n**********\n\nThese are the \"raw\" fields that can be queried and updated through the API:\n\n- ``cut_duration``\n- ``cut_in``\n- ``cut_out``\n- ``head_duration``\n- ``head_in``\n- ``head_out``\n- ``tail_duration``\n- ``tail_in``\n- ``tail_out``\n"
  },
  {
    "path": "docs/cookbook/tasks/split_tasks.rst",
    "content": ".. _split_tasks:\n\n###########\nSplit Tasks\n###########\n\nSplit tasks can be created and edited via the API but must comply to some rules. Before going\nfurther, a good understanding of :ref:`how Flow Production Tracking handles task dates is useful <updating_tasks>`.\n\n********\nOverview\n********\n\nThe Task entity has a field called ``splits`` which is a list of dictionaries. Each dictionary\nin the list has two string keys, ``start`` and ``end``, who's values are strings representing dates\nin the ``YYYY-mm-dd`` format.\n\n::\n\n    [{'start': '2012-12-11', 'end': '2012-12-12'}, {'start': '2012-12-18', 'end': '2012-12-19'}]\n\n- Splits should be ordered from eldest to newest.\n- There should be gaps between each split.\n\n  - Gaps are defined as at least one working day. Non-workdays such as weekends and holidays\n    are not gaps.\n\nIf there are multiple splits but there between two or more splits there is no gap, an error will be\nraised. For example::\n\n    >>> sg.update('Task', 2088, {'splits':[{'start':'2012-12-10', 'end':'2012-12-11'}, {'start':'2012-12-12', 'end':'2012-12-14'}, {'start':'2012-12-19', 'end':'2012-12-20'}]})\n    Traceback (most recent call last):\n      File \"<stdin>\", line 1, in <module>\n      File \"/shotgun/src/python-api/shotgun_api3/shotgun.py\", line 600, in update\n        record = self._call_rpc(\"update\", params)\n      File \"/shotgun/src/python-api/shotgun_api3/shotgun.py\", line 1239, in _call_rpc\n        self._response_errors(response)\n      File \"/shotgun/src/python-api/shotgun_api3/shotgun.py\", line 1435, in _response_errors\n        \"Unknown Error\"))\n        shotgun_api3.shotgun.Fault: API update() CRUD ERROR #5: Update failed for [Task.splits]: (task.rb) The start date in split segment 2 is only one calendar day away from  the end date of the previous segment. There must be calendar days between split segments.\n\nAlternately, a split value can be set to ``None`` to remove splits (you can also use an empty list).\nThis will preserve the ``start_date`` and ``due_date`` values but recalculate the ``duration`` value\nwhile appropriately considering all workday rules in effect.\n\n********************************************************\nHow Do Splits Influence Dates And Dates Influence Splits\n********************************************************\n\n- If splits are specified the supplied ``start_date``, ``due_date`` and ``duration`` fields will be ignored.\n- The ``start_date`` will be inferred from the earliest split.\n- The ``due_date`` will be inferred from the last split.\n- If the ``start_date`` is changed on a task that has splits the first split will be moved to start\n  on the new ``start_date`` and all further splits will be moved while maintaining gap lengths\n  between splits and respecting workday rules.\n- If the ``due_date`` is changed on a task that has splits the last split will be moved to end on\n  the new ``due_date`` and all prior splits will be moved while maintaining gap lengths between\n  splits and respecting workday rules.\n- If the ``duration`` is changed two scenarios are possible\n\n    - In the case of a longer duration, additional days will be added to the end of the last split\n    - In the case of a shorter duration splits, starting with the latest ones, will be either\n      removed or shortened until the new duration is met.\n\nExamples for splitting Tasks\n============================\nThroughout the following examples, each successive one will build on the previous.\n\nstart_date, due_date and duration being ignored\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n    sg.update('Task', 2088, {\n        'start_date': '2012-12-06',\n        'due_date': '2012-12-23',\n        'duration': 3600,\n        'splits': [\n            {'start': '2012-12-11', 'end': '2012-12-12'},\n            {'start': '2012-12-18', 'end': '2012-12-19'}\n        ]\n    })\n\n    # Task = {\n    #     'start_date': '2012-12-11',\n    #     'due_date': '2012-12-19',\n    #     'duration': 2400,\n    #     'splits': [\n    #         {'start': '2012-12-11', 'end': '2012-12-12'},\n    #         {'start': '2012-12-18', 'end': '2012-12-19'}\n    #     ]\n    # }\n\nResult:\n\n.. image:: /images/split_tasks_1.png\n\nMoving the start_date of a split task\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n    sg.update('Task', 2088, {\n        'start_date': '2012-12-10'\n    })\n\n    # Task = {\n    #     'start_date': '2012-12-10',\n    #     'due_date': '2012-12-18',\n    #     'splits': [\n    #         {'start': '2012-12-10', 'end': '2012-12-11'},\n    #         {'start': '2012-12-14', 'end': '2012-12-18'}\n    #     ]\n    # }\n\nResult:\n\n.. image:: /images/split_tasks_2.png\n\nMoving the due_date of a split task\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n    sg.update('Task', 2088, {\n        'due_date': '2012-12-19'\n    })\n\n    # Task = {\n    #     'start_date': '2012-12-10',\n    #     'due_date': '2012-12-19',\n    #     'splits': [\n    #         {'start': '2012-12-10', 'end': '2012-12-11'},\n    #         {'start': '2012-12-14', 'end': '2012-12-19'}\n    #     ]\n    # }\n\nResult:\n\n.. image:: /images/split_tasks_3.png\n\nSetting a longer duration\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n    sg.update('Task', 2088, {\n        'duration': 4200\n    })\n\n    # Task = {\n    #     'start_date': '2012-12-10',\n    #     'due_date': '2012-12-21',\n    #     'duration': 4200,\n    #     'splits': [\n    #         {'start': '2012-12-10', 'end': '2012-12-11'},\n    #         {'start': '2012-12-14', 'end': '2012-12-21'}\n    #     ]\n    # }\n\nResult:\n\n.. image:: /images/split_tasks_4.png\n\nSetting a shorter duration\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n    sg.update('Task', 2088, {\n        'duration': 2400\n    })\n\n    # Task = {\n    #     'start_date': '2012-12-10',\n    #     'due_date': '2012-12-18',\n    #     'duration': 2400,\n    #     'splits': [\n    #         {'start': '2012-12-10', 'end': '2012-12-11'},\n    #         {'start': '2012-12-14', 'end': '2012-12-18'}\n    #     ]\n    # }\n\nResult:\n\n.. image:: /images/split_tasks_5.png\n\nAnother example of shorter duration\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nWe won't be using the previous result for this example but rather, the following:\n\n.. image:: /images/split_tasks_6.png\n\nwho's duration we will shorten past the last split.\n\n::\n\n    sg.update('Task', 2088, {\n        'duration': 1800\n    })\n\n    # Task = {\n    #     'start_date': '2012-12-10',\n    #     'due_date': '2012-12-18',\n    #     'duration': 2400,\n    #     'splits': [\n    #         {'start': '2012-12-10', 'end': '2012-12-11'},\n    #         {'start': '2012-12-14', 'end': '2012-12-18'}\n    #     ]\n    # }\n\nResult:\n\n.. image:: /images/split_tasks_7.png\n\nSetting the due_date in a gap\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nWhen a due date is set in a gap later splits are removed and the day of the due date is considered\na day when work will be done.\n\nFor this example let's assume as a starting point the result of the 5th example:\n\n.. image:: /images/split_tasks_8.png\n\n::\n\n    sg.update('Task', 2088, {\n        'due_date': '2012-12-13'\n    })\n\n    # Task = {\n    #     'start_date': '2012-12-10',\n    #     'due_date': '2012-12-13',\n    #     'duration': 1800,\n    #     'splits': [\n    #         {'start': '2012-12-10', 'end': '2012-12-11'},\n    #         {'start': '2012-12-13', 'end': '2012-12-13'}\n    #     ]\n    # }\n\nResult:\n\n.. image:: /images/split_tasks_9.png\n"
  },
  {
    "path": "docs/cookbook/tasks/task_dependencies.rst",
    "content": ".. _task_dependencies:\n\n#################\nTask Dependencies\n#################\n\nTask dependencies work the same way in the API as they do in the UI. You can filter and sort on\nany of the fields. For information about Task Dependencies in Flow Production Tracking, check out the `main\ndocumentation page on our support site\n<https://help.autodesk.com/view/SGSUB/ENU/?guid=SG_Producer_pr_scheduling_tasks_pr_gantt_chart_tasks_html>`_\n\n************\nCreate Tasks\n************\n\nLet's create a couple of Tasks and create dependencies between them. First we'll create a \"Layout\"\nTask for our Shot::\n\n    data = {\n        'project': {'type':'Project', 'id':65},\n        'content': 'Layout',\n        'start_date': '2010-04-28',\n        'due_date': '2010-05-05',\n        'entity': {'type':'Shot', 'id':860}\n        }\n    result = sg.create(Task, data)\n\n\nReturns::\n\n    {'content': 'Layout',\n     'due_date': '2010-05-05',\n     'entity': {'id': 860, 'name': 'bunny_010_0010', 'type': 'Shot'},\n     'id': 556,\n     'project': {'id': 65, 'name': 'Demo Animation Project', 'type': 'Project'},\n     'start_date': '2010-04-28',\n     'type': 'Task'}\n\n\nNow let's create an \"Anm\" Task for our Shot::\n\n    data = {\n        'project': {'type':'Project', 'id':65},\n        'content': 'Anm',\n        'start_date': '2010-05-06',\n        'due_date': '2010-05-12',\n        'entity': {'type':'Shot', 'id':860}\n        }\n    result = sg.create(Task, data)\n\nReturns::\n\n    {'content': 'Anm',\n     'due_date': '2010-05-12',\n     'entity': {'id': 860, 'name': 'bunny_010_0010', 'type': 'Shot'},\n     'id': 557,\n     'project': {'id': 65, 'name': 'Demo Animation Project', 'type': 'Project'},\n     'start_date': '2010-05-06,\n     'type': 'Task'}\n\n\n*******************\nCreate A Dependency\n*******************\n\nTasks each have an ``upstream_tasks`` field and a ``downstream_tasks`` field. Each field is a\nlist ``[]`` type and can contain zero, one, or multiple Task entity dictionaries representing the\ndependent Tasks.\nThere are four dependency types from which you can choose: ``finish-to-start-next-day``, ``start-to-finish-next-day``, ``start-to-start``, ``finish-to-finish``.\nIf no dependency type is provided the default ``finish-to-start-next-day`` will be used.\nHere is how to create a dependency between our \"Layout\" and \"Anm\" Tasks::\n\n    # make 'Layout' an upstream Task to 'Anm'. (aka, make 'Anm' dependent on 'Layout') with finish-to-start-next-day dependency type\n    data = {\n        'upstream_tasks':[{'type':'Task','id':556, 'dependency_type': 'finish-to-start-next-day'}]\n    }\n    result = sg.update('Task', 557, data)\n\nReturns::\n\n    [{'id': 557,\n      'type': 'Task',\n      'upstream_tasks': [{'id': 556, 'name': 'Layout', 'type': 'Task'}]}]\n\nThis will also automatically update the `downstream_tasks` field on 'Layout' to include the 'Anm' Task.\n\n***********************\nQuery Task Dependencies\n***********************\n\nTask Dependencies each have a ``dependent_task_id`` and a ``task_id`` fields.\nThey correspond to ``upstream_task`` and ``downstream_task`` ids of the dependency accordingly.\nHere is how to get a TaskDependency using a ``dependent_task_id`` and a ``task_id`` fields::\n\n    filters = [[\"dependent_task_id\", \"is\", 72], [\"task_id\", \"is\", 75]]\n    result = sg.find_one('TaskDependency', filters)\n\nReturns::\n\n    {'type': 'TaskDependency', 'id': 128}\n\n****************************\nUpdating the Dependency type\n****************************\n\nWhen updating the dependency type for the existing dependencies,\nupdate the ``dependency_type`` field of the TaskDependency directly::\n\n    result = sg.update('TaskDependency', 128, {'dependency_type': 'start-to-start'})\n\nReturns::\n\n    {'dependency_type': 'start-to-start', 'type': 'TaskDependency', 'id': 128}\n\n**********************************\nQuery Tasks with Dependency Fields\n**********************************\n\nSo now lets look at the Tasks we've created and their dependency-related fields::\n\n    filters = [\n        ['entity', 'is', {'type':'Shot', 'id':860}]\n    ]\n    fields = [\n        'content',\n        'start_date',\n        'due_date',\n        'upstream_tasks',\n        'downstream_tasks',\n        'dependency_violation',\n        'pinned'\n        ]\n    result = sg.find(\"Task\", filters, fields)\n\nReturns::\n\n    [{'content': 'Layout',\n      'dependency_violation': False,\n      'downstream_tasks': [{'type': 'Task', 'name': 'Anm', 'id': 557}],\n      'due_date': '2010-05-05',\n      'id': 556,\n      'pinned': False,\n      'start_date': '2010-04-28',\n      'type': 'Task',\n      'upstream_tasks': []},\n     {'content': 'Anm',\n      'dependency_violation': False,\n      'downstream_tasks': [{'type': 'Task', 'name': 'FX', 'id': 558}],\n      'due_date': '2010-05-12',\n      'id': 557,\n      'pinned': False,\n      'start_date': '2010-05-06',\n      'type': 'Task',\n      'upstream_tasks': [{'type': 'Task', 'name': 'Layout', 'id': 556}]},\n    ...\n\n*Note that we have also created additional Tasks for this Shot but we're going to focus on these\nfirst two for simplicity.*\n\n*****************************************************************\nUpdating the End Date on a Task with Downstream Task Dependencies\n*****************************************************************\n\nIf we update the ``due_date`` field on our \"Layout\" Task, we'll see that the \"Anm\" Task dates\nwill automatically get pushed back to keep the dependency satisfied::\n\n    result = sg.update('Task', 556, {'due_date': '2010-05-07'})\n\nReturns::\n\n    [{'due_date': '2010-05-07', 'type': 'Task', 'id': 556}]\n\nOur Tasks now look like this (notice the new dates on the \"Anm\" Task)::\n\n    [{'content': 'Layout',\n      'dependency_violation': False,\n      'downstream_tasks': [{'type': 'Task', 'name': 'Anm', 'id': 557}],\n      'due_date': '2010-05-07',\n      'id': 556,\n      'pinned': False,\n      'start_date': '2010-04-28',\n      'type': 'Task',\n      'upstream_tasks': []},\n     {'content': 'Anm',\n      'dependency_violation': False,\n      'downstream_tasks': [{'type': 'Task', 'name': 'FX', 'id': 558}],\n      'due_date': '2010-05-14',\n      'id': 557,\n      'pinned': False,\n      'start_date': '2010-05-10',\n      'type': 'Task',\n      'upstream_tasks': [{'type': 'Task', 'name': 'Layout', 'id': 556}]},\n    ...\n\n\n**********************************************************\nCreating a Dependency Violation by pushing up a Start Date\n**********************************************************\n\nTask Dependencies can work nicely if you are pushing out an end date for a Task as it will just\nrecalculate the dates for all of the dependent Tasks. But what if we push up the Start Date of our\n\"Anm\" Task to start before our \"Layout\" Task is scheduled to end?\n\n::\n\n    result = sg.update('Task', 557, {'start_date': '2010-05-06'})\n\nReturns::\n\n    [{'type': 'Task', 'start_date': '2010-05-06', 'id': 557}]\n\nOur Tasks now look like this::\n\n    [{'content': 'Layout',\n      'dependency_violation': False,\n      'downstream_tasks': [{'type': 'Task', 'name': 'Anm', 'id': 557}],\n      'due_date': '2010-05-07',\n      'id': 556,\n      'pinned': False,\n      'start_date': '2010-04-28',\n      'type': 'Task',\n      'upstream_tasks': []},\n     {'content': 'Anm',\n      'dependency_violation': True,\n      'downstream_tasks': [{'type': 'Task', 'name': 'FX', 'id': 558}],\n      'due_date': '2010-05-12',\n      'id': 557,\n      'pinned': True,\n      'start_date': '2010-05-06',\n      'type': 'Task',\n      'upstream_tasks': [{'type': 'Task', 'name': 'Layout', 'id': 556}]},\n     ...\n\nBecause the \"Anm\" Task ``start_date`` depends on the ``due_date`` of the \"Layout\" Task, this\nchange creates a dependency violation. The update succeeds, but Flow Production Tracking has also set the\n``dependency_violation`` field to ``True`` and has also updated the ``pinned`` field to ``True``.\n\nThe ``pinned`` field simply means that if the upstream Task(s) are moved, the \"Anm\" Task will no\nlonger get moved with it. The dependency is still there (in ``upstream_tasks``) but the Task is\nnow \"pinned\" to those dates until the Dependency Violation is resolved.\n\n***********************************************************\nResolving a Dependency Violation by updating the Start Date\n***********************************************************\n\nWe don't want that violation there. Let's revert that change so the Start Date for \"Anm\" is after\nthe End Date of \"Layout\"::\n\n    result = sg.update('Task', 557, {'start_date': '2010-05-10'})\n\nReturns::\n\n    [{'type': 'Task', 'start_date': '2010-05-10', 'id': 557}]\n\nOur Tasks now look like this::\n\n    [{'content': 'Layout',\n      'dependency_violation': False,\n      'downstream_tasks': [{'type': 'Task', 'name': 'Anm', 'id': 557}],\n      'due_date': '2010-05-07',\n      'id': 556,\n      'pinned': False,\n      'start_date': '2010-04-28',\n      'type': 'Task',\n      'upstream_tasks': []},\n     {'content': 'Anm',\n      'dependency_violation': False,\n      'downstream_tasks': [{'type': 'Task', 'name': 'FX', 'id': 558}],\n      'due_date': '2010-05-14',\n      'id': 557,\n      'pinned': True,\n      'start_date': '2010-05-10',\n      'type': 'Task',\n      'upstream_tasks': [{'type': 'Task', 'name': 'Layout', 'id': 556}]},\n     ...\n\nThe ``dependency_violation`` field has now been set back to ``False`` since there is no longer\na violation. But notice that the ``pinned`` field is still ``True``. We will have to manually\nupdate that if we want the Task to travel with its dependencies again::\n\n    result = sg.update('Task', 557, {'pinned': False})\n\nReturns::\n\n    [{'pinned': False, 'type': 'Task', 'id': 557}]\n\nOur Tasks now look like this::\n\n    [{'content': 'Layout',\n      'dependency_violation': False,\n      'downstream_tasks': [{'type': 'Task', 'name': 'Anm', 'id': 557}],\n      'due_date': '2010-05-07',\n      'id': 556,\n      'pinned': False,\n      'start_date': '2010-04-28',\n      'type': 'Task',\n      'upstream_tasks': []},\n     {'content': 'Anm',\n      'dependency_violation': False,\n      'downstream_tasks': [{'type': 'Task', 'name': 'FX', 'id': 558}],\n      'due_date': '2010-05-14',\n      'id': 557,\n      'pinned': False,\n      'start_date': '2010-05-10',\n      'type': 'Task',\n      'upstream_tasks': [{'type': 'Task', 'name': 'Layout', 'id': 556}]},\n     ...\n\nLooks great. But that's an annoying manual process. What if we want to just reset a Task so that\nit automatically gets updated so that the Start Date is after its dependent Tasks?\n\n*******************************************************************\nUpdating the ``pinned`` field on a Task with a Dependency Violation\n*******************************************************************\n\nLet's go back a couple of steps to where our \"Anm\" Task had a Dependency Violation because we had\nmoved the Start Date up before the \"Layout\" Task End Date. Remember that the ``pinned`` field\nwas also ``True``. If we simply update the ``pinned`` field to be ``False``, Flow Production Tracking will also\nautomatically update the Task dates to satisfy the upstream dependencies and reset the\n``dependency_violation`` value to ``False``::\n\n    result = sg.update('Task', 557, {'pinned': False})\n\nReturns::\n\n    [{'pinned': False, 'type': 'Task', 'id': 557}]\n\n\nOur Tasks now look like this::\n\n    [{'content': 'Layout',\n      'dependency_violation': False,\n      'downstream_tasks': [{'type': 'Task', 'name': 'Anm', 'id': 557}],\n      'due_date': '2010-05-07',\n      'id': 556,\n      'pinned': False,\n      'start_date': '2010-04-28',\n      'type': 'Task',\n      'upstream_tasks': []},\n     {'content': 'Anm',\n      'dependency_violation': False,\n      'downstream_tasks': [{'type': 'Task', 'name': 'FX', 'id': 558}],\n      'due_date': '2010-05-14',\n      'id': 557,\n      'pinned': False,\n      'start_date': '2010-05-10',\n      'type': 'Task',\n      'upstream_tasks': [{'type': 'Task', 'name': 'Layout', 'id': 556}]},\n    ...\n\n\nNotice by updating ``pinned`` to ``False``, Flow Production Tracking also updated the ``start_date`` and\n``due_date`` fields of our \"Anm\" Task so it will satisfy the upstream Task dependencies. And since\nthat succeeded, the ``dependency_violation`` field has also been set to ``False``\n\n*******************************************\n``dependency_violation`` field is read-only\n*******************************************\n\nThe ``dependency_violation`` field is the only dependency-related field that is read-only. Trying\nto modify it will generate a Fault::\n\n    result = sg.update('Task', 557, {'dependency_violation': False})\n\nReturns::\n\n    # --------------------------------------------------------------------------------\n    # XMLRPC Fault 103:\n    # API update() Task.dependency_violation is read only:\n    # {\"value\"=>false, \"field_name\"=>\"dependency_violation\"}\n    # --------------------------------------------------------------------------------\n    # Traceback (most recent call last):\n    # ...\n"
  },
  {
    "path": "docs/cookbook/tasks/updating_tasks.rst",
    "content": ".. _updating_tasks:\n\n########################################################\nUpdating Task Dates: How Flow Production Tracking Thinks\n########################################################\n\nWhen updating Task dates in an API update() request, there is no specified order to the values that\nare passed in. Flow Production Tracking also does automatic calculation of the``start_date``,``due_date``, and ``duration`` fields for convenience. In order to clarify how updates are handled by Flow Production Tracking we are\nproviding some general rules below and examples of what will happen when you make updates to your\nTasks.\n\n**************\nGeneral Rules\n**************\n\n- Updating the ``start_date`` automatically updates the ``due_date`` (``duration`` remains constant)\n- Updating the ``due_date`` automatically updates the ``duration`` (``start_date`` remains constant)\n- Updating the ``duration`` automatically updates the ``due_date`` (``start_date`` remains constant)\n- When updating Task values, Flow Production Tracking sets schedule fields (``milestone``, ``duration``,\n  ``start_date``, ``due_date``) after all other fields, because the Project and Task Assignees\n  affect schedule calculations.\n- If ``start_date`` and ``due_date`` are both set, ``duration`` is ignored (``duration`` can often\n  be wrong since it's easy to calculate scheduling incorrectly).\n- If both ``start_date`` and ``due_date`` are provided, Flow Production Tracking sets ``start_date`` before\n  ``due_date``.\n- Set ``milestone`` before other schedule fields (because ``start_date``, ``due_date``, and\n  ``duration`` get lost if ``milestone`` is not set to ``False`` first)\n- If ``milestone`` is being set to ``True``, ``duration`` is ignored.\n- If ``milestone`` is set to ``True`` and ``start_date`` and ``due_date`` are also being set to\n  conflicting values, an Exception is raised.\n- If ``due_date`` and ``duration`` are set together (without ``start_date``), ``duration`` is set\n  first, then ``due_date`` (otherwise setting ``duration`` will change ``due_date`` after it is\n  set).\n\n***************************\nExamples for updating Tasks\n***************************\n\nThe following examples show what the resulting Task object will look like after being run on the\ninitial Task object listed under the header of each section.\n\nThe ``duration`` values in the following examples assume your Flow Production Tracking instance is set to\n10-hour work days. If your server is configured with a different setting, the ``duration`` values\nwill vary.\n\n.. note:: The ``duration`` field stores ``duration`` values in minutes\n\n\n----\n\n.. rubric:: Universal\n\nRegardless of current values on the Task, this behavior rules::\n\n    Task = {'start_date': '2011-05-20', 'due_date': '2011-05-25', 'duration': 2400, 'id':123}\n\n**Update start_date and due_date**\n\n``duration`` is ignored if also provided. It is instead set automatically as (``due_date`` -\n``start_date``)\n\n::\n\n    sg.update ('Task', 123, {'start_date':'2011-05-25', 'due_date':'2011-05-30', 'duration':1200})\n    # Task = {'start_date': '2011-05-25', 'due_date': '2011-05-30', 'duration': 2400, 'id':123}\n\n- ``start_date`` is updated.\n- ``due_date`` is updated.\n- ``duration`` is calculated as (``due_date`` - ``start_date``)\n\n.. note:: The value provided in the update() is ignored (and in this case was also incorrect).\n\n**Update start_date and duration**\n\n::\n\n    sg.update ('Task', 123, {'start_date':'2011-05-25', 'duration':3600})\n    # Task = {'start_date': '2011-05-25', 'due_date': '2011-06-01', 'duration': 3600, 'id':123}\n\n- ``start_date`` is updated.\n- ``duration`` is updated.\n- ``due_date`` is updated to (``start_date`` + ``duration``).\n\n**Update due_date and duration**\n\n::\n\n    sg.update ('Task', 123, {'due_date': '2011-05-20', 'duration':3600})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-20', 'duration': 600, 'id':123}\n\n- ``duration`` is updated.\n- ``due_date`` is updated.\n- ``duration`` is calculated as (``due_date`` - ``start_date``)\n\n.. note:: This means the ``duration`` provided is overwritten.\n\n\n----\n\n.. rubric:: Task has start_date only\n\nIf the Task only has a ``start_date`` value and has no other date values, this is how updates\nwill behave.\n\n::\n\n    Task = {'start_date': '2011-05-20', 'due_date': None, 'duration': None, 'id':123}\n\n**Update start_date**\n\n::\n\n    sg.update ('Task', 123, {'start_date':'2011-05-25'})\n    # Task = {'start_date': '2011-05-25', 'due_date': None, 'duration': None, 'id':123}\n\n- Only ``start_date`` is updated.\n\n**Update due_date**\n\n::\n\n    sg.update ('Task', 123, {'due_date':'2011-05-25'})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-25', 'duration': 2400, 'id':123}\n\n- ``due_date`` is updated.\n- ``duration`` is updated to (``due_date`` - ``start_date``).\n\n**Update duration**\n\n::\n\n    sg.update ('Task', 123, {'duration':2400})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-25', 'duration': 2400, 'id':123}\n\n- ``duration`` is updated.\n- ``due_date`` is set to (``start_date`` + ``duration``)\n\n\n----\n\n.. rubric:: Task has due_date only\n\nIf the Task only has a ``due_date`` value and has no other date values, this is how updates\nwill behave.\n\n::\n\n    # Task = {'start_date': None, 'due_date': '2011-05-25', 'duration': None, 'id':123}\n\n**Update start_date**\n\n::\n\n    sg.update ('Task', 123, {'start_date':'2011-05-20'})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-25', 'duration': 2400, 'id':123}\n\n- ``start_date`` is updated.\n- ``duration`` is updated to (``due_date`` - ``start_date``).\n\n**Update due_date**\n\n::\n\n    sg.update ('Task', 123, {'due_date':'2011-05-20'})\n    # Task = {'start_date': None, 'due_date': '2011-05-20', 'duration': None, 'id':123}\n\n- only ``due_date`` is updated.\n\n**Update duration**\n\n::\n\n    sg.update ('Task', 123, {'duration':2400})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-25', 'duration': 2400, 'id':123}\n\n- ``duration`` is updated.\n- ``start_date`` is set to (``due_date`` - ``duration``)\n\n\n----\n\n.. rubric:: Task has duration only\n\nIf the Task only has a ``duration`` value and has no other date values, this is how updates\nwill behave.\n\n::\n\n    # Task = {'start_date': None, 'due_date': None, 'duration': 2400, 'id':123}\n\n**Update start_date**\n\n::\n\n    sg.update ('Task', 123, {'start_date':'2011-05-20'})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-25', 'duration': 2400, 'id':123}\n\n- ``start_date`` is updated.\n- ``due_date`` is updated to (``start_date`` + ``duration``).\n\n**Update due_date**\n\n::\n\n    sg.update ('Task', 123, {'due_date':'2011-05-25'})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-25', 'duration': 2400, 'id':123}\n\n- ``due_date`` is updated.\n- ``start_date`` is updated to (``due_date`` - ``duration``)\n\n**Update duration**\n\n::\n\n    sg.update ('Task', 123, {'duration':3600})\n    # Task = {'start_date': None, 'due_date': None, 'duration': 3600, 'id':123}\n\n- only ``duration`` is updated.\n\n\n----\n\n.. rubric:: Task has start_date and due_date\n\nIf the Task has ``start_date`` and ``due_date`` values but has no ``duration``, this is how updates\nwill behave.\n\n::\n\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-25', 'duration': None, 'id':123}\n\n**Update start_date**\n\n::\n\n    sg.update ('Task', 123, {'start_date':'2011-05-25'})\n    # Task = {'start_date': '2011-05-25', 'due_date': '2011-05-25', 'duration': 600, 'id':123}\n\n- ``start_date`` is updated.\n- ``duration`` is updated to (``due_date`` - ``start_date``).\n\n**Update due_date**\n\n::\n\n    sg.update ('Task', 123, {'due_date':'2011-05-30'})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-30', 'duration': 4200, 'id':123}\n\n- ``due_date`` is updated.\n- ``duration`` is updated to (``due_date`` - ``start_date``)\n\n**Update duration**\n\n::\n\n    sg.update ('Task', 123, {'duration':3600})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-27', 'duration': 3600, 'id':123}\n\n- ``duration`` is updated.\n- ``due_date`` is updated to (``start_date`` + ``duration``)\n\n\n----\n\n.. rubric:: Task has start_date and duration\n\nIf the Task has ``start_date`` and ``duration`` values but has no ``due_date``, this is how updates\nwill behave.\n\n::\n\n    # Task = {'start_date': '2011-05-20', 'due_date': None, 'duration': 2400, 'id':123}\n\n**Update start_date**\n\n::\n\n    sg.update ('Task', 123, {'start_date':'2011-05-25'})\n    # Task = {'start_date': '2011-05-25', 'due_date': '2011-05-30', 'duration': 2400, 'id':123}\n\n- ``start_date`` is updated.\n- ``due_date`` is updated to (``start_date`` +``duration``).\n\n**Update due_date**\n\n::\n\n    sg.update ('Task', 123, {'due_date':'2011-05-30'})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-30', 'duration': 4200, 'id':123}\n\n- ``due_date`` is updated.\n- ``duration`` is updated to (``due_date`` - ``start_date``).\n\n**Update duration**\n\n::\n\n    sg.update ('Task', 123, {'duration':3600})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-27', 'duration': 3600, 'id':123}\n\n- ``duration`` is updated.\n- ``due_date`` is updated to (``start_date`` + ``duration``)\n\n\n----\n\n.. rubric:: Task has due_date and duration\n\nIf the Task has ``due_date`` and ``duration`` values but has no ``start_date``, this is how updates\nwill behave.\n\n::\n\n    # Task = {'start_date': None, 'due_date': '2011-05-25', 'duration': 2400, 'id':123}\n\n**Update start_date**\n\n::\n\n    sg.update ('Task', 123, {'start_date':'2011-05-25'})\n    # Task = {'start_date': '2011-05-25', 'due_date': '2011-05-30', 'duration': 2400, 'id':123}\n\n- ``start_date`` is updated.\n- ``due_date`` is updated to (``start_date`` + ``duration``).\n\n**Update due_date**\n\n::\n\n    sg.update ('Task', 123, {'due_date':'2011-05-30'})\n    # Task = {'start_date': '2011-05-25', 'due_date': '2011-05-30', 'duration': 2400, 'id':123}\n\n- ``due_date`` is updated.\n- ``start_date`` is updated to (``due_date`` - ``duration``).\n\n**Update duration**\n\n::\n\n    sg.update ('Task', 123, {'duration':3600})\n    # Task = {'start_date': '2011-05-18', 'due_date': '2011-05-25', 'duration': 3600, 'id':123}\n\n- ``duration`` is updated.\n- ``start_date`` is updated to (``due_date`` - ``duration``)\n\n\n----\n\n.. rubric:: Task has start_date ,due_date, and duration\n\nIf the Task has ``start_date``, ``due_date``, and ``duration``, this is how updates\nwill behave.\n\n::\n\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-25', 'duration': 2400, 'id':123}\n\n**Update start_date**\n\n::\n\n    sg.update ('Task', 123, {'start_date':'2011-05-25'})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-30', 'duration': 2400, 'id':123}\n\n- ``start_date`` is updated.\n- ``due_date`` is updated to (``start_date`` + ``duration``).\n\n**Update due_date**\n\n::\n\n    sg.update ('Task', 123, {'due_date':'2011-05-30'})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-30', 'duration': 4200, 'id':123}\n\n- ``due_date`` is updated.\n- ``duration`` is updated to (``due_date`` - ``start_date``)\n\n**Update duration**\n\n::\n\n    sg.update ('Task', 123, {'duration':3600})\n    # Task = {'start_date': '2011-05-20', 'due_date': '2011-05-27', 'duration': 3600, 'id':123}\n\n- ``duration`` is updated.\n- ``due_date`` is updated to (``start_date`` + ``duration``)\n"
  },
  {
    "path": "docs/cookbook/tasks.rst",
    "content": "##################\nWorking With Tasks\n##################\n\nTasks have various special functionality available in the UI that can also be queried and\nmanipulated through the API. The sections below cover these topics.\n\n.. toctree::\n    :maxdepth: 2\n\n    tasks/updating_tasks\n    tasks/task_dependencies\n    tasks/split_tasks\n"
  },
  {
    "path": "docs/cookbook/tutorials.rst",
    "content": "########\nExamples\n########\n\nHere's a list of various simple tutorials to walk through that should provide you with a good base\nunderstanding of how to use the Flow Production Tracking API and what you can do with it.\n\n*****\nBasic\n*****\n\n.. toctree::\n    :maxdepth: 1\n\n    examples/basic_sg_instance\n    examples/basic_create_shot\n    examples/basic_find_shot\n    examples/basic_update_shot\n    examples/basic_delete_shot\n    examples/basic_create_shot_task_template\n    examples/basic_create_version_link_shot\n    examples/basic_upload_thumbnail_version\n\n********\nAdvanced\n********\n\n.. toctree::\n    :maxdepth: 1\n\n    examples/ami_handler\n    examples/ami_version_packager\n    examples/svn_integration\n"
  },
  {
    "path": "docs/cookbook/usage_tips.rst",
    "content": "##############\nAPI Usage Tips\n##############\n\nBelow is a list of helpful tips when using the Flow Production Tracking API3. We have tried to make the API very\nsimple to use with predictable results while remaining a powerful tool to integrate with your\npipeline. However, there's always a couple of things that crop up that our users might not be\naware of. Those are the types of things you'll find below. We'll be adding to this document over\ntime as new questions come up from our users that exhibit these types of cases.\n\n*********\nImporting\n*********\n\nWe strongly recommend you import the entire `shotgun_api3` module instead of just importing the\n:class:`shotgun_api3.Shotgun` class from the module. There is other important functionality that\nis managed at the module level which may not work as expected if you only import the\n:class:`shotgun_api3.Shotgun` object.\n\nDo::\n\n    import shotgun_api3\n\nDon't::\n\n    from shotgun_api3 import Shotgun\n\n***************\nMulti-threading\n***************\nThe Flow Production Tracking API is not thread-safe. If you want to do threading we strongly suggest that you use\none connection object per thread and not share the connection.\n\n.. _entity-fields:\n\n*************\nEntity Fields\n*************\n\nWhen you do a :meth:`~shotgun_api3.Shotgun.find` or a :meth:`~shotgun_api3.Shotgun.create` call\nthat returns a field of type **entity** or **multi-entity** (for example the 'Assets' column on Shot),\nthe entities are returned in a standard dictionary::\n\n    {'type': 'Asset', 'name': 'redBall', 'id': 1}\n\nFor each entity returned, you will get a ``type``, ``name``, and ``id`` key. This does not mean\nthere are fields named ``type`` and ``name`` on the Asset. These are only used to provide a\nconsistent way to represent entities returned via the API.\n\n- ``type``: the entity type (CamelCase)\n- ``name``: the display name of the entity. For most entity types this is the value of the ``code``\n  field but not always. For example, on the Ticket and Delivery entities the ``name`` key would\n  contain the value of the ``title`` field.\n\n.. _custom_entities:\n\n**************\nCustomEntities\n**************\nEntity types are always referenced by their original names. So if you enable CustomEntity01 and\ncall it **Widget**. When you access it via the API, you'll still use CustomEntity01 as the\n``entity_type``.\n\nIf you want to be able to remember what all of your CustomEntities represent in a way where you\ndon't need to go look it up all the time when you're writing a new script, we'd suggest creating\na mapping table or something similar and dumping it in a shared module that your studio uses.\nSomething like the following::\n\n    # studio_globals.py\n\n    entity_type_map = {\n      'Widget': 'CustomEntity01',\n      'Foobar': 'CustomEntity02',\n      'Baz': 'CustomNonProjectEntity01,\n    }\n\n    # or even simpler, you could use a global like this\n    ENTITY_WIDGET = 'CustomEntity01'\n    ENTITY_FOOBAR = 'CustomEntity02'\n    ENTITY_BAZ = 'CustomNonProjectEntity01'\n\nThen when you're writing scripts, you don't need to worry about remembering which Custom Entity\n\"Foobars\" are, you just use your global::\n\n    import shotgun_api3\n    import studio_globals\n\n    sg = shotgun_api3.Shotgun('https://my-site.shotgrid.autodesk.com', 'script_name', '0123456789abcdef0123456789abcdef0123456')\n    result = sg.find(studio_globals.ENTITY_WIDGET,\n                     filters=[['sg_status_list', 'is', 'ip']],\n                     fields=['code', 'sg_shot'])\n\n.. _connection_entities:\n\n******************\nConnectionEntities\n******************\n\nConnection entities exist behind the scenes for any many-to-many relationship. Most of the time\nyou won't need to pay any attention to them. But in some cases, you may need to track information\non the instance of one entity's relationship to another.\n\nFor example, when viewing a list of Versions on a Playlist, the Sort Order (``sg_sort_order``) field is an\nexample of a field that resides on the connection entity between Playlists and Versions. This\nconnection entity is appropriately called `PlaylistVersionConnection`. Because any Version can\nexist in multiple Playlists, the sort order isn't specific to the Version, it's specific to\neach _instance_ of the Version in a Playlist. These instances are tracked using connection\nentities in Shtogun and are accessible just like any other entity type in Flow Production Tracking.\n\nTo find information about your Versions in the Playlist \"Director Review\" (let's say it has an\n``id`` of 4). We'd run a query like so::\n\n    filters = [['playlist', 'is', {'type':'Playlist', 'id':4}]]\n    fields = ['playlist.Playlist.code', 'sg_sort_order', 'version.Version.code', 'version.Version.user', 'version.Version.entity']\n    order=[{'column':'sg_sort_order','direction':'asc'}]\n    result = sg.find('PlaylistVersionConnection', filters, fields, order)\n\n\nWhich returns the following::\n\n    [{'id': 28,\n      'playlist.Playlist.code': 'Director Review',\n      'sg_sort_order': 1.0,\n      'type': 'PlaylistVersionConnection',\n      'version.Version.code': 'bunny_020_0010_comp_v003',\n      'version.Version.entity': {'id': 880,\n                                 'name': 'bunny_020_0010',\n                                 'type': 'Shot'},\n      'version.Version.user': {'id': 19, 'name': 'Artist 1', 'type': 'HumanUser'}},\n     {'id': 29,\n      'playlist.Playlist.code': 'Director Review',\n      'sg_sort_order': 2.0,\n      'type': 'PlaylistVersionConnection',\n      'version.Version.code': 'bunny_020_0020_comp_v003',\n      'version.Version.entity': {'id': 881,\n                                 'name': 'bunny_020_0020',\n                                 'type': 'Shot'},\n      'version.Version.user': {'id': 12, 'name': 'Artist 8', 'type': 'HumanUser'}},\n     {'id': 30,\n      'playlist.Playlist.code': 'Director Review',\n      'sg_sort_order': 3.0,\n      'type': 'PlaylistVersionConnection',\n      'version.Version.code': 'bunny_020_0030_comp_v003',\n      'version.Version.entity': {'id': 882,\n                                 'name': 'bunny_020_0030',\n                                 'type': 'Shot'},\n      'version.Version.user': {'id': 33, 'name': 'Admin 5', 'type': 'HumanUser'}},\n     {'id': 31,\n      'playlist.Playlist.code': 'Director Review',\n      'sg_sort_order': 4.0,\n      'type': 'PlaylistVersionConnection',\n      'version.Version.code': 'bunny_020_0040_comp_v003',\n      'version.Version.entity': {'id': 883,\n                                 'name': 'bunny_020_0040',\n                                 'type': 'Shot'},\n      'version.Version.user': {'id': 18, 'name': 'Artist 2', 'type': 'HumanUser'}},\n     {'id': 32,\n      'playlist.Playlist.code': 'Director Review',\n      'sg_sort_order': 5.0,\n      'type': 'PlaylistVersionConnection',\n      'version.Version.code': 'bunny_020_0050_comp_v003',\n      'version.Version.entity': {'id': 884,\n                                 'name': 'bunny_020_0050',\n                                 'type': 'Shot'},\n      'version.Version.user': {'id': 15, 'name': 'Artist 5', 'type': 'HumanUser'}}]\n\n\n- ``version`` is the Version record for this connection instance.\n- ``playlist`` is the Playlist record for this connection instance.\n- ``sg_sort_order`` is the sort order field on the connection instance.\n\nWe can pull in field values from the linked Playlist and Version entities using dot notation like\n``version.Version.code``. The syntax is ``fieldname.EntityType.fieldname``. In this example,\n``PlaylistVersionConnection`` has a field named ``version``. That field contains a ``Version``\nentity. The field we are interested on the Version is ``code``. Put those together with our f\nriend the dot and we have ``version.Version.code``.\n\n************************************************************\nFlow Production Tracking UI fields not available via the API\n************************************************************\n\nSummary type fields like Query Fields and Pipeline Step summary fields are currently only available\nvia the UI. Some other fields may not work as expected through the API because they are \"display\nonly\" fields made available for convenience and are only available in the browser UI.\n\nHumanUser\n=========\n\n- ``name``: This is a UI-only field that is a combination of the ``firstname`` + ``' '`` +\n  ``lastname``.\n\nShot\n====\n\n**Smart Cut Fields**: These fields are available only in the browser UI. You can read more about\nsmart cut fields and the API in the :ref:`Smart Cut Fields doc <smart_cut_fields>`::\n\n    smart_cut_in\n    smart_cut_out\n    smart_cut_duration\n    smart_cut_summary_display\n    smart_duration_summary_display\n    smart_head_in\n    smart_head_out\n    smart_head_duration\n    smart_tail_in\n    smart_tail_out\n    smart_tail_duration\n    smart_working_duration\n\n\nPipeline Step summary fields on entities\n========================================\n\nThe Pipeline Step summary fields on entities that have Tasks aren't currently available via the API\nand are calculated on the client side in the UI. These fields are like ``step_0``, or ``step_13``.\nNote that the Pipeline Step entity itself is available via the API as the entity type ``Step``.\n\nQuery Fields\n============\n\nQuery fields are also summary fields like Pipeline Steps, the query is run from the client side UI\nand therefore is not currently supported in the API.\n\n************\nAudit Fields\n************\nYou can set the ``created_by`` and ``created_at`` fields via the API at creation time. This is\noften useful for when you're importing or migrating data from another source and want to keep the\nhistory in tact. However, you cannot set the ``updated_by`` and ``updated_at`` fields. These are\nautomatically set whenever an entity is created or updated.\n\n.. _logging:\n\n*****************************\nLogging Messages from the API\n*****************************\n\nThe API uses standard python logging but does not define a handler.\n\nTo see the logging output in stdout, define a streamhandler in your script::\n\n    import logging\n    import shotgun_api3 as shotgun\n    logging.basicConfig(level=logging.DEBUG)\n\nTo write logging output from the Flow Production Tracking API to a file, define a file handler in your script::\n\n    import logging\n    import shotgun_api3 as shotgun\n    logging.basicConfig(level=logging.DEBUG, filename='/path/to/your/log')\n\nTo suppress the logging output from the API in a script which uses logging, set the level of the\nFlow Production Tracking logger to a higher level::\n\n    import logging\n    import shotgun_api3 as shotgun\n    sg_log = logging.getLogger('shotgun_api3')\n    sg_log.setLevel(logging.ERROR)\n\n*************\nOptimizations\n*************\n\n.. _combining-related-queries:\n\nCombining Related Queries\n=========================\nReducing round-trips for data via the API can significantly improve the speed of your application.\nMuch like \"Bubble Fields\" / \"Field Hopping\" in the UI, we can poll Flow Production Tracking for data on the fields\nof entities linked to our main query, both as a part of the query parameters as well as in the\ndata returned.\n\nStarting with a simple and common example, many queries require knowing what project your data is\nassociated with. Without using \"field hopping\" in an API call, you would first get the project and\nthen use that data for your follow up query, like so::\n\n    # Get the project\n    project_name = 'Big Buck Bunny'\n    sg_project = sg.find(\"Project\", [['name', 'is', project_name]])\n\n    # Use project result to get associated shots\n    sg_shots = sg.find(\"Shot\", [['project', 'is', sg_project]], ['code'])\n\nWith \"field hopping\" you can combine these queries into::\n\n    # Get all shots on 'Big Buck Bunny' project\n    project_name = 'Big Buck Bunny'\n    sg_shots = sg.find(\"Shot\", [['project.Project.name', 'is', project_name]], ['code'])\n\nAs you can see above, the syntax is to use \"``.``\" dot notation, joining field names to entity\ntypes in a chain. In this example we start with the field ``project`` on the ``Shot`` entity, then\nspecify we're looking for the \"name\" field on the Project entity by specifying ``Project.name``.\n\nNow that we've demonstrated querying using dot notation, let's take a look at returning linked data\nby adding the status of each Sequence entity associated with each Shot in our previous query::\n\n    # Get shot codes and sequence status all in one query\n    project_name = 'Big Buck Bunny'\n    sg_shots = sg.find(\"Shot\", [['project.Project.name', 'is', project_name]],\n                       ['code', 'sg_sequence.Sequence.sg_status_list'])\n\nThe previous examples use the :meth:`~shotgun_api3.Shotgun.find` method. However, it's also applicable\nto the :meth:`~shotgun_api3.Shotgun.create` method.\n\n.. note::\n    Due to performance concerns with deep linking, we only support using dot notation chains for\n    single-entity relationships. This means that if you try to pull data through a multi-entity\n    field you will not get the desired result.\n"
  },
  {
    "path": "docs/cookbook.rst",
    "content": "************\nAPI Cookbook\n************\n\nHere we have a collection of useful information you can use for reference when writing your API\nscripts. From usage tips and gotchas to deeper examples of working with entities like Tasks and\nFiles, there's a lot of example code in here for you to play with.\n\n.. rubric:: Usage Tips\n\nThese are some best-practices and good guidelines to follow when developing your scripts.\nYou'll also find some gotchas you can avoid.\n\n.. toctree::\n    :maxdepth: 2\n\n    cookbook/usage_tips\n\n.. rubric:: Examples\n\nSome basic example scripts that we walk you through from beginning to end. Feel free to copy\nand paste any of these into your own scripts.\n\n.. toctree::\n    :maxdepth: 3\n\n    cookbook/tutorials\n\n.. rubric:: Working With Files\n\nYou'll probably be doing some work with files at your studio. This is a deep dive into some of\nthe inners of how Flow Production Tracking handles files (also called Attachments) and the different ways to link\nto them.\n\n.. toctree::\n    :maxdepth: 2\n\n    cookbook/attachments\n\n.. rubric:: Working With Tasks\n\nScheduling is a complex beast. Flow Production Tracking can handle lots of different types of functionality around\nscheduling like split tasks, dependencies, and more. These docs walk you through the details of\nhow Flow Production Tracking thinks when it's handling Task changes and how you can make your scripts do what you\nneed to do.\n\n.. toctree::\n    :maxdepth: 2\n\n    cookbook/tasks\n\n.. rubric:: Smart Cut Fields\n\nSmart Cut Fields are deprecated in favor of the\n`new cut support added in ShotGrid v7.0 <https://knowledge.autodesk.com/support/shotgrid/learn-explore/caas/CloudHelp/cloudhelp/ENU/SG-Editorial/files/SG-Editorial-ed-cut-schema-html-html.html>`_.\nThis documentation remains only to support studios who may not have upgraded to the new cut support\nfeatures.\n\n.. toctree::\n    :maxdepth: 2\n\n    cookbook/smart_cut_fields\n"
  },
  {
    "path": "docs/index.rst",
    "content": "###########################################\nFlow Production Tracking Python API library\n###########################################\nRelease |version|. (:ref:`Installation <installation>`)\n\n.. image:: https://img.shields.io/badge/shotgun-api-blue.svg\n\n\n\nFlow Production Tracking (FPTR) provides a simple Python-based API for accessing FPTR and integrating with other tools.\nThe Flow Production Tracking API3, also known as \"Python API\", allows users to integrate their tools with Flow Production Tracking very easily. Using this simple\nbut powerful python module, you can quickly get your scripts integrated with Flow Production Tracking's CRUD-based\nAPI.\n\nBecause the needs of every studio can prove to be very different, we don't include a lot of\n\"automation\" or \"smarts\" in our API. We have kept it pretty low-level and leave most of those\ndecisions to you. The API is powerful enough you can write your own \"smarts\" in a wrapper on top\nof the of the FPTR API3.\n\n.. _pythonoverviewvideo:\n\nOverview Video of Setting Up Your Environment with the Python API\n=================================================================\n\n.. raw:: html\n\n   <iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/RYEBQDJiXAs\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n\nIn addition to basic metadata, the API contains methods for managing media including thumbnails,\nfilmstrip thumbnails, images, uploaded, and both locally and remotely linked media like\nQuicktimes, etc.\n\n**Example**::\n\n    sg = shotgun_api3.Shotgun(\"https://my-site.shotgrid.autodesk.com\",\n                              login=\"rhendriks\",\n                              password=\"c0mPre$Hi0n\")\n    sg.find(\"Shot\", filters=[[\"sg_status_list\", \"is\", \"ip\"]], fields=[\"code\", \"sg_status_list\"])\n\n**Output**::\n\n    [{'code': 'bunny_020_0170',\n      'id': 896,\n      'sg_sequence': {'id': 5, 'name': 'bunny_020', 'type': 'Sequence'},\n      'sg_status_list': 'ip',\n      'type': 'Shot'},\n     {'code': 'bunny_020_0200',\n      'id': 899,\n      'sg_sequence': {'id': 5, 'name': 'bunny_020', 'type': 'Sequence'},\n      'sg_status_list': 'ip',\n      'type': 'Shot'},\n     {'code': 'bunny_030_0080',\n      'id': 907,\n      'sg_sequence': {'id': 6, 'name': 'bunny_030', 'type': 'Sequence'},\n      'sg_status_list': 'ip',\n      'type': 'Shot'}]\n\n\n**********\nUser Guide\n**********\n.. toctree::\n    :maxdepth: 2\n\n    installation\n    authentication\n    reference\n    cookbook\n    advanced\n\n\nIndices and tables\n==================\n\n* :ref:`genindex`\n* :ref:`modindex`\n* :ref:`search`\n"
  },
  {
    "path": "docs/installation.rst",
    "content": "############\nInstallation\n############\n\n********************\nMinimum Requirements\n********************\n\n.. note::\n    Some features of the API are only supported by more recent versions of the Flow Production Tracking server.\n    These features are added to the Python API in a backwards compatible way so that existing\n    scripts will continue to function as expected. Accessing a method that is not supported for\n    your version of Flow Production Tracking will raise an appropriate exception. In general, we attempt to\n    document these where possible.\n\nPython versions\n===============\n\nThe Python API library supports the following Python versions: `3.9`, `3.10`,\n`3.11`, and `3.13`.\nWe recommend using Python 3.13.\n\n.. important::\n    Python versions older than 3.9 are no longer supported as of March 2025 and compatibility will be discontinued after\n    March 2026.\n\n\n******************************\nInstalling into ``PYTHONPATH``\n******************************\nYou can  `download the latest release from Github <https://github.com/shotgunsoftware/python-api/releases>`_\nor `clone the repo <https://github.com/shotgunsoftware/python-api>`_ to your local filesystem.\nYou'll need to save it somewhere your local Python installation can find it.\n\n.. seealso:: For more information on ``PYTHONPATH`` and using modules in Python, see\n    http://docs.python.org/tutorial/modules.html\n\n.. note::\n    :ref:`Visit the introduction to the Python API <pythonoverviewvideo>` to see an overview video of Setting Up Your Environment with the Python API.\n\n***********************\nInstalling with ``pip``\n***********************\n\nInstalling the Master Branch From Github\n========================================\nIf you wish to install the current master, use the following command::\n\n    pip install git+https://github.com/shotgunsoftware/python-api.git\n\n.. note:: The master branch contains the latest revisions and while largely considered \"stable\"  it\n    is not an official packaged release.\n\nInstalling A specific Version From Github\n=========================================\nTo install a specific version of the package from Github, run the following command. This example\ninstalls the v3.0.26 tag, replace the version tag with the one you want::\n\n    pip install git+https://github.com/shotgunsoftware/python-api.git@v3.0.26\n\n\n``requirements.txt``\n~~~~~~~~~~~~~~~~~~~~\nIf you're using pip with `requirements.txt`, add the following line::\n\n    git+https://github.com/shotgunsoftware/python-api.git\n\n\n****************************\nInstalling with ``setup.py``\n****************************\n\nFrom a local copy of the repository, you can run ``python setup.py install`` to copy the package inside your python ``site-packages``. Note that while ``setuptools`` will complain about syntax errors when installing the library, the library is fully functional.\n"
  },
  {
    "path": "docs/reference.rst",
    "content": ".. currentmodule:: shotgun_api3\n\n.. _apireference:\n\n#############\nAPI Reference\n#############\n\n\n*****************************\n``shotgun`` Module Attributes\n*****************************\n\nThe :mod:`~shotgun_api3.shotgun` module is a container for the :class:`~shotgun.Shotgun`\nclass. There are a couple of useful attributes to note.\n\n.. automodule:: shotgun_api3.shotgun\n    :members: LOG\n    :private-members:\n    :special-members:\n\n***************\nShotgun()\n***************\n\n.. autoclass:: Shotgun\n    :show-inheritance:\n\n***************\nShotgun Methods\n***************\n\nThe majority of functionality is contained within the :class:`~shotgun_api3.Shotgun` class.\nThe documentation for all of the methods you'll need in your scripts lives in here.\n\n.. rubric:: Connection & Authentication\n\n.. autosummary::\n    :nosignatures:\n\n    Shotgun.connect\n    Shotgun.close\n    Shotgun.authenticate_human_user\n    Shotgun.get_session_token\n    Shotgun.add_user_agent\n    Shotgun.reset_user_agent\n    Shotgun.set_session_uuid\n    Shotgun.info\n\n.. rubric:: CRUD Methods\n\n.. autosummary::\n    :nosignatures:\n\n    Shotgun.create\n    Shotgun.find\n    Shotgun.find_one\n    Shotgun.update\n    Shotgun.delete\n    Shotgun.revive\n    Shotgun.batch\n    Shotgun.summarize\n    Shotgun.note_thread_read\n    Shotgun.text_search\n    Shotgun.update_project_last_accessed\n    Shotgun.work_schedule_read\n    Shotgun.work_schedule_update\n    Shotgun.preferences_read\n    Shotgun.export_page\n\n.. rubric:: Working With Files\n\n.. autosummary::\n    :nosignatures:\n\n    Shotgun.upload\n    Shotgun.upload_thumbnail\n    Shotgun.upload_filmstrip_thumbnail\n    Shotgun.download_attachment\n    Shotgun.get_attachment_download_url\n    Shotgun.share_thumbnail\n\n.. rubric:: Activity Stream\n\n.. autosummary::\n    :nosignatures:\n\n    Shotgun.activity_stream_read\n    Shotgun.follow\n    Shotgun.unfollow\n    Shotgun.followers\n    Shotgun.following\n\n.. rubric:: Working with the Shotgun Schema and Preferences\n\n.. autosummary::\n    :nosignatures:\n\n    Shotgun.schema_entity_read\n    Shotgun.schema_field_read\n    Shotgun.schema_field_create\n    Shotgun.schema_field_update\n    Shotgun.schema_field_delete\n    Shotgun.schema_read\n    Shotgun.schema\n    Shotgun.entity_types\n\n\nConnection & Authentication\n===========================\n\nThese methods are used for connecting and authenticating with your Flow Production Tracking server. Most of\nthis is done automatically when you instantiate your instance. But if you need finer-grain\ncontrol, these methods are available.\n\n.. automethod:: Shotgun.connect\n.. automethod:: Shotgun.close\n.. automethod:: Shotgun.authenticate_human_user\n.. automethod:: Shotgun.get_session_token\n.. automethod:: Shotgun.get_auth_cookie_handler\n.. automethod:: Shotgun.add_user_agent\n.. automethod:: Shotgun.reset_user_agent\n.. automethod:: Shotgun.set_session_uuid\n.. automethod:: Shotgun.info\n\nSubscription Management\n=======================\n\nThese methods are used for reading and assigning user subscriptions.\n\n.. automethod:: Shotgun.user_subscriptions_read\n.. automethod:: Shotgun.user_subscriptions_create\n\nCRUD Methods\n============\n\nThese are the main methods for creating, reading, updating, and deleting information. There are\nalso some specialized convenience methods for accessing particular types of information.\n\n.. automethod:: Shotgun.create\n.. automethod:: Shotgun.find\n.. automethod:: Shotgun.find_one\n.. automethod:: Shotgun.update\n.. automethod:: Shotgun.delete\n.. automethod:: Shotgun.revive\n.. automethod:: Shotgun.batch\n.. automethod:: Shotgun.summarize\n.. automethod:: Shotgun.note_thread_read\n.. automethod:: Shotgun.text_search\n.. automethod:: Shotgun.update_project_last_accessed\n.. automethod:: Shotgun.work_schedule_read\n.. automethod:: Shotgun.work_schedule_update\n.. automethod:: Shotgun.preferences_read\n.. automethod:: Shotgun.export_page\n\nWorking With Files\n==================\n\nMethods that handle uploading and downloading files including thumbnails.\n\n.. seealso:: :ref:`attachments`\n\n.. automethod:: Shotgun.upload\n.. automethod:: Shotgun.upload_thumbnail\n.. automethod:: Shotgun.upload_filmstrip_thumbnail\n.. automethod:: Shotgun.download_attachment\n.. automethod:: Shotgun.get_attachment_download_url\n.. automethod:: Shotgun.share_thumbnail\n\nActivity Stream\n===============\n\nMethods that relate to the activity stream and following of entities in Flow Production Tracking.\n\n.. automethod:: Shotgun.activity_stream_read\n.. automethod:: Shotgun.follow\n.. automethod:: Shotgun.unfollow\n.. automethod:: Shotgun.followers\n.. automethod:: Shotgun.following\n\nWorking with the Shotgun Schema\n===============================\n\nMethods allow you to introspect and modify the Shotgun schema.\n\n.. automethod:: Shotgun.schema_entity_read\n.. automethod:: Shotgun.schema_field_read\n.. automethod:: Shotgun.schema_field_create\n.. automethod:: Shotgun.schema_field_update\n.. automethod:: Shotgun.schema_field_delete\n.. automethod:: Shotgun.schema_read\n.. automethod:: Shotgun.schema\n.. automethod:: Shotgun.entity_types\n\n**********\nExceptions\n**********\n\nThese are the various exceptions that the Flow Production Tracking API will raise.\n\n.. autoclass:: shotgun_api3.ShotgunError\n    :show-inheritance:\n    :inherited-members:\n    :members:\n\n.. autoclass:: shotgun_api3.ShotgunFileDownloadError\n    :show-inheritance:\n    :inherited-members:\n    :members:\n\n.. autoclass:: shotgun_api3.Fault\n    :show-inheritance:\n    :inherited-members:\n    :members:\n\n.. autoclass:: shotgun_api3.AuthenticationFault\n    :show-inheritance:\n    :inherited-members:\n    :members:\n\n.. autoclass:: shotgun_api3.MissingTwoFactorAuthenticationFault\n    :show-inheritance:\n    :inherited-members:\n    :members:\n\n\n.. _filter_syntax:\n\n*************\nFilter Syntax\n*************\n\nBasic Filters\n=============\n\nFilters are represented as a list of conditions that will be combined using the supplied\nfilter_operator (``any`` or ``all``). Each condition follows the basic simple form::\n\n    [<field>, <relation>, <value(s)>]\n\nBasic Example\n-------------\nUsing the default filter_operator ``\"all\"``, the following filters will return all Shots whose status\nis \"ip\" AND is linked to Asset #9::\n\n    filters = [\n        [\"sg_status_list\", \"is\", \"ip\"],\n        [\"assets\", \"is\", {\"type\": \"Asset\", \"id\": 9}]\n    ]\n    result = sg.find(\"Shot\", filters)\n\n\nComplex Filters\n===============\n\n.. versionadded::3.0.11\n\nComplex filters can be a dictionary that represents a complex sub-condition of the form::\n\n    {\"filter_operator\": \"any\", \"filters\": [<list of conditions>]}\n\nComplex Example\n---------------\nUsing the default filter_operator ``\"all\"``, the following filters will return all Shots whose status\nis \"ip\" AND is linked to either Asset #9 OR Asset #23::\n\n    filters = [\n        [\"sg_status_list\", \"is\", \"ip\"],\n        {\n            \"filter_operator\": \"any\",\n            \"filters\": [\n                [\"assets\", \"is\", {\"type\": \"Asset\", \"id\": 9}],\n                [\"assets\", \"is\", {\"type\": \"Asset\", \"id\": 23}]\n            ]\n        }\n    ]\n    result = sg.find(\"Shot\", filters)\n\n\nOperators and Arguments\n=======================\n\n::\n\n    Operator                    Arguments\n    --------                    ---------\n    'is'                        [field_value] | None\n    'is_not'                    [field_value] | None\n    'less_than'                 [field_value] | None\n    'greater_than'              [field_value] | None\n    'contains'                  [field_value] | None\n    'not_contains'              [field_value] | None\n    'starts_with'               [string]\n    'ends_with'                 [string]\n    'between'                   [[field_value] | None, [field_value] | None]\n    'not_between'               [[field_value] | None, [field_value] | None]\n    'in_last'                   [[int], 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR']\n                                       # note that brackets are not literal (eg. ['start_date', 'in_last', 1, 'DAY'])\n    'in_next'                   [[int], 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR']\n                                       # note that brackets are not literal (eg. ['start_date', 'in_next', 1, 'DAY'])\n    'in'                        [[field_value], ...]        # Array of field values\n    'type_is'                   [string] | None             # Shotgun entity type\n    'type_is_not'               [string] | None             # Shotgun entity type\n    'in_calendar_day'           [int]                       # Offset (e.g. 0 = today, 1 = tomorrow,\n                                                            # -1 = yesterday)\n    'in_calendar_week'          [int]                       # Offset (e.g. 0 = this week, 1 = next week,\n                                                            # -1 = last week)\n    'in_calendar_month'         [int]                       # Offset (e.g. 0 = this month, 1 = next month,\n                                                            # -1 = last month)\n    'name_contains'             [string]\n    'name_not_contains'         [string]\n    'name_starts_with'          [string]\n    'name_ends_with'            [string]\n\n\nValid Operators By Data Type\n============================\n\n::\n\n    addressing                  'is'\n                                'is_not'\n                                'contains'\n                                'not_contains'\n                                'in'\n                                'type_is'\n                                'type_is_not'\n                                'name_contains'\n                                'name_not_contains'\n                                'name_starts_with'\n                                'name_ends_with'\n\n    checkbox                    'is'\n                                'is_not'\n\n    currency                    'is'\n                                'is_not'\n                                'less_than'\n                                'greater_than'\n                                'between'\n                                'not_between'\n                                'in'\n                                'not_in'\n\n    date                        'is'\n                                'is_not'\n                                'greater_than'\n                                'less_than'\n                                'in_last'\n                                'not_in_last'\n                                'in_next'\n                                'not_in_next'\n                                'in_calendar_day'\n                                'in_calendar_week'\n                                'in_calendar_month'\n                                'in_calendar_year'\n                                'between'\n                                'in'\n                                'not_in'\n\n    date_time                   'is'\n                                'is_not'\n                                'greater_than'\n                                'less_than'\n                                'in_last'\n                                'not_in_last'\n                                'in_next'\n                                'not_in_next'\n                                'in_calendar_day'\n                                'in_calendar_week'\n                                'in_calendar_month'\n                                'in_calendar_year'\n                                'between'\n                                'in'\n                                'not_in'\n\n    duration                    'is'\n                                'is_not'\n                                'greater_than'\n                                'less_than'\n                                'between'\n                                'in'\n                                'not_in'\n\n    entity                      'is'\n                                'is_not'\n                                'type_is'\n                                'type_is_not'\n                                'name_contains'\n                                'name_not_contains'\n                                'name_is'\n                                'in'\n                                'not_in'\n\n    float                       'is'\n                                'is_not'\n                                'greater_than'\n                                'less_than'\n                                'between'\n                                'in'\n                                'not_in'\n\n    image                       'is' ** Note: For both 'is' and 'is_not', the only supported value is None,\n                                'is_not' **  which supports detecting the presence or lack of a thumbnail.\n\n    list                        'is'\n                                'is_not'\n                                'in'\n                                'not_in'\n\n    multi_entity                'is' ** Note:  when used on multi_entity, this functions as\n                                                you would expect 'contains' to function\n                                'is_not'\n                                'type_is'\n                                'type_is_not'\n                                'name_contains'\n                                'name_not_contains'\n                                'in'\n                                'not_in'\n\n    number                      'is'\n                                'is_not'\n                                'less_than'\n                                'greater_than'\n                                'between'\n                                'not_between'\n                                'in'\n                                'not_in'\n\n    password                    ** Filtering by this data type field not supported\n\n    percent                     'is'\n                                'is_not'\n                                'greater_than'\n                                'less_than'\n                                'between'\n                                'in'\n                                'not_in'\n\n    serializable                ** Filtering by this data type field not supported\n\n    status_list                 'is'\n                                'is_not'\n                                'in'\n                                'not_in'\n\n    summary                     ** Filtering by this data type field not supported\n\n\n    tag_list                    'is'  ** Note:  when used on tag_list, this functions as\n                                                you would expect 'contains' to function\n                                'is_not'\n                                'name_contains'\n                                'name_not_contains'\n                                'name_id'\n\n    text                        'is'\n                                'is_not'\n                                'contains'\n                                'not_contains'\n                                'starts_with'\n                                'ends_with'\n                                'in'\n                                'not_in'\n\n\n    timecode                    'is'\n                                'is_not'\n                                'greater_than'\n                                'less_than'\n                                'between'\n                                'in'\n                                'not_in'\n\n    url                         ** Filtering by this data type field is not supported\n\n\n.. _additional_filter_presets:\n\nAdditional Filter Presets\n=========================\n\nAs of Flow Production Tracking version 7.0 it is possible to also use filter presets. These presets provide a simple\nway to specify powerful query filters that would otherwise be costly and difficult to craft using\ntraditional filters.\n\nMultiple presets can be specified in cases where it makes sense.\n\nAlso, these presets can be used alongside normal filters. The result returned is an AND operation\nbetween the specified filters.\n\nExample Uses\n------------\n\nThe following query will return the Version with the name 'ABC' that is linked to the latest entity\ncreated::\n\n    additional_filter_presets = [\n        {\n            \"preset_name\": \"LATEST\",\n            \"latest_by\":   \"ENTITIES_CREATED_AT\"\n        }\n    ]\n\n    filters = [['code', 'is', 'ABC']]\n\n    result = sg.find('Version', filters = filters, additional_filter_presets = additional_filter_presets)\n\n\nThe following query will find all CutItems associated to Cut #1 and return all Versions associated\nto the Shot linked to each of these CutItems::\n\n    additional_filter_presets = [\n        {\n            \"preset_name\": \"CUT_SHOT_VERSIONS\",\n            \"cut_id\":       1\n        }\n    ]\n\n    result = sg.find('Version', additional_filter_presets = additional_filter_presets)\n\nAvailable Filter Presets by Entity Type\n---------------------------------------\n\nAllowed filter presets (and preset parameter values) depend on the entity type being searched.\n\nThe table bellow gives the details about which filter preset can be used on each entity type and\nwith which parameters.\n\n::\n\n    Entity Type Preset Name       Preset Parameters   Allowed Preset Parameter Values\n    ----------- -----------       -----------------   -------------------------------\n    Cut         LATEST            [string] latest_by  'REVISION_NUMBER':\n                                                        Returns the cuts that have the\n                                                        highest revision number.\n                                                        This is typically used with a query\n                                                        filter that returns cuts with the\n                                                        same value for a given field\n                                                        (e.g. code field). This preset\n                                                        therefore allows to get\n                                                        the Cut of that set that has\n                                                        the highest revision_number value.\n\n    Version     CUT_SHOT_VERSIONS [int] cut_id        Valid Cut entity id.\n                                                        Returns all Version entities\n                                                        associated to the Shot entity\n                                                        associated to the CutItems\n                                                        of the given Cut.\n                                                        This basically allows to find all\n                                                        Versions associated to the given\n                                                        Cut, via its CutItems.\n\n                LATEST            [string] latest_by  'ENTITIES_CREATED_AT':\n                                                        When dealing with multiple\n                                                        Versions associated to a group\n                                                        of entities, this will return\n                                                        only the last Version created\n                                                        for each entity.\n                                                        For example, when dealing with a\n                                                        set of Shots, this preset allows\n                                                        to find the latest Version created\n                                                        for each of these Shots.\n\n                                                      'BY_PIPELINE_STEP_NUMBER_AND_ENTITIES_CREATED_AT':\n                                                        When dealing with multiple versions\n                                                        associated to the same entity *and*\n                                                        to Tasks, returns the Version\n                                                        associated to the Task with highest\n                                                        step.list_order.\n                                                        If multiple Versions are found for\n                                                        that step.list_order, only the\n                                                        latest Version is returned.\n                                                        This allows to isolate the Version\n                                                        entity that is the farthest along\n                                                        in the pipeline for a given entity.\n                                                        For example, when dealing with a Shot\n                                                        with multiple Versions, this preset\n                                                        will return the Version associated\n                                                        to the Task with the highest\n                                                        step.list_order value.\n    Published   LATEST            [string] latest_by  'ENTITIES_CREATED_AT':\n    Files                                               When dealing with multiple\n                                                        PublishedFiles associated to a\n                                                        group of entities, this will return\n                                                        only the last PublishedFiles created\n                                                        for each entity.\n                                                        For example, when dealing with a\n                                                        set of Versions, this preset allows\n                                                        you to find the latest PublishedFile\n                                                        created for each of these Versions.\n\n                                                      'VERSION_NUMBER':\n                                                        When dealing with multiple\n                                                        PublishedFiles associated with a\n                                                        group of entities, this returns only\n                                                        the PublishedFile with the highest\n                                                        version_number.\n\n.. _data_types:\n\n**********\nData Types\n**********\n\naddressing\n==========\n\n:value: :obj:`list`\n\nList of dicts::\n\n    [\n      {\n        'type': 'HumanUser' | 'Group',\n        'id': int,\n        ...\n      },\n      ...\n    ]\n\ncheckbox\n========\n\n:value: :obj:`bool` (``True`` | ``False``)\n\ncolor\n=====\n\n:value: :obj:`str`\n:example: ``255,0,0`` | ``pipeline_step``\n\n``pipeline_step`` indicates the Task color inherits from the Pipeline Step color.\n\ncurrency\n========\n\n:value: :obj:`float` | :obj:`None`\n:range: ``-9999999999999.99``, ``9999999999999.99``\n\ndate\n====\n\n:value: :obj:`str` | :obj:`None`\n:range: Year must be >= 1970\n:example: ``YYYY-MM-DD``\n\ndate_time\n=========\n\n:value: :mod:`datetime` | :obj:`None`\n:range: Year must be >= 1970\n\n    .. note::\n        Datetimes are stored as UTC on the server. The Flow Production Tracking API is configured to automatically\n        convert between client local time and UTC. This can be overridden.\n\nduration\n========\n\n:value: :obj:`int` | :obj:`None`\n:range: ``-2147483648``, ``2147483647``\n\nLength of time, in minutes\n\nentity\n======\n\n:value: :obj:`dict` | :obj:`None`\n\n::\n\n    {\n      'type': \"string\",\n      'id': int,\n      ...\n    }\n\nfloat\n=====\n\n:value: :obj:`float` | :obj:`None`\n:range: ``-999999999.999999``, ``999999999.999999``\n\nfootage\n=======\n\n:value: :obj:`str` | :obj:`None` ``FF-ff``\n:range: Frames must be < Preferences value for \"Advanced > Number of frames per foot of film\"\n\n    .. note::\n        Format matches Preference value for \"Formatting > Display of footage fields\".\n        Example above is default.F=Feet f=Frames.\n\nimage (read-only)\n=================\n\n:value: :obj:`str` | :obj:`None`\n\n    .. note::\n\t   Refer to :ref:`interpreting_image_field_strings`.\n\nlist\n====\n\n:value: :obj:`str` | :obj:`None`\n\nmulti_entity\n============\n\n:value: :obj:`list`\n\nList of dicts\n\n::\n\n    [\n      {\n        'type': \"string\",\n        'id': int,\n        ...\n      },\n      ...\n    ]\n\nnumber\n======\n\n:value: :obj:`int` | ``None``\n:range: ``-2147483648``, ``2147483647``\n\npassword\n========\n\n:value: :obj:`string` | ``None``\n\nReturned values of password fields are replaced with ``*******`` for security\n\npercent\n=======\n\n:value: :obj:`int` | ``None``\n:range: ``-2147483648``, ``2147483647``\n\nserializable\n============\n\n:value: :obj:`dict` | ``None``\n\nstatus_list\n===========\n\n:value: :obj:`str` | ``None``\n\nsystem_task_type (deprecated)\n=============================\n\n:value: :obj:`str` | ``None``\n\ntag_list\n========\n\n:value: :obj:`list`\n\ntext\n====\n\n:value: :obj:`str` | ``None``\n\ntimecode\n========\n\n:value: :obj:`int` | ``None``\n:range: ``-2147483648``, ``2147483647``\n\nLength of time, in milliseconds (1000 = 1 second)\n\nurl (file/link field)\n=====================\n\n:value: :obj:`dict` | ``None``\n\n::\n\n    {\n      'content_type': \"string\",\n      'link_type': \"local\" | \"url\" | \"upload\",\n      'name': \"string\",\n      'url': \"string\"\n    }\n\nLocal File Links\n----------------\n\nAdditional keys exist for local file links\n\n:value: :obj:`dict` | ``None``\n\n::\n\n    {\n      'content_type': \"string\",\n      'link_type': \"local\",\n      'local_path': \"string\" | None,\n      'local_path_linux': \"string\" | None,\n      'local_path_mac': \"string\" | None,\n      'local_path_windows': \"string\" | None,\n      'local_storage': {\n        'type': 'LocalStorage',\n        'id': int | None,\n        'name': \"string\" | None,\n      },\n      'name': \"string\",\n      'relative_path': \"string\" | None\n      'url': \"string\",\n    }\n    API versions < v3.0.3:\n\n    {\n      'url': \"string\",\n      'name': \"string\",\n      'content_type': \"string\"\n    }\n\n.. _interpreting_image_field_strings:\n\n********************************\nInterpreting Image Field Strings\n********************************\n\nThere are three possible states for values returned by an ``image`` field:\n\n.. list-table::\n   :header-rows: 1\n\n   * - Type\n     - Value - Description\n   * - :obj:`None`\n     - No thumbnail image uploaded, or thumbnail generation failed.\n   * - :obj:`str`\n     - | ``<protocol>://<domain>/images/status/transient/thumbnail_pending.png`` -\n       | URLs of this form indicate a transient placeholder icon.\n       | Returned if image requested between upload & availability from media storage.\n       | Constant string per site.\n   * - :obj:`str`\n     - | ``<signed URL for S3 object>`` -\n       | Access to final thumbnail.\n\n.. note::\n    Other upcoming features are likely to require the use of other transient thumbnails.\n    For this reason, it is highly recommended to use the prefix part of the placeholder path\n    (e.g. https://my-site.shotgrid.autodesk.com/images/status/transient/)\n    to detect any transient URLs rather than use the full path of the thumbnail.\n\n.. _event_types:\n\n***********\nEvent Types\n***********\n\nWhenever a user makes a change to any data in Flow Production Tracking, an event log entry record is created,\ncapturing the value before and after. Flow Production Tracking also logs some additional useful events that help keep\ntrack of various activity on your Flow Production Tracking instance.\n\nEvent-based Triggers\n====================\n\nEvents are particularlly useful when used in conjunction with a trigger framework like the\n`Flow Production Tracking Event Daemon <https://github.com/shotgunsoftware/shotgunEvents>`_. This allows you to\nwrite plug-ins that watch for certain types of events and then run code when they occur.\n\nStructure of Event Types\n========================\n\nThe basic structure of event types is broken into 3 parts:\n\n``Application_EntityType_Action``\n\n- ``Application``: Is always \"Shotgun\" for events automatically created by the Flow Production Tracking server.\n  Other Flow Production Tracking products may use their name in here, for example, Toolkit has its own events\n  that it logs and the application portion is identified by \"Toolkit\". If you decide to use the\n  EventLogEntry entity to log events for your scripts or tools, you would use your tool name here.\n- ``EntityType``: This is the entity type in Flow Production Tracking that was acted upon (eg. Shot, Asset, etc.)\n- ``Action``: The general action that was taken. (eg. New, Change, Retirement, Revival)\n\n\nStandard Event Types\n====================\n\nEach entity type has a standard set of events associated with it when it's created, updated,\ndeleted, and revived. They follow this pattern:\n\n- ``Shotgun_EntityType_New``: a new entity was created. Example: ``Shotgun_Task_New``\n- ``Shotgun_EntityType_Change``: an entity was modified. Example: ``Shotgun_HumanUser_Change``\n- ``Shotgun_EntityType_Retirement``: an entity was deleted. Example: ``Shotgun_Ticket_Retirement``\n- ``Shotgun_EntityType_Revival``: an entity was revived. Example: ``Shotgun_CustomEntity03_Revival``\n\nAdditional Event Types\n======================\n\nThese are _some_ of the additional event types that are logged by Flow Production Tracking:\n\n- ``Shotgun_Attachment_View``: an Attachment (file) was viewed by a user.\n- ``Shotgun_Reading_Change``: a threaded entity has been marked read or unread. For example, a\n  Note was read by a user. The readings are unique to the entity<->user connection so when a\n  Note is read by user \"joe\" it may still be unread by user \"jane\".\n- ``Shotgun_User_Login``: a user logged in to Flow Production Tracking.\n- ``Shotgun_User_Logout``: a user logged out of Flow Production Tracking.\n\n\nCustom Event Types\n==================\n\nSince ``EventLogEntries`` are entities themselves, you can create them using the API just like any\nother entity type. As mentioned previously, if you'd like to have your scripts or tools log to\nthe Flow Production Tracking event log, simply devise a thoughtful naming structure for your event types and\ncreate the EventLogEntry as needed following the usual methods for creating entities via the API.\n\nAgain, other Flow Production Tracking products like Toolkit use event logs this way.\n\n.. note::\n    EventLogEntries cannot be updated or deleted (that would defeat the purpose of course).\n\nPerformance\n===========\n\nEvent log database tables can get large very quickly. While Flow Production Tracking does very well with event logs\nthat get into the millions of records, there's an inevitable degradation of performance for pages\nthat display them in the web application as well as any API queries for events when they get too\nbig. This volume of events is not the norm, but can be reached if your server expereinces high\nusage.\n\nThis **does not** mean your Flow Production Tracking server performance will suffer in general, just any pages that\nare specifically displaying EventLogEntries in the web application, or API queries on the event\nlog that are run. We are always looking for ways to improve this in the future. If you have any\nimmediate concerns, please `reach out to our support team <https://www.autodesk.com/support>`_\n\n*********************\nEnvironment Variables\n*********************\n\nSHOTGUN_API_CACERTS\n===================\n\nUse this variable to override the default Trusted Root Certification Authorities\nCertificate Store bundled with this library.\nBy default, the library relies on `certifi <https://pypi.org/project/certifi/>`_\nas its Root CA store.\n\nThis environment variable can be used in place of the ``ca_certs`` keyword\nargument to the :class:`~shotgun.Shotgun` constructor.\nIn the case that both this environment variable is set and the keyword argument\nis provided, the value from the keyword argument will be used.\n\nFor an example about using ``SHOTGUN_API_CACERTS`` to fix a certificate issue,\nsee the `SSLHandshakeError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed <https://help.autodesk.com/view/SGDEV/ENU/?guid=SGD_qa_troubleshooting_qa_sslhandshakeerror_ssl_certificate_verify_failed_html>`_\narticle.\n\nSHOTGUN_API_RETRY_INTERVAL\n==========================\n\nStores the number of milliseconds to wait between request retries.  By default, a value of 3000 milliseconds is used. You can override the default either by setting this environment variable, or by setting the ``rpc_attempt_interval`` property on the config like so: ::\n\n    sg = Shotgun(site_name, script_name, script_key)\n    sg.config.rpc_attempt_interval = 1000 # adjusting default interval\n\nIn the case that both this environment variable and the config's ``rpc_attempt_interval`` property are set, the value in ``rpc_attempt_interal`` will be used.\n\n\nSHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION\n=======================================\n\n.. note:: (v3.7.0) This is an experimental feature. Feel free to disable this feature if you are experiencing any issues.\n\nWhen set to ``1``, this environment variable will disable the entity optimization feature.\nThis feature is enabled by default and is used to reduce the payload size made to the server when retrieving entities\nimproving overall performance by decreasing network latency and server processing.\n\nFor example, a ``find`` call like this:\n\n.. code-block:: python\n\n    sg.find('Asset', [['project', 'is', {\n        'created_at': datetime.datetime(2015, 12, 16, 11, 2, 10, tzinfo),\n        'id': 9999,\n        'name': 'Demo: Game',\n        'type': 'Project',\n        # More entity attributes\n    }]])\n\n\nWill internally be transformed as if you invoked something like this:\n\n.. code-block:: python\n\n    sg.find('Asset', [['project', 'is', {'id': 999, 'type': 'Project'}]])\n\n\nSHOTGUN_ALLOW_OLD_PYTHON\n========================\n\nWhen set to ``1``, ``shotgun_api3``  will allow being imported from Python versions that are no longer supported.\nOtherwise, when unset (or set to any other value), importing the module will raise an exception.\n\nThis is not recommended and should only be used for testing purposes.\n\n.. important::\n    The ability to import the module does not guarantee that the module will work properly on the unsupported Python\n    version. In fact, it is very likely that it will not work properly.\n\n\n************\nLocalization\n************\n\nThe Flow Production Tracking API offers the ability to return localized display names in the current user's language.\nRequests made from script/API users are localized in the site settings.\n\nThis functionality is currently supported by the methods ``Shotgun.schema_entity_read``, ``Shotgun.schema_field_read``, and ``Shotgun.schema_read``.\n\nLocalization is disabled by default. To enable localization, set the ``localized`` property to ``True``.\n\nExample for a user whose language preference is set to Japanese:\n\n.. code-block:: python\n   :emphasize-lines: 9,20\n\n    >>> sg = Shotgun(site_name, script_name, script_key)\n    >>> sg.config.localized # checking that localization is disabled\n    False\n    >>> sg.schema_field_read('Shot')\n    {\n    'sg_vendor_groups': {\n        'mandatory': {'editable': False, 'value': False},\n        # the value field (display name) is not localized\n        'name': {'editable': True, 'value': 'Vendor Groups'},\n        ...\n    },\n    ...\n    }\n    >>> sg.config.localized = True # enabling the localization\n    >>> sg.schema_field_read('Shot')\n    {\n    'sg_vendor_groups': {\n        'mandatory': {'editable': False, 'value': False},\n        # the value field (display name) is localized\n        'name': {'editable': True, 'value': '\\xe3\\x83\\x99\\xe3\\x83\\xb3\\xe3\\x83\\x80\\xe3\\x83\\xbc \\xe3\\x82\\xb0\\xe3\\x83\\xab\\xe3\\x83\\xbc\\xe3\\x83\\x97'},\n        ...\n    },\n    ...\n    }\n"
  },
  {
    "path": "setup.py",
    "content": "# -*- coding: utf-8 -*-\n# Copyright (c) 2019 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\n\nimport sys\nfrom setuptools import setup, find_packages\n\nf = open(\"README.md\")\nreadme = f.read().strip()\n\nf = open(\"LICENSE\")\nlicense = f.read().strip()\n\nsetup(\n    name=\"shotgun_api3\",\n    version=\"3.10.0\",\n    description=\"Flow Production Tracking Python API\",\n    long_description=readme,\n    author=\"Autodesk\",\n    author_email=\"https://www.autodesk.com/support\",\n    url=\"https://github.com/shotgunsoftware/python-api\",\n    license=license,\n    packages=find_packages(exclude=(\"tests\",)),\n    script_args=sys.argv[1:],\n    include_package_data=True,\n    package_data={\"\": [\"cacerts.txt\", \"cacert.pem\", \"py.typed\"]},\n    zip_safe=False,\n    python_requires=\">=3.9.0\",\n    classifiers=[\n        \"Development Status :: 5 - Production/Stable\",\n        \"Intended Audience :: Developers\",\n        \"Programming Language :: Python\",\n        \"Programming Language :: Python :: 3.9\",\n        \"Programming Language :: Python :: 3.10\",\n        \"Programming Language :: Python :: 3.11\",\n        \"Programming Language :: Python :: 3.12\",\n        \"Programming Language :: Python :: 3.13\",\n        \"Operating System :: OS Independent\",\n    ],\n)\n"
  },
  {
    "path": "shotgun_api3/__init__.py",
    "content": "# Copyright (c) 2019 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\n\nimport os\nimport sys\nimport warnings\n\nif sys.version_info < (3, 7):\n    if os.environ.get(\"SHOTGUN_ALLOW_OLD_PYTHON\", \"0\") != \"1\":\n        # This is our preferred default behavior when using an old\n        # unsupported Python version.\n        # This way, we can control where the exception is raised, and it provides a\n        # comprehensive error message rather than having users facing a random\n        # Python traceback and trying to understand this is due to using an\n        # unsupported Python version.\n\n        raise RuntimeError(\"This module requires Python version 3.7 or higher.\")\n\n    warnings.warn(\n        \"Python versions older than 3.7 are no longer supported as of January \"\n        \"2023. Since the SHOTGUN_ALLOW_OLD_PYTHON variable is enabled, this \"\n        \"module is raising a warning instead of an exception. \"\n        \"However, it is very likely that this module will not be able to work \"\n        \"on this Python version.\",\n        RuntimeWarning,\n        stacklevel=2,\n    )\nelif sys.version_info < (3, 9):\n    warnings.warn(\n        \"Python versions older than 3.9 are no longer supported as of March \"\n        \"2025 and compatibility will be discontinued after March 2026. \"\n        \"Please update to Python 3.13 or any other supported version.\",\n        DeprecationWarning,\n        stacklevel=2,\n    )\n\n\nfrom .shotgun import (\n    Shotgun,\n    ShotgunError,\n    ShotgunFileDownloadError,  # noqa unused imports\n    ShotgunThumbnailNotReady,\n    Fault,\n    AuthenticationFault,\n    MissingTwoFactorAuthenticationFault,\n    UserCredentialsNotAllowedForSSOAuthenticationFault,\n    ProtocolError,\n    ResponseError,\n    Error,\n    __version__,\n)\nfrom .shotgun import SG_TIMEZONE as sg_timezone  # noqa unused imports\n"
  },
  {
    "path": "shotgun_api3/lib/.gitignore",
    "content": "*.dist-info"
  },
  {
    "path": "shotgun_api3/lib/README.md",
    "content": "# Lib Submodules\n\n## Third Party Modules\n\nSome third-party modules are bundled with `python-api` inside lib.\n\n### httplib2\n\n`httplib2` is used to make http connections to the Flow Production Tracking server.\n\nThe version of `httplib2` bundled should be updated manually, however its version is included in the unused `shotgun_api3/lib/requirements.txt` to allow Github's automated CVE notifications to work.\n\n## Flow Production Tracking Modules\n\n### sgtimezone\n\n`sgtimezone` contains classes for easing the conversion between the server (UTC) timezone and client timezone.\n\n### mockgun\n\nMockgun is a Flow Production Tracking API mocker. It's a class that has got *most* of the same\nmethods and parameters that the Flow Production Tracking API has got. Mockgun is essentially a\nFlow Production Tracking *emulator* that (for basic operations) looks and feels like Flow Production Tracking.\n\nThe primary purpose of Mockgun is to drive unit test rigs where it becomes\ntoo slow, cumbersome or non-practical to connect to a real Flow Production Tracking. Using a\nMockgun for unit tests means that a test can be rerun over and over again\nfrom exactly the same database state. This can be hard to do if you connect\nto a live Flow Production Tracking instance.\n\n## Lib `requirements.txt`\n\nThe file `shotgun_api3/lib/requirements.txt` is not used to install any packages, however exists so that automated checks for CVEs in dependencies will know about bundled packages.\n\nFor this reason, it's important to add any newly bundled packages to this file, and to keep the file up to date if the bundled version of a module changes."
  },
  {
    "path": "shotgun_api3/lib/__init__.py",
    "content": ""
  },
  {
    "path": "shotgun_api3/lib/certifi/__init__.py",
    "content": "from .core import contents, where\n\n__all__ = [\"contents\", \"where\"]\n__version__ = \"2026.01.04\"\n"
  },
  {
    "path": "shotgun_api3/lib/certifi/__main__.py",
    "content": "import argparse\n\nfrom certifi import contents, where\n\nparser = argparse.ArgumentParser()\nparser.add_argument(\"-c\", \"--contents\", action=\"store_true\")\nargs = parser.parse_args()\n\nif args.contents:\n    print(contents())\nelse:\n    print(where())\n"
  },
  {
    "path": "shotgun_api3/lib/certifi/cacert.pem",
    "content": "\n# Issuer: CN=QuoVadis Root CA 2 O=QuoVadis Limited\n# Subject: CN=QuoVadis Root CA 2 O=QuoVadis Limited\n# Label: \"QuoVadis Root CA 2\"\n# Serial: 1289\n# MD5 Fingerprint: 5e:39:7b:dd:f8:ba:ec:82:e9:ac:62:ba:0c:54:00:2b\n# SHA1 Fingerprint: ca:3a:fb:cf:12:40:36:4b:44:b2:16:20:88:80:48:39:19:93:7c:f7\n# SHA256 Fingerprint: 85:a0:dd:7d:d7:20:ad:b7:ff:05:f8:3d:54:2b:20:9d:c7:ff:45:28:f7:d6:77:b1:83:89:fe:a5:e5:c4:9e:86\n-----BEGIN CERTIFICATE-----\nMIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x\nGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv\nb3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV\nBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W\nYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa\nGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg\nFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J\nWpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB\nrrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp\n+ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1\nksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i\nUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz\nPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og\n/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH\noycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI\nyV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud\nEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2\nA8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL\nMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT\nElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f\nBluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn\ng/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl\nfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K\nWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha\nB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc\nhLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR\nTUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD\nmbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z\nohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y\n4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza\n8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u\n-----END CERTIFICATE-----\n\n# Issuer: CN=QuoVadis Root CA 3 O=QuoVadis Limited\n# Subject: CN=QuoVadis Root CA 3 O=QuoVadis Limited\n# Label: \"QuoVadis Root CA 3\"\n# Serial: 1478\n# MD5 Fingerprint: 31:85:3c:62:94:97:63:b9:aa:fd:89:4e:af:6f:e0:cf\n# SHA1 Fingerprint: 1f:49:14:f7:d8:74:95:1d:dd:ae:02:c0:be:fd:3a:2d:82:75:51:85\n# SHA256 Fingerprint: 18:f1:fc:7f:20:5d:f8:ad:dd:eb:7f:e0:07:dd:57:e3:af:37:5a:9c:4d:8d:73:54:6b:f4:f1:fe:d1:e1:8d:35\n-----BEGIN CERTIFICATE-----\nMIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x\nGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv\nb3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV\nBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W\nYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM\nV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB\n4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr\nH556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd\n8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv\nvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT\nmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe\nbtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc\nT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt\nWAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ\nc6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A\n4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD\nVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG\nCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0\naXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0\naWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu\ndC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw\nczALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G\nA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC\nTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg\nUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0\n7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem\nd1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd\n+LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B\n4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN\nt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x\nDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57\nk8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s\nzHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j\nWy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT\nmJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK\n4SVhM7JZG+Ju1zdXtg2pEto=\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com\n# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com\n# Label: \"DigiCert Assured ID Root CA\"\n# Serial: 17154717934120587862167794914071425081\n# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72\n# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43\n# SHA256 Fingerprint: 3e:90:99:b5:01:5e:8f:48:6c:00:bc:ea:9d:11:1e:e7:21:fa:ba:35:5a:89:bc:f1:df:69:56:1e:3d:c6:32:5c\n-----BEGIN CERTIFICATE-----\nMIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv\nb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG\nEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl\ncnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c\nJpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP\nmDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+\nwRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4\nVYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/\nAUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB\nAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW\nBBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun\npyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC\ndWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf\nfwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm\nNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx\nH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe\n+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com\n# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com\n# Label: \"DigiCert Global Root CA\"\n# Serial: 10944719598952040374951832963794454346\n# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e\n# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36\n# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61\n-----BEGIN CERTIFICATE-----\nMIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\nQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\nCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\nnh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\nT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\ngdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\nTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\nDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\nhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\nPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\nYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\nCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com\n# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com\n# Label: \"DigiCert High Assurance EV Root CA\"\n# Serial: 3553400076410547919724730734378100087\n# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a\n# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25\n# SHA256 Fingerprint: 74:31:e5:f4:c3:c1:ce:46:90:77:4f:0b:61:e0:54:40:88:3b:a9:a0:1e:d0:0b:a6:ab:d7:80:6e:d3:b1:18:cf\n-----BEGIN CERTIFICATE-----\nMIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\nZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL\nMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3\nLmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug\nRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm\n+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW\nPNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM\nxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB\nIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3\nhzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg\nEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF\nMAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA\nFLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec\nnzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z\neM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF\nhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2\nYzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe\nvEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep\n+OkuE6N36B9K\n-----END CERTIFICATE-----\n\n# Issuer: CN=SwissSign Gold CA - G2 O=SwissSign AG\n# Subject: CN=SwissSign Gold CA - G2 O=SwissSign AG\n# Label: \"SwissSign Gold CA - G2\"\n# Serial: 13492815561806991280\n# MD5 Fingerprint: 24:77:d9:a8:91:d1:3b:fa:88:2d:c2:ff:f8:cd:33:93\n# SHA1 Fingerprint: d8:c5:38:8a:b7:30:1b:1b:6e:d4:7a:e6:45:25:3a:6f:9f:1a:27:61\n# SHA256 Fingerprint: 62:dd:0b:e9:b9:f5:0a:16:3e:a0:f8:e7:5c:05:3b:1e:ca:57:ea:55:c8:68:8f:64:7c:68:81:f2:c8:35:7b:95\n-----BEGIN CERTIFICATE-----\nMIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln\nbiBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF\nMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT\nd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8\n76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+\nbbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c\n6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE\nemA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd\nMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt\nMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y\nMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y\nFGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi\naG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM\ngI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB\nqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7\nlqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn\n8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov\nL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6\n45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO\nUYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5\nO1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC\nbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv\nGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a\n77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC\nhdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3\n92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp\nLd6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w\nZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt\nQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ\n-----END CERTIFICATE-----\n\n# Issuer: CN=SecureTrust CA O=SecureTrust Corporation\n# Subject: CN=SecureTrust CA O=SecureTrust Corporation\n# Label: \"SecureTrust CA\"\n# Serial: 17199774589125277788362757014266862032\n# MD5 Fingerprint: dc:32:c3:a7:6d:25:57:c7:68:09:9d:ea:2d:a9:a2:d1\n# SHA1 Fingerprint: 87:82:c6:c3:04:35:3b:cf:d2:96:92:d2:59:3e:7d:44:d9:34:ff:11\n# SHA256 Fingerprint: f1:c1:b5:0a:e5:a2:0d:d8:03:0e:c9:f6:bc:24:82:3d:d3:67:b5:25:57:59:b4:e7:1b:61:fc:e9:f7:37:5d:73\n-----BEGIN CERTIFICATE-----\nMIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz\nMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv\ncnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz\nZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO\n0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao\nwW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj\n7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS\n8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT\nBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB\n/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg\nJYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC\nNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3\n6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/\n3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm\nD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS\nCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR\n3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Secure Global CA O=SecureTrust Corporation\n# Subject: CN=Secure Global CA O=SecureTrust Corporation\n# Label: \"Secure Global CA\"\n# Serial: 9751836167731051554232119481456978597\n# MD5 Fingerprint: cf:f4:27:0d:d4:ed:dc:65:16:49:6d:3d:da:bf:6e:de\n# SHA1 Fingerprint: 3a:44:73:5a:e5:81:90:1f:24:86:61:46:1e:3b:9c:c4:5f:f5:3a:1b\n# SHA256 Fingerprint: 42:00:f5:04:3a:c8:59:0e:bb:52:7d:20:9e:d1:50:30:29:fb:cb:d4:1c:a1:b5:06:ec:27:f1:5a:de:7d:ac:69\n-----BEGIN CERTIFICATE-----\nMIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx\nMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg\nQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ\niQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa\n/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ\njnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI\nHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7\nsFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w\ngZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF\nMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw\nKaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG\nAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L\nURYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO\nH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm\nI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY\niNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc\nf8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW\n-----END CERTIFICATE-----\n\n# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited\n# Subject: CN=COMODO Certification Authority O=COMODO CA Limited\n# Label: \"COMODO Certification Authority\"\n# Serial: 104350513648249232941998508985834464573\n# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75\n# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b\n# SHA256 Fingerprint: 0c:2c:d6:3d:f7:80:6f:a3:99:ed:e8:09:11:6b:57:5b:f8:79:89:f0:65:18:f9:80:8c:86:05:03:17:8b:af:66\n-----BEGIN CERTIFICATE-----\nMIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw\nMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0\naG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3\nUcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI\n2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8\nQ5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp\n+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+\nDT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O\nnKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW\n/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g\nPKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u\nQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY\nSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv\nIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/\nRxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4\nzJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd\nBA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB\nZQ==\n-----END CERTIFICATE-----\n\n# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited\n# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited\n# Label: \"COMODO ECC Certification Authority\"\n# Serial: 41578283867086692638256921589707938090\n# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23\n# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11\n# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7\n-----BEGIN CERTIFICATE-----\nMIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL\nMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE\nBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT\nIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw\nMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy\nZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N\nT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv\nbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR\nFtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J\ncfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW\nBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/\nBAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm\nfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv\nGDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Certigna O=Dhimyotis\n# Subject: CN=Certigna O=Dhimyotis\n# Label: \"Certigna\"\n# Serial: 18364802974209362175\n# MD5 Fingerprint: ab:57:a6:5b:7d:42:82:19:b5:d8:58:26:28:5e:fd:ff\n# SHA1 Fingerprint: b1:2e:13:63:45:86:a4:6f:1a:b2:60:68:37:58:2d:c4:ac:fd:94:97\n# SHA256 Fingerprint: e3:b6:a2:db:2e:d7:ce:48:84:2f:7a:c5:32:41:c7:b7:1d:54:14:4b:fb:40:c1:1f:3f:1d:0b:42:f5:ee:a1:2d\n-----BEGIN CERTIFICATE-----\nMIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV\nBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X\nDTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ\nBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3\nDQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4\nQCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny\ngQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw\nzBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q\n130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2\nJsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw\nDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw\nZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT\nAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj\nAQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG\n9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h\nbV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc\nfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu\nHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w\nt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw\nWyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==\n-----END CERTIFICATE-----\n\n# Issuer: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority\n# Subject: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority\n# Label: \"ePKI Root Certification Authority\"\n# Serial: 28956088682735189655030529057352760477\n# MD5 Fingerprint: 1b:2e:00:ca:26:06:90:3d:ad:fe:6f:15:68:d3:6b:b3\n# SHA1 Fingerprint: 67:65:0d:f1:7e:8e:7e:5b:82:40:a4:f4:56:4b:cf:e2:3d:69:c6:f0\n# SHA256 Fingerprint: c0:a6:f4:dc:63:a2:4b:fd:cf:54:ef:2a:6a:08:2a:0a:72:de:35:80:3e:2f:f5:ff:52:7a:e5:d8:72:06:df:d5\n-----BEGIN CERTIFICATE-----\nMIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe\nMQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0\nZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe\nFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw\nIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL\nSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF\nAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH\nSyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh\nijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X\nDZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1\nTBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ\nfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA\nsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU\nWH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS\nnT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH\ndmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip\nNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC\nAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF\nMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH\nClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB\nuvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl\nPwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP\nJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/\ngpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2\nj6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6\n5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB\no2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS\n/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z\nGp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE\nW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D\nhNQ+IIX3Sj0rnP0qCglN6oH4EZw=\n-----END CERTIFICATE-----\n\n# Issuer: O=certSIGN OU=certSIGN ROOT CA\n# Subject: O=certSIGN OU=certSIGN ROOT CA\n# Label: \"certSIGN ROOT CA\"\n# Serial: 35210227249154\n# MD5 Fingerprint: 18:98:c0:d6:e9:3a:fc:f9:b0:f5:0c:f7:4b:01:44:17\n# SHA1 Fingerprint: fa:b7:ee:36:97:26:62:fb:2d:b0:2a:f6:bf:03:fd:e8:7c:4b:2f:9b\n# SHA256 Fingerprint: ea:a9:62:c4:fa:4a:6b:af:eb:e4:15:19:6d:35:1c:cd:88:8d:4f:53:f3:fa:8a:e6:d7:c4:66:a9:4e:60:42:bb\n-----BEGIN CERTIFICATE-----\nMIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT\nAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD\nQTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP\nMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do\n0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ\nUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d\nRdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ\nOA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv\nJoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C\nAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O\nBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ\nLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY\nMnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ\n44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I\nJd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw\ni/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN\n9u6wWk5JRFRYX0KD\n-----END CERTIFICATE-----\n\n# Issuer: CN=NetLock Arany (Class Gold) F\\u0151tan\\xfas\\xedtv\\xe1ny O=NetLock Kft. OU=Tan\\xfas\\xedtv\\xe1nykiad\\xf3k (Certification Services)\n# Subject: CN=NetLock Arany (Class Gold) F\\u0151tan\\xfas\\xedtv\\xe1ny O=NetLock Kft. OU=Tan\\xfas\\xedtv\\xe1nykiad\\xf3k (Certification Services)\n# Label: \"NetLock Arany (Class Gold) F\\u0151tan\\xfas\\xedtv\\xe1ny\"\n# Serial: 80544274841616\n# MD5 Fingerprint: c5:a1:b7:ff:73:dd:d6:d7:34:32:18:df:fc:3c:ad:88\n# SHA1 Fingerprint: 06:08:3f:59:3f:15:a1:04:a0:69:a4:6b:a9:03:d0:06:b7:97:09:91\n# SHA256 Fingerprint: 6c:61:da:c3:a2:de:f0:31:50:6b:e0:36:d2:a6:fe:40:19:94:fb:d1:3d:f9:c8:d4:66:59:92:74:c4:46:ec:98\n-----BEGIN CERTIFICATE-----\nMIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG\nEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3\nMDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl\ncnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR\ndGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB\npzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM\nb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm\naWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz\nIEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\nMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT\nlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz\nAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5\nVA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG\nILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2\nBJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG\nAQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M\nU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh\nbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C\n+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC\nbLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F\nuLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2\nXjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd.\n# Subject: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd.\n# Label: \"Microsec e-Szigno Root CA 2009\"\n# Serial: 14014712776195784473\n# MD5 Fingerprint: f8:49:f4:03:bc:44:2d:83:be:48:69:7d:29:64:fc:b1\n# SHA1 Fingerprint: 89:df:74:fe:5c:f4:0f:4a:80:f9:e3:37:7d:54:da:91:e1:01:31:8e\n# SHA256 Fingerprint: 3c:5f:81:fe:a5:fa:b8:2c:64:bf:a2:ea:ec:af:cd:e8:e0:77:fc:86:20:a7:ca:e5:37:16:3d:f3:6e:db:f3:78\n-----BEGIN CERTIFICATE-----\nMIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD\nVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0\nZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G\nCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y\nOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx\nFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp\nZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o\ndTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP\nkd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc\ncbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U\nfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7\nN4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC\nxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1\n+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G\nA1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM\nPcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG\nSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h\nmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk\nddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775\ntyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c\n2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t\nHMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW\n-----END CERTIFICATE-----\n\n# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3\n# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3\n# Label: \"GlobalSign Root CA - R3\"\n# Serial: 4835703278459759426209954\n# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28\n# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad\n# SHA256 Fingerprint: cb:b5:22:d7:b7:f1:27:ad:6a:01:13:86:5b:df:1c:d4:10:2e:7d:07:59:af:63:5a:7c:f4:72:0d:c9:63:c5:3b\n-----BEGIN CERTIFICATE-----\nMIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4\nMTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG\nA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI\nhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8\nRgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT\ngHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm\nKPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd\nQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ\nXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw\nDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o\nLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU\nRUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp\njjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK\n6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX\nmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs\nMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH\nWD9f\n-----END CERTIFICATE-----\n\n# Issuer: CN=Izenpe.com O=IZENPE S.A.\n# Subject: CN=Izenpe.com O=IZENPE S.A.\n# Label: \"Izenpe.com\"\n# Serial: 917563065490389241595536686991402621\n# MD5 Fingerprint: a6:b0:cd:85:80:da:5c:50:34:a3:39:90:2f:55:67:73\n# SHA1 Fingerprint: 2f:78:3d:25:52:18:a7:4a:65:39:71:b5:2c:a2:9c:45:15:6f:e9:19\n# SHA256 Fingerprint: 25:30:cc:8e:98:32:15:02:ba:d9:6f:9b:1f:ba:1b:09:9e:2d:29:9e:0f:45:48:bb:91:4f:36:3b:c0:d4:53:1f\n-----BEGIN CERTIFICATE-----\nMIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4\nMQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6\nZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD\nVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j\nb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq\nscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO\nxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H\nLmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX\nuaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD\nyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+\nJrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q\nrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN\nBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L\nhij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB\nQFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+\nHMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu\nZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg\nQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB\nBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx\nMCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC\nAQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA\nA4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb\nlaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56\nawmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo\nJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw\nLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT\nVyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk\nLhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb\nUjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/\nQnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+\nnaM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls\nQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc.\n# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc.\n# Label: \"Go Daddy Root Certificate Authority - G2\"\n# Serial: 0\n# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01\n# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b\n# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da\n-----BEGIN CERTIFICATE-----\nMIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx\nEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT\nEUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp\nZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz\nNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH\nEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE\nAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD\nE6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH\n/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy\nDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh\nGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR\ntDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA\nAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE\nFDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX\nWWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu\n9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr\ngIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo\n2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO\nLPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI\n4uJEvlz36hz1\n-----END CERTIFICATE-----\n\n# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc.\n# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc.\n# Label: \"Starfield Root Certificate Authority - G2\"\n# Serial: 0\n# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96\n# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e\n# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5\n-----BEGIN CERTIFICATE-----\nMIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx\nEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT\nHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs\nZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw\nMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6\nb25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj\naG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp\nY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg\nnLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1\nHOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N\nHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN\ndloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0\nHZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO\nBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G\nCSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU\nsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3\n4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg\n8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K\npL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1\nmMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0\n-----END CERTIFICATE-----\n\n# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc.\n# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc.\n# Label: \"Starfield Services Root Certificate Authority - G2\"\n# Serial: 0\n# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2\n# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f\n# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5\n-----BEGIN CERTIFICATE-----\nMIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx\nEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT\nHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs\nZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5\nMDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD\nVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy\nZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy\ndmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI\nhvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p\nOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2\n8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K\nTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe\nhRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk\n6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw\nDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q\nAdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI\nbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB\nve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z\nqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd\niEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn\n0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN\nsSi6\n-----END CERTIFICATE-----\n\n# Issuer: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority\n# Subject: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority\n# Label: \"Certum Trusted Network CA\"\n# Serial: 279744\n# MD5 Fingerprint: d5:e9:81:40:c5:18:69:fc:46:2c:89:75:62:0f:aa:78\n# SHA1 Fingerprint: 07:e0:32:e0:20:b7:2c:3f:19:2f:06:28:a2:59:3a:19:a7:0f:06:9e\n# SHA256 Fingerprint: 5c:58:46:8d:55:f5:8e:49:7e:74:39:82:d2:b5:00:10:b6:d1:65:37:4a:cf:83:a7:d4:a3:2d:b7:68:c4:40:8e\n-----BEGIN CERTIFICATE-----\nMIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM\nMSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D\nZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU\ncnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3\nWjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg\nUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw\nIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH\nUV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM\nTXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU\nBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM\nkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x\nAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV\nHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV\nHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y\nsHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL\nI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8\nJ9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY\nVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI\n03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=\n-----END CERTIFICATE-----\n\n# Issuer: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA\n# Subject: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA\n# Label: \"TWCA Root Certification Authority\"\n# Serial: 1\n# MD5 Fingerprint: aa:08:8f:f6:f9:7b:b7:f2:b1:a7:1e:9b:ea:ea:bd:79\n# SHA1 Fingerprint: cf:9e:87:6d:d3:eb:fc:42:26:97:a3:b5:a3:7a:a0:76:a9:06:23:48\n# SHA256 Fingerprint: bf:d8:8f:e1:10:1c:41:ae:3e:80:1b:f8:be:56:35:0e:e9:ba:d1:a6:b9:bd:51:5e:dc:5c:6d:5b:87:11:ac:44\n-----BEGIN CERTIFICATE-----\nMIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES\nMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU\nV0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz\nWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO\nLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm\naWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE\nAcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH\nK3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX\nRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z\nrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx\n3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV\nHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq\nhkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC\nMErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls\nXebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D\nlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn\naspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ\nYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==\n-----END CERTIFICATE-----\n\n# Issuer: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2\n# Subject: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2\n# Label: \"Security Communication RootCA2\"\n# Serial: 0\n# MD5 Fingerprint: 6c:39:7d:a4:0e:55:59:b2:3f:d6:41:b1:12:50:de:43\n# SHA1 Fingerprint: 5f:3b:8c:f2:f8:10:b3:7d:78:b4:ce:ec:19:19:c3:73:34:b9:c7:74\n# SHA256 Fingerprint: 51:3b:2c:ec:b8:10:d4:cd:e5:dd:85:39:1a:df:c6:c2:dd:60:d8:7b:b7:36:d2:b5:21:48:4a:a4:7a:0e:be:f6\n-----BEGIN CERTIFICATE-----\nMIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl\nMCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe\nU2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX\nDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy\ndXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj\nYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV\nOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr\nzbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM\nVAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ\nhNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO\nojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw\nawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs\nOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3\nDQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF\ncoJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc\nokgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8\nt/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy\n1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/\nSjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03\n-----END CERTIFICATE-----\n\n# Issuer: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967\n# Subject: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967\n# Label: \"Actalis Authentication Root CA\"\n# Serial: 6271844772424770508\n# MD5 Fingerprint: 69:c1:0d:4f:07:a3:1b:c3:fe:56:3d:04:bc:11:f6:a6\n# SHA1 Fingerprint: f3:73:b3:87:06:5a:28:84:8a:f2:f3:4a:ce:19:2b:dd:c7:8e:9c:ac\n# SHA256 Fingerprint: 55:92:60:84:ec:96:3a:64:b9:6e:2a:be:01:ce:0b:a8:6a:64:fb:fe:bc:c7:aa:b5:af:c1:55:b3:7f:d7:60:66\n-----BEGIN CERTIFICATE-----\nMIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE\nBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w\nMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290\nIENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC\nSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1\nODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv\nUTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX\n4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9\nKK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/\ngCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb\nrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ\n51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F\nbe8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe\nKF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F\nv6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn\nfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7\njPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz\nezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt\nifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL\ne3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70\njsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz\nWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V\nSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j\npwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX\nX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok\nfcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R\nK4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU\nZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU\nLysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT\nLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Buypass Class 2 Root CA O=Buypass AS-983163327\n# Subject: CN=Buypass Class 2 Root CA O=Buypass AS-983163327\n# Label: \"Buypass Class 2 Root CA\"\n# Serial: 2\n# MD5 Fingerprint: 46:a7:d2:fe:45:fb:64:5a:a8:59:90:9b:78:44:9b:29\n# SHA1 Fingerprint: 49:0a:75:74:de:87:0a:47:fe:58:ee:f6:c7:6b:eb:c6:0b:12:40:99\n# SHA256 Fingerprint: 9a:11:40:25:19:7c:5b:b9:5d:94:e6:3d:55:cd:43:79:08:47:b6:46:b2:3c:df:11:ad:a4:a0:0e:ff:15:fb:48\n-----BEGIN CERTIFICATE-----\nMIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd\nMBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg\nQ2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow\nTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw\nHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB\nBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr\n6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV\nL4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91\n1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx\nMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ\nQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB\narcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr\nUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi\nFRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS\nP/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN\n9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP\nAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz\nuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h\n9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s\nA20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t\nOluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo\n+fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7\nKcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2\nDISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us\nH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ\nI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7\n5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h\n3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz\nY11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Buypass Class 3 Root CA O=Buypass AS-983163327\n# Subject: CN=Buypass Class 3 Root CA O=Buypass AS-983163327\n# Label: \"Buypass Class 3 Root CA\"\n# Serial: 2\n# MD5 Fingerprint: 3d:3b:18:9e:2c:64:5a:e8:d5:88:ce:0e:f9:37:c2:ec\n# SHA1 Fingerprint: da:fa:f7:fa:66:84:ec:06:8f:14:50:bd:c7:c2:81:a5:bc:a9:64:57\n# SHA256 Fingerprint: ed:f7:eb:bc:a2:7a:2a:38:4d:38:7b:7d:40:10:c6:66:e2:ed:b4:84:3e:4c:29:b4:ae:1d:5b:93:32:e6:b2:4d\n-----BEGIN CERTIFICATE-----\nMIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd\nMBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg\nQ2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow\nTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw\nHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB\nBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y\nZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E\nN3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9\ntznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX\n0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c\n/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X\nKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY\nzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS\nO1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D\n34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP\nK9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3\nAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv\nTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj\nQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV\ncSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS\nIGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2\nHJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa\nO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv\n033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u\ndmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE\nkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41\n3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD\nu79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq\n4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc=\n-----END CERTIFICATE-----\n\n# Issuer: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center\n# Subject: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center\n# Label: \"T-TeleSec GlobalRoot Class 3\"\n# Serial: 1\n# MD5 Fingerprint: ca:fb:40:a8:4e:39:92:8a:1d:fe:8e:2f:c4:27:ea:ef\n# SHA1 Fingerprint: 55:a6:72:3e:cb:f2:ec:cd:c3:23:74:70:19:9d:2a:be:11:e3:81:d1\n# SHA256 Fingerprint: fd:73:da:d3:1c:64:4f:f1:b4:3b:ef:0c:cd:da:96:71:0b:9c:d9:87:5e:ca:7e:31:70:7a:f3:e9:6d:52:2b:bd\n-----BEGIN CERTIFICATE-----\nMIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx\nKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd\nBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl\nYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1\nOTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy\naXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50\nZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN\n8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/\nRLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4\nhqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5\nZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM\nEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj\nQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1\nA/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy\nWL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ\n1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30\n6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT\n91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml\ne9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p\nTpPDpFQUWw==\n-----END CERTIFICATE-----\n\n# Issuer: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH\n# Subject: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH\n# Label: \"D-TRUST Root Class 3 CA 2 2009\"\n# Serial: 623603\n# MD5 Fingerprint: cd:e0:25:69:8d:47:ac:9c:89:35:90:f7:fd:51:3d:2f\n# SHA1 Fingerprint: 58:e8:ab:b0:36:15:33:fb:80:f7:9b:1b:6d:29:d3:ff:8d:5f:00:f0\n# SHA256 Fingerprint: 49:e7:a4:42:ac:f0:ea:62:87:05:00:54:b5:25:64:b6:50:e4:f4:9e:42:e3:48:d6:aa:38:e0:39:e9:57:b1:c1\n-----BEGIN CERTIFICATE-----\nMIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF\nMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD\nbGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha\nME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM\nHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB\nBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03\nUAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42\ntSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R\nySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM\nlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp\n/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G\nA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G\nA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj\ndG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy\nMENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl\ncmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js\nL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL\nBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni\nacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0\no3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K\nzCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8\nPIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y\nJohw1+qRzT65ysCQblrGXnRl11z+o+I=\n-----END CERTIFICATE-----\n\n# Issuer: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH\n# Subject: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH\n# Label: \"D-TRUST Root Class 3 CA 2 EV 2009\"\n# Serial: 623604\n# MD5 Fingerprint: aa:c6:43:2c:5e:2d:cd:c4:34:c0:50:4f:11:02:4f:b6\n# SHA1 Fingerprint: 96:c9:1b:0b:95:b4:10:98:42:fa:d0:d8:22:79:fe:60:fa:b9:16:83\n# SHA256 Fingerprint: ee:c5:49:6b:98:8c:e9:86:25:b9:34:09:2e:ec:29:08:be:d0:b0:f3:16:c2:d4:73:0c:84:ea:f1:f3:d3:48:81\n-----BEGIN CERTIFICATE-----\nMIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF\nMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD\nbGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw\nNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV\nBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI\nhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn\nljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0\n3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z\nqQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR\np75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8\nHgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw\nggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea\nHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw\nOi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh\nc3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E\nRT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt\ndHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku\nY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp\n3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05\nnsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF\nCSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na\nxpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX\nKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1\n-----END CERTIFICATE-----\n\n# Issuer: CN=CA Disig Root R2 O=Disig a.s.\n# Subject: CN=CA Disig Root R2 O=Disig a.s.\n# Label: \"CA Disig Root R2\"\n# Serial: 10572350602393338211\n# MD5 Fingerprint: 26:01:fb:d8:27:a7:17:9a:45:54:38:1a:43:01:3b:03\n# SHA1 Fingerprint: b5:61:eb:ea:a4:de:e4:25:4b:69:1a:98:a5:57:47:c2:34:c7:d9:71\n# SHA256 Fingerprint: e2:3d:4a:03:6d:7b:70:e9:f5:95:b1:42:20:79:d2:b9:1e:df:bb:1f:b6:51:a0:63:3e:aa:8a:9d:c5:f8:07:03\n-----BEGIN CERTIFICATE-----\nMIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV\nBAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu\nMRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy\nMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx\nEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe\nNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH\nPWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I\nx2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe\nQTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR\nyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO\nQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912\nH9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ\nQfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD\ni/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs\nnLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1\nrqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud\nDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI\nhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM\ntCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf\nGopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb\nlvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka\n+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal\nTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i\nnSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3\ngzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr\nG5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os\nzMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x\nL4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL\n-----END CERTIFICATE-----\n\n# Issuer: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV\n# Subject: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV\n# Label: \"ACCVRAIZ1\"\n# Serial: 6828503384748696800\n# MD5 Fingerprint: d0:a0:5a:ee:05:b6:09:94:21:a1:7d:f1:b2:29:82:02\n# SHA1 Fingerprint: 93:05:7a:88:15:c6:4f:ce:88:2f:fa:91:16:52:28:78:bc:53:64:17\n# SHA256 Fingerprint: 9a:6e:c0:12:e1:a7:da:9d:be:34:19:4d:47:8a:d7:c0:db:18:22:fb:07:1d:f1:29:81:49:6e:d1:04:38:41:13\n-----BEGIN CERTIFICATE-----\nMIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE\nAwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw\nCQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ\nBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND\nVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb\nqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY\nHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo\nG2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA\nlHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr\nIA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/\n0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH\nk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47\n4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO\nm3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa\ncXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl\nuUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI\nKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls\nZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG\nAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2\nVuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT\nVfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG\nCCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA\ncgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA\nQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA\n7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA\ncgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA\nQwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA\nczAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu\naHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt\naW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud\nDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF\nBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp\nD70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU\nJyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m\nAM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD\nvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms\ntn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH\n7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h\nI6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA\nh1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF\nd3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H\npPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7\n-----END CERTIFICATE-----\n\n# Issuer: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA\n# Subject: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA\n# Label: \"TWCA Global Root CA\"\n# Serial: 3262\n# MD5 Fingerprint: f9:03:7e:cf:e6:9e:3c:73:7a:2a:90:07:69:ff:2b:96\n# SHA1 Fingerprint: 9c:bb:48:53:f6:a4:f6:d3:52:a4:e8:32:52:55:60:13:f5:ad:af:65\n# SHA256 Fingerprint: 59:76:90:07:f7:68:5d:0f:cd:50:87:2f:9f:95:d5:75:5a:5b:2b:45:7d:81:f3:69:2b:61:0a:98:67:2f:0e:1b\n-----BEGIN CERTIFICATE-----\nMIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx\nEjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT\nVFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5\nNTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT\nB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF\n10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz\n0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh\nMBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH\nzIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc\n46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2\nyKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi\nlaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP\noA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA\nBDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE\nqYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm\n4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB\n/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL\n1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn\nLhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF\nH6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo\nRI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+\nnile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh\n15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW\n6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW\nnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j\nwa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz\naGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy\nKwbQBM0=\n-----END CERTIFICATE-----\n\n# Issuer: CN=TeliaSonera Root CA v1 O=TeliaSonera\n# Subject: CN=TeliaSonera Root CA v1 O=TeliaSonera\n# Label: \"TeliaSonera Root CA v1\"\n# Serial: 199041966741090107964904287217786801558\n# MD5 Fingerprint: 37:41:49:1b:18:56:9a:26:f5:ad:c2:66:fb:40:a5:4c\n# SHA1 Fingerprint: 43:13:bb:96:f1:d5:86:9b:c1:4e:6a:92:f6:cf:f6:34:69:87:82:37\n# SHA256 Fingerprint: dd:69:36:fe:21:f8:f0:77:c1:23:a1:a5:21:c1:22:24:f7:22:55:b7:3e:03:a7:26:06:93:e8:a2:4b:0f:a3:89\n-----BEGIN CERTIFICATE-----\nMIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw\nNzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv\nb3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD\nVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2\nMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F\nVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1\n7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X\nZ75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+\n/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs\n81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm\ndtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe\nOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu\nsDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4\npgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs\nslESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ\narMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD\nVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG\n9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl\ndxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx\n0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj\nTQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed\nY2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7\nQ4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI\nOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7\nvVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW\nt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn\nHL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx\nSK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=\n-----END CERTIFICATE-----\n\n# Issuer: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center\n# Subject: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center\n# Label: \"T-TeleSec GlobalRoot Class 2\"\n# Serial: 1\n# MD5 Fingerprint: 2b:9b:9e:e4:7b:6c:1f:00:72:1a:cc:c1:77:79:df:6a\n# SHA1 Fingerprint: 59:0d:2d:7d:88:4f:40:2e:61:7e:a5:62:32:17:65:cf:17:d8:94:e9\n# SHA256 Fingerprint: 91:e2:f5:78:8d:58:10:eb:a7:ba:58:73:7d:e1:54:8a:8e:ca:cd:01:45:98:bc:0b:14:3e:04:1b:17:05:25:52\n-----BEGIN CERTIFICATE-----\nMIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx\nKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd\nBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl\nYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1\nOTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy\naXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50\nZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd\nAqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC\nFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi\n1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq\njnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ\nwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj\nQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/\nWSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy\nNsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC\nuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw\nIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6\ng1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN\n9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP\nBSeOE6Fuwg==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Atos TrustedRoot 2011 O=Atos\n# Subject: CN=Atos TrustedRoot 2011 O=Atos\n# Label: \"Atos TrustedRoot 2011\"\n# Serial: 6643877497813316402\n# MD5 Fingerprint: ae:b9:c4:32:4b:ac:7f:5d:66:cc:77:94:bb:2a:77:56\n# SHA1 Fingerprint: 2b:b1:f5:3e:55:0c:1d:c5:f1:d4:e6:b7:6a:46:4b:55:06:02:ac:21\n# SHA256 Fingerprint: f3:56:be:a2:44:b7:a9:1e:b3:5d:53:ca:9a:d7:86:4a:ce:01:8e:2d:35:d5:f8:f9:6d:df:68:a6:f4:1a:a4:74\n-----BEGIN CERTIFICATE-----\nMIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE\nAwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG\nEwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM\nFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC\nREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp\nNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM\nVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+\nSZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ\n4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L\ncp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi\neowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV\nHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG\nA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3\nDQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j\nvZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP\nDpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc\nmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D\nlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv\nKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed\n-----END CERTIFICATE-----\n\n# Issuer: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited\n# Subject: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited\n# Label: \"QuoVadis Root CA 1 G3\"\n# Serial: 687049649626669250736271037606554624078720034195\n# MD5 Fingerprint: a4:bc:5b:3f:fe:37:9a:fa:64:f0:e2:fa:05:3d:0b:ab\n# SHA1 Fingerprint: 1b:8e:ea:57:96:29:1a:c9:39:ea:b8:0a:81:1a:73:73:c0:93:79:67\n# SHA256 Fingerprint: 8a:86:6f:d1:b2:76:b5:7e:57:8e:92:1c:65:82:8a:2b:ed:58:e9:f2:f2:88:05:41:34:b7:f1:f4:bf:c9:cc:74\n-----BEGIN CERTIFICATE-----\nMIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL\nBQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc\nBgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00\nMjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM\naW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV\nwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe\nrNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341\n68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh\n4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp\nUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o\nabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc\n3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G\nKubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt\nhfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO\nTk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt\nzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB\nBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD\nggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC\nMTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2\ncDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN\nqXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5\nYCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv\nb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2\n8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k\nNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj\nZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp\nq1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt\nnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD\n-----END CERTIFICATE-----\n\n# Issuer: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited\n# Subject: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited\n# Label: \"QuoVadis Root CA 2 G3\"\n# Serial: 390156079458959257446133169266079962026824725800\n# MD5 Fingerprint: af:0c:86:6e:bf:40:2d:7f:0b:3e:12:50:ba:12:3d:06\n# SHA1 Fingerprint: 09:3c:61:f3:8b:8b:dc:7d:55:df:75:38:02:05:00:e1:25:f5:c8:36\n# SHA256 Fingerprint: 8f:e4:fb:0a:f9:3a:4d:0d:67:db:0b:eb:b2:3e:37:c7:1b:f3:25:dc:bc:dd:24:0e:a0:4d:af:58:b4:7e:18:40\n-----BEGIN CERTIFICATE-----\nMIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL\nBQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc\nBgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00\nMjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM\naW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf\nqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW\nn4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym\nc5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+\nO7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1\no9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j\nIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq\nIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz\n8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh\nvNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l\n7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG\ncC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB\nBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD\nggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66\nAarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC\nroijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga\nW/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n\nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE\n+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV\ncsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd\ndbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg\nKCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM\nHVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4\nWSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M\n-----END CERTIFICATE-----\n\n# Issuer: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited\n# Subject: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited\n# Label: \"QuoVadis Root CA 3 G3\"\n# Serial: 268090761170461462463995952157327242137089239581\n# MD5 Fingerprint: df:7d:b9:ad:54:6f:68:a1:df:89:57:03:97:43:b0:d7\n# SHA1 Fingerprint: 48:12:bd:92:3c:a8:c4:39:06:e7:30:6d:27:96:e6:a4:cf:22:2e:7d\n# SHA256 Fingerprint: 88:ef:81:de:20:2e:b0:18:45:2e:43:f8:64:72:5c:ea:5f:bd:1f:c2:d9:d2:05:73:07:09:c5:d8:b8:69:0f:46\n-----BEGIN CERTIFICATE-----\nMIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL\nBQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc\nBgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00\nMjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM\naW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR\n/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu\nFoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR\nU7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c\nra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR\nFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k\nA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw\neyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl\nsSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp\nVzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q\nA4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+\nydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB\nBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD\nggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px\nKGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI\nFUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv\noxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg\nu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP\n0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf\n3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl\n8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+\nDhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN\nPlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/\nywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com\n# Subject: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com\n# Label: \"DigiCert Assured ID Root G2\"\n# Serial: 15385348160840213938643033620894905419\n# MD5 Fingerprint: 92:38:b9:f8:63:24:82:65:2c:57:33:e6:fe:81:8f:9d\n# SHA1 Fingerprint: a1:4b:48:d9:43:ee:0a:0e:40:90:4f:3c:e0:a4:c0:91:93:51:5d:3f\n# SHA256 Fingerprint: 7d:05:eb:b6:82:33:9f:8c:94:51:ee:09:4e:eb:fe:fa:79:53:a1:14:ed:b2:f4:49:49:45:2f:ab:7d:2f:c1:85\n-----BEGIN CERTIFICATE-----\nMIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv\nb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG\nEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl\ncnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA\nn61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc\nbiJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp\nEgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA\nbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu\nYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB\nAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW\nBBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI\nQW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I\n0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni\nlmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9\nB5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv\nON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo\nIhNzbM8m9Yop5w==\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com\n# Subject: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com\n# Label: \"DigiCert Assured ID Root G3\"\n# Serial: 15459312981008553731928384953135426796\n# MD5 Fingerprint: 7c:7f:65:31:0c:81:df:8d:ba:3e:99:e2:5c:ad:6e:fb\n# SHA1 Fingerprint: f5:17:a2:4f:9a:48:c6:c9:f8:a2:00:26:9f:dc:0f:48:2c:ab:30:89\n# SHA256 Fingerprint: 7e:37:cb:8b:4c:47:09:0c:ab:36:55:1b:a6:f4:5d:b8:40:68:0f:ba:16:6a:95:2d:b1:00:71:7f:43:05:3f:c2\n-----BEGIN CERTIFICATE-----\nMIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw\nCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu\nZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg\nRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV\nUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu\nY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq\nhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf\nZn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q\nRSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/\nBAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD\nAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY\nJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv\n6pZjamVFkpUBtA==\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com\n# Subject: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com\n# Label: \"DigiCert Global Root G2\"\n# Serial: 4293743540046975378534879503202253541\n# MD5 Fingerprint: e4:a6:8a:c8:54:ac:52:42:46:0a:fd:72:48:1b:2a:44\n# SHA1 Fingerprint: df:3c:24:f9:bf:d6:66:76:1b:26:80:73:fe:06:d1:cc:8d:4f:82:a4\n# SHA256 Fingerprint: cb:3c:cb:b7:60:31:e5:e0:13:8f:8d:d3:9a:23:f9:de:47:ff:c3:5e:43:c1:14:4c:ea:27:d4:6a:5a:b1:cb:5f\n-----BEGIN CERTIFICATE-----\nMIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\nMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI\n2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx\n1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ\nq2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz\ntCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ\nvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP\nBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV\n5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY\n1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4\nNeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG\nFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91\n8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe\npLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl\nMrY=\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com\n# Subject: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com\n# Label: \"DigiCert Global Root G3\"\n# Serial: 7089244469030293291760083333884364146\n# MD5 Fingerprint: f5:5d:a4:50:a5:fb:28:7e:1e:0f:0d:cc:96:57:56:ca\n# SHA1 Fingerprint: 7e:04:de:89:6a:3e:66:6d:00:e6:87:d3:3f:fa:d9:3b:e8:3d:34:9e\n# SHA256 Fingerprint: 31:ad:66:48:f8:10:41:38:c7:38:f3:9e:a4:32:01:33:39:3e:3a:18:cc:02:29:6e:f9:7c:2a:c9:ef:67:31:d0\n-----BEGIN CERTIFICATE-----\nMIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw\nCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu\nZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe\nFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw\nEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x\nIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF\nK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG\nfp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO\nZ9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd\nBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx\nAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/\noAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8\nsycX\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com\n# Subject: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com\n# Label: \"DigiCert Trusted Root G4\"\n# Serial: 7451500558977370777930084869016614236\n# MD5 Fingerprint: 78:f2:fc:aa:60:1f:2f:b4:eb:c9:37:ba:53:2e:75:49\n# SHA1 Fingerprint: dd:fb:16:cd:49:31:c9:73:a2:03:7d:3f:c8:3a:4d:7d:77:5d:05:e4\n# SHA256 Fingerprint: 55:2f:7b:dc:f1:a7:af:9e:6c:e6:72:01:7f:4f:12:ab:f7:72:40:c7:8e:76:1a:c2:03:d1:d9:d2:0a:c8:99:88\n-----BEGIN CERTIFICATE-----\nMIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg\nRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV\nUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu\nY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y\nithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If\nxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV\nySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO\nDCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ\njdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/\nCNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi\nEhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM\nfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY\nuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK\nchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t\n9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB\nhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD\nggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2\nSV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd\n+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc\nfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa\nsjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N\ncCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N\n0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie\n4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI\nr/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1\n/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm\ngKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+\n-----END CERTIFICATE-----\n\n# Issuer: CN=COMODO RSA Certification Authority O=COMODO CA Limited\n# Subject: CN=COMODO RSA Certification Authority O=COMODO CA Limited\n# Label: \"COMODO RSA Certification Authority\"\n# Serial: 101909084537582093308941363524873193117\n# MD5 Fingerprint: 1b:31:b0:71:40:36:cc:14:36:91:ad:c4:3e:fd:ec:18\n# SHA1 Fingerprint: af:e5:d2:44:a8:d1:19:42:30:ff:47:9f:e2:f8:97:bb:cd:7a:8c:b4\n# SHA256 Fingerprint: 52:f0:e1:c4:e5:8e:c6:29:29:1b:60:31:7f:07:46:71:b8:5d:7e:a8:0d:5b:07:27:34:63:53:4b:32:b4:02:34\n-----BEGIN CERTIFICATE-----\nMIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB\nhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV\nBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5\nMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT\nEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR\nQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh\ndGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR\n6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X\npz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC\n9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV\n/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf\nZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z\n+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w\nqP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah\nSL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC\nu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf\nFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq\ncrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E\nFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB\n/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl\nwFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM\n4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV\n2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna\nFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ\nCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK\nboHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke\njkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL\nS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb\nQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl\n0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB\nNVOFBkpdn627G190\n-----END CERTIFICATE-----\n\n# Issuer: CN=USERTrust RSA Certification Authority O=The USERTRUST Network\n# Subject: CN=USERTrust RSA Certification Authority O=The USERTRUST Network\n# Label: \"USERTrust RSA Certification Authority\"\n# Serial: 2645093764781058787591871645665788717\n# MD5 Fingerprint: 1b:fe:69:d1:91:b7:19:33:a3:72:a8:0f:e1:55:e5:b5\n# SHA1 Fingerprint: 2b:8f:1b:57:33:0d:bb:a2:d0:7a:6c:51:f7:0e:e9:0d:da:b9:ad:8e\n# SHA256 Fingerprint: e7:93:c9:b0:2f:d8:aa:13:e2:1c:31:22:8a:cc:b0:81:19:64:3b:74:9c:89:89:64:b1:74:6d:46:c3:d4:cb:d2\n-----BEGIN CERTIFICATE-----\nMIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB\niDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl\ncnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV\nBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw\nMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV\nBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU\naGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy\ndGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B\n3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY\ntJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/\nFp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2\nVN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT\n79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6\nc0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT\nYo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l\nc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee\nUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE\nHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd\nBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G\nA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF\nUp/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO\nVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3\nATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs\n8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR\niQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze\nSf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ\nXHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/\nqS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB\nVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB\nL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG\njjxDah2nGN59PRbxYvnKkKj9\n-----END CERTIFICATE-----\n\n# Issuer: CN=USERTrust ECC Certification Authority O=The USERTRUST Network\n# Subject: CN=USERTrust ECC Certification Authority O=The USERTRUST Network\n# Label: \"USERTrust ECC Certification Authority\"\n# Serial: 123013823720199481456569720443997572134\n# MD5 Fingerprint: fa:68:bc:d9:b5:7f:ad:fd:c9:1d:06:83:28:cc:24:c1\n# SHA1 Fingerprint: d1:cb:ca:5d:b2:d5:2a:7f:69:3b:67:4d:e5:f0:5a:1d:0c:95:7d:f0\n# SHA256 Fingerprint: 4f:f4:60:d5:4b:9c:86:da:bf:bc:fc:57:12:e0:40:0d:2b:ed:3f:bc:4d:4f:bd:aa:86:e0:6a:dc:d2:a9:ad:7a\n-----BEGIN CERTIFICATE-----\nMIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl\neSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT\nJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx\nMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT\nCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg\nVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm\naWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo\nI+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng\no4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G\nA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD\nVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB\nzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW\nRNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=\n-----END CERTIFICATE-----\n\n# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5\n# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5\n# Label: \"GlobalSign ECC Root CA - R5\"\n# Serial: 32785792099990507226680698011560947931244\n# MD5 Fingerprint: 9f:ad:3b:1c:02:1e:8a:ba:17:74:38:81:0c:a2:bc:08\n# SHA1 Fingerprint: 1f:24:c6:30:cd:a4:18:ef:20:69:ff:ad:4f:dd:5f:46:3a:1b:69:aa\n# SHA256 Fingerprint: 17:9f:bc:14:8a:3d:d0:0f:d2:4e:a1:34:58:cc:43:bf:a7:f5:9c:81:82:d7:83:a5:13:f6:eb:ec:10:0c:89:24\n-----BEGIN CERTIFICATE-----\nMIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk\nMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH\nbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX\nDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD\nQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc\n8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke\nhOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD\nVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI\nKoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg\n515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO\nxwy8p2Fp8fc74SrL+SvzZpA3\n-----END CERTIFICATE-----\n\n# Issuer: CN=IdenTrust Commercial Root CA 1 O=IdenTrust\n# Subject: CN=IdenTrust Commercial Root CA 1 O=IdenTrust\n# Label: \"IdenTrust Commercial Root CA 1\"\n# Serial: 13298821034946342390520003877796839426\n# MD5 Fingerprint: b3:3e:77:73:75:ee:a0:d3:e3:7e:49:63:49:59:bb:c7\n# SHA1 Fingerprint: df:71:7e:aa:4a:d9:4e:c9:55:84:99:60:2d:48:de:5f:bc:f0:3a:25\n# SHA256 Fingerprint: 5d:56:49:9b:e4:d2:e0:8b:cf:ca:d0:8a:3e:38:72:3d:50:50:3b:de:70:69:48:e4:2f:55:60:30:19:e5:28:ae\n-----BEGIN CERTIFICATE-----\nMIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK\nMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu\nVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw\nMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw\nJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT\n3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU\n+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp\nS0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1\nbVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi\nT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL\nvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK\nVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK\ndHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT\nc+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv\nl7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N\niGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB\n/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD\nggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH\n6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt\nLRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93\nnAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3\n+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK\nW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT\nAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq\nl1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG\n4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ\nmUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A\n7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H\n-----END CERTIFICATE-----\n\n# Issuer: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust\n# Subject: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust\n# Label: \"IdenTrust Public Sector Root CA 1\"\n# Serial: 13298821034946342390521976156843933698\n# MD5 Fingerprint: 37:06:a5:b0:fc:89:9d:ba:f4:6b:8c:1a:64:cd:d5:ba\n# SHA1 Fingerprint: ba:29:41:60:77:98:3f:f4:f3:ef:f2:31:05:3b:2e:ea:6d:4d:45:fd\n# SHA256 Fingerprint: 30:d0:89:5a:9a:44:8a:26:20:91:63:55:22:d1:f5:20:10:b5:86:7a:ca:e1:2c:78:ef:95:8f:d4:f4:38:9f:2f\n-----BEGIN CERTIFICATE-----\nMIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu\nVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN\nMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0\nMSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi\nMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7\nekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy\nRBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS\nbdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF\n/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R\n3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw\nEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy\n9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V\nGxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ\n2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV\nWaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD\nW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/\nBAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN\nAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj\nt2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV\nDRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9\nTaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G\nlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW\nmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df\nWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5\n+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ\ntshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA\nGaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv\n8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c\n-----END CERTIFICATE-----\n\n# Issuer: CN=CFCA EV ROOT O=China Financial Certification Authority\n# Subject: CN=CFCA EV ROOT O=China Financial Certification Authority\n# Label: \"CFCA EV ROOT\"\n# Serial: 407555286\n# MD5 Fingerprint: 74:e1:b6:ed:26:7a:7a:44:30:33:94:ab:7b:27:81:30\n# SHA1 Fingerprint: e2:b8:29:4b:55:84:ab:6b:58:c2:90:46:6c:ac:3f:b8:39:8f:84:83\n# SHA256 Fingerprint: 5c:c3:d7:8e:4e:1d:5e:45:54:7a:04:e6:87:3e:64:f9:0c:f9:53:6d:1c:cc:2e:f8:00:f3:55:c4:c5:fd:70:fd\n-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD\nTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y\naXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx\nMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j\naWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP\nT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03\nsQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL\nTIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5\n/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp\n7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz\nEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt\nhxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP\na931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot\naK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg\nTnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV\nPKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv\ncWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL\ntbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd\nBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB\nACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT\nej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL\njOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS\nESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy\nP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19\nxIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d\nCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN\n5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe\n/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z\nAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ\n5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su\n-----END CERTIFICATE-----\n\n# Issuer: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed\n# Subject: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed\n# Label: \"OISTE WISeKey Global Root GB CA\"\n# Serial: 157768595616588414422159278966750757568\n# MD5 Fingerprint: a4:eb:b9:61:28:2e:b7:2f:98:b0:35:26:90:99:51:1d\n# SHA1 Fingerprint: 0f:f9:40:76:18:d3:d7:6a:4b:98:f0:a8:35:9e:0c:fd:27:ac:cc:ed\n# SHA256 Fingerprint: 6b:9c:08:e8:6e:b0:f7:67:cf:ad:65:cd:98:b6:21:49:e5:49:4a:67:f5:84:5e:7b:d1:ed:01:9f:27:b8:6b:d6\n-----BEGIN CERTIFICATE-----\nMIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt\nMQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg\nRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i\nYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x\nCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG\nb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh\nbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3\nHEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx\nWuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX\n1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk\nu7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P\n99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r\nM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw\nAwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB\nBAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh\ncViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5\ngSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO\nZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf\naPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic\nNc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=\n-----END CERTIFICATE-----\n\n# Issuer: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A.\n# Subject: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A.\n# Label: \"SZAFIR ROOT CA2\"\n# Serial: 357043034767186914217277344587386743377558296292\n# MD5 Fingerprint: 11:64:c1:89:b0:24:b1:8c:b1:07:7e:89:9e:51:9e:99\n# SHA1 Fingerprint: e2:52:fa:95:3f:ed:db:24:60:bd:6e:28:f3:9c:cc:cf:5e:b3:3f:de\n# SHA256 Fingerprint: a1:33:9d:33:28:1a:0b:56:e5:57:d3:d3:2b:1c:e7:f9:36:7e:b0:94:bd:5f:a7:2a:7e:50:04:c8:de:d7:ca:fe\n-----BEGIN CERTIFICATE-----\nMIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQEL\nBQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6\nZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkw\nNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L\ncmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIg\nUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvN\nQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT\n3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw\n3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6\n3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5\nBSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHN\nXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD\nAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsF\nAAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw\n8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOG\nnXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCP\noky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGy\nd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg\nLvWpCz/UXeHPhJ/iGcJfitYgHuNztw==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority\n# Subject: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority\n# Label: \"Certum Trusted Network CA 2\"\n# Serial: 44979900017204383099463764357512596969\n# MD5 Fingerprint: 6d:46:9e:d9:25:6d:08:23:5b:5e:74:7d:1e:27:db:f2\n# SHA1 Fingerprint: d3:dd:48:3e:2b:bf:4c:05:e8:af:10:f5:fa:76:26:cf:d3:dc:30:92\n# SHA256 Fingerprint: b6:76:f2:ed:da:e8:77:5c:d3:6c:b0:f6:3c:d1:d4:60:39:61:f4:9e:62:65:ba:01:3a:2f:03:07:b6:d0:b8:04\n-----BEGIN CERTIFICATE-----\nMIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCB\ngDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu\nQS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIG\nA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgz\nOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZ\nVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRp\nZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3\nb3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWA\nDGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn\n0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFB\nOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lE\nfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+E\nSv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1m\no130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02i\nsx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOW\nOZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgez\nTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrDvFAS\nadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n\n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD\nAQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMC\nAQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQ\nF/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTf\nCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1cb29\nXN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYcdywm\ndjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tMpkT/\nWjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jb\nAoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq\nP/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Ko\nb7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnj\nXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P\n5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbi\nDrW5viSP\n-----END CERTIFICATE-----\n\n# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority\n# Subject: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority\n# Label: \"Hellenic Academic and Research Institutions RootCA 2015\"\n# Serial: 0\n# MD5 Fingerprint: ca:ff:e2:db:03:d9:cb:4b:e9:0f:ad:84:fd:7b:18:ce\n# SHA1 Fingerprint: 01:0c:06:95:a6:98:19:14:ff:bf:5f:c6:b0:b6:95:ea:29:e9:12:a6\n# SHA256 Fingerprint: a0:40:92:9a:02:ce:53:b4:ac:f4:f2:ff:c6:98:1c:e4:49:6f:75:5e:6d:45:fe:0b:2a:69:2b:cd:52:52:3f:36\n-----BEGIN CERTIFICATE-----\nMIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix\nDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k\nIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT\nN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v\ndENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG\nA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh\nZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx\nQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1\ndGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA\n4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0\nAoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10\n4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C\nojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV\n9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD\ngfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6\nY5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq\nNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko\nLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc\nBw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV\nHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd\nctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I\nXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI\nM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot\n9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V\nZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea\nj8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh\nX9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ\nl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf\nbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4\npcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK\ne7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0\nvm9qp/UsQu0yrbYhnr68\n-----END CERTIFICATE-----\n\n# Issuer: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority\n# Subject: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority\n# Label: \"Hellenic Academic and Research Institutions ECC RootCA 2015\"\n# Serial: 0\n# MD5 Fingerprint: 81:e5:b4:17:eb:c2:f5:e1:4b:0d:41:7b:49:92:fe:ef\n# SHA1 Fingerprint: 9f:f1:71:8d:92:d5:9a:f3:7d:74:97:b4:bc:6f:84:68:0b:ba:b6:66\n# SHA256 Fingerprint: 44:b5:45:aa:8a:25:e6:5a:73:ca:15:dc:27:fc:36:d2:4c:1c:b9:95:3a:06:65:39:b1:15:82:dc:48:7b:48:33\n-----BEGIN CERTIFICATE-----\nMIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN\nBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl\nc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl\nbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv\nb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ\nBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj\nYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5\nMUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0\ndXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg\nQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa\njq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC\nMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi\nC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep\nlSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof\nTUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR\n-----END CERTIFICATE-----\n\n# Issuer: CN=ISRG Root X1 O=Internet Security Research Group\n# Subject: CN=ISRG Root X1 O=Internet Security Research Group\n# Label: \"ISRG Root X1\"\n# Serial: 172886928669790476064670243504169061120\n# MD5 Fingerprint: 0c:d2:f9:e0:da:17:73:e9:ed:86:4d:a5:e3:70:e7:4e\n# SHA1 Fingerprint: ca:bd:2a:79:a1:07:6a:31:f2:1d:25:36:35:cb:03:9d:43:29:a5:e8\n# SHA256 Fingerprint: 96:bc:ec:06:26:49:76:f3:74:60:77:9a:cf:28:c5:a7:cf:e8:a3:c0:aa:e1:1a:8f:fc:ee:05:c0:bd:df:08:c6\n-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw\nTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\ncmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4\nWhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu\nZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY\nMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc\nh77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+\n0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U\nA5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW\nT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH\nB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC\nB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv\nKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn\nOlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn\njh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw\nqHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI\nrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV\nHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq\nhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL\nubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ\n3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK\nNFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5\nORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur\nTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC\njNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc\noyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq\n4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA\nmRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d\nemyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=\n-----END CERTIFICATE-----\n\n# Issuer: O=FNMT-RCM OU=AC RAIZ FNMT-RCM\n# Subject: O=FNMT-RCM OU=AC RAIZ FNMT-RCM\n# Label: \"AC RAIZ FNMT-RCM\"\n# Serial: 485876308206448804701554682760554759\n# MD5 Fingerprint: e2:09:04:b4:d3:bd:d1:a0:14:fd:1a:d2:47:c4:57:1d\n# SHA1 Fingerprint: ec:50:35:07:b2:15:c4:95:62:19:e2:a8:9a:5b:42:99:2c:4c:2c:20\n# SHA256 Fingerprint: eb:c5:57:0c:29:01:8c:4d:67:b1:aa:12:7b:af:12:f7:03:b4:61:1e:bc:17:b7:da:b5:57:38:94:17:9b:93:fa\n-----BEGIN CERTIFICATE-----\nMIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx\nCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ\nWiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ\nBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG\nTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/\nyBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf\nBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz\nWHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF\ntBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z\n374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC\nIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL\nmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7\nwk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS\nMKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2\nZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet\nUqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw\nAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H\nYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3\nLmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD\nnFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1\nRXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM\nLVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf\n77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N\nJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm\nfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp\n6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp\n1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B\n9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok\nRqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv\nuu8wd+RU4riEmViAqhOLUTpPSPaLtrM=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Amazon Root CA 1 O=Amazon\n# Subject: CN=Amazon Root CA 1 O=Amazon\n# Label: \"Amazon Root CA 1\"\n# Serial: 143266978916655856878034712317230054538369994\n# MD5 Fingerprint: 43:c6:bf:ae:ec:fe:ad:2f:18:c6:88:68:30:fc:c8:e6\n# SHA1 Fingerprint: 8d:a7:f9:65:ec:5e:fc:37:91:0f:1c:6e:59:fd:c1:cc:6a:6e:de:16\n# SHA256 Fingerprint: 8e:cd:e6:88:4f:3d:87:b1:12:5b:a3:1a:c3:fc:b1:3d:70:16:de:7f:57:cc:90:4f:e1:cb:97:c6:ae:98:19:6e\n-----BEGIN CERTIFICATE-----\nMIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF\nADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\nb24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL\nMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv\nb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj\nca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM\n9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw\nIFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6\nVOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L\n93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm\njgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC\nAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA\nA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI\nU5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs\nN+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv\no/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU\n5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy\nrqXRfboQnoZsG4q5WTP468SQvvG5\n-----END CERTIFICATE-----\n\n# Issuer: CN=Amazon Root CA 2 O=Amazon\n# Subject: CN=Amazon Root CA 2 O=Amazon\n# Label: \"Amazon Root CA 2\"\n# Serial: 143266982885963551818349160658925006970653239\n# MD5 Fingerprint: c8:e5:8d:ce:a8:42:e2:7a:c0:2a:5c:7c:9e:26:bf:66\n# SHA1 Fingerprint: 5a:8c:ef:45:d7:a6:98:59:76:7a:8c:8b:44:96:b5:78:cf:47:4b:1a\n# SHA256 Fingerprint: 1b:a5:b2:aa:8c:65:40:1a:82:96:01:18:f8:0b:ec:4f:62:30:4d:83:ce:c4:71:3a:19:c3:9c:01:1e:a4:6d:b4\n-----BEGIN CERTIFICATE-----\nMIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF\nADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\nb24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL\nMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv\nb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK\ngXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ\nW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg\n1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K\n8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r\n2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me\nz/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR\n8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj\nmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz\n7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6\n+XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI\n0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB\nAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm\nUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2\nLIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY\n+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS\nk5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl\n7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm\nbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl\nurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+\nfUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63\nn749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE\n76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H\n9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT\n4PsJYGw=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Amazon Root CA 3 O=Amazon\n# Subject: CN=Amazon Root CA 3 O=Amazon\n# Label: \"Amazon Root CA 3\"\n# Serial: 143266986699090766294700635381230934788665930\n# MD5 Fingerprint: a0:d4:ef:0b:f7:b5:d8:49:95:2a:ec:f5:c4:fc:81:87\n# SHA1 Fingerprint: 0d:44:dd:8c:3c:8c:1a:1a:58:75:64:81:e9:0f:2e:2a:ff:b3:d2:6e\n# SHA256 Fingerprint: 18:ce:6c:fe:7b:f1:4e:60:b2:e3:47:b8:df:e8:68:cb:31:d0:2e:bb:3a:da:27:15:69:f5:03:43:b4:6d:b3:a4\n-----BEGIN CERTIFICATE-----\nMIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5\nMQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g\nUm9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG\nA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg\nQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl\nui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j\nQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr\nttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr\nBqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM\nYyRIHN8wfdVoOw==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Amazon Root CA 4 O=Amazon\n# Subject: CN=Amazon Root CA 4 O=Amazon\n# Label: \"Amazon Root CA 4\"\n# Serial: 143266989758080763974105200630763877849284878\n# MD5 Fingerprint: 89:bc:27:d5:eb:17:8d:06:6a:69:d5:fd:89:47:b4:cd\n# SHA1 Fingerprint: f6:10:84:07:d6:f8:bb:67:98:0c:c2:e2:44:c2:eb:ae:1c:ef:63:be\n# SHA256 Fingerprint: e3:5d:28:41:9e:d0:20:25:cf:a6:90:38:cd:62:39:62:45:8d:a5:c6:95:fb:de:a3:c2:2b:0b:fb:25:89:70:92\n-----BEGIN CERTIFICATE-----\nMIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5\nMQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g\nUm9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG\nA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg\nQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi\n9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk\nM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB\n/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB\nMAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw\nCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW\n1KyLa2tJElMzrdfkviT8tQp21KW8EA==\n-----END CERTIFICATE-----\n\n# Issuer: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM\n# Subject: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM\n# Label: \"TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1\"\n# Serial: 1\n# MD5 Fingerprint: dc:00:81:dc:69:2f:3e:2f:b0:3b:f6:3d:5a:91:8e:49\n# SHA1 Fingerprint: 31:43:64:9b:ec:ce:27:ec:ed:3a:3f:0b:8f:0d:e4:e8:91:dd:ee:ca\n# SHA256 Fingerprint: 46:ed:c3:68:90:46:d5:3a:45:3f:b3:10:4a:b8:0d:ca:ec:65:8b:26:60:ea:16:29:dd:7e:86:79:90:64:87:16\n-----BEGIN CERTIFICATE-----\nMIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIx\nGDAWBgNVBAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxp\nbXNlbCB2ZSBUZWtub2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0w\nKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0\nBgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRpZmlrYXNpIC0gU3Vy\ndW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYDVQQG\nEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXll\nIEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklU\nQUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT\nTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kg\nLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7\na9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySr\nLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INr\nN3wcwv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2X\nYacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/\niSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4f\nAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1+DrtUgxH\nV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL\nBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh\nAHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPf\nIPP54+M638yclNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4\nlzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c\n8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCf\nlo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=\n-----END CERTIFICATE-----\n\n# Issuer: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD.\n# Subject: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD.\n# Label: \"GDCA TrustAUTH R5 ROOT\"\n# Serial: 9009899650740120186\n# MD5 Fingerprint: 63:cc:d9:3d:34:35:5c:6f:53:a3:e2:08:70:48:1f:b4\n# SHA1 Fingerprint: 0f:36:38:5b:81:1a:25:c3:9b:31:4e:83:ca:e9:34:66:70:cc:74:b4\n# SHA256 Fingerprint: bf:ff:8f:d0:44:33:48:7d:6a:8a:a6:0c:1a:29:76:7a:9f:c2:bb:b0:5e:42:0f:71:3a:13:b9:92:89:1d:38:93\n-----BEGIN CERTIFICATE-----\nMIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE\nBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ\nIENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0\nMTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV\nBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w\nHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF\nAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj\nDp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj\nTnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u\nKU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj\nqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm\nMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12\nZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP\nzgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk\nL30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC\njGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA\nHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC\nAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB\n/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg\np8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm\nDRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5\nCOmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry\nL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf\nJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg\nIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io\n2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV\n09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ\nXR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq\nT8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe\nMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==\n-----END CERTIFICATE-----\n\n# Issuer: CN=SSL.com Root Certification Authority RSA O=SSL Corporation\n# Subject: CN=SSL.com Root Certification Authority RSA O=SSL Corporation\n# Label: \"SSL.com Root Certification Authority RSA\"\n# Serial: 8875640296558310041\n# MD5 Fingerprint: 86:69:12:c0:70:f1:ec:ac:ac:c2:d5:bc:a5:5b:a1:29\n# SHA1 Fingerprint: b7:ab:33:08:d1:ea:44:77:ba:14:80:12:5a:6f:bd:a9:36:49:0c:bb\n# SHA256 Fingerprint: 85:66:6a:56:2e:e0:be:5c:e9:25:c1:d8:89:0a:6f:76:a8:7e:c1:6d:4d:7d:5f:29:ea:74:19:cf:20:12:3b:69\n-----BEGIN CERTIFICATE-----\nMIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE\nBhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK\nDA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp\nY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz\nOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv\ndXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv\nbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN\nAQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R\nxFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX\nqhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC\nC52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3\n6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh\n/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF\nYD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E\nJNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc\nUS4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8\nZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm\n+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi\nM+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV\nHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G\nA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV\ncpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc\nHadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs\nPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/\nq5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0\ncuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr\na6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I\nH37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y\nK9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu\nnLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf\noYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY\nIc2wBlX7Jz9TkHCpBB5XJ7k=\n-----END CERTIFICATE-----\n\n# Issuer: CN=SSL.com Root Certification Authority ECC O=SSL Corporation\n# Subject: CN=SSL.com Root Certification Authority ECC O=SSL Corporation\n# Label: \"SSL.com Root Certification Authority ECC\"\n# Serial: 8495723813297216424\n# MD5 Fingerprint: 2e:da:e4:39:7f:9c:8f:37:d1:70:9f:26:17:51:3a:8e\n# SHA1 Fingerprint: c3:19:7c:39:24:e6:54:af:1b:c4:ab:20:95:7a:e2:c3:0e:13:02:6a\n# SHA256 Fingerprint: 34:17:bb:06:cc:60:07:da:1b:96:1c:92:0b:8a:b4:ce:3f:ad:82:0e:4a:a3:0b:9a:cb:c4:a7:4e:bd:ce:bc:65\n-----BEGIN CERTIFICATE-----\nMIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T\nU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0\naW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz\nWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0\nb24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS\nb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI\n7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg\nCemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud\nEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD\nVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T\nkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+\ngA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl\n-----END CERTIFICATE-----\n\n# Issuer: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation\n# Subject: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation\n# Label: \"SSL.com EV Root Certification Authority RSA R2\"\n# Serial: 6248227494352943350\n# MD5 Fingerprint: e1:1e:31:58:1a:ae:54:53:02:f6:17:6a:11:7b:4d:95\n# SHA1 Fingerprint: 74:3a:f0:52:9b:d0:32:a0:f4:4a:83:cd:d4:ba:a9:7b:7c:2e:c4:9a\n# SHA256 Fingerprint: 2e:7b:f1:6c:c2:24:85:a7:bb:e2:aa:86:96:75:07:61:b0:ae:39:be:3b:2f:e9:d0:cc:6d:4e:f7:34:91:42:5c\n-----BEGIN CERTIFICATE-----\nMIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV\nBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE\nCgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy\ndGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy\nMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G\nA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD\nDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq\nM0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf\nOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa\n4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9\nHSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR\naZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA\nb9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ\nGp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV\nPWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO\npgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu\nUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY\nMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV\nHSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4\n9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW\ns47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5\nSm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg\ncLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM\n79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz\n/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt\nll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm\nKf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK\nQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ\nw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi\nS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07\nmKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w==\n-----END CERTIFICATE-----\n\n# Issuer: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation\n# Subject: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation\n# Label: \"SSL.com EV Root Certification Authority ECC\"\n# Serial: 3182246526754555285\n# MD5 Fingerprint: 59:53:22:65:83:42:01:54:c0:ce:42:b9:5a:7c:f2:90\n# SHA1 Fingerprint: 4c:dd:51:a3:d1:f5:20:32:14:b0:c6:c5:32:23:03:91:c7:46:42:6d\n# SHA256 Fingerprint: 22:a2:c1:f7:bd:ed:70:4c:c1:e7:01:b5:f4:08:c3:10:88:0f:e9:56:b5:de:2a:4a:44:f9:9c:87:3a:25:a7:c8\n-----BEGIN CERTIFICATE-----\nMIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T\nU0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp\nY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx\nNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv\ndXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv\nbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49\nAgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA\nVIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku\nWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP\nMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX\n5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ\nytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg\nh5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==\n-----END CERTIFICATE-----\n\n# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6\n# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6\n# Label: \"GlobalSign Root CA - R6\"\n# Serial: 1417766617973444989252670301619537\n# MD5 Fingerprint: 4f:dd:07:e4:d4:22:64:39:1e:0c:37:42:ea:d1:c6:ae\n# SHA1 Fingerprint: 80:94:64:0e:b5:a7:a1:ca:11:9c:1f:dd:d5:9f:81:02:63:a7:fb:d1\n# SHA256 Fingerprint: 2c:ab:ea:fe:37:d0:6c:a2:2a:ba:73:91:c0:03:3d:25:98:29:52:c4:53:64:73:49:76:3a:3a:b5:ad:6c:cf:69\n-----BEGIN CERTIFICATE-----\nMIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg\nMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh\nbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx\nMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET\nMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI\nxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k\nZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD\naNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw\nLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw\n1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX\nk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2\nSXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h\nbguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n\nWUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY\nrZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce\nMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD\nAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu\nbAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN\nnsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt\nIxg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61\n55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj\nvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf\ncDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz\noHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp\nnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs\npA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v\nJJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R\n8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4\n5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA=\n-----END CERTIFICATE-----\n\n# Issuer: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed\n# Subject: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed\n# Label: \"OISTE WISeKey Global Root GC CA\"\n# Serial: 44084345621038548146064804565436152554\n# MD5 Fingerprint: a9:d6:b9:2d:2f:93:64:f8:a5:69:ca:91:e9:68:07:23\n# SHA1 Fingerprint: e0:11:84:5e:34:de:be:88:81:b9:9c:f6:16:26:d1:96:1f:c3:b9:31\n# SHA256 Fingerprint: 85:60:f9:1c:36:24:da:ba:95:70:b5:fe:a0:db:e3:6f:f1:1a:83:23:be:94:86:85:4f:b3:f3:4a:55:71:19:8d\n-----BEGIN CERTIFICATE-----\nMIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQsw\nCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91\nbmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwg\nUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRaFw00MjA1MDkwOTU4MzNaMG0xCzAJ\nBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3Vu\nZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBS\nb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4ni\neUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W\np2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E\nBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T\nrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV\n57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg\nMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9\n-----END CERTIFICATE-----\n\n# Issuer: CN=UCA Global G2 Root O=UniTrust\n# Subject: CN=UCA Global G2 Root O=UniTrust\n# Label: \"UCA Global G2 Root\"\n# Serial: 124779693093741543919145257850076631279\n# MD5 Fingerprint: 80:fe:f0:c4:4a:f0:5c:62:32:9f:1c:ba:78:a9:50:f8\n# SHA1 Fingerprint: 28:f9:78:16:19:7a:ff:18:25:18:aa:44:fe:c1:a0:ce:5c:b6:4c:8a\n# SHA256 Fingerprint: 9b:ea:11:c9:76:fe:01:47:64:c1:be:56:a6:f9:14:b5:a5:60:31:7a:bd:99:88:39:33:82:e5:16:1a:a0:49:3c\n-----BEGIN CERTIFICATE-----\nMIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9\nMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH\nbG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x\nCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds\nb2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr\nb3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9\nkmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm\nVHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R\nVogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc\nC/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj\ntm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY\nD0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv\nj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl\nNaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6\niIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP\nO6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/\nBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV\nZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj\nL3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5\n1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl\n1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU\nb3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV\nPtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj\ny88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb\nEGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg\nDMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI\n+Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy\nYiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX\nUB+K+wb1whnw0A==\n-----END CERTIFICATE-----\n\n# Issuer: CN=UCA Extended Validation Root O=UniTrust\n# Subject: CN=UCA Extended Validation Root O=UniTrust\n# Label: \"UCA Extended Validation Root\"\n# Serial: 106100277556486529736699587978573607008\n# MD5 Fingerprint: a1:f3:5f:43:c6:34:9b:da:bf:8c:7e:05:53:ad:96:e2\n# SHA1 Fingerprint: a3:a1:b0:6f:24:61:23:4a:e3:36:a5:c2:37:fc:a6:ff:dd:f0:d7:3a\n# SHA256 Fingerprint: d4:3a:f9:b3:54:73:75:5c:96:84:fc:06:d7:d8:cb:70:ee:5c:28:e7:73:fb:29:4e:b4:1e:e7:17:22:92:4d:24\n-----BEGIN CERTIFICATE-----\nMIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBH\nMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBF\neHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMx\nMDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNV\nBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIiMA0GCSqGSIb3DQEB\nAQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrsiWog\nD4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvS\nsPGP2KxFRv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aop\nO2z6+I9tTcg1367r3CTueUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dk\nsHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR59mzLC52LqGj3n5qiAno8geK+LLNEOfi\nc0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH0mK1lTnj8/FtDw5lhIpj\nVMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KRel7sFsLz\nKuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/\nTuDvB0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41G\nsx2VYVdWf6/wFlthWG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs\n1+lvK9JKBZP8nm9rZ/+I8U6laUpSNwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQD\nfwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS3H5aBZ8eNJr34RQwDwYDVR0T\nAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBADaN\nl8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR\nap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQ\nVBcZEhrxH9cMaVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5\nc6sq1WnIeJEmMX3ixzDx/BR4dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp\n4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb+7lsq+KePRXBOy5nAliRn+/4Qh8s\nt2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOWF3sGPjLtx7dCvHaj\n2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwiGpWO\nvpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2C\nxR9GUeOcGMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmx\ncmtpzyKEC2IPrNkZAJSidjzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbM\nfjKaiJUINlK73nZfdklJrX+9ZSCyycErdhh2n1ax\n-----END CERTIFICATE-----\n\n# Issuer: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036\n# Subject: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036\n# Label: \"Certigna Root CA\"\n# Serial: 269714418870597844693661054334862075617\n# MD5 Fingerprint: 0e:5c:30:62:27:eb:5b:bc:d7:ae:62:ba:e9:d5:df:77\n# SHA1 Fingerprint: 2d:0d:52:14:ff:9e:ad:99:24:01:74:20:47:6e:6c:85:27:27:f5:43\n# SHA256 Fingerprint: d4:8d:3d:23:ee:db:50:a4:59:e5:51:97:60:1c:27:77:4b:9d:7b:18:c9:4d:5a:05:95:11:a1:02:50:b9:31:68\n-----BEGIN CERTIFICATE-----\nMIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw\nWjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw\nMiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x\nMzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD\nVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX\nBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO\nty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M\nCiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu\nI9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm\nTLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh\nC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf\nePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz\nIoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT\nCo/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k\nJWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5\nhwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB\nGjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE\nFBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of\n1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov\nL3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo\ndHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr\naHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq\nhkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L\n6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG\nHVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6\n0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB\nlA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi\no2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1\ngPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v\nfaci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63\nNwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh\njWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw\n3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0=\n-----END CERTIFICATE-----\n\n# Issuer: CN=emSign Root CA - G1 O=eMudhra Technologies Limited OU=emSign PKI\n# Subject: CN=emSign Root CA - G1 O=eMudhra Technologies Limited OU=emSign PKI\n# Label: \"emSign Root CA - G1\"\n# Serial: 235931866688319308814040\n# MD5 Fingerprint: 9c:42:84:57:dd:cb:0b:a7:2e:95:ad:b6:f3:da:bc:ac\n# SHA1 Fingerprint: 8a:c7:ad:8f:73:ac:4e:c1:b5:75:4d:a5:40:f4:fc:cf:7c:b5:8e:8c\n# SHA256 Fingerprint: 40:f6:af:03:46:a9:9a:a1:cd:1d:55:5a:4e:9c:ce:62:c7:f9:63:46:03:ee:40:66:15:83:3d:c8:c8:d0:03:67\n-----BEGIN CERTIFICATE-----\nMIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYD\nVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBU\nZWNobm9sb2dpZXMgTGltaXRlZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBH\nMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgxODMwMDBaMGcxCzAJBgNVBAYTAklO\nMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVkaHJhIFRlY2hub2xv\nZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQz\nf2N4aLTNLnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO\n8oG0x5ZOrRkVUkr+PHB1cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aq\nd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHWDV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhM\ntTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ6DqS0hdW5TUaQBw+jSzt\nOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrHhQIDAQAB\no0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQD\nAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31x\nPaOfG1vR2vjTnGs2vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjM\nwiI/aTvFthUvozXGaCocV685743QNcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6d\nGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q+Mri/Tm3R7nrft8EI6/6nAYH\n6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeihU80Bv2noWgby\nRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx\niN66zB+Afko=\n-----END CERTIFICATE-----\n\n# Issuer: CN=emSign ECC Root CA - G3 O=eMudhra Technologies Limited OU=emSign PKI\n# Subject: CN=emSign ECC Root CA - G3 O=eMudhra Technologies Limited OU=emSign PKI\n# Label: \"emSign ECC Root CA - G3\"\n# Serial: 287880440101571086945156\n# MD5 Fingerprint: ce:0b:72:d1:9f:88:8e:d0:50:03:e8:e3:b8:8b:67:40\n# SHA1 Fingerprint: 30:43:fa:4f:f2:57:dc:a0:c3:80:ee:2e:58:ea:78:b2:3f:e6:bb:c1\n# SHA256 Fingerprint: 86:a1:ec:ba:08:9c:4a:8d:3b:be:27:34:c6:12:ba:34:1d:81:3e:04:3c:f9:e8:a8:62:cd:5c:57:a3:6b:be:6b\n-----BEGIN CERTIFICATE-----\nMIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQG\nEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNo\nbm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g\nRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBrMQswCQYDVQQGEwJJ\nTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s\nb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMw\ndjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0\nWXTsuwYc58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xyS\nfvalY8L1X44uT6EYGQIrMgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuB\nzhccLikenEhjQjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggq\nhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+DCBeQyh+KTOgNG3qxrdWB\nCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7jHvrZQnD\n+JbNR6iC8hZVdyR+EhCVBCyj\n-----END CERTIFICATE-----\n\n# Issuer: CN=emSign Root CA - C1 O=eMudhra Inc OU=emSign PKI\n# Subject: CN=emSign Root CA - C1 O=eMudhra Inc OU=emSign PKI\n# Label: \"emSign Root CA - C1\"\n# Serial: 825510296613316004955058\n# MD5 Fingerprint: d8:e3:5d:01:21:fa:78:5a:b0:df:ba:d2:ee:2a:5f:68\n# SHA1 Fingerprint: e7:2e:f1:df:fc:b2:09:28:cf:5d:d4:d5:67:37:b1:51:cb:86:4f:01\n# SHA256 Fingerprint: 12:56:09:aa:30:1d:a0:a2:49:b9:7a:82:39:cb:6a:34:21:6f:44:dc:ac:9f:39:54:b1:42:92:f2:e8:c8:60:8f\n-----BEGIN CERTIFICATE-----\nMIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkG\nA1UEBhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEg\nSW5jMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAw\nMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln\nbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNpZ24gUm9v\ndCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+upufGZ\nBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZ\nHdPIWoU/Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH\n3DspVpNqs8FqOp099cGXOFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvH\nGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4VI5b2P/AgNBbeCsbEBEV5f6f9vtKppa+c\nxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleoomslMuoaJuvimUnzYnu3Yy1\naylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+XJGFehiq\nTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL\nBQADggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87\n/kOXSTKZEhVb3xEp/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4\nkqNPEjE2NuLe/gDEo2APJ62gsIq1NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrG\nYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9wC68AivTxEDkigcxHpvOJpkT\n+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQBmIMMMAVSKeo\nWXzhriKi4gp6D/piq1JM4fHfyr6DDUI=\n-----END CERTIFICATE-----\n\n# Issuer: CN=emSign ECC Root CA - C3 O=eMudhra Inc OU=emSign PKI\n# Subject: CN=emSign ECC Root CA - C3 O=eMudhra Inc OU=emSign PKI\n# Label: \"emSign ECC Root CA - C3\"\n# Serial: 582948710642506000014504\n# MD5 Fingerprint: 3e:53:b3:a3:81:ee:d7:10:f8:d3:b0:1d:17:92:f5:d5\n# SHA1 Fingerprint: b6:af:43:c2:9b:81:53:7d:f6:ef:6b:c3:1f:1f:60:15:0c:ee:48:66\n# SHA256 Fingerprint: bc:4d:80:9b:15:18:9d:78:db:3e:1d:8c:f4:f9:72:6a:79:5d:a1:64:3c:a5:f1:35:8e:1d:db:0e:dc:0d:7e:b3\n-----BEGIN CERTIFICATE-----\nMIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG\nEwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMx\nIDAeBgNVBAMTF2VtU2lnbiBFQ0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAw\nMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln\nbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQDExdlbVNpZ24gRUND\nIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd6bci\nMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4Ojavti\nsIGJAnB9SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0O\nBBYEFPtaSNCAIEDyqOkAB2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\nAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQC02C8Cif22TGK6Q04ThHK1rt0c\n3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwUZOR8loMRnLDRWmFLpg9J\n0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Hongkong Post Root CA 3 O=Hongkong Post\n# Subject: CN=Hongkong Post Root CA 3 O=Hongkong Post\n# Label: \"Hongkong Post Root CA 3\"\n# Serial: 46170865288971385588281144162979347873371282084\n# MD5 Fingerprint: 11:fc:9f:bd:73:30:02:8a:fd:3f:f3:58:b9:cb:20:f0\n# SHA1 Fingerprint: 58:a2:d0:ec:20:52:81:5b:c1:f3:f8:64:02:24:4e:c2:8e:02:4b:02\n# SHA256 Fingerprint: 5a:2f:c0:3f:0c:83:b0:90:bb:fa:40:60:4b:09:88:44:6c:76:36:18:3d:f9:84:6e:17:10:1a:44:7f:b8:ef:d6\n-----BEGIN CERTIFICATE-----\nMIIFzzCCA7egAwIBAgIUCBZfikyl7ADJk0DfxMauI7gcWqQwDQYJKoZIhvcNAQEL\nBQAwbzELMAkGA1UEBhMCSEsxEjAQBgNVBAgTCUhvbmcgS29uZzESMBAGA1UEBxMJ\nSG9uZyBLb25nMRYwFAYDVQQKEw1Ib25na29uZyBQb3N0MSAwHgYDVQQDExdIb25n\na29uZyBQb3N0IFJvb3QgQ0EgMzAeFw0xNzA2MDMwMjI5NDZaFw00MjA2MDMwMjI5\nNDZaMG8xCzAJBgNVBAYTAkhLMRIwEAYDVQQIEwlIb25nIEtvbmcxEjAQBgNVBAcT\nCUhvbmcgS29uZzEWMBQGA1UEChMNSG9uZ2tvbmcgUG9zdDEgMB4GA1UEAxMXSG9u\nZ2tvbmcgUG9zdCBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCziNfqzg8gTr7m1gNt7ln8wlffKWihgw4+aMdoWJwcYEuJQwy51BWy7sFO\ndem1p+/l6TWZ5Mwc50tfjTMwIDNT2aa71T4Tjukfh0mtUC1Qyhi+AViiE3CWu4mI\nVoBc+L0sPOFMV4i707mV78vH9toxdCim5lSJ9UExyuUmGs2C4HDaOym71QP1mbpV\n9WTRYA6ziUm4ii8F0oRFKHyPaFASePwLtVPLwpgchKOesL4jpNrcyCse2m5FHomY\n2vkALgbpDDtw1VAliJnLzXNg99X/NWfFobxeq81KuEXryGgeDQ0URhLj0mRiikKY\nvLTGCAj4/ahMZJx2Ab0vqWwzD9g/KLg8aQFChn5pwckGyuV6RmXpwtZQQS4/t+Tt\nbNe/JgERohYpSms0BpDsE9K2+2p20jzt8NYt3eEV7KObLyzJPivkaTv/ciWxNoZb\nx39ri1UbSsUgYT2uy1DhCDq+sI9jQVMwCFk8mB13umOResoQUGC/8Ne8lYePl8X+\nl2oBlKN8W4UdKjk60FSh0Tlxnf0h+bV78OLgAo9uliQlLKAeLKjEiafv7ZkGL7YK\nTE/bosw3Gq9HhS2KX8Q0NEwA/RiTZxPRN+ZItIsGxVd7GYYKecsAyVKvQv83j+Gj\nHno9UKtjBucVtT+2RTeUN7F+8kjDf8V1/peNRY8apxpyKBpADwIDAQABo2MwYTAP\nBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQXnc0e\ni9Y5K3DTXNSguB+wAPzFYTAdBgNVHQ4EFgQUF53NHovWOStw01zUoLgfsAD8xWEw\nDQYJKoZIhvcNAQELBQADggIBAFbVe27mIgHSQpsY1Q7XZiNc4/6gx5LS6ZStS6LG\n7BJ8dNVI0lkUmcDrudHr9EgwW62nV3OZqdPlt9EuWSRY3GguLmLYauRwCy0gUCCk\nMpXRAJi70/33MvJJrsZ64Ee+bs7Lo3I6LWldy8joRTnU+kLBEUx3XZL7av9YROXr\ngZ6voJmtvqkBZss4HTzfQx/0TW60uhdG/H39h4F5ag0zD/ov+BS5gLNdTaqX4fnk\nGMX41TiMJjz98iji7lpJiCzfeT2OnpA8vUFKOt1b9pq0zj8lMH8yfaIDlNDceqFS\n3m6TjRgm/VWsvY+b0s+v54Ysyx8Jb6NvqYTUc79NoXQbTiNg8swOqn+knEwlqLJm\nOzj/2ZQw9nKEvmhVEA/GcywWaZMH/rFF7buiVWqw2rVKAiUnhde3t4ZEFolsgCs+\nl6mc1X5VTMbeRRAc6uk7nwNT7u56AQIWeNTowr5GdogTPyK7SBIdUgC0An4hGh6c\nJfTzPV4e0hz5sy229zdcxsshTrD3mUcYhcErulWuBurQB7Lcq9CClnXO0lD+mefP\nL5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB60PZ2Pierc+xYw5F9KBa\nLJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fqdBb9HxEG\nmpv0\n-----END CERTIFICATE-----\n\n# Issuer: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation\n# Subject: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation\n# Label: \"Microsoft ECC Root Certificate Authority 2017\"\n# Serial: 136839042543790627607696632466672567020\n# MD5 Fingerprint: dd:a1:03:e6:4a:93:10:d1:bf:f0:19:42:cb:fe:ed:67\n# SHA1 Fingerprint: 99:9a:64:c3:7f:f4:7d:9f:ab:95:f1:47:69:89:14:60:ee:c4:c3:c5\n# SHA256 Fingerprint: 35:8d:f3:9d:76:4a:f9:e1:b7:66:e9:c9:72:df:35:2e:e1:5c:fa:c2:27:af:6a:d1:d7:0e:8e:4a:6e:dc:ba:02\n-----BEGIN CERTIFICATE-----\nMIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQsw\nCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYD\nVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw\nMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4MjMxNjA0WjBlMQswCQYDVQQGEwJV\nUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNy\nb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQBgcq\nhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZR\nogPZnZH6thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYb\nhGBKia/teQ87zvH2RPUBeMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3\nFQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlfXu5gKcs68tvWMoQZP3zV\nL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaReNtUjGUB\niudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Microsoft RSA Root Certificate Authority 2017 O=Microsoft Corporation\n# Subject: CN=Microsoft RSA Root Certificate Authority 2017 O=Microsoft Corporation\n# Label: \"Microsoft RSA Root Certificate Authority 2017\"\n# Serial: 40975477897264996090493496164228220339\n# MD5 Fingerprint: 10:ff:00:ff:cf:c9:f8:c7:7a:c0:ee:35:8e:c9:0f:47\n# SHA1 Fingerprint: 73:a5:e6:4a:3b:ff:83:16:ff:0e:dc:cc:61:8a:90:6e:4e:ae:4d:74\n# SHA256 Fingerprint: c7:41:f7:0f:4b:2a:8d:88:bf:2e:71:c1:41:22:ef:53:ef:10:eb:a0:cf:a5:e6:4c:fa:20:f4:18:85:30:73:e0\n-----BEGIN CERTIFICATE-----\nMIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBl\nMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw\nNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5\nIDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIwNzE4MjMwMDIzWjBlMQswCQYDVQQG\nEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1N\naWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwggIi\nMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZ\nNt9GkMml7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0\nZdDMbRnMlfl7rEqUrQ7eS0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1\nHLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw71VdyvD/IybLeS2v4I2wDwAW9lcfNcztm\ngGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+dkC0zVJhUXAoP8XFWvLJ\njEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49FyGcohJUc\naDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaG\nYaRSMLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6\nW6IYZVcSn2i51BVrlMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4K\nUGsTuqwPN1q3ErWQgR5WrlcihtnJ0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH\n+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJClTUFLkqqNfs+avNJVgyeY+Q\nW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/\nBAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC\nNxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZC\nLgLNFgVZJ8og6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OC\ngMNPOsduET/m4xaRhPtthH80dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6\ntZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk+ONVFT24bcMKpBLBaYVu32TxU5nh\nSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex/2kskZGT4d9Mozd2\nTaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDyAmH3\npvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGR\nxpl/j8nWZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiApp\nGWSZI1b7rCoucL5mxAyE7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9\ndOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKTc0QWbej09+CVgI+WXTik9KveCjCHk9hN\nAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D5KbvtwEwXlGjefVwaaZB\nRA+GsCyRxj3qrg+E\n-----END CERTIFICATE-----\n\n# Issuer: CN=e-Szigno Root CA 2017 O=Microsec Ltd.\n# Subject: CN=e-Szigno Root CA 2017 O=Microsec Ltd.\n# Label: \"e-Szigno Root CA 2017\"\n# Serial: 411379200276854331539784714\n# MD5 Fingerprint: de:1f:f6:9e:84:ae:a7:b4:21:ce:1e:58:7d:d1:84:98\n# SHA1 Fingerprint: 89:d4:83:03:4f:9e:9a:48:80:5f:72:37:d4:a9:a6:ef:cb:7c:1f:d1\n# SHA256 Fingerprint: be:b0:0b:30:83:9b:9b:c3:2c:32:e4:44:79:05:95:06:41:f2:64:21:b1:5e:d0:89:19:8b:51:8a:e2:ea:1b:99\n-----BEGIN CERTIFICATE-----\nMIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNV\nBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRk\nLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJv\nb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJ\nBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMg\nTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25v\nIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtv\nxie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+H\nWyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G\nA1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arB\neAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61Nlo\njbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ\n+efcMQ==\n-----END CERTIFICATE-----\n\n# Issuer: O=CERTSIGN SA OU=certSIGN ROOT CA G2\n# Subject: O=CERTSIGN SA OU=certSIGN ROOT CA G2\n# Label: \"certSIGN Root CA G2\"\n# Serial: 313609486401300475190\n# MD5 Fingerprint: 8c:f1:75:8a:c6:19:cf:94:b7:f7:65:20:87:c3:97:c7\n# SHA1 Fingerprint: 26:f9:93:b4:ed:3d:28:27:b0:b9:4b:a7:e9:15:1d:a3:8d:92:e5:32\n# SHA256 Fingerprint: 65:7c:fe:2f:a7:3f:aa:38:46:25:71:f3:32:a2:36:3a:46:fc:e7:02:09:51:71:07:02:cd:fb:b6:ee:da:33:05\n-----BEGIN CERTIFICATE-----\nMIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNV\nBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04g\nUk9PVCBDQSBHMjAeFw0xNzAyMDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJ\nBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJ\nR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDF\ndRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05N0Iw\nvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZ\nuIt4ImfkabBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhp\nn+Sc8CnTXPnGFiWeI8MgwT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKs\ncpc/I1mbySKEwQdPzH/iV8oScLumZfNpdWO9lfsbl83kqK/20U6o2YpxJM02PbyW\nxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91QqhngLjYl/rNUssuHLoPj1P\nrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732jcZZroiF\nDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fx\nDTvf95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgy\nLcsUDFDYg2WD7rlcz8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6C\neWRgKRM+o/1Pcmqr4tTluCRVLERLiohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB\n/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSCIS1mxteg4BXrzkwJ\nd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOBywaK8SJJ6ejq\nkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC\nb6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQl\nqiCA2ClV9+BB/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0\nOJD7uNGzcgbJceaBxXntC6Z58hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+c\nNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5BiKDUyUM/FHE5r7iOZULJK2v0ZXk\nltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklWatKcsWMy5WHgUyIO\npwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tUSxfj\n03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZk\nPuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE\n1LlSVHJ7liXMvGnjSG4N0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MX\nQRBdJ3NghVdJIgc=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Trustwave Global Certification Authority O=Trustwave Holdings, Inc.\n# Subject: CN=Trustwave Global Certification Authority O=Trustwave Holdings, Inc.\n# Label: \"Trustwave Global Certification Authority\"\n# Serial: 1846098327275375458322922162\n# MD5 Fingerprint: f8:1c:18:2d:2f:ba:5f:6d:a1:6c:bc:c7:ab:91:c7:0e\n# SHA1 Fingerprint: 2f:8f:36:4f:e1:58:97:44:21:59:87:a5:2a:9a:d0:69:95:26:7f:b5\n# SHA256 Fingerprint: 97:55:20:15:f5:dd:fc:3c:87:88:c0:06:94:45:55:40:88:94:45:00:84:f1:00:86:70:86:bc:1a:2b:b5:8d:c8\n-----BEGIN CERTIFICATE-----\nMIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw\nCQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x\nITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1\nc3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx\nOTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI\nSWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI\nb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp\nY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn\nswuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu\n7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8\n1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW\n80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP\nJqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l\nRtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw\nhI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10\ncoos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc\nBW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n\ntwiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud\nEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud\nDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W\n0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe\nuyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q\nlG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB\naCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE\nsLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT\nMaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe\nqu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh\nVicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8\nh6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9\nEEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK\nyeC2nOnOcXHebD8WpHk=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Trustwave Global ECC P256 Certification Authority O=Trustwave Holdings, Inc.\n# Subject: CN=Trustwave Global ECC P256 Certification Authority O=Trustwave Holdings, Inc.\n# Label: \"Trustwave Global ECC P256 Certification Authority\"\n# Serial: 4151900041497450638097112925\n# MD5 Fingerprint: 5b:44:e3:8d:5d:36:86:26:e8:0d:05:d2:59:a7:83:54\n# SHA1 Fingerprint: b4:90:82:dd:45:0c:be:8b:5b:b1:66:d3:e2:a4:08:26:cd:ed:42:cf\n# SHA256 Fingerprint: 94:5b:bc:82:5e:a5:54:f4:89:d1:fd:51:a7:3d:df:2e:a6:24:ac:70:19:a0:52:05:22:5c:22:a7:8c:cf:a8:b4\n-----BEGIN CERTIFICATE-----\nMIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG\nSM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN\nFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w\nDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw\nCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh\nDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7\n-----END CERTIFICATE-----\n\n# Issuer: CN=Trustwave Global ECC P384 Certification Authority O=Trustwave Holdings, Inc.\n# Subject: CN=Trustwave Global ECC P384 Certification Authority O=Trustwave Holdings, Inc.\n# Label: \"Trustwave Global ECC P384 Certification Authority\"\n# Serial: 2704997926503831671788816187\n# MD5 Fingerprint: ea:cf:60:c4:3b:b9:15:29:40:a1:97:ed:78:27:93:d6\n# SHA1 Fingerprint: e7:f3:a3:c8:cf:6f:c3:04:2e:6d:0e:67:32:c5:9e:68:95:0d:5e:d2\n# SHA256 Fingerprint: 55:90:38:59:c8:c0:c3:eb:b8:75:9e:ce:4e:25:57:22:5f:f5:75:8b:bd:38:eb:d4:82:76:60:1e:1b:d5:80:97\n-----BEGIN CERTIFICATE-----\nMIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ\nj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF\n1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\nA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3\nAZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC\nMGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu\nSw==\n-----END CERTIFICATE-----\n\n# Issuer: CN=NAVER Global Root Certification Authority O=NAVER BUSINESS PLATFORM Corp.\n# Subject: CN=NAVER Global Root Certification Authority O=NAVER BUSINESS PLATFORM Corp.\n# Label: \"NAVER Global Root Certification Authority\"\n# Serial: 9013692873798656336226253319739695165984492813\n# MD5 Fingerprint: c8:7e:41:f6:25:3b:f5:09:b3:17:e8:46:3d:bf:d0:9b\n# SHA1 Fingerprint: 8f:6b:f2:a9:27:4a:da:14:a0:c4:f4:8e:61:27:f9:c0:1e:78:5d:d1\n# SHA256 Fingerprint: 88:f4:38:dc:f8:ff:d1:fa:8f:42:91:15:ff:e5:f8:2a:e1:e0:6e:0c:70:c3:75:fa:ad:71:7b:34:a4:9e:72:65\n-----BEGIN CERTIFICATE-----\nMIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEM\nBQAwaTELMAkGA1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRG\nT1JNIENvcnAuMTIwMAYDVQQDDClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0\naW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4NDJaFw0zNzA4MTgyMzU5NTlaMGkx\nCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVTUyBQTEFURk9STSBD\nb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBB\ndXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVA\niQqrDZBbUGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH\n38dq6SZeWYp34+hInDEW+j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lE\nHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7XNr4rRVqmfeSVPc0W+m/6imBEtRTkZaz\nkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2aacp+yPOiNgSnABIqKYP\nszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4Yb8Obtoq\nvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHf\nnZ3zVHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaG\nYQ5fG8Ir4ozVu53BA0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo\n0es+nPxdGoMuK8u180SdOqcXYZaicdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3a\nCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejyYhbLgGvtPe31HzClrkvJE+2K\nAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNVHQ4EFgQU0p+I\n36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB\nAf8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoN\nqo0hV4/GPnrK21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatj\ncu3cvuzHV+YwIHHW1xDBE1UBjCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm\n+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bxhYTeodoS76TiEJd6eN4MUZeoIUCL\nhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTgE34h5prCy8VCZLQe\nlHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTHD8z7\np/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8\npiKCk5XQA76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLR\nLBT/DShycpWbXgnbiUSYqqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX\n5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oGI/hGoiLtk/bdmuYqh7GYVPEi92tF4+KO\ndh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmgkpzNNIaRkPpkUZ3+/uul\n9XXeifdy\n-----END CERTIFICATE-----\n\n# Issuer: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS O=FNMT-RCM OU=Ceres\n# Subject: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS O=FNMT-RCM OU=Ceres\n# Label: \"AC RAIZ FNMT-RCM SERVIDORES SEGUROS\"\n# Serial: 131542671362353147877283741781055151509\n# MD5 Fingerprint: 19:36:9c:52:03:2f:d2:d1:bb:23:cc:dd:1e:12:55:bb\n# SHA1 Fingerprint: 62:ff:d9:9e:c0:65:0d:03:ce:75:93:d2:ed:3f:2d:32:c9:e3:e5:4a\n# SHA256 Fingerprint: 55:41:53:b1:3d:2c:f9:dd:b7:53:bf:be:1a:4e:0a:e0:8d:0a:a4:18:70:58:fe:60:a2:b8:62:b2:e4:b8:7b:cb\n-----BEGIN CERTIFICATE-----\nMIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw\nCQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw\nFgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S\nQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5\nMzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL\nDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS\nQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH\nsbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK\nUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD\nVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu\nSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC\nMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy\nv+c=\n-----END CERTIFICATE-----\n\n# Issuer: CN=GlobalSign Root R46 O=GlobalSign nv-sa\n# Subject: CN=GlobalSign Root R46 O=GlobalSign nv-sa\n# Label: \"GlobalSign Root R46\"\n# Serial: 1552617688466950547958867513931858518042577\n# MD5 Fingerprint: c4:14:30:e4:fa:66:43:94:2a:6a:1b:24:5f:19:d0:ef\n# SHA1 Fingerprint: 53:a2:b0:4b:ca:6b:d6:45:e6:39:8a:8e:c4:0d:d2:bf:77:c3:a2:90\n# SHA256 Fingerprint: 4f:a3:12:6d:8d:3a:11:d1:c4:85:5a:4f:80:7c:ba:d6:cf:91:9d:3a:5a:88:b0:3b:ea:2c:63:72:d9:3c:40:c9\n-----BEGIN CERTIFICATE-----\nMIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA\nMEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD\nVQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy\nMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt\nc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB\nAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ\nOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG\nvGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud\n316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo\n0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE\ny132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF\nzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE\n+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN\nI/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs\nx2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa\nByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC\n4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV\nHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4\n7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg\nJuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti\n2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk\npnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF\nFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt\nrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk\nZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5\nu+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP\n4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6\nN3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3\nvouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6\n-----END CERTIFICATE-----\n\n# Issuer: CN=GlobalSign Root E46 O=GlobalSign nv-sa\n# Subject: CN=GlobalSign Root E46 O=GlobalSign nv-sa\n# Label: \"GlobalSign Root E46\"\n# Serial: 1552617690338932563915843282459653771421763\n# MD5 Fingerprint: b5:b8:66:ed:de:08:83:e3:c9:e2:01:34:06:ac:51:6f\n# SHA1 Fingerprint: 39:b4:6c:d5:fe:80:06:eb:e2:2f:4a:bb:08:33:a0:af:db:b9:dd:84\n# SHA256 Fingerprint: cb:b9:c4:4d:84:b8:04:3e:10:50:ea:31:a6:9f:51:49:55:d7:bf:d2:e2:c6:b4:93:01:01:9a:d6:1d:9f:50:58\n-----BEGIN CERTIFICATE-----\nMIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx\nCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD\nExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw\nMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex\nHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA\nIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq\nR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd\nyXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud\nDgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ\n7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8\n+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A=\n-----END CERTIFICATE-----\n\n# Issuer: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz\n# Subject: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz\n# Label: \"ANF Secure Server Root CA\"\n# Serial: 996390341000653745\n# MD5 Fingerprint: 26:a6:44:5a:d9:af:4e:2f:b2:1d:b6:65:b0:4e:e8:96\n# SHA1 Fingerprint: 5b:6e:68:d0:cc:15:b6:a0:5f:1e:c1:5f:ae:02:fc:6b:2f:5d:6f:74\n# SHA256 Fingerprint: fb:8f:ec:75:91:69:b9:10:6b:1e:51:16:44:c6:18:c5:13:04:37:3f:6c:06:43:08:8d:8b:ef:fd:1b:99:75:99\n-----BEGIN CERTIFICATE-----\nMIIF7zCCA9egAwIBAgIIDdPjvGz5a7EwDQYJKoZIhvcNAQELBQAwgYQxEjAQBgNV\nBAUTCUc2MzI4NzUxMDELMAkGA1UEBhMCRVMxJzAlBgNVBAoTHkFORiBBdXRvcmlk\nYWQgZGUgQ2VydGlmaWNhY2lvbjEUMBIGA1UECxMLQU5GIENBIFJhaXoxIjAgBgNV\nBAMTGUFORiBTZWN1cmUgU2VydmVyIFJvb3QgQ0EwHhcNMTkwOTA0MTAwMDM4WhcN\nMzkwODMwMTAwMDM4WjCBhDESMBAGA1UEBRMJRzYzMjg3NTEwMQswCQYDVQQGEwJF\nUzEnMCUGA1UEChMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRQwEgYD\nVQQLEwtBTkYgQ0EgUmFpejEiMCAGA1UEAxMZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9v\ndCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvrayvmZFSVgpCj\ncqQZAZ2cC4Ffc0m6p6zzBE57lgvsEeBbphzOG9INgxwruJ4dfkUyYA8H6XdYfp9q\nyGFOtibBTI3/TO80sh9l2Ll49a2pcbnvT1gdpd50IJeh7WhM3pIXS7yr/2WanvtH\n2Vdy8wmhrnZEE26cLUQ5vPnHO6RYPUG9tMJJo8gN0pcvB2VSAKduyK9o7PQUlrZX\nH1bDOZ8rbeTzPvY1ZNoMHKGESy9LS+IsJJ1tk0DrtSOOMspvRdOoiXsezx76W0OL\nzc2oD2rKDF65nkeP8Nm2CgtYZRczuSPkdxl9y0oukntPLxB3sY0vaJxizOBQ+OyR\np1RMVwnVdmPF6GUe7m1qzwmd+nxPrWAI/VaZDxUse6mAq4xhj0oHdkLePfTdsiQz\nW7i1o0TJrH93PB0j7IKppuLIBkwC/qxcmZkLLxCKpvR/1Yd0DVlJRfbwcVw5Kda/\nSiOL9V8BY9KHcyi1Swr1+KuCLH5zJTIdC2MKF4EA/7Z2Xue0sUDKIbvVgFHlSFJn\nLNJhiQcND85Cd8BEc5xEUKDbEAotlRyBr+Qc5RQe8TZBAQIvfXOn3kLMTOmJDVb3\nn5HUA8ZsyY/b2BzgQJhdZpmYgG4t/wHFzstGH6wCxkPmrqKEPMVOHj1tyRRM4y5B\nu8o5vzY8KhmqQYdOpc5LMnndkEl/AgMBAAGjYzBhMB8GA1UdIwQYMBaAFJxf0Gxj\no1+TypOYCK2Mh6UsXME3MB0GA1UdDgQWBBScX9BsY6Nfk8qTmAitjIelLFzBNzAO\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\nAgEATh65isagmD9uw2nAalxJUqzLK114OMHVVISfk/CHGT0sZonrDUL8zPB1hT+L\n9IBdeeUXZ701guLyPI59WzbLWoAAKfLOKyzxj6ptBZNscsdW699QIyjlRRA96Gej\nrw5VD5AJYu9LWaL2U/HANeQvwSS9eS9OICI7/RogsKQOLHDtdD+4E5UGUcjohybK\npFtqFiGS3XNgnhAY3jyB6ugYw3yJ8otQPr0R4hUDqDZ9MwFsSBXXiJCZBMXM5gf0\nvPSQ7RPi6ovDj6MzD8EpTBNO2hVWcXNyglD2mjN8orGoGjR0ZVzO0eurU+AagNjq\nOknkJjCb5RyKqKkVMoaZkgoQI1YS4PbOTOK7vtuNknMBZi9iPrJyJ0U27U1W45eZ\n/zo1PqVUSlJZS2Db7v54EX9K3BR5YLZrZAPbFYPhor72I5dQ8AkzNqdxliXzuUJ9\n2zg/LFis6ELhDtjTO0wugumDLmsx2d1Hhk9tl5EuT+IocTUW0fJz/iUrB0ckYyfI\n+PbZa/wSMVYIwFNCr5zQM378BvAxRAMU8Vjq8moNqRGyg77FGr8H6lnco4g175x2\nMjxNBiLOFeXdntiP2t7SxDnlF4HPOEfrf4htWRvfn0IUrn7PqLBmZdo3r5+qPeoo\ntt7VMVgWglvquxl1AnMaykgaIZOQCo6ThKd9OyMYkomgjaw=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Certum EC-384 CA O=Asseco Data Systems S.A. OU=Certum Certification Authority\n# Subject: CN=Certum EC-384 CA O=Asseco Data Systems S.A. OU=Certum Certification Authority\n# Label: \"Certum EC-384 CA\"\n# Serial: 160250656287871593594747141429395092468\n# MD5 Fingerprint: b6:65:b3:96:60:97:12:a1:ec:4e:e1:3d:a3:c6:c9:f1\n# SHA1 Fingerprint: f3:3e:78:3c:ac:df:f4:a2:cc:ac:67:55:69:56:d7:e5:16:3c:e1:ed\n# SHA256 Fingerprint: 6b:32:80:85:62:53:18:aa:50:d1:73:c9:8d:8b:da:09:d5:7e:27:41:3d:11:4c:f7:87:a0:f5:d0:6c:03:0c:f6\n-----BEGIN CERTIFICATE-----\nMIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw\nCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw\nJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT\nEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0\nWjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT\nLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX\nBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE\nKI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm\nFy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj\nQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8\nEF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J\nUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn\nnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Certum Trusted Root CA O=Asseco Data Systems S.A. OU=Certum Certification Authority\n# Subject: CN=Certum Trusted Root CA O=Asseco Data Systems S.A. OU=Certum Certification Authority\n# Label: \"Certum Trusted Root CA\"\n# Serial: 40870380103424195783807378461123655149\n# MD5 Fingerprint: 51:e1:c2:e7:fe:4c:84:af:59:0e:2f:f4:54:6f:ea:29\n# SHA1 Fingerprint: c8:83:44:c0:18:ae:9f:cc:f1:87:b7:8f:22:d1:c5:d7:45:84:ba:e5\n# SHA256 Fingerprint: fe:76:96:57:38:55:77:3e:37:a9:5e:7a:d4:d9:cc:96:c3:01:57:c1:5d:31:76:5b:a9:b1:57:04:e1:ae:78:fd\n-----BEGIN CERTIFICATE-----\nMIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6\nMQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEu\nMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNV\nBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwHhcNMTgwMzE2MTIxMDEzWhcNNDMw\nMzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEg\nU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRo\nb3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZ\nn0EGze2jusDbCSzBfN8pfktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/q\np1x4EaTByIVcJdPTsuclzxFUl6s1wB52HO8AU5853BSlLCIls3Jy/I2z5T4IHhQq\nNwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2fJmItdUDmj0VDT06qKhF\n8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGtg/BKEiJ3\nHAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGa\nmqi4NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi\n7VdNIuJGmj8PkTQkfVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSF\nytKAQd8FqKPVhJBPC/PgP5sZ0jeJP/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0P\nqafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSYnjYJdmZm/Bo/6khUHL4wvYBQ\nv3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHKHRzQ+8S1h9E6\nTsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1\nvALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQAD\nggIBAEii1QALLtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4\nWxmB82M+w85bj/UvXgF2Ez8sALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvo\nzMrnadyHncI013nR03e4qllY/p0m+jiGPp2Kh2RX5Rc64vmNueMzeMGQ2Ljdt4NR\n5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8CYyqOhNf6DR5UMEQ\nGfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA4kZf\n5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq\n0Uc9NneoWWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7D\nP78v3DSk+yshzWePS/Tj6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTM\nqJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmTOPQD8rv7gmsHINFSH5pkAnuYZttcTVoP\n0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZckbxJF0WddCajJFdr60qZf\nE2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb\n-----END CERTIFICATE-----\n\n# Issuer: CN=TunTrust Root CA O=Agence Nationale de Certification Electronique\n# Subject: CN=TunTrust Root CA O=Agence Nationale de Certification Electronique\n# Label: \"TunTrust Root CA\"\n# Serial: 108534058042236574382096126452369648152337120275\n# MD5 Fingerprint: 85:13:b9:90:5b:36:5c:b6:5e:b8:5a:f8:e0:31:57:b4\n# SHA1 Fingerprint: cf:e9:70:84:0f:e0:73:0f:9d:f6:0c:7f:2c:4b:ee:20:46:34:9c:bb\n# SHA256 Fingerprint: 2e:44:10:2a:b5:8c:b8:54:19:45:1c:8e:19:d9:ac:f3:66:2c:af:bc:61:4b:6a:53:96:0a:30:f7:d0:e2:eb:41\n-----BEGIN CERTIFICATE-----\nMIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQEL\nBQAwYTELMAkGA1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUg\nQ2VydGlmaWNhdGlvbiBFbGVjdHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJv\nb3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQwNDI2MDg1NzU2WjBhMQswCQYDVQQG\nEwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBDZXJ0aWZpY2F0aW9u\nIEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIwDQYJ\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZ\nn56eY+hz2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd\n2JQDoOw05TDENX37Jk0bbjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgF\nVwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZ\nGoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAdgjH8KcwAWJeRTIAAHDOF\nli/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViWVSHbhlnU\nr8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2\neY8fTpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIb\nMlEsPvLfe/ZdeikZjuXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISg\njwBUFfyRbVinljvrS5YnzWuioYasDXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB\n7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwSVXAkPcvCFDVDXSdOvsC9qnyW\n5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI04Y+oXNZtPdE\nITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0\n90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+z\nxiD2BkewhpMl0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYu\nQEkHDVneixCwSQXi/5E/S7fdAo74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4\nFstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRYYdZ2vyJ/0Adqp2RT8JeNnYA/u8EH\n22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJpadbGNjHh/PqAulxP\nxOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65xxBzn\ndFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5\nXc0yGYuPjCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7b\nnV2UqL1g52KAdoGDDIzMMEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQ\nCvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9zZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZH\nu/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3rAZ3r2OvEhJn7wAzMMujj\nd9qDRIueVSjAi1jTkD5OGwDxFa2DK5o=\n-----END CERTIFICATE-----\n\n# Issuer: CN=HARICA TLS RSA Root CA 2021 O=Hellenic Academic and Research Institutions CA\n# Subject: CN=HARICA TLS RSA Root CA 2021 O=Hellenic Academic and Research Institutions CA\n# Label: \"HARICA TLS RSA Root CA 2021\"\n# Serial: 76817823531813593706434026085292783742\n# MD5 Fingerprint: 65:47:9b:58:86:dd:2c:f0:fc:a2:84:1f:1e:96:c4:91\n# SHA1 Fingerprint: 02:2d:05:82:fa:88:ce:14:0c:06:79:de:7f:14:10:e9:45:d7:a5:6d\n# SHA256 Fingerprint: d9:5d:0e:8e:da:79:52:5b:f9:be:b1:1b:14:d2:10:0d:32:94:98:5f:0c:62:d9:fa:bd:9c:d9:99:ec:cb:7b:1d\n-----BEGIN CERTIFICATE-----\nMIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBs\nMQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl\nc2VhcmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0Eg\nUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUzOFoXDTQ1MDIxMzEwNTUzN1owbDEL\nMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl\nYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNBIFJv\nb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569l\nmwVnlskNJLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE\n4VGC/6zStGndLuwRo0Xua2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uv\na9of08WRiFukiZLRgeaMOVig1mlDqa2YUlhu2wr7a89o+uOkXjpFc5gH6l8Cct4M\npbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K5FrZx40d/JiZ+yykgmvw\nKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEvdmn8kN3b\nLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcY\nAuUR0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqB\nAGMUuTNe3QvboEUHGjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYq\nE613TBoYm5EPWNgGVMWX+Ko/IIqmhaZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHr\nW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQCPxrvrNQKlr9qEgYRtaQQJKQ\nCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8GA1UdEwEB/wQF\nMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE\nAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAU\nX15QvWiWkKQUEapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3\nf5Z2EMVGpdAgS1D0NTsY9FVqQRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxaja\nH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxDQpSbIPDRzbLrLFPCU3hKTwSUQZqP\nJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcRj88YxeMn/ibvBZ3P\nzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5vZSt\njBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0\n/L5H9MG0qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pT\nBGIBnfHAT+7hOtSLIBD6Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79\naPib8qXPMThcFarmlwDB31qlpzmq6YR/PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YW\nxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnnkf3/W9b3raYvAwtt41dU\n63ZTGI0RmLo=\n-----END CERTIFICATE-----\n\n# Issuer: CN=HARICA TLS ECC Root CA 2021 O=Hellenic Academic and Research Institutions CA\n# Subject: CN=HARICA TLS ECC Root CA 2021 O=Hellenic Academic and Research Institutions CA\n# Label: \"HARICA TLS ECC Root CA 2021\"\n# Serial: 137515985548005187474074462014555733966\n# MD5 Fingerprint: ae:f7:4c:e5:66:35:d1:b7:9b:8c:22:93:74:d3:4b:b0\n# SHA1 Fingerprint: bc:b0:c1:9d:e9:98:92:70:19:38:57:e9:8d:a7:b4:5d:6e:ee:01:48\n# SHA256 Fingerprint: 3f:99:cc:47:4a:cf:ce:4d:fe:d5:87:94:66:5e:47:8d:15:47:73:9f:2e:78:0f:1b:b4:ca:9b:13:30:97:d4:01\n-----BEGIN CERTIFICATE-----\nMIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQsw\nCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh\ncmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9v\ndCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoXDTQ1MDIxMzExMDEwOVowbDELMAkG\nA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj\naCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3Qg\nQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7\nKKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9Y\nSTHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUw\nAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQD\nAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAircJRQO9gcS3ujwLEXQNw\nSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/QwCZ61IygN\nnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps\n-----END CERTIFICATE-----\n\n# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068\n# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068\n# Label: \"Autoridad de Certificacion Firmaprofesional CIF A62634068\"\n# Serial: 1977337328857672817\n# MD5 Fingerprint: 4e:6e:9b:54:4c:ca:b7:fa:48:e4:90:b1:15:4b:1c:a3\n# SHA1 Fingerprint: 0b:be:c2:27:22:49:cb:39:aa:db:35:5c:53:e3:8c:ae:78:ff:b6:fe\n# SHA256 Fingerprint: 57:de:05:83:ef:d2:b2:6e:03:61:da:99:da:9d:f4:64:8d:ef:7e:e8:44:1c:3b:72:8a:fa:9b:cd:e0:f9:b2:6a\n-----BEGIN CERTIFICATE-----\nMIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UE\nBhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h\ncHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1\nMDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg\nQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi\nMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9\nthDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM\ncas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG\nL9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i\nNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h\nX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b\nm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy\nZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja\nEbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T\nKI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF\n6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh\nOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1UdDgQWBBRlzeurNR4APn7VdMAc\ntHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4wgZswgZgGBFUd\nIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j\nb20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABC\nAG8AbgBhAG4AbwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAw\nADEANzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9m\niWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL4QjbEwj4KKE1soCzC1HA01aajTNF\nSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDbLIpgD7dvlAceHabJ\nhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1ilI45P\nVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZE\nEAEeiGaPcjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV\n1aUsIC+nmCjuRfzxuIgALI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2t\nCsvMo2ebKHTEm9caPARYpoKdrcd7b/+Alun4jWq9GJAd/0kakFI3ky88Al2CdgtR\n5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH9IBk9W6VULgRfhVwOEqw\nf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpfNIbnYrX9\nivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNK\nGbqEZycPvEJdvSRUDewdcAZfpLz6IHxV\n-----END CERTIFICATE-----\n\n# Issuer: CN=vTrus ECC Root CA O=iTrusChina Co.,Ltd.\n# Subject: CN=vTrus ECC Root CA O=iTrusChina Co.,Ltd.\n# Label: \"vTrus ECC Root CA\"\n# Serial: 630369271402956006249506845124680065938238527194\n# MD5 Fingerprint: de:4b:c1:f5:52:8c:9b:43:e1:3e:8f:55:54:17:8d:85\n# SHA1 Fingerprint: f6:9c:db:b0:fc:f6:02:13:b6:52:32:a6:a3:91:3f:16:70:da:c3:e1\n# SHA256 Fingerprint: 30:fb:ba:2c:32:23:8e:2a:98:54:7a:f9:79:31:e5:50:42:8b:9b:3f:1c:8e:eb:66:33:dc:fa:86:c5:b2:7d:d3\n-----BEGIN CERTIFICATE-----\nMIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMw\nRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAY\nBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDcz\nMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28u\nLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYwEAYHKoZIzj0CAQYF\nK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+cToL0\nv/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUd\ne4BdS49nTPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYD\nVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIw\nV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UTQJtS0zvzQBm8JsctBp61ezaf9SXUY2sA\nAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQLYgmRWAD5Tfs0aNoJrSEG\nGJTO\n-----END CERTIFICATE-----\n\n# Issuer: CN=vTrus Root CA O=iTrusChina Co.,Ltd.\n# Subject: CN=vTrus Root CA O=iTrusChina Co.,Ltd.\n# Label: \"vTrus Root CA\"\n# Serial: 387574501246983434957692974888460947164905180485\n# MD5 Fingerprint: b8:c9:37:df:fa:6b:31:84:64:c5:ea:11:6a:1b:75:fc\n# SHA1 Fingerprint: 84:1a:69:fb:f5:cd:1a:25:34:13:3d:e3:f8:fc:b8:99:d0:c9:14:b7\n# SHA256 Fingerprint: 8a:71:de:65:59:33:6f:42:6c:26:e5:38:80:d0:0d:88:a1:8d:a4:c6:a9:1f:0d:cb:61:94:e2:06:c5:c9:63:87\n-----BEGIN CERTIFICATE-----\nMIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQEL\nBQAwQzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4x\nFjAUBgNVBAMTDXZUcnVzIFJvb3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMx\nMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoGA1UEChMTaVRydXNDaGluYSBDby4s\nTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD\nggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZotsSKYc\nIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykU\nAyyNJJrIZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+\nGrPSbcKvdmaVayqwlHeFXgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z9\n8Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KAYPxMvDVTAWqXcoKv8R1w6Jz1717CbMdH\nflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70kLJrxLT5ZOrpGgrIDajt\nJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2AXPKBlim\n0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZN\npGvu/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQ\nUqqzApVg+QxMaPnu1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHW\nOXSuTEGC2/KmSNGzm/MzqvOmwMVO9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMB\nAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYgscasGrz2iTAPBgNVHRMBAf8E\nBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAKbqSSaet\n8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd\nnxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1j\nbhd47F18iMjrjld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvM\nKar5CKXiNxTKsbhm7xqC5PD48acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIiv\nTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJnxDHO2zTlJQNgJXtxmOTAGytfdELS\nS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554WgicEFOwE30z9J4nfr\nI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4sEb9\nb91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNB\nUvupLnKWnyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1P\nTi07NEPhmg4NpGaXutIcSkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929ven\nsBxXVsFy6K2ir40zSbofitzmdHxghm+Hl3s=\n-----END CERTIFICATE-----\n\n# Issuer: CN=ISRG Root X2 O=Internet Security Research Group\n# Subject: CN=ISRG Root X2 O=Internet Security Research Group\n# Label: \"ISRG Root X2\"\n# Serial: 87493402998870891108772069816698636114\n# MD5 Fingerprint: d3:9e:c4:1e:23:3c:a6:df:cf:a3:7e:6d:e0:14:e6:e5\n# SHA1 Fingerprint: bd:b1:b9:3c:d5:97:8d:45:c6:26:14:55:f8:db:95:c7:5a:d1:53:af\n# SHA256 Fingerprint: 69:72:9b:8e:15:a8:6e:fc:17:7a:57:af:b7:17:1d:fc:64:ad:d2:8c:2f:ca:8c:f1:50:7e:34:45:3c:cb:14:70\n-----BEGIN CERTIFICATE-----\nMIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw\nCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg\nR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00\nMDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT\nZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw\nEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW\n+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9\nItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T\nAQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI\nzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW\ntL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1\n/q4AaOeMSQ+2b1tbFfLn\n-----END CERTIFICATE-----\n\n# Issuer: CN=HiPKI Root CA - G1 O=Chunghwa Telecom Co., Ltd.\n# Subject: CN=HiPKI Root CA - G1 O=Chunghwa Telecom Co., Ltd.\n# Label: \"HiPKI Root CA - G1\"\n# Serial: 60966262342023497858655262305426234976\n# MD5 Fingerprint: 69:45:df:16:65:4b:e8:68:9a:8f:76:5f:ff:80:9e:d3\n# SHA1 Fingerprint: 6a:92:e4:a8:ee:1b:ec:96:45:37:e3:29:57:49:cd:96:e3:e5:d2:60\n# SHA256 Fingerprint: f0:15:ce:3c:c2:39:bf:ef:06:4b:e9:f1:d2:c4:17:e1:a0:26:4a:0a:94:be:1f:0c:8d:12:18:64:eb:69:49:cc\n-----BEGIN CERTIFICATE-----\nMIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBP\nMQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0\nZC4xGzAZBgNVBAMMEkhpUEtJIFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRa\nFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3\nYSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kgUm9vdCBDQSAtIEcx\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0o9Qw\nqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twv\nVcg3Px+kwJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6\nlZgRZq2XNdZ1AYDgr/SEYYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnz\nQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsAGJZMoYFL3QRtU6M9/Aes1MU3guvklQgZ\nKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfdhSi8MEyr48KxRURHH+CK\nFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj1jOXTyFj\nHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDr\ny+K49a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ\n/W3c1pzAtH2lsN0/Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgM\na/aOEmem8rJY5AIJEzypuxC00jBF8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6\nfsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNV\nHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQDAgGGMA0GCSqG\nSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi\n7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqc\nSE5XCV0vrPSltJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6Fza\nZsT0pPBWGTMpWmWSBUdGSquEwx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9Tc\nXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07QJNBAsNB1CI69aO4I1258EHBGG3zg\niLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv5wiZqAxeJoBF1Pho\nL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+GpzjLrF\nNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wr\nkkVbbiVghUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+\nvhV4nYWBSipX3tUZQ9rbyltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQU\nYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ==\n-----END CERTIFICATE-----\n\n# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4\n# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4\n# Label: \"GlobalSign ECC Root CA - R4\"\n# Serial: 159662223612894884239637590694\n# MD5 Fingerprint: 26:29:f8:6d:e1:88:bf:a2:65:7f:aa:c4:cd:0f:7f:fc\n# SHA1 Fingerprint: 6b:a0:b0:98:e1:71:ef:5a:ad:fe:48:15:80:77:10:f4:bd:6f:0b:28\n# SHA256 Fingerprint: b0:85:d7:0b:96:4f:19:1a:73:e4:af:0d:54:ae:7a:0e:07:aa:fd:af:9b:71:dd:08:62:13:8a:b7:32:5a:24:a2\n-----BEGIN CERTIFICATE-----\nMIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD\nVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh\nbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw\nMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g\nUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT\nBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx\nuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV\nHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/\n+wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147\nbmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm\n-----END CERTIFICATE-----\n\n# Issuer: CN=GTS Root R1 O=Google Trust Services LLC\n# Subject: CN=GTS Root R1 O=Google Trust Services LLC\n# Label: \"GTS Root R1\"\n# Serial: 159662320309726417404178440727\n# MD5 Fingerprint: 05:fe:d0:bf:71:a8:a3:76:63:da:01:e0:d8:52:dc:40\n# SHA1 Fingerprint: e5:8c:1c:c4:91:3b:38:63:4b:e9:10:6e:e3:ad:8e:6b:9d:d9:81:4a\n# SHA256 Fingerprint: d9:47:43:2a:bd:e7:b7:fa:90:fc:2e:6b:59:10:1b:12:80:e0:e1:c7:e4:e4:0f:a3:c6:88:7f:ff:57:a7:f4:cf\n-----BEGIN CERTIFICATE-----\nMIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw\nCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU\nMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw\nMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp\nY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo\n27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w\nCl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw\nTcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl\nqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH\nszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8\nY/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk\nMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92\nwO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p\naDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN\nVjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID\nAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E\nFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb\nC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe\nQkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy\nh6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4\n7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J\nZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef\nMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/\nZ6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT\n6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ\n0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm\n2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb\nbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c\n-----END CERTIFICATE-----\n\n# Issuer: CN=GTS Root R2 O=Google Trust Services LLC\n# Subject: CN=GTS Root R2 O=Google Trust Services LLC\n# Label: \"GTS Root R2\"\n# Serial: 159662449406622349769042896298\n# MD5 Fingerprint: 1e:39:c0:53:e6:1e:29:82:0b:ca:52:55:36:5d:57:dc\n# SHA1 Fingerprint: 9a:44:49:76:32:db:de:fa:d0:bc:fb:5a:7b:17:bd:9e:56:09:24:94\n# SHA256 Fingerprint: 8d:25:cd:97:22:9d:bf:70:35:6b:da:4e:b3:cc:73:40:31:e2:4c:f0:0f:af:cf:d3:2d:c7:6e:b5:84:1c:7e:a8\n-----BEGIN CERTIFICATE-----\nMIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw\nCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU\nMBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw\nMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp\nY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt\nnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY\n6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu\nMC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k\nRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg\nf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV\n+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo\ndDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW\nIr9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa\nG73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq\ngc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID\nAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E\nFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H\nvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8\n0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC\nB19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u\nNmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg\nyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev\nHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6\nxLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR\nTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg\nJPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV\n7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl\n6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL\n-----END CERTIFICATE-----\n\n# Issuer: CN=GTS Root R3 O=Google Trust Services LLC\n# Subject: CN=GTS Root R3 O=Google Trust Services LLC\n# Label: \"GTS Root R3\"\n# Serial: 159662495401136852707857743206\n# MD5 Fingerprint: 3e:e7:9d:58:02:94:46:51:94:e5:e0:22:4a:8b:e7:73\n# SHA1 Fingerprint: ed:e5:71:80:2b:c8:92:b9:5b:83:3c:d2:32:68:3f:09:cd:a0:1e:46\n# SHA256 Fingerprint: 34:d8:a7:3e:e2:08:d9:bc:db:0d:95:65:20:93:4b:4e:40:e6:94:82:59:6e:8b:6f:73:c8:42:6b:01:0a:6f:48\n-----BEGIN CERTIFICATE-----\nMIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD\nVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG\nA1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw\nWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz\nIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi\nAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G\njOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2\n4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW\nBBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7\nVKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm\nZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X\n-----END CERTIFICATE-----\n\n# Issuer: CN=GTS Root R4 O=Google Trust Services LLC\n# Subject: CN=GTS Root R4 O=Google Trust Services LLC\n# Label: \"GTS Root R4\"\n# Serial: 159662532700760215368942768210\n# MD5 Fingerprint: 43:96:83:77:19:4d:76:b3:9d:65:52:e4:1d:22:a5:e8\n# SHA1 Fingerprint: 77:d3:03:67:b5:e0:0c:15:f6:0c:38:61:df:7c:e1:3b:92:46:4d:47\n# SHA256 Fingerprint: 34:9d:fa:40:58:c5:e2:63:12:3b:39:8a:e7:95:57:3c:4e:13:13:c8:3f:e6:8f:93:55:6c:d5:e8:03:1b:3c:7d\n-----BEGIN CERTIFICATE-----\nMIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD\nVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG\nA1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw\nWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz\nIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi\nAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi\nQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR\nHYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW\nBBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D\n9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8\np/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD\n-----END CERTIFICATE-----\n\n# Issuer: CN=Telia Root CA v2 O=Telia Finland Oyj\n# Subject: CN=Telia Root CA v2 O=Telia Finland Oyj\n# Label: \"Telia Root CA v2\"\n# Serial: 7288924052977061235122729490515358\n# MD5 Fingerprint: 0e:8f:ac:aa:82:df:85:b1:f4:dc:10:1c:fc:99:d9:48\n# SHA1 Fingerprint: b9:99:cd:d1:73:50:8a:c4:47:05:08:9c:8c:88:fb:be:a0:2b:40:cd\n# SHA256 Fingerprint: 24:2b:69:74:2f:cb:1e:5b:2a:bf:98:89:8b:94:57:21:87:54:4e:5b:4d:99:11:78:65:73:62:1f:6a:74:b8:2c\n-----BEGIN CERTIFICATE-----\nMIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQx\nCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UE\nAwwQVGVsaWEgUm9vdCBDQSB2MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1\nNTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZ\nMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ76zBq\nAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9\nvVYiQJ3q9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9\nlRdU2HhE8Qx3FZLgmEKnpNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTOD\nn3WhUidhOPFZPY5Q4L15POdslv5e2QJltI5c0BE0312/UqeBAMN/mUWZFdUXyApT\n7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW5olWK8jjfN7j/4nlNW4o\n6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNrRBH0pUPC\nTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6\nWT0EBXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63R\nDolUK5X6wK0dmBR4M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZI\npEYslOqodmJHixBTB0hXbOKSTbauBcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGj\nYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7Wxy+G2CQ5MB0GA1UdDgQWBBRy\nrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw\nAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ\n8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi\n0f6X+J8wfBj5tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMM\nA8iZGok1GTzTyVR8qPAs5m4HeW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBS\nSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+Cy748fdHif64W1lZYudogsYMVoe+K\nTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygCQMez2P2ccGrGKMOF\n6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15h2Er\n3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMt\nTy3EHD70sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pT\nVmBds9hCG1xLEooc6+t9xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAW\nysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQraVplI/owd8k+BsHMYeB2F326CjYSlKA\nrBPuUBQemMc=\n-----END CERTIFICATE-----\n\n# Issuer: CN=D-TRUST BR Root CA 1 2020 O=D-Trust GmbH\n# Subject: CN=D-TRUST BR Root CA 1 2020 O=D-Trust GmbH\n# Label: \"D-TRUST BR Root CA 1 2020\"\n# Serial: 165870826978392376648679885835942448534\n# MD5 Fingerprint: b5:aa:4b:d5:ed:f7:e3:55:2e:8f:72:0a:f3:75:b8:ed\n# SHA1 Fingerprint: 1f:5b:98:f0:e3:b5:f7:74:3c:ed:e6:b0:36:7d:32:cd:f4:09:41:67\n# SHA256 Fingerprint: e5:9a:aa:81:60:09:c2:2b:ff:5b:25:ba:d3:7d:f3:06:f0:49:79:7c:1f:81:d8:5a:b0:89:e6:57:bd:8f:00:44\n-----BEGIN CERTIFICATE-----\nMIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQsw\nCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS\nVVNUIEJSIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5\nNDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG\nA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7dPYS\nzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0\nQVK5buXuQqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/\nVbNafAkl1bK6CKBrqx9tMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g\nPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2JyX3Jvb3Rf\nY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l\ndC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1\nc3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO\nPQQDAwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFW\nwKrY7RjEsK70PvomAjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHV\ndWNbFJWcHwHP2NVypw87\n-----END CERTIFICATE-----\n\n# Issuer: CN=D-TRUST EV Root CA 1 2020 O=D-Trust GmbH\n# Subject: CN=D-TRUST EV Root CA 1 2020 O=D-Trust GmbH\n# Label: \"D-TRUST EV Root CA 1 2020\"\n# Serial: 126288379621884218666039612629459926992\n# MD5 Fingerprint: 8c:2d:9d:70:9f:48:99:11:06:11:fb:e9:cb:30:c0:6e\n# SHA1 Fingerprint: 61:db:8c:21:59:69:03:90:d8:7c:9c:12:86:54:cf:9d:3d:f4:dd:07\n# SHA256 Fingerprint: 08:17:0d:1a:a3:64:53:90:1a:2f:95:92:45:e3:47:db:0c:8d:37:ab:aa:bc:56:b8:1a:a1:00:dc:95:89:70:db\n-----BEGIN CERTIFICATE-----\nMIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQsw\nCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS\nVVNUIEVWIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5\nNTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG\nA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8ZRCC\n/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rD\nwpdhQntJraOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3\nOqQo5FD4pPfsazK2/umLMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g\nPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2V2X3Jvb3Rf\nY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l\ndC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1\nc3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO\nPQQDAwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CA\ny/m0sRtW9XLS/BnRAjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJb\ngfM0agPnIjhQW+0ZT0MW\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert TLS ECC P384 Root G5 O=DigiCert, Inc.\n# Subject: CN=DigiCert TLS ECC P384 Root G5 O=DigiCert, Inc.\n# Label: \"DigiCert TLS ECC P384 Root G5\"\n# Serial: 13129116028163249804115411775095713523\n# MD5 Fingerprint: d3:71:04:6a:43:1c:db:a6:59:e1:a8:a3:aa:c5:71:ed\n# SHA1 Fingerprint: 17:f3:de:5e:9f:0f:19:e9:8e:f6:1f:32:26:6e:20:c4:07:ae:30:ee\n# SHA256 Fingerprint: 01:8e:13:f0:77:25:32:cf:80:9b:d1:b1:72:81:86:72:83:fc:48:c6:e1:3b:e9:c6:98:12:85:4a:49:0c:1b:05\n-----BEGIN CERTIFICATE-----\nMIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw\nCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp\nZ2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2\nMDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ\nbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG\nByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS\n7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp\n0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS\nB4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49\nBAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ\nLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4\nDXZDjC5Ty3zfDBeWUA==\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert TLS RSA4096 Root G5 O=DigiCert, Inc.\n# Subject: CN=DigiCert TLS RSA4096 Root G5 O=DigiCert, Inc.\n# Label: \"DigiCert TLS RSA4096 Root G5\"\n# Serial: 11930366277458970227240571539258396554\n# MD5 Fingerprint: ac:fe:f7:34:96:a9:f2:b3:b4:12:4b:e4:27:41:6f:e1\n# SHA1 Fingerprint: a7:88:49:dc:5d:7c:75:8c:8c:de:39:98:56:b3:aa:d0:b2:a5:71:35\n# SHA256 Fingerprint: 37:1a:00:dc:05:33:b3:72:1a:7e:eb:40:e8:41:9e:70:79:9d:2b:0a:0f:2c:1d:80:69:31:65:f7:ce:c4:ad:75\n-----BEGIN CERTIFICATE-----\nMIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN\nMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT\nHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN\nNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs\nIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi\nMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+\najWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0\n2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp\nwgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM\npG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD\nnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po\nsMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx\nZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd\nLvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX\nKyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe\nXoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL\ntgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv\nTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN\nAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw\nGXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H\nPNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF\nO4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ\nREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik\nAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv\n/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+\np6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw\nMUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF\nqUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK\novfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+\n-----END CERTIFICATE-----\n\n# Issuer: CN=Certainly Root R1 O=Certainly\n# Subject: CN=Certainly Root R1 O=Certainly\n# Label: \"Certainly Root R1\"\n# Serial: 188833316161142517227353805653483829216\n# MD5 Fingerprint: 07:70:d4:3e:82:87:a0:fa:33:36:13:f4:fa:33:e7:12\n# SHA1 Fingerprint: a0:50:ee:0f:28:71:f4:27:b2:12:6d:6f:50:96:25:ba:cc:86:42:af\n# SHA256 Fingerprint: 77:b8:2c:d8:64:4c:43:05:f7:ac:c5:cb:15:6b:45:67:50:04:03:3d:51:c6:0c:62:02:a8:e0:c3:34:67:d3:a0\n-----BEGIN CERTIFICATE-----\nMIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw\nPTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy\ndGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9\nMQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0\nYWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2\n1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT\nvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed\naFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0\n1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5\nr3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5\ncBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ\nwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ\n6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA\n2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH\nWyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR\neiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB\n/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u\nd0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr\nPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d\n8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi\n1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd\nrRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di\ntaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7\nlcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj\nyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn\nKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy\nyCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n\nwXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6\nOV+KmalBWQewLK8=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Certainly Root E1 O=Certainly\n# Subject: CN=Certainly Root E1 O=Certainly\n# Label: \"Certainly Root E1\"\n# Serial: 8168531406727139161245376702891150584\n# MD5 Fingerprint: 0a:9e:ca:cd:3e:52:50:c6:36:f3:4b:a3:ed:a7:53:e9\n# SHA1 Fingerprint: f9:e1:6d:dc:01:89:cf:d5:82:45:63:3e:c5:37:7d:c2:eb:93:6f:2b\n# SHA256 Fingerprint: b4:58:5f:22:e4:ac:75:6a:4e:86:12:a1:36:1c:5d:9d:03:1a:93:fd:84:fe:bb:77:8f:a3:06:8b:0f:c4:2d:c2\n-----BEGIN CERTIFICATE-----\nMIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw\nCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu\nbHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ\nBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s\neSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK\n+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2\nQNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E\nBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4\nhevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm\nut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG\nBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR\n-----END CERTIFICATE-----\n\n# Issuer: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD.\n# Subject: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD.\n# Label: \"Security Communication ECC RootCA1\"\n# Serial: 15446673492073852651\n# MD5 Fingerprint: 7e:43:b0:92:68:ec:05:43:4c:98:ab:5d:35:2e:7e:86\n# SHA1 Fingerprint: b8:0e:26:a9:bf:d2:b2:3b:c0:ef:46:c9:ba:c7:bb:f6:1d:0d:41:41\n# SHA256 Fingerprint: e7:4f:bd:a5:5b:d5:64:c4:73:a3:6b:44:1a:a7:99:c8:a6:8e:07:74:40:e8:28:8b:9f:a1:e5:0e:4b:ba:ca:11\n-----BEGIN CERTIFICATE-----\nMIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT\nAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD\nVQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx\nNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT\nHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5\nIENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi\nAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl\ndB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK\nULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E\nBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu\n9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O\nbe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k=\n-----END CERTIFICATE-----\n\n# Issuer: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY\n# Subject: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY\n# Label: \"BJCA Global Root CA1\"\n# Serial: 113562791157148395269083148143378328608\n# MD5 Fingerprint: 42:32:99:76:43:33:36:24:35:07:82:9b:28:f9:d0:90\n# SHA1 Fingerprint: d5:ec:8d:7b:4c:ba:79:f4:e7:e8:cb:9d:6b:ae:77:83:10:03:21:6a\n# SHA256 Fingerprint: f3:89:6f:88:fe:7c:0a:88:27:66:a7:fa:6a:d2:74:9f:b5:7a:7f:3e:98:fb:76:9c:1f:a7:b0:9c:2c:44:d5:ae\n-----BEGIN CERTIFICATE-----\nMIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBU\nMQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRI\nT1JJVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAz\nMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJF\nSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2Jh\nbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFmCL3Z\nxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZ\nspDyRhySsTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O5\n58dnJCNPYwpj9mZ9S1WnP3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgR\nat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcWyqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll\n5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRjeulumijWML3mG90Vr4Tq\nnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNnMoH1V6XK\nV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/\npj+bOT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZO\nz2nxbkRs1CTqjSShGL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXn\njSXWgXSHRtQpdaJCbPdzied9v3pKH9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+\nWGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMBAAGjQjBAMB0GA1UdDgQWBBTF\n7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE\nAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4\nYRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3Kli\nawLwQ8hOnThJdMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u\n+2D2/VnGKhs/I0qUJDAnyIm860Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88\nX7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuhTaRjAv04l5U/BXCga99igUOLtFkN\nSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW4AB+dAb/OMRyHdOo\nP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmpGQrI\n+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRz\nznfSxqxx4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9\neVzYH6Eze9mCUAyTF6ps3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2\nYqAo07WjuGS3iGJCz51TzZm+ZGiPTx4SSPfSKcOYKMryMguTjClPPGAyzQWWYezy\nr/6zcCwupvI=\n-----END CERTIFICATE-----\n\n# Issuer: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY\n# Subject: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY\n# Label: \"BJCA Global Root CA2\"\n# Serial: 58605626836079930195615843123109055211\n# MD5 Fingerprint: 5e:0a:f6:47:5f:a6:14:e8:11:01:95:3f:4d:01:eb:3c\n# SHA1 Fingerprint: f4:27:86:eb:6e:b8:6d:88:31:67:02:fb:ba:66:a4:53:00:aa:7a:a6\n# SHA256 Fingerprint: 57:4d:f6:93:1e:27:80:39:66:7b:72:0a:fd:c1:60:0f:c2:7e:b6:6d:d3:09:29:79:fb:73:85:64:87:21:28:82\n-----BEGIN CERTIFICATE-----\nMIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQsw\nCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJ\nVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgy\nMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJ\nTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2JhbCBS\nb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jlSR9B\nIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK+\n+kpRuDCK/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJK\nsVF/BvDRgh9Obl+rg/xI1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD\nAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA\n94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8gUXOQwKhbYdDFUDn9hf7B\n43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited\n# Subject: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited\n# Label: \"Sectigo Public Server Authentication Root E46\"\n# Serial: 88989738453351742415770396670917916916\n# MD5 Fingerprint: 28:23:f8:b2:98:5c:37:16:3b:3e:46:13:4e:b0:b3:01\n# SHA1 Fingerprint: ec:8a:39:6c:40:f0:2e:bc:42:75:d4:9f:ab:1c:1a:5b:67:be:d2:9a\n# SHA256 Fingerprint: c9:0f:26:f0:fb:1b:40:18:b2:22:27:51:9b:5c:a2:b5:3e:2c:a5:b3:be:5c:f1:8e:fe:1b:ef:47:38:0c:53:83\n-----BEGIN CERTIFICATE-----\nMIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQsw\nCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T\nZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcN\nMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYG\nA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT\nZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA\nIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccC\nWvkEN/U0NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+\n6xnOQ6OjQjBAMB0GA1UdDgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8B\nAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjAn7qRa\nqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RHlAFWovgzJQxC36oCMB3q\n4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21USAGKcw==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited\n# Subject: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited\n# Label: \"Sectigo Public Server Authentication Root R46\"\n# Serial: 156256931880233212765902055439220583700\n# MD5 Fingerprint: 32:10:09:52:00:d5:7e:6c:43:df:15:c0:b1:16:93:e5\n# SHA1 Fingerprint: ad:98:f9:f3:e4:7d:75:3b:65:d4:82:b3:a4:52:17:bb:6e:f5:e4:38\n# SHA256 Fingerprint: 7b:b6:47:a6:2a:ee:ac:88:bf:25:7a:a5:22:d0:1f:fe:a3:95:e0:ab:45:c7:3f:93:f6:56:54:ec:38:f2:5a:06\n-----BEGIN CERTIFICATE-----\nMIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBf\nMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD\nEy1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw\nHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEY\nMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1Ymxp\nYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB\nAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDa\nef0rty2k1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnz\nSDBh+oF8HqcIStw+KxwfGExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xf\niOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMPFF1bFOdLvt30yNoDN9HWOaEhUTCDsG3X\nME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vuZDCQOc2TZYEhMbUjUDM3\nIuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5QazYw6A3OAS\nVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgE\nSJ/AwSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu\n+Zd4KKTIRJLpfSYFplhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt\n8uaZFURww3y8nDnAtOFr94MlI1fZEoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+L\nHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW6aWWrL3DkJiy4Pmi1KZHQ3xt\nzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWIIUkwDgYDVR0P\nAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c\nmTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQ\nYKlJfp/imTYpE0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52\ngDY9hAaLMyZlbcp+nv4fjFg4exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZA\nFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M0ejf5lG5Nkc/kLnHvALcWxxPDkjB\nJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI84HxZmduTILA7rpX\nDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9mpFui\nTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5\ndHn5HrwdVw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65\nLvKRRFHQV80MNNVIIb/bE/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp\n0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmmJ1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAY\nQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL\n-----END CERTIFICATE-----\n\n# Issuer: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation\n# Subject: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation\n# Label: \"SSL.com TLS RSA Root CA 2022\"\n# Serial: 148535279242832292258835760425842727825\n# MD5 Fingerprint: d8:4e:c6:59:30:d8:fe:a0:d6:7a:5a:2c:2c:69:78:da\n# SHA1 Fingerprint: ec:2c:83:40:72:af:26:95:10:ff:0e:f2:03:ee:31:70:f6:78:9d:ca\n# SHA256 Fingerprint: 8f:af:7d:2e:2c:b4:70:9b:b8:e0:b3:36:66:bf:75:a5:dd:45:b5:de:48:0f:8e:a8:d4:bf:e6:be:bc:17:f2:ed\n-----BEGIN CERTIFICATE-----\nMIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBO\nMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQD\nDBxTU0wuY29tIFRMUyBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloX\nDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jw\nb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJvb3QgQ0EgMjAyMjCC\nAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u9nTP\nL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OY\nt6/wNr/y7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0ins\nS657Lb85/bRi3pZ7QcacoOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3\nPnxEX4MN8/HdIGkWCVDi1FW24IBydm5MR7d1VVm0U3TZlMZBrViKMWYPHqIbKUBO\nL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDGD6C1vBdOSHtRwvzpXGk3\nR2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEWTO6Af77w\ndr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS\n+YCk8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYS\nd66UNHsef8JmAOSqg+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoG\nAtUjHBPW6dvbxrB6y3snm/vg1UYk7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2f\ngTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j\nBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsuN+7jhHonLs0Z\nNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt\nhEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsM\nQtfhWsSWTVTNj8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvf\nR4iyrT7gJ4eLSYwfqUdYe5byiB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJ\nDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjUo3KUQyxi4U5cMj29TH0ZR6LDSeeW\nP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqoENjwuSfr98t67wVy\nlrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7EgkaibMOlq\nbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2w\nAgDHbICivRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3q\nr5nsLFR+jM4uElZI7xc7P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sji\nMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB09+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU\n98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA=\n-----END CERTIFICATE-----\n\n# Issuer: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation\n# Subject: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation\n# Label: \"SSL.com TLS ECC Root CA 2022\"\n# Serial: 26605119622390491762507526719404364228\n# MD5 Fingerprint: 99:d7:5c:f1:51:36:cc:e9:ce:d9:19:2e:77:71:56:c5\n# SHA1 Fingerprint: 9f:5f:d9:1a:54:6d:f5:0c:71:f0:ee:7a:bd:17:49:98:84:73:e2:39\n# SHA256 Fingerprint: c3:2f:fd:9f:46:f9:36:d1:6c:36:73:99:09:59:43:4b:9a:d6:0a:af:bb:9e:7c:f3:36:54:f1:44:cc:1b:a1:43\n-----BEGIN CERTIFICATE-----\nMIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQsw\nCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxT\nU0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2\nMDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3Jh\ndGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3QgQ0EgMjAyMjB2MBAG\nByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWyJGYm\nacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFN\nSeR7T5v15wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME\nGDAWgBSJjy+j6CugFFR781a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NW\nuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp\n15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w7deedWo1dlJF4AIxAMeN\nb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5Zn6g6g==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos\n# Subject: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos\n# Label: \"Atos TrustedRoot Root CA ECC TLS 2021\"\n# Serial: 81873346711060652204712539181482831616\n# MD5 Fingerprint: 16:9f:ad:f1:70:ad:79:d6:ed:29:b4:d1:c5:79:70:a8\n# SHA1 Fingerprint: 9e:bc:75:10:42:b3:02:f3:81:f4:f7:30:62:d4:8f:c3:a7:51:b2:dd\n# SHA256 Fingerprint: b2:fa:e5:3e:14:cc:d7:ab:92:12:06:47:01:ae:27:9c:1d:89:88:fa:cb:77:5f:a8:a0:08:91:4e:66:39:88:a8\n-----BEGIN CERTIFICATE-----\nMIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4w\nLAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0w\nCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0\nMTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBF\nQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMHYwEAYHKoZI\nzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6KDP/X\ntXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4\nAjJn8ZQSb+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2\nKCXWfeBmmnoJsmo7jjPXNtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMD\naAAwZQIwW5kp85wxtolrbNa9d+F851F+uDrNozZffPc8dz7kUK2o59JZDCaOMDtu\nCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGYa3cpetskz2VAv9LcjBHo\n9H1/IISpQuQo\n-----END CERTIFICATE-----\n\n# Issuer: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos\n# Subject: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos\n# Label: \"Atos TrustedRoot Root CA RSA TLS 2021\"\n# Serial: 111436099570196163832749341232207667876\n# MD5 Fingerprint: d4:d3:46:b8:9a:c0:9c:76:5d:9e:3a:c3:b9:99:31:d2\n# SHA1 Fingerprint: 18:52:3b:0d:06:37:e4:d6:3a:df:23:e4:98:fb:5b:16:fb:86:74:48\n# SHA256 Fingerprint: 81:a9:08:8e:a5:9f:b3:64:c5:48:a6:f8:55:59:09:9b:6f:04:05:ef:bf:18:e5:32:4e:c9:f4:57:ba:00:11:2f\n-----BEGIN CERTIFICATE-----\nMIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBM\nMS4wLAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIx\nMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00\nMTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBD\nQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMIICIjAN\nBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BBl01Z\n4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYv\nYe+W/CBGvevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZ\nkmGbzSoXfduP9LVq6hdKZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDs\nGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt0xU6kGpn8bRrZtkh68rZYnxGEFzedUln\nnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVKPNe0OwANwI8f4UDErmwh\n3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMYsluMWuPD\n0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzy\ngeBYBr3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8\nANSbhqRAvNncTFd+rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezB\nc6eUWsuSZIKmAMFwoW4sKeFYV+xafJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lI\npw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU\ndEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB\nDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS\n4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPs\no0UvFJ/1TCplQ3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJ\nqM7F78PRreBrAwA0JrRUITWXAdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuyw\nxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9GslA9hGCZcbUztVdF5kJHdWoOsAgM\nrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2VktafcxBPTy+av5EzH4\nAXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9qTFsR\n0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuY\no7Ey7Nmj1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5\ndDTedk+SKlOxJTnbPP/lPqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcE\noji2jbDwN/zIIX8/syQbPYtuzE2wFg2WHYMfRsCbvUOZ58SWLs5fyQ==\n-----END CERTIFICATE-----\n\n# Issuer: CN=TrustAsia Global Root CA G3 O=TrustAsia Technologies, Inc.\n# Subject: CN=TrustAsia Global Root CA G3 O=TrustAsia Technologies, Inc.\n# Label: \"TrustAsia Global Root CA G3\"\n# Serial: 576386314500428537169965010905813481816650257167\n# MD5 Fingerprint: 30:42:1b:b7:bb:81:75:35:e4:16:4f:53:d2:94:de:04\n# SHA1 Fingerprint: 63:cf:b6:c1:27:2b:56:e4:88:8e:1c:23:9a:b6:2e:81:47:24:c3:c7\n# SHA256 Fingerprint: e0:d3:22:6a:eb:11:63:c2:e4:8f:f9:be:3b:50:b4:c6:43:1b:e7:bb:1e:ac:c5:c3:6b:5d:5e:c5:09:03:9a:08\n-----BEGIN CERTIFICATE-----\nMIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEM\nBQAwWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dp\nZXMsIEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAe\nFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEwMTlaMFoxCzAJBgNVBAYTAkNOMSUw\nIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtU\ncnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUAA4IC\nDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNS\nT1QY4SxzlZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqK\nAtCWHwDNBSHvBm3dIZwZQ0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1\nnyDvP+uLRx+PjsXUjrYsyUQE49RDdT/VP68czH5GX6zfZBCK70bwkPAPLfSIC7Ep\nqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1AgdB4SQXMeJNnKziyhWTXA\nyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm9WAPzJMs\nhH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gX\nzhqcD0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAv\nkV34PmVACxmZySYgWmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msT\nf9FkPz2ccEblooV7WIQn3MSAPmeamseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jA\nuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCFTIcQcf+eQxuulXUtgQIDAQAB\no2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj7zjKsK5Xf/Ih\nMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E\nBAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4\nwM8zAQLpw6o1D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2\nXFNFV1pF1AWZLy4jVe5jaN/TG3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1\nJKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNjduMNhXJEIlU/HHzp/LgV6FL6qj6j\nITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstlcHboCoWASzY9M/eV\nVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys+TIx\nxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1on\nAX1daBli2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d\n7XB4tmBZrOFdRWOPyN9yaFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2Ntjj\ngKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsASZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV\n+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFRJQJ6+N1rZdVtTTDIZbpo\nFGWsJwt0ivKH\n-----END CERTIFICATE-----\n\n# Issuer: CN=TrustAsia Global Root CA G4 O=TrustAsia Technologies, Inc.\n# Subject: CN=TrustAsia Global Root CA G4 O=TrustAsia Technologies, Inc.\n# Label: \"TrustAsia Global Root CA G4\"\n# Serial: 451799571007117016466790293371524403291602933463\n# MD5 Fingerprint: 54:dd:b2:d7:5f:d8:3e:ed:7c:e0:0b:2e:cc:ed:eb:eb\n# SHA1 Fingerprint: 57:73:a5:61:5d:80:b2:e6:ac:38:82:fc:68:07:31:ac:9f:b5:92:5a\n# SHA256 Fingerprint: be:4b:56:cb:50:56:c0:13:6a:52:6d:f4:44:50:8d:aa:36:a0:b5:4f:42:e4:ac:38:f7:2a:f4:70:e4:79:65:4c\n-----BEGIN CERTIFICATE-----\nMIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMw\nWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs\nIEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0y\nMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJaMFoxCzAJBgNVBAYTAkNOMSUwIwYD\nVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtUcnVz\ndEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATx\ns8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbw\nLxYI+hW8m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJij\nYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mD\npm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/pDHel4NZg6ZvccveMA4GA1UdDwEB/wQE\nAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AAbbd+NvBNEU/zy4k6LHiR\nUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xkdUfFVZDj\n/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Telekom Security TLS ECC Root 2020 O=Deutsche Telekom Security GmbH\n# Subject: CN=Telekom Security TLS ECC Root 2020 O=Deutsche Telekom Security GmbH\n# Label: \"Telekom Security TLS ECC Root 2020\"\n# Serial: 72082518505882327255703894282316633856\n# MD5 Fingerprint: c1:ab:fe:6a:10:2c:03:8d:bc:1c:22:32:c0:85:a7:fd\n# SHA1 Fingerprint: c0:f8:96:c5:a9:3b:01:06:21:07:da:18:42:48:bc:e9:9d:88:d5:ec\n# SHA256 Fingerprint: 57:8a:f4:de:d0:85:3f:4e:59:98:db:4a:ea:f9:cb:ea:8d:94:5f:60:b6:20:a3:8d:1a:3c:13:b2:bc:7b:a8:e1\n-----BEGIN CERTIFICATE-----\nMIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQsw\nCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBH\nbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIw\nMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIzNTk1OVowYzELMAkGA1UEBhMCREUx\nJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkGA1UE\nAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqGSM49\nAgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/O\ntdKPD/M12kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDP\nf8iAC8GXs7s1J8nCG6NCMEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6f\nMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cA\nMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZMo7k+5Dck2TOrbRBR2Di\nz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdUga/sf+Rn\n27iQ7t0l\n-----END CERTIFICATE-----\n\n# Issuer: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH\n# Subject: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH\n# Label: \"Telekom Security TLS RSA Root 2023\"\n# Serial: 44676229530606711399881795178081572759\n# MD5 Fingerprint: bf:5b:eb:54:40:cd:48:71:c4:20:8d:7d:de:0a:42:f2\n# SHA1 Fingerprint: 54:d3:ac:b3:bd:57:56:f6:85:9d:ce:e5:c3:21:e2:d4:ad:83:d0:93\n# SHA256 Fingerprint: ef:c6:5c:ad:bb:59:ad:b6:ef:e8:4d:a2:23:11:b3:56:24:b7:1b:3b:1e:a0:da:8b:66:55:17:4e:c8:97:86:46\n-----BEGIN CERTIFICATE-----\nMIIFszCCA5ugAwIBAgIQIZxULej27HF3+k7ow3BXlzANBgkqhkiG9w0BAQwFADBj\nMQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0\neSBHbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBSU0EgUm9vdCAy\nMDIzMB4XDTIzMDMyODEyMTY0NVoXDTQ4MDMyNzIzNTk1OVowYzELMAkGA1UEBhMC\nREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkG\nA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgUlNBIFJvb3QgMjAyMzCCAiIwDQYJ\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBAO01oYGA88tKaVvC+1GDrib94W7zgRJ9\ncUD/h3VCKSHtgVIs3xLBGYSJwb3FKNXVS2xE1kzbB5ZKVXrKNoIENqil/Cf2SfHV\ncp6R+SPWcHu79ZvB7JPPGeplfohwoHP89v+1VmLhc2o0mD6CuKyVU/QBoCcHcqMA\nU6DksquDOFczJZSfvkgdmOGjup5czQRxUX11eKvzWarE4GC+j4NSuHUaQTXtvPM6\nY+mpFEXX5lLRbtLevOP1Czvm4MS9Q2QTps70mDdsipWol8hHD/BeEIvnHRz+sTug\nBTNoBUGCwQMrAcjnj02r6LX2zWtEtefdi+zqJbQAIldNsLGyMcEWzv/9FIS3R/qy\n8XDe24tsNlikfLMR0cN3f1+2JeANxdKz+bi4d9s3cXFH42AYTyS2dTd4uaNir73J\nco4vzLuu2+QVUhkHM/tqty1LkCiCc/4YizWN26cEar7qwU02OxY2kTLvtkCJkUPg\n8qKrBC7m8kwOFjQgrIfBLX7JZkcXFBGk8/ehJImr2BrIoVyxo/eMbcgByU/J7MT8\nrFEz0ciD0cmfHdRHNCk+y7AO+oMLKFjlKdw/fKifybYKu6boRhYPluV75Gp6SG12\nmAWl3G0eQh5C2hrgUve1g8Aae3g1LDj1H/1Joy7SWWO/gLCMk3PLNaaZlSJhZQNg\n+y+TS/qanIA7AgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtqeX\ngj10hZv3PJ+TmpV5dVKMbUcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS2\np5eCPXSFm/c8n5OalXl1UoxtRzANBgkqhkiG9w0BAQwFAAOCAgEAqMxhpr51nhVQ\npGv7qHBFfLp+sVr8WyP6Cnf4mHGCDG3gXkaqk/QeoMPhk9tLrbKmXauw1GLLXrtm\n9S3ul0A8Yute1hTWjOKWi0FpkzXmuZlrYrShF2Y0pmtjxrlO8iLpWA1WQdH6DErw\nM807u20hOq6OcrXDSvvpfeWxm4bu4uB9tPcy/SKE8YXJN3nptT+/XOR0so8RYgDd\nGGah2XsjX/GO1WfoVNpbOms2b/mBsTNHM3dA+VKq3dSDz4V4mZqTuXNnQkYRIer+\nCqkbGmVps4+uFrb2S1ayLfmlyOw7YqPta9BO1UAJpB+Y1zqlklkg5LB9zVtzaL1t\nxKITDmcZuI1CfmwMmm6gJC3VRRvcxAIU/oVbZZfKTpBQCHpCNfnqwmbU+AGuHrS+\nw6jv/naaoqYfRvaE7fzbzsQCzndILIyy7MMAo+wsVRjBfhnu4S/yrYObnqsZ38aK\nL4x35bcF7DvB7L6Gs4a8wPfc5+pbrrLMtTWGS9DiP7bY+A4A7l3j941Y/8+LN+lj\nX273CXE2whJdV/LItM3z7gLfEdxquVeEHVlNjM7IDiPCtyaaEBRx/pOyiriA8A4Q\nntOoUAw3gi/q4Iqd4Sw5/7W0cwDk90imc6y/st53BIe0o82bNSQ3+pCTE4FCxpgm\ndTdmQRCsu/WU48IxK63nI1bMNSWSs1A=\n-----END CERTIFICATE-----\n\n# Issuer: CN=FIRMAPROFESIONAL CA ROOT-A WEB O=Firmaprofesional SA\n# Subject: CN=FIRMAPROFESIONAL CA ROOT-A WEB O=Firmaprofesional SA\n# Label: \"FIRMAPROFESIONAL CA ROOT-A WEB\"\n# Serial: 65916896770016886708751106294915943533\n# MD5 Fingerprint: 82:b2:ad:45:00:82:b0:66:63:f8:5f:c3:67:4e:ce:a3\n# SHA1 Fingerprint: a8:31:11:74:a6:14:15:0d:ca:77:dd:0e:e4:0c:5d:58:fc:a0:72:a5\n# SHA256 Fingerprint: be:f2:56:da:f2:6e:9c:69:bd:ec:16:02:35:97:98:f3:ca:f7:18:21:a0:3e:01:82:57:c5:3c:65:61:7f:3d:4a\n-----BEGIN CERTIFICATE-----\nMIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQsw\nCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE\nYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB\nIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2WhcNNDcwMzMxMDkwMTM2WjBuMQsw\nCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE\nYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB\nIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zf\ne9MEkVz6iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6C\ncyvHZpsKjECcfIr28jlgst7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB\n/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FDY1w8ndYn81LsF7Kpryz3dvgwHQYDVR0O\nBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO\nPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgLcFBTApFw\nhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dG\nXSaQpYXFuXqUPoeovQA=\n-----END CERTIFICATE-----\n\n# Issuer: CN=TWCA CYBER Root CA O=TAIWAN-CA OU=Root CA\n# Subject: CN=TWCA CYBER Root CA O=TAIWAN-CA OU=Root CA\n# Label: \"TWCA CYBER Root CA\"\n# Serial: 85076849864375384482682434040119489222\n# MD5 Fingerprint: 0b:33:a0:97:52:95:d4:a9:fd:bb:db:6e:a3:55:5b:51\n# SHA1 Fingerprint: f6:b1:1c:1a:83:38:e9:7b:db:b3:a8:c8:33:24:e0:2d:9c:7f:26:66\n# SHA256 Fingerprint: 3f:63:bb:28:14:be:17:4e:c8:b6:43:9c:f0:8d:6d:56:f0:b7:c4:05:88:3a:56:48:a3:34:42:4d:6b:3e:c5:58\n-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQ\nMQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290\nIENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5\nWhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FO\nLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3Qg\nQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1sTs6P\n40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxF\navcokPFhV8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/\n34bKS1PE2Y2yHer43CdTo0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684i\nJkXXYJndzk834H/nY62wuFm40AZoNWDTNq5xQwTxaWV4fPMf88oon1oglWa0zbfu\nj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK/c/WMw+f+5eesRycnupf\nXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkHIuNZW0CP\n2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDA\nS9TMfAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDA\noS/xUgXJP+92ZuJF2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzC\nkHDXShi8fgGwsOsVHkQGzaRP6AzRwyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW\n5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYD\nVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83QOGt4A1WNzAd\nBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB\nAGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0t\ntGlTITVX1olNc79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn\n68xDiBaiA9a5F/gZbG0jAn/xX9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNn\nTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDRIG4kqIQnoVesqlVYL9zZyvpoBJ7t\nRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq/p1hvIbZv97Tujqx\nf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0RFxbI\nQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz\n8ppy6rBePm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4\nNxKfKjLji7gh7MMrZQzvIt6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzX\nxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHlIhInD0Q9HWzq1MKLL295q39QpsQZp6F6\nt5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X\n-----END CERTIFICATE-----\n\n# Issuer: CN=SecureSign Root CA12 O=Cybertrust Japan Co., Ltd.\n# Subject: CN=SecureSign Root CA12 O=Cybertrust Japan Co., Ltd.\n# Label: \"SecureSign Root CA12\"\n# Serial: 587887345431707215246142177076162061960426065942\n# MD5 Fingerprint: c6:89:ca:64:42:9b:62:08:49:0b:1e:7f:e9:07:3d:e8\n# SHA1 Fingerprint: 7a:22:1e:3d:de:1b:06:ac:9e:c8:47:70:16:8e:3c:e5:f7:6b:06:f4\n# SHA256 Fingerprint: 3f:03:4b:b5:70:4d:44:b2:d0:85:45:a0:20:57:de:93:eb:f3:90:5f:ce:72:1a:cb:c7:30:c0:6d:da:ee:90:4e\n-----BEGIN CERTIFICATE-----\nMIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQEL\nBQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u\nLCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgw\nNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD\neWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS\nb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3emhF\nKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mt\np7JIKwccJ/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zd\nJ1M3s6oYwlkm7Fsf0uZlfO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gur\nFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBFEaCeVESE99g2zvVQR9wsMJvuwPWW0v4J\nhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1UefNzFJM3IFTQy2VYzxV4+K\nh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD\nAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsF\nAAOCAQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6Ld\nmmQOmFxv3Y67ilQiLUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJ\nmBClnW8Zt7vPemVV2zfrPIpyMpcemik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA\n8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPSvWKErI4cqc1avTc7bgoitPQV\n55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhgaaaI5gdka9at/\nyOPiZwud9AzqVN/Ssq+xIvEg37xEHA==\n-----END CERTIFICATE-----\n\n# Issuer: CN=SecureSign Root CA14 O=Cybertrust Japan Co., Ltd.\n# Subject: CN=SecureSign Root CA14 O=Cybertrust Japan Co., Ltd.\n# Label: \"SecureSign Root CA14\"\n# Serial: 575790784512929437950770173562378038616896959179\n# MD5 Fingerprint: 71:0d:72:fa:92:19:65:5e:89:04:ac:16:33:f0:bc:d5\n# SHA1 Fingerprint: dd:50:c0:f7:79:b3:64:2e:74:a2:b8:9d:9f:d3:40:dd:bb:f0:f2:4f\n# SHA256 Fingerprint: 4b:00:9c:10:34:49:4f:9a:b5:6b:ba:3b:a1:d6:27:31:fc:4d:20:d8:95:5a:dc:ec:10:a9:25:60:72:61:e3:38\n-----BEGIN CERTIFICATE-----\nMIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEM\nBQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u\nLCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgw\nNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD\neWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS\nb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh1oq/\nFjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOg\nvlIfX8xnbacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy\n6pJxaeQp8E+BgQQ8sqVb1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo\n/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9J\nkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOEkJTRX45zGRBdAuVwpcAQ\n0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSxjVIHvXib\ny8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac\n18izju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs\n0Wq2XSqypWa9a4X0dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIAB\nSMbHdPTGrMNASRZhdCyvjG817XsYAFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVL\nApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD\nAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeqYR3r6/wtbyPk\n86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E\nrX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ib\ned87hwriZLoAymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopT\nzfFP7ELyk+OZpDc8h7hi2/DsHzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHS\nDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPGFrojutzdfhrGe0K22VoF3Jpf1d+4\n2kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6qnsb58Nn4DSEC5MUo\nFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/OfVy\nK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6\ndB7h7sxaOgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtl\nLor6CZpO2oYofaphNdgOpygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB\n365jJ6UeTo3cKXhZ+PmhIIynJkBugnLNeLLIjzwec+fBH7/PzqUqm9tEZDKgu39c\nJRNItX+S\n-----END CERTIFICATE-----\n\n# Issuer: CN=SecureSign Root CA15 O=Cybertrust Japan Co., Ltd.\n# Subject: CN=SecureSign Root CA15 O=Cybertrust Japan Co., Ltd.\n# Label: \"SecureSign Root CA15\"\n# Serial: 126083514594751269499665114766174399806381178503\n# MD5 Fingerprint: 13:30:fc:c4:62:a6:a9:de:b5:c1:68:af:b5:d2:31:47\n# SHA1 Fingerprint: cb:ba:83:c8:c1:5a:5d:f1:f9:73:6f:ca:d7:ef:28:13:06:4a:07:7d\n# SHA256 Fingerprint: e7:78:f0:f0:95:fe:84:37:29:cd:1a:00:82:17:9e:53:14:a9:c2:91:44:28:05:e1:fb:1d:8f:b6:b8:88:6c:3a\n-----BEGIN CERTIFICATE-----\nMIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMw\nUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBM\ndGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMy\nNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpDeWJl\ncnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBSb290\nIENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5GdCx4\nwCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSR\nZHX+AezB2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMB\nAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT\n9DAKBggqhkjOPQQDAwNoADBlAjEA2S6Jfl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp\n4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJSwdLZrWeqrqgHkHZAXQ6\nbkU6iYAZezKYVWOr62Nuk22rGwlgMU4=\n-----END CERTIFICATE-----\n\n# Issuer: CN=D-TRUST BR Root CA 2 2023 O=D-Trust GmbH\n# Subject: CN=D-TRUST BR Root CA 2 2023 O=D-Trust GmbH\n# Label: \"D-TRUST BR Root CA 2 2023\"\n# Serial: 153168538924886464690566649552453098598\n# MD5 Fingerprint: e1:09:ed:d3:60:d4:56:1b:47:1f:b7:0c:5f:1b:5f:85\n# SHA1 Fingerprint: 2d:b0:70:ee:71:94:af:69:68:17:db:79:ce:58:9f:a0:6b:96:f7:87\n# SHA256 Fingerprint: 05:52:e6:f8:3f:df:65:e8:fa:96:70:e6:66:df:28:a4:e2:13:40:b5:10:cb:e5:25:66:f9:7c:4f:b9:4b:2b:d1\n-----BEGIN CERTIFICATE-----\nMIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBI\nMQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE\nLVRSVVNUIEJSIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUw\nOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi\nMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN\nAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCTcfKr\ni3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNE\ngXtRr90zsWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8\nk12b9py0i4a6Ibn08OhZWiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCT\nRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl\n2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LULQyReS2tNZ9/WtT5PeB+U\ncSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIvx9gvdhFP\n/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bS\nuREVMweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+\n0bpwHJwh5Q8xaRfX/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4N\nDfTisl01gLmB1IRpkQLLddCNxbU9CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+\nXTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUZ5Dw1t61\nGNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG\nOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y\nXzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tI\nFoE9c+CeJyrrd6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67n\nriv6uvw8l5VAk1/DLQOj7aRvU9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTR\nVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4nj8+AybmTNudX0KEPUUDAxxZiMrc\nLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdijYQ6qgYF/6FKC0ULn\n4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff/vtD\nhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsG\nkoHU6XCPpz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46\nls/pdu4D58JDUjxqgejBWoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aS\nEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/5usWDiJFAbzdNpQ0qTUmiteXue4Icr80\nknCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jtn/mtd+ArY0+ew+43u3gJ\nhJ65bvspmZDogNOfJA==\n-----END CERTIFICATE-----\n\n# Issuer: CN=TrustAsia TLS ECC Root CA O=TrustAsia Technologies, Inc.\n# Subject: CN=TrustAsia TLS ECC Root CA O=TrustAsia Technologies, Inc.\n# Label: \"TrustAsia TLS ECC Root CA\"\n# Serial: 310892014698942880364840003424242768478804666567\n# MD5 Fingerprint: 09:48:04:77:d2:fc:65:93:71:66:b1:11:95:4f:06:8c\n# SHA1 Fingerprint: b5:ec:39:f3:a1:66:37:ae:c3:05:94:57:e2:be:11:be:b7:a1:7f:36\n# SHA256 Fingerprint: c0:07:6b:9e:f0:53:1f:b1:a6:56:d6:7c:4e:be:97:cd:5d:ba:a4:1e:f4:45:98:ac:c2:48:98:78:c9:2d:87:11\n-----BEGIN CERTIFICATE-----\nMIICMTCCAbegAwIBAgIUNnThTXxlE8msg1UloD5Sfi9QaMcwCgYIKoZIzj0EAwMw\nWDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs\nIEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgRUNDIFJvb3QgQ0EwHhcNMjQw\nNTE1MDU0MTU2WhcNNDQwNTE1MDU0MTU1WjBYMQswCQYDVQQGEwJDTjElMCMGA1UE\nChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UEAxMZVHJ1c3RB\nc2lhIFRMUyBFQ0MgUm9vdCBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABLh/pVs/\nAT598IhtrimY4ZtcU5nb9wj/1WrgjstEpvDBjL1P1M7UiFPoXlfXTr4sP/MSpwDp\nguMqWzJ8S5sUKZ74LYO1644xST0mYekdcouJtgq7nDM1D9rs3qlKH8kzsaNCMEAw\nDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQULIVTu7FDzTLqnqOH/qKYqKaT6RAw\nDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMFRH18MtYYZI9HlaVQ01\nL18N9mdsd0AaRuf4aFtOJx24mH1/k78ITcTaRTChD15KeAIxAKORh/IRM4PDwYqR\nOkwrULG9IpRdNYlzg8WbGf60oenUoWa2AaU2+dhoYSi3dOGiMQ==\n-----END CERTIFICATE-----\n\n# Issuer: CN=TrustAsia TLS RSA Root CA O=TrustAsia Technologies, Inc.\n# Subject: CN=TrustAsia TLS RSA Root CA O=TrustAsia Technologies, Inc.\n# Label: \"TrustAsia TLS RSA Root CA\"\n# Serial: 160405846464868906657516898462547310235378010780\n# MD5 Fingerprint: 3b:9e:c3:86:0f:34:3c:6b:c5:46:c4:8e:1d:e7:19:12\n# SHA1 Fingerprint: a5:46:50:c5:62:ea:95:9a:1a:a7:04:6f:17:58:c7:29:53:3d:03:fa\n# SHA256 Fingerprint: 06:c0:8d:7d:af:d8:76:97:1e:b1:12:4f:e6:7f:84:7e:c0:c7:a1:58:d3:ea:53:cb:e9:40:e2:ea:97:91:f4:c3\n-----BEGIN CERTIFICATE-----\nMIIFgDCCA2igAwIBAgIUHBjYz+VTPyI1RlNUJDxsR9FcSpwwDQYJKoZIhvcNAQEM\nBQAwWDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dp\nZXMsIEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgUlNBIFJvb3QgQ0EwHhcN\nMjQwNTE1MDU0MTU3WhcNNDQwNTE1MDU0MTU2WjBYMQswCQYDVQQGEwJDTjElMCMG\nA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UEAxMZVHJ1\nc3RBc2lhIFRMUyBSU0EgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBAMMWuBtqpERz5dZO9LnPWwvB0ZqB9WOwj0PBuwhaGnrhB3YmH49pVr7+\nNmDQDIPNlOrnxS1cLwUWAp4KqC/lYCZUlviYQB2srp10Zy9U+5RjmOMmSoPGlbYJ\nQ1DNDX3eRA5gEk9bNb2/mThtfWza4mhzH/kxpRkQcwUqwzIZheo0qt1CHjCNP561\nHmHVb70AcnKtEj+qpklz8oYVlQwQX1Fkzv93uMltrOXVmPGZLmzjyUT5tUMnCE32\nft5EebuyjBza00tsLtbDeLdM1aTk2tyKjg7/D8OmYCYozza/+lcK7Fs/6TAWe8Tb\nxNRkoDD75f0dcZLdKY9BWN4ArTr9PXwaqLEX8E40eFgl1oUh63kd0Nyrz2I8sMeX\ni9bQn9P+PN7F4/w6g3CEIR0JwqH8uyghZVNgepBtljhb//HXeltt08lwSUq6HTrQ\nUNoyIBnkiz/r1RYmNzz7dZ6wB3C4FGB33PYPXFIKvF1tjVEK2sUYyJtt3LCDs3+j\nTnhMmCWr8n4uIF6CFabW2I+s5c0yhsj55NqJ4js+k8UTav/H9xj8Z7XvGCxUq0DT\nbE3txci3OE9kxJRMT6DNrqXGJyV1J23G2pyOsAWZ1SgRxSHUuPzHlqtKZFlhaxP8\nS8ySpg+kUb8OWJDZgoM5pl+z+m6Ss80zDoWo8SnTq1mt1tve1CuBAgMBAAGjQjBA\nMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFLgHkXlcBvRG/XtZylomkadFK/hT\nMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQwFAAOCAgEAIZtqBSBdGBanEqT3\nRz/NyjuujsCCztxIJXgXbODgcMTWltnZ9r96nBO7U5WS/8+S4PPFJzVXqDuiGev4\niqME3mmL5Dw8veWv0BIb5Ylrc5tvJQJLkIKvQMKtuppgJFqBTQUYo+IzeXoLH5Pt\n7DlK9RME7I10nYEKqG/odv6LTytpEoYKNDbdgptvT+Bz3Ul/KD7JO6NXBNiT2Twp\n2xIQaOHEibgGIOcberyxk2GaGUARtWqFVwHxtlotJnMnlvm5P1vQiJ3koP26TpUJ\ng3933FEFlJ0gcXax7PqJtZwuhfG5WyRasQmr2soaB82G39tp27RIGAAtvKLEiUUj\npQ7hRGU+isFqMB3iYPg6qocJQrmBktwliJiJ8Xw18WLK7nn4GS/+X/jbh87qqA8M\npugLoDzga5SYnH+tBuYc6kIQX+ImFTw3OffXvO645e8D7r0i+yiGNFjEWn9hongP\nXvPKnbwbPKfILfanIhHKA9jnZwqKDss1jjQ52MjqjZ9k4DewbNfFj8GQYSbbJIwe\nSsCI3zWQzj8C9GRh3sfIB5XeMhg6j6JCQCTl1jNdfK7vsU1P1FeQNWrcrgSXSYk0\nly4wBOeY99sLAZDBHwo/+ML+TvrbmnNzFrwFuHnYWa8G5z9nODmxfKuU4CkUpijy\n323imttUQ/hHWKNddBWcwauwxzQ=\n-----END CERTIFICATE-----\n\n# Issuer: CN=D-TRUST EV Root CA 2 2023 O=D-Trust GmbH\n# Subject: CN=D-TRUST EV Root CA 2 2023 O=D-Trust GmbH\n# Label: \"D-TRUST EV Root CA 2 2023\"\n# Serial: 139766439402180512324132425437959641711\n# MD5 Fingerprint: 96:b4:78:09:f0:09:cb:77:eb:bb:1b:4d:6f:36:bc:b6\n# SHA1 Fingerprint: a5:5b:d8:47:6c:8f:19:f7:4c:f4:6d:6b:b6:c2:79:82:22:df:54:8b\n# SHA256 Fingerprint: 8e:82:21:b2:e7:d4:00:78:36:a1:67:2f:0d:cc:29:9c:33:bc:07:d3:16:f1:32:fa:1a:20:6d:58:71:50:f1:ce\n-----BEGIN CERTIFICATE-----\nMIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBI\nMQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE\nLVRSVVNUIEVWIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUw\nOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi\nMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN\nAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1sJkK\nF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE\n7CUXFId/MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFe\nEMbsh2aJgWi6zCudR3Mfvc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6\nlHPTGGkKSv/BAQP/eX+1SH977ugpbzZMlWGG2Pmic4ruri+W7mjNPU0oQvlFKzIb\nRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3YG14C8qKXO0elg6DpkiV\njTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq9107PncjLgc\njmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZx\nTnXonMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+\nARZZaBhDM7DS3LAaQzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nk\nhbDhezGdpn9yo7nELC7MmVcOIQxFAZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knF\nNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqvyREBuH\nkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG\nOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y\nXzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14\nQvBukEdHjqOSMo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4\npZt+UPJ26oUFKidBK7GB0aL2QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q\n3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xDUmPBEcrCRbH0O1P1aa4846XerOhU\nt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V4U/M5d40VxDJI3IX\ncI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuodNv8\nifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT\n2vFp4LJiTZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs\n7dpn1mKmS00PaaLJvOwiS5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNP\ngofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAst\nNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L+KIkBI3Y4WNeApI02phh\nXBxvWHZks/wCuPWdCg==\n-----END CERTIFICATE-----\n\n# Issuer: CN=SwissSign RSA TLS Root CA 2022 - 1 O=SwissSign AG\n# Subject: CN=SwissSign RSA TLS Root CA 2022 - 1 O=SwissSign AG\n# Label: \"SwissSign RSA TLS Root CA 2022 - 1\"\n# Serial: 388078645722908516278762308316089881486363258315\n# MD5 Fingerprint: 16:2e:e4:19:76:81:85:ba:8e:91:58:f1:15:ef:72:39\n# SHA1 Fingerprint: 81:34:0a:be:4c:cd:ce:cc:e7:7d:cc:8a:d4:57:e2:45:a0:77:5d:ce\n# SHA256 Fingerprint: 19:31:44:f4:31:e0:fd:db:74:07:17:d4:de:92:6a:57:11:33:88:4b:43:60:d3:0e:27:29:13:cb:e6:60:ce:41\n-----BEGIN CERTIFICATE-----\nMIIFkzCCA3ugAwIBAgIUQ/oMX04bgBhE79G0TzUfRPSA7cswDQYJKoZIhvcNAQEL\nBQAwUTELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzErMCkGA1UE\nAxMiU3dpc3NTaWduIFJTQSBUTFMgUm9vdCBDQSAyMDIyIC0gMTAeFw0yMjA2MDgx\nMTA4MjJaFw00NzA2MDgxMTA4MjJaMFExCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxT\nd2lzc1NpZ24gQUcxKzApBgNVBAMTIlN3aXNzU2lnbiBSU0EgVExTIFJvb3QgQ0Eg\nMjAyMiAtIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDLKmjiC8NX\nvDVjvHClO/OMPE5Xlm7DTjak9gLKHqquuN6orx122ro10JFwB9+zBvKK8i5VUXu7\nLCTLf5ImgKO0lPaCoaTo+nUdWfMHamFk4saMla+ju45vVs9xzF6BYQ1t8qsCLqSX\n5XH8irCRIFucdFJtrhUnWXjyCcplDn/L9Ovn3KlMd/YrFgSVrpxxpT8q2kFC5zyE\nEPThPYxr4iuRR1VPuFa+Rd4iUU1OKNlfGUEGjw5NBuBwQCMBauTLE5tzrE0USJIt\n/m2n+IdreXXhvhCxqohAWVTXz8TQm0SzOGlkjIHRI36qOTw7D59Ke4LKa2/KIj4x\n0LDQKhySio/YGZxH5D4MucLNvkEM+KRHBdvBFzA4OmnczcNpI/2aDwLOEGrOyvi5\nKaM2iYauC8BPY7kGWUleDsFpswrzd34unYyzJ5jSmY0lpx+Gs6ZUcDj8fV3oT4MM\n0ZPlEuRU2j7yrTrePjxF8CgPBrnh25d7mUWe3f6VWQQvdT/TromZhqwUtKiE+shd\nOxtYk8EXlFXIC+OCeYSf8wCENO7cMdWP8vpPlkwGqnj73mSiI80fPsWMvDdUDrta\nclXvyFu1cvh43zcgTFeRc5JzrBh3Q4IgaezprClG5QtO+DdziZaKHG29777YtvTK\nwP1H8K4LWCDFyB02rpeNUIMmJCn3nTsPBQIDAQABo2MwYTAPBgNVHRMBAf8EBTAD\nAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBRvjmKLk0Ow4UD2p8P98Q+4\nDxU4pTAdBgNVHQ4EFgQUb45ii5NDsOFA9qfD/fEPuA8VOKUwDQYJKoZIhvcNAQEL\nBQADggIBAKwsKUF9+lz1GpUYvyypiqkkVHX1uECry6gkUSsYP2OprphWKwVDIqO3\n10aewCoSPY6WlkDfDDOLazeROpW7OSltwAJsipQLBwJNGD77+3v1dj2b9l4wBlgz\nHqp41eZUBDqyggmNzhYzWUUo8aWjlw5DI/0LIICQ/+Mmz7hkkeUFjxOgdg3XNwwQ\niJb0Pr6VvfHDffCjw3lHC1ySFWPtUnWK50Zpy1FVCypM9fJkT6lc/2cyjlUtMoIc\ngC9qkfjLvH4YoiaoLqNTKIftV+Vlek4ASltOU8liNr3CjlvrzG4ngRhZi0Rjn9UM\nZfQpZX+RLOV/fuiJz48gy20HQhFRJjKKLjpHE7iNvUcNCfAWpO2Whi4Z2L6MOuhF\nLhG6rlrnub+xzI/goP+4s9GFe3lmozm1O2bYQL7Pt2eLSMkZJVX8vY3PXtpOpvJp\nzv1/THfQwUY1mFwjmwJFQ5Ra3bxHrSL+ul4vkSkphnsh3m5kt8sNjzdbowhq6/Td\nAo9QAwKxuDdollDruF/UKIqlIgyKhPBZLtU30WHlQnNYKoH3dtvi4k0NX/a3vgW0\nrk4N3hY9A4GzJl5LuEsAz/+MF7psYC0nhzck5npgL7XTgwSqT0N1osGDsieYK7EO\ngLrAhV5Cud+xYJHT6xh+cHiudoO+cVrQkOPKwRYlZ0rwtnu64ZzZ\n-----END CERTIFICATE-----\n\n# Issuer: CN=OISTE Server Root ECC G1 O=OISTE Foundation\n# Subject: CN=OISTE Server Root ECC G1 O=OISTE Foundation\n# Label: \"OISTE Server Root ECC G1\"\n# Serial: 47819833811561661340092227008453318557\n# MD5 Fingerprint: 42:a7:d2:35:ae:02:92:db:19:76:08:de:2f:05:b4:d4\n# SHA1 Fingerprint: 3b:f6:8b:09:ae:2a:92:7b:ba:e3:8d:3f:11:95:d9:e6:44:0c:45:e2\n# SHA256 Fingerprint: ee:c9:97:c0:c3:0f:21:6f:7e:3b:8b:30:7d:2b:ae:42:41:2d:75:3f:c8:21:9d:af:d1:52:0b:25:72:85:0f:49\n-----BEGIN CERTIFICATE-----\nMIICNTCCAbqgAwIBAgIQI/nD1jWvjyhLH/BU6n6XnTAKBggqhkjOPQQDAzBLMQsw\nCQYDVQQGEwJDSDEZMBcGA1UECgwQT0lTVEUgRm91bmRhdGlvbjEhMB8GA1UEAwwY\nT0lTVEUgU2VydmVyIFJvb3QgRUNDIEcxMB4XDTIzMDUzMTE0NDIyOFoXDTQ4MDUy\nNDE0NDIyN1owSzELMAkGA1UEBhMCQ0gxGTAXBgNVBAoMEE9JU1RFIEZvdW5kYXRp\nb24xITAfBgNVBAMMGE9JU1RFIFNlcnZlciBSb290IEVDQyBHMTB2MBAGByqGSM49\nAgEGBSuBBAAiA2IABBcv+hK8rBjzCvRE1nZCnrPoH7d5qVi2+GXROiFPqOujvqQy\ncvO2Ackr/XeFblPdreqqLiWStukhEaivtUwL85Zgmjvn6hp4LrQ95SjeHIC6XG4N\n2xml4z+cKrhAS93mT6NjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQ3\nTYhlz/w9itWj8UnATgwQb0K0nDAdBgNVHQ4EFgQUN02IZc/8PYrVo/FJwE4MEG9C\ntJwwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2kAMGYCMQCpKjAd0MKfkFFR\nQD6VVCHNFmb3U2wIFjnQEnx/Yxvf4zgAOdktUyBFCxxgZzFDJe0CMQCSia7pXGKD\nYmH5LVerVrkR3SW+ak5KGoJr3M/TvEqzPNcum9v4KGm8ay3sMaE641c=\n-----END CERTIFICATE-----\n\n# Issuer: CN=OISTE Server Root RSA G1 O=OISTE Foundation\n# Subject: CN=OISTE Server Root RSA G1 O=OISTE Foundation\n# Label: \" OISTE Server Root RSA G1\"\n# Serial: 113845518112613905024960613408179309848\n# MD5 Fingerprint: 23:a7:9e:d4:70:b8:b9:14:57:41:8a:7e:44:59:e2:68\n# SHA1 Fingerprint: f7:00:34:25:94:88:68:31:e4:34:87:3f:70:fe:86:b3:86:9f:f0:6e\n# SHA256 Fingerprint: 9a:e3:62:32:a5:18:9f:fd:db:35:3d:fd:26:52:0c:01:53:95:d2:27:77:da:c5:9d:b5:7b:98:c0:89:a6:51:e6\n-----BEGIN CERTIFICATE-----\nMIIFgzCCA2ugAwIBAgIQVaXZZ5Qoxu0M+ifdWwFNGDANBgkqhkiG9w0BAQwFADBL\nMQswCQYDVQQGEwJDSDEZMBcGA1UECgwQT0lTVEUgRm91bmRhdGlvbjEhMB8GA1UE\nAwwYT0lTVEUgU2VydmVyIFJvb3QgUlNBIEcxMB4XDTIzMDUzMTE0MzcxNloXDTQ4\nMDUyNDE0MzcxNVowSzELMAkGA1UEBhMCQ0gxGTAXBgNVBAoMEE9JU1RFIEZvdW5k\nYXRpb24xITAfBgNVBAMMGE9JU1RFIFNlcnZlciBSb290IFJTQSBHMTCCAiIwDQYJ\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKqu9KuCz/vlNwvn1ZatkOhLKdxVYOPM\nvLO8LZK55KN68YG0nnJyQ98/qwsmtO57Gmn7KNByXEptaZnwYx4M0rH/1ow00O7b\nrEi56rAUjtgHqSSY3ekJvqgiG1k50SeH3BzN+Puz6+mTeO0Pzjd8JnduodgsIUzk\nik/HEzxux9UTl7Ko2yRpg1bTacuCErudG/L4NPKYKyqOBGf244ehHa1uzjZ0Dl4z\nO8vbUZeUapU8zhhabkvG/AePLhq5SvdkNCncpo1Q4Y2LS+VIG24ugBA/5J8bZT8R\ntOpXaZ+0AOuFJJkk9SGdl6r7NH8CaxWQrbueWhl/pIzY+m0o/DjH40ytas7ZTpOS\njswMZ78LS5bOZmdTaMsXEY5Z96ycG7mOaES3GK/m5Q9l3JUJsJMStR8+lKXHiHUh\nsd4JJCpM4rzsTGdHwimIuQq6+cF0zowYJmXa92/GjHtoXAvuY8BeS/FOzJ8vD+Ho\nmnqT8eDI278n5mUpezbgMxVz8p1rhAhoKzYHKyfMeNhqhw5HdPSqoBNdZH702xSu\n+zrkL8Fl47l6QGzwBrd7KJvX4V84c5Ss2XCTLdyEr0YconosP4EmQufU2MVshGYR\ni3drVByjtdgQ8K4p92cIiBdcuJd5z+orKu5YM+Vt6SmqZQENghPsJQtdLEByFSnT\nkCz3GkPVavBpAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU\n8snBDw1jALvsRQ5KH7WxszbNDo0wHQYDVR0OBBYEFPLJwQ8NYwC77EUOSh+1sbM2\nzQ6NMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQwFAAOCAgEANGd5sjrG5T33\nI3K5Ce+SrScfoE4KsvXaFwyihdJ+klH9FWXXXGtkFu6KRcoMQzZENdl//nk6HOjG\n5D1rd9QhEOP28yBOqb6J8xycqd+8MDoX0TJD0KqKchxRKEzdNsjkLWd9kYccnbz8\nqyiWXmFcuCIzGEgWUOrKL+mlSdx/PKQZvDatkuK59EvV6wit53j+F8Bdh3foZ3dP\nAGav9LEDOr4SfEE15fSmG0eLy3n31r8Xbk5l8PjaV8GUgeV6Vg27Rn9vkf195hfk\ngSe7BYhW3SCl95gtkRlpMV+bMPKZrXJAlszYd2abtNUOshD+FKrDgHGdPY3ofRRs\nYWSGRqbXVMW215AWRqWFyp464+YTFrYVI8ypKVL9AMb2kI5Wj4kI3Zaq5tNqqYY1\n9tVFeEJKRvwDyF7YZvZFZSS0vod7VSCd9521Kvy5YhnLbDuv0204bKt7ph6N/Ome\n/msVuduCmsuY33OhkKCgxeDoAaijFJzIwZqsFVAzje18KotzlUBDJvyBpCpfOZC3\nJ8tRd/iWkx7P8nd9H0aTolkelUTFLXVksNb54Dxp6gS1HAviRkRNQzuXSXERvSS2\nwq1yVAb+axj5d9spLFKebXd7Yv0PTY6YMjAwcRLWJTXjn/hvnLXrahut6hDTlhZy\nBiElxky8j3C7DOReIoMt0r7+hVu05L0=\n-----END CERTIFICATE-----\n"
  },
  {
    "path": "shotgun_api3/lib/certifi/core.py",
    "content": "\"\"\"\ncertifi.py\n~~~~~~~~~~\n\nThis module returns the installation location of cacert.pem or its contents.\n\"\"\"\nimport sys\nimport atexit\n\ndef exit_cacert_ctx() -> None:\n    _CACERT_CTX.__exit__(None, None, None)  # type: ignore[union-attr]\n\n\nif sys.version_info >= (3, 11):\n\n    from importlib.resources import as_file, files\n\n    _CACERT_CTX = None\n    _CACERT_PATH = None\n\n    def where() -> str:\n        # This is slightly terrible, but we want to delay extracting the file\n        # in cases where we're inside of a zipimport situation until someone\n        # actually calls where(), but we don't want to re-extract the file\n        # on every call of where(), so we'll do it once then store it in a\n        # global variable.\n        global _CACERT_CTX\n        global _CACERT_PATH\n        if _CACERT_PATH is None:\n            # This is slightly janky, the importlib.resources API wants you to\n            # manage the cleanup of this file, so it doesn't actually return a\n            # path, it returns a context manager that will give you the path\n            # when you enter it and will do any cleanup when you leave it. In\n            # the common case of not needing a temporary file, it will just\n            # return the file system location and the __exit__() is a no-op.\n            #\n            # We also have to hold onto the actual context manager, because\n            # it will do the cleanup whenever it gets garbage collected, so\n            # we will also store that at the global level as well.\n            _CACERT_CTX = as_file(files(\"certifi\").joinpath(\"cacert.pem\"))\n            _CACERT_PATH = str(_CACERT_CTX.__enter__())\n            atexit.register(exit_cacert_ctx)\n\n        return _CACERT_PATH\n\n    def contents() -> str:\n        return files(\"certifi\").joinpath(\"cacert.pem\").read_text(encoding=\"ascii\")\n\nelse:\n\n    from importlib.resources import path as get_path, read_text\n\n    _CACERT_CTX = None\n    _CACERT_PATH = None\n\n    def where() -> str:\n        # This is slightly terrible, but we want to delay extracting the\n        # file in cases where we're inside of a zipimport situation until\n        # someone actually calls where(), but we don't want to re-extract\n        # the file on every call of where(), so we'll do it once then store\n        # it in a global variable.\n        global _CACERT_CTX\n        global _CACERT_PATH\n        if _CACERT_PATH is None:\n            # This is slightly janky, the importlib.resources API wants you\n            # to manage the cleanup of this file, so it doesn't actually\n            # return a path, it returns a context manager that will give\n            # you the path when you enter it and will do any cleanup when\n            # you leave it. In the common case of not needing a temporary\n            # file, it will just return the file system location and the\n            # __exit__() is a no-op.\n            #\n            # We also have to hold onto the actual context manager, because\n            # it will do the cleanup whenever it gets garbage collected, so\n            # we will also store that at the global level as well.\n            _CACERT_CTX = get_path(\"certifi\", \"cacert.pem\")\n            _CACERT_PATH = str(_CACERT_CTX.__enter__())\n            atexit.register(exit_cacert_ctx)\n\n        return _CACERT_PATH\n\n    def contents() -> str:\n        return read_text(\"certifi\", \"cacert.pem\", encoding=\"ascii\")\n"
  },
  {
    "path": "shotgun_api3/lib/certifi/py.typed",
    "content": ""
  },
  {
    "path": "shotgun_api3/lib/httplib2/__init__.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"Small, fast HTTP client library for Python.\"\"\"\n\n__author__ = \"Joe Gregorio (joe@bitworking.org)\"\n__copyright__ = \"Copyright 2006, Joe Gregorio\"\n__contributors__ = [\n    \"Thomas Broyer (t.broyer@ltgt.net)\",\n    \"James Antill\",\n    \"Xavier Verges Farrero\",\n    \"Jonathan Feinberg\",\n    \"Blair Zajac\",\n    \"Sam Ruby\",\n    \"Louis Nyffenegger\",\n    \"Mark Pilgrim\",\n    \"Alex Yu\",\n    \"Lai Han\",\n]\n__license__ = \"MIT\"\n__version__ = \"0.22.0\"\n\nimport base64\nimport calendar\nimport copy\nimport email\nimport email.feedparser\nfrom email import header\nimport email.message\nimport email.utils\nimport errno\nfrom gettext import gettext as _\nimport gzip\nfrom hashlib import md5 as _md5\nfrom hashlib import sha1 as _sha\nimport hmac\nimport http.client\nimport io\nimport os\nimport random\nimport re\nimport socket\nimport ssl\nimport sys\nimport time\nimport urllib.parse\nimport zlib\n\ntry:\n    import socks\nexcept ImportError:\n    # TODO: remove this fallback and copypasted socksipy module upon py2/3 merge,\n    # idea is to have soft-dependency on any compatible module called socks\n    from . import socks\nfrom . import auth\nfrom .error import *\nfrom .iri2uri import iri2uri\n\n\ndef has_timeout(timeout):\n    if hasattr(socket, \"_GLOBAL_DEFAULT_TIMEOUT\"):\n        return timeout is not None and timeout is not socket._GLOBAL_DEFAULT_TIMEOUT\n    return timeout is not None\n\n\n__all__ = [\n    \"debuglevel\",\n    \"FailedToDecompressContent\",\n    \"Http\",\n    \"HttpLib2Error\",\n    \"ProxyInfo\",\n    \"RedirectLimit\",\n    \"RedirectMissingLocation\",\n    \"Response\",\n    \"RETRIES\",\n    \"UnimplementedDigestAuthOptionError\",\n    \"UnimplementedHmacDigestAuthOptionError\",\n]\n\n# The httplib debug level, set to a non-zero value to get debug output\ndebuglevel = 0\n\n# A request will be tried 'RETRIES' times if it fails at the socket/connection level.\nRETRIES = 2\n\n\n# Open Items:\n# -----------\n\n# Are we removing the cached content too soon on PUT (only delete on 200 Maybe?)\n\n# Pluggable cache storage (supports storing the cache in\n#   flat files by default. We need a plug-in architecture\n#   that can support Berkeley DB and Squid)\n\n# == Known Issues ==\n# Does not handle a resource that uses conneg and Last-Modified but no ETag as a cache validator.\n# Does not handle Cache-Control: max-stale\n# Does not use Age: headers when calculating cache freshness.\n\n# The number of redirections to follow before giving up.\n# Note that only GET redirects are automatically followed.\n# Will also honor 301 requests by saving that info and never\n# requesting that URI again.\nDEFAULT_MAX_REDIRECTS = 5\n\n# Which headers are hop-by-hop headers by default\nHOP_BY_HOP = [\n    \"connection\",\n    \"keep-alive\",\n    \"proxy-authenticate\",\n    \"proxy-authorization\",\n    \"te\",\n    \"trailers\",\n    \"transfer-encoding\",\n    \"upgrade\",\n]\n\n# https://tools.ietf.org/html/rfc7231#section-8.1.3\nSAFE_METHODS = (\"GET\", \"HEAD\", \"OPTIONS\", \"TRACE\")\n\n# To change, assign to `Http().redirect_codes`\nREDIRECT_CODES = frozenset((300, 301, 302, 303, 307, 308))\n\n\nfrom . import certs\n\nCA_CERTS = certs.where()\n\n# PROTOCOL_TLS is python 3.5.3+. PROTOCOL_SSLv23 is deprecated.\n# Both PROTOCOL_TLS and PROTOCOL_SSLv23 are equivalent and means:\n# > Selects the highest protocol version that both the client and server support.\n# > Despite the name, this option can select “TLS” protocols as well as “SSL”.\n# source: https://docs.python.org/3.5/library/ssl.html#ssl.PROTOCOL_SSLv23\n\n# PROTOCOL_TLS_CLIENT is python 3.10.0+. PROTOCOL_TLS is deprecated.\n# > Auto-negotiate the highest protocol version that both the client and server support, and configure the context client-side connections.\n# > The protocol enables CERT_REQUIRED and check_hostname by default.\n# source: https://docs.python.org/3.10/library/ssl.html#ssl.PROTOCOL_TLS\n\nDEFAULT_TLS_VERSION = getattr(ssl, \"PROTOCOL_TLS_CLIENT\", None) or getattr(ssl, \"PROTOCOL_TLS\", None) or getattr(ssl, \"PROTOCOL_SSLv23\")\n\n\ndef _build_ssl_context(\n    disable_ssl_certificate_validation,\n    ca_certs,\n    cert_file=None,\n    key_file=None,\n    maximum_version=None,\n    minimum_version=None,\n    key_password=None,\n):\n    if not hasattr(ssl, \"SSLContext\"):\n        raise RuntimeError(\"httplib2 requires Python 3.2+ for ssl.SSLContext\")\n\n    context = ssl.SSLContext(DEFAULT_TLS_VERSION)\n    # check_hostname and verify_mode should be set in opposite order during disable\n    # https://bugs.python.org/issue31431\n    if disable_ssl_certificate_validation and hasattr(context, \"check_hostname\"):\n        context.check_hostname = not disable_ssl_certificate_validation\n    context.verify_mode = ssl.CERT_NONE if disable_ssl_certificate_validation else ssl.CERT_REQUIRED\n\n    # SSLContext.maximum_version and SSLContext.minimum_version are python 3.7+.\n    # source: https://docs.python.org/3/library/ssl.html#ssl.SSLContext.maximum_version\n    if maximum_version is not None:\n        if hasattr(context, \"maximum_version\"):\n            if isinstance(maximum_version, str):\n                maximum_version = getattr(ssl.TLSVersion, maximum_version)\n            context.maximum_version = maximum_version\n        else:\n            raise RuntimeError(\"setting tls_maximum_version requires Python 3.7 and OpenSSL 1.1 or newer\")\n    if minimum_version is not None:\n        if hasattr(context, \"minimum_version\"):\n            if isinstance(minimum_version, str):\n                minimum_version = getattr(ssl.TLSVersion, minimum_version)\n            context.minimum_version = minimum_version\n        else:\n            raise RuntimeError(\"setting tls_minimum_version requires Python 3.7 and OpenSSL 1.1 or newer\")\n    # check_hostname requires python 3.4+\n    # we will perform the equivalent in HTTPSConnectionWithTimeout.connect() by calling ssl.match_hostname\n    # if check_hostname is not supported.\n    if hasattr(context, \"check_hostname\"):\n        context.check_hostname = not disable_ssl_certificate_validation\n\n    context.load_verify_locations(ca_certs)\n\n    if cert_file:\n        context.load_cert_chain(cert_file, key_file, key_password)\n\n    return context\n\n\ndef _get_end2end_headers(response):\n    hopbyhop = list(HOP_BY_HOP)\n    hopbyhop.extend([x.strip() for x in response.get(\"connection\", \"\").split(\",\")])\n    return [header for header in list(response.keys()) if header not in hopbyhop]\n\n\n_missing = object()\n\n\ndef _errno_from_exception(e):\n    # TODO python 3.11+ cheap try: return e.errno except AttributeError: pass\n    errno = getattr(e, \"errno\", _missing)\n    if errno is not _missing:\n        return errno\n\n    # socket.error and common wrap in .args\n    args = getattr(e, \"args\", None)\n    if args:\n        return _errno_from_exception(args[0])\n\n    # pysocks.ProxyError wraps in .socket_err\n    # https://github.com/httplib2/httplib2/pull/202\n    socket_err = getattr(e, \"socket_err\", None)\n    if socket_err:\n        return _errno_from_exception(socket_err)\n\n    return None\n\n\nURI = re.compile(r\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?\")\n\n\ndef parse_uri(uri):\n    \"\"\"Parses a URI using the regex given in Appendix B of RFC 3986.\n\n        (scheme, authority, path, query, fragment) = parse_uri(uri)\n    \"\"\"\n    groups = URI.match(uri).groups()\n    return (groups[1], groups[3], groups[4], groups[6], groups[8])\n\n\ndef urlnorm(uri):\n    (scheme, authority, path, query, fragment) = parse_uri(uri)\n    if not scheme or not authority:\n        raise RelativeURIError(\"Only absolute URIs are allowed. uri = %s\" % uri)\n    authority = authority.lower()\n    scheme = scheme.lower()\n    if not path:\n        path = \"/\"\n    # Could do syntax based normalization of the URI before\n    # computing the digest. See Section 6.2.2 of Std 66.\n    request_uri = query and \"?\".join([path, query]) or path\n    scheme = scheme.lower()\n    defrag_uri = scheme + \"://\" + authority + request_uri\n    return scheme, authority, request_uri, defrag_uri\n\n\n# Cache filename construction (original borrowed from Venus http://intertwingly.net/code/venus/)\nre_url_scheme = re.compile(r\"^\\w+://\")\nre_unsafe = re.compile(r\"[^\\w\\-_.()=!]+\", re.ASCII)\n\n\ndef safename(filename):\n    \"\"\"Return a filename suitable for the cache.\n    Strips dangerous and common characters to create a filename we\n    can use to store the cache in.\n    \"\"\"\n    if isinstance(filename, bytes):\n        filename_bytes = filename\n        filename = filename.decode(\"utf-8\")\n    else:\n        filename_bytes = filename.encode(\"utf-8\")\n    filemd5 = _md5(filename_bytes).hexdigest()\n    filename = re_url_scheme.sub(\"\", filename)\n    filename = re_unsafe.sub(\"\", filename)\n\n    # limit length of filename (vital for Windows)\n    # https://github.com/httplib2/httplib2/pull/74\n    # C:\\Users\\    <username>    \\AppData\\Local\\Temp\\  <safe_filename>  ,   <md5>\n    #   9 chars + max 104 chars  +     20 chars      +       x       +  1  +  32  = max 259 chars\n    # Thus max safe filename x = 93 chars. Let it be 90 to make a round sum:\n    filename = filename[:90]\n\n    return \",\".join((filename, filemd5))\n\n\nNORMALIZE_SPACE = re.compile(r\"(?:\\r\\n)?[ \\t]+\")\n\n\ndef _normalize_headers(headers):\n    return dict(\n        [\n            (_convert_byte_str(key).lower(), NORMALIZE_SPACE.sub(_convert_byte_str(value), \" \").strip(),)\n            for (key, value) in headers.items()\n        ]\n    )\n\n\ndef _convert_byte_str(s):\n    if not isinstance(s, str):\n        return str(s, \"utf-8\")\n    return s\n\n\ndef _parse_cache_control(headers):\n    retval = {}\n    if \"cache-control\" in headers:\n        parts = headers[\"cache-control\"].split(\",\")\n        parts_with_args = [\n            tuple([x.strip().lower() for x in part.split(\"=\", 1)]) for part in parts if -1 != part.find(\"=\")\n        ]\n        parts_wo_args = [(name.strip().lower(), 1) for name in parts if -1 == name.find(\"=\")]\n        retval = dict(parts_with_args + parts_wo_args)\n    return retval\n\n\n# Whether to use a strict mode to parse WWW-Authenticate headers\n# Might lead to bad results in case of ill-formed header value,\n# so disabled by default, falling back to relaxed parsing.\n# Set to true to turn on, useful for testing servers.\nUSE_WWW_AUTH_STRICT_PARSING = 0\n\n\ndef _entry_disposition(response_headers, request_headers):\n    \"\"\"Determine freshness from the Date, Expires and Cache-Control headers.\n\n    We don't handle the following:\n\n    1. Cache-Control: max-stale\n    2. Age: headers are not used in the calculations.\n\n    Not that this algorithm is simpler than you might think\n    because we are operating as a private (non-shared) cache.\n    This lets us ignore 's-maxage'. We can also ignore\n    'proxy-invalidate' since we aren't a proxy.\n    We will never return a stale document as\n    fresh as a design decision, and thus the non-implementation\n    of 'max-stale'. This also lets us safely ignore 'must-revalidate'\n    since we operate as if every server has sent 'must-revalidate'.\n    Since we are private we get to ignore both 'public' and\n    'private' parameters. We also ignore 'no-transform' since\n    we don't do any transformations.\n    The 'no-store' parameter is handled at a higher level.\n    So the only Cache-Control parameters we look at are:\n\n    no-cache\n    only-if-cached\n    max-age\n    min-fresh\n    \"\"\"\n\n    retval = \"STALE\"\n    cc = _parse_cache_control(request_headers)\n    cc_response = _parse_cache_control(response_headers)\n\n    if \"pragma\" in request_headers and request_headers[\"pragma\"].lower().find(\"no-cache\") != -1:\n        retval = \"TRANSPARENT\"\n        if \"cache-control\" not in request_headers:\n            request_headers[\"cache-control\"] = \"no-cache\"\n    elif \"no-cache\" in cc:\n        retval = \"TRANSPARENT\"\n    elif \"no-cache\" in cc_response:\n        retval = \"STALE\"\n    elif \"only-if-cached\" in cc:\n        retval = \"FRESH\"\n    elif \"date\" in response_headers:\n        date = calendar.timegm(email.utils.parsedate_tz(response_headers[\"date\"]))\n        now = time.time()\n        current_age = max(0, now - date)\n        if \"max-age\" in cc_response:\n            try:\n                freshness_lifetime = int(cc_response[\"max-age\"])\n            except ValueError:\n                freshness_lifetime = 0\n        elif \"expires\" in response_headers:\n            expires = email.utils.parsedate_tz(response_headers[\"expires\"])\n            if None == expires:\n                freshness_lifetime = 0\n            else:\n                freshness_lifetime = max(0, calendar.timegm(expires) - date)\n        else:\n            freshness_lifetime = 0\n        if \"max-age\" in cc:\n            try:\n                freshness_lifetime = int(cc[\"max-age\"])\n            except ValueError:\n                freshness_lifetime = 0\n        if \"min-fresh\" in cc:\n            try:\n                min_fresh = int(cc[\"min-fresh\"])\n            except ValueError:\n                min_fresh = 0\n            current_age += min_fresh\n        if freshness_lifetime > current_age:\n            retval = \"FRESH\"\n    return retval\n\n\ndef _decompressContent(response, new_content):\n    content = new_content\n    try:\n        encoding = response.get(\"content-encoding\", None)\n        if encoding in [\"gzip\", \"deflate\"]:\n            if encoding == \"gzip\":\n                content = gzip.GzipFile(fileobj=io.BytesIO(new_content)).read()\n            if encoding == \"deflate\":\n                try:\n                    content = zlib.decompress(content, zlib.MAX_WBITS)\n                except (IOError, zlib.error):\n                    content = zlib.decompress(content, -zlib.MAX_WBITS)\n            response[\"content-length\"] = str(len(content))\n            # Record the historical presence of the encoding in a way the won't interfere.\n            response[\"-content-encoding\"] = response[\"content-encoding\"]\n            del response[\"content-encoding\"]\n    except (IOError, zlib.error):\n        content = \"\"\n        raise FailedToDecompressContent(\n            _(\"Content purported to be compressed with %s but failed to decompress.\") % response.get(\"content-encoding\"),\n            response,\n            content,\n        )\n    return content\n\n\ndef _bind_write_headers(msg):\n    def _write_headers(self):\n        # Self refers to the Generator object.\n        for h, v in msg.items():\n            print(\"%s:\" % h, end=\" \", file=self._fp)\n            if isinstance(v, header.Header):\n                print(v.encode(maxlinelen=self._maxheaderlen), file=self._fp)\n            else:\n                # email.Header got lots of smarts, so use it.\n                headers = header.Header(v, maxlinelen=self._maxheaderlen, charset=\"utf-8\", header_name=h)\n                print(headers.encode(), file=self._fp)\n        # A blank line always separates headers from body.\n        print(file=self._fp)\n\n    return _write_headers\n\n\ndef _updateCache(request_headers, response_headers, content, cache, cachekey):\n    if cachekey:\n        cc = _parse_cache_control(request_headers)\n        cc_response = _parse_cache_control(response_headers)\n        if \"no-store\" in cc or \"no-store\" in cc_response:\n            cache.delete(cachekey)\n        else:\n            info = email.message.Message()\n            for key, value in response_headers.items():\n                if key not in [\"status\", \"content-encoding\", \"transfer-encoding\"]:\n                    info[key] = value\n\n            # Add annotations to the cache to indicate what headers\n            # are variant for this request.\n            vary = response_headers.get(\"vary\", None)\n            if vary:\n                vary_headers = vary.lower().replace(\" \", \"\").split(\",\")\n                for header in vary_headers:\n                    key = \"-varied-%s\" % header\n                    try:\n                        info[key] = request_headers[header]\n                    except KeyError:\n                        pass\n\n            status = response_headers.status\n            if status == 304:\n                status = 200\n\n            status_header = \"status: %d\\r\\n\" % status\n\n            try:\n                header_str = info.as_string()\n            except UnicodeEncodeError:\n                setattr(info, \"_write_headers\", _bind_write_headers(info))\n                header_str = info.as_string()\n\n            header_str = re.sub(\"\\r(?!\\n)|(?<!\\r)\\n\", \"\\r\\n\", header_str)\n            text = b\"\".join([status_header.encode(\"utf-8\"), header_str.encode(\"utf-8\"), content])\n\n            cache.set(cachekey, text)\n\n\ndef _cnonce():\n    dig = _md5(\n        (\"%s:%s\" % (time.ctime(), [\"0123456789\"[random.randrange(0, 9)] for i in range(20)])).encode(\"utf-8\")\n    ).hexdigest()\n    return dig[:16]\n\n\ndef _wsse_username_token(cnonce, iso_now, password):\n    return (\n        base64.b64encode(_sha((\"%s%s%s\" % (cnonce, iso_now, password)).encode(\"utf-8\")).digest()).strip().decode(\"utf-8\")\n    )\n\n\n# For credentials we need two things, first\n# a pool of credential to try (not necesarily tied to BAsic, Digest, etc.)\n# Then we also need a list of URIs that have already demanded authentication\n# That list is tricky since sub-URIs can take the same auth, or the\n# auth scheme may change as you descend the tree.\n# So we also need each Auth instance to be able to tell us\n# how close to the 'top' it is.\n\n\nclass Authentication(object):\n    def __init__(self, credentials, host, request_uri, headers, response, content, http):\n        (scheme, authority, path, query, fragment) = parse_uri(request_uri)\n        self.path = path\n        self.host = host\n        self.credentials = credentials\n        self.http = http\n\n    def depth(self, request_uri):\n        (scheme, authority, path, query, fragment) = parse_uri(request_uri)\n        return request_uri[len(self.path) :].count(\"/\")\n\n    def inscope(self, host, request_uri):\n        # XXX Should we normalize the request_uri?\n        (scheme, authority, path, query, fragment) = parse_uri(request_uri)\n        return (host == self.host) and path.startswith(self.path)\n\n    def request(self, method, request_uri, headers, content):\n        \"\"\"Modify the request headers to add the appropriate\n        Authorization header. Over-rise this in sub-classes.\"\"\"\n        pass\n\n    def response(self, response, content):\n        \"\"\"Gives us a chance to update with new nonces\n        or such returned from the last authorized response.\n        Over-rise this in sub-classes if necessary.\n\n        Return TRUE is the request is to be retried, for\n        example Digest may return stale=true.\n        \"\"\"\n        return False\n\n    def __eq__(self, auth):\n        return False\n\n    def __ne__(self, auth):\n        return True\n\n    def __lt__(self, auth):\n        return True\n\n    def __gt__(self, auth):\n        return False\n\n    def __le__(self, auth):\n        return True\n\n    def __ge__(self, auth):\n        return False\n\n    def __bool__(self):\n        return True\n\n\nclass BasicAuthentication(Authentication):\n    def __init__(self, credentials, host, request_uri, headers, response, content, http):\n        Authentication.__init__(self, credentials, host, request_uri, headers, response, content, http)\n\n    def request(self, method, request_uri, headers, content):\n        \"\"\"Modify the request headers to add the appropriate\n        Authorization header.\"\"\"\n        headers[\"authorization\"] = \"Basic \" + base64.b64encode(\n            (\"%s:%s\" % self.credentials).encode(\"utf-8\")\n        ).strip().decode(\"utf-8\")\n\n\nclass DigestAuthentication(Authentication):\n    \"\"\"Only do qop='auth' and MD5, since that\n    is all Apache currently implements\"\"\"\n\n    def __init__(self, credentials, host, request_uri, headers, response, content, http):\n        Authentication.__init__(self, credentials, host, request_uri, headers, response, content, http)\n        self.challenge = auth._parse_www_authenticate(response, \"www-authenticate\")[\"digest\"]\n        qop = self.challenge.get(\"qop\", \"auth\")\n        self.challenge[\"qop\"] = (\"auth\" in [x.strip() for x in qop.split()]) and \"auth\" or None\n        if self.challenge[\"qop\"] is None:\n            raise UnimplementedDigestAuthOptionError(_(\"Unsupported value for qop: %s.\" % qop))\n        self.challenge[\"algorithm\"] = self.challenge.get(\"algorithm\", \"MD5\").upper()\n        if self.challenge[\"algorithm\"] != \"MD5\":\n            raise UnimplementedDigestAuthOptionError(\n                _(\"Unsupported value for algorithm: %s.\" % self.challenge[\"algorithm\"])\n            )\n        self.A1 = \"\".join([self.credentials[0], \":\", self.challenge[\"realm\"], \":\", self.credentials[1],])\n        self.challenge[\"nc\"] = 1\n\n    def request(self, method, request_uri, headers, content, cnonce=None):\n        \"\"\"Modify the request headers\"\"\"\n        H = lambda x: _md5(x.encode(\"utf-8\")).hexdigest()\n        KD = lambda s, d: H(\"%s:%s\" % (s, d))\n        A2 = \"\".join([method, \":\", request_uri])\n        self.challenge[\"cnonce\"] = cnonce or _cnonce()\n        request_digest = '\"%s\"' % KD(\n            H(self.A1),\n            \"%s:%s:%s:%s:%s\"\n            % (\n                self.challenge[\"nonce\"],\n                \"%08x\" % self.challenge[\"nc\"],\n                self.challenge[\"cnonce\"],\n                self.challenge[\"qop\"],\n                H(A2),\n            ),\n        )\n        headers[\"authorization\"] = (\n            'Digest username=\"%s\", realm=\"%s\", nonce=\"%s\", '\n            'uri=\"%s\", algorithm=%s, response=%s, qop=%s, '\n            'nc=%08x, cnonce=\"%s\"'\n        ) % (\n            self.credentials[0],\n            self.challenge[\"realm\"],\n            self.challenge[\"nonce\"],\n            request_uri,\n            self.challenge[\"algorithm\"],\n            request_digest,\n            self.challenge[\"qop\"],\n            self.challenge[\"nc\"],\n            self.challenge[\"cnonce\"],\n        )\n        if self.challenge.get(\"opaque\"):\n            headers[\"authorization\"] += ', opaque=\"%s\"' % self.challenge[\"opaque\"]\n        self.challenge[\"nc\"] += 1\n\n    def response(self, response, content):\n        if \"authentication-info\" not in response:\n            challenge = auth._parse_www_authenticate(response, \"www-authenticate\").get(\"digest\", {})\n            if \"true\" == challenge.get(\"stale\"):\n                self.challenge[\"nonce\"] = challenge[\"nonce\"]\n                self.challenge[\"nc\"] = 1\n                return True\n        else:\n            updated_challenge = auth._parse_authentication_info(response, \"authentication-info\")\n\n            if \"nextnonce\" in updated_challenge:\n                self.challenge[\"nonce\"] = updated_challenge[\"nextnonce\"]\n                self.challenge[\"nc\"] = 1\n        return False\n\n\nclass HmacDigestAuthentication(Authentication):\n    \"\"\"Adapted from Robert Sayre's code and DigestAuthentication above.\"\"\"\n\n    __author__ = \"Thomas Broyer (t.broyer@ltgt.net)\"\n\n    def __init__(self, credentials, host, request_uri, headers, response, content, http):\n        Authentication.__init__(self, credentials, host, request_uri, headers, response, content, http)\n        challenge = auth._parse_www_authenticate(response, \"www-authenticate\")\n        self.challenge = challenge[\"hmacdigest\"]\n        # TODO: self.challenge['domain']\n        self.challenge[\"reason\"] = self.challenge.get(\"reason\", \"unauthorized\")\n        if self.challenge[\"reason\"] not in [\"unauthorized\", \"integrity\"]:\n            self.challenge[\"reason\"] = \"unauthorized\"\n        self.challenge[\"salt\"] = self.challenge.get(\"salt\", \"\")\n        if not self.challenge.get(\"snonce\"):\n            raise UnimplementedHmacDigestAuthOptionError(\n                _(\"The challenge doesn't contain a server nonce, or this one is empty.\")\n            )\n        self.challenge[\"algorithm\"] = self.challenge.get(\"algorithm\", \"HMAC-SHA-1\")\n        if self.challenge[\"algorithm\"] not in [\"HMAC-SHA-1\", \"HMAC-MD5\"]:\n            raise UnimplementedHmacDigestAuthOptionError(\n                _(\"Unsupported value for algorithm: %s.\" % self.challenge[\"algorithm\"])\n            )\n        self.challenge[\"pw-algorithm\"] = self.challenge.get(\"pw-algorithm\", \"SHA-1\")\n        if self.challenge[\"pw-algorithm\"] not in [\"SHA-1\", \"MD5\"]:\n            raise UnimplementedHmacDigestAuthOptionError(\n                _(\"Unsupported value for pw-algorithm: %s.\" % self.challenge[\"pw-algorithm\"])\n            )\n        if self.challenge[\"algorithm\"] == \"HMAC-MD5\":\n            self.hashmod = _md5\n        else:\n            self.hashmod = _sha\n        if self.challenge[\"pw-algorithm\"] == \"MD5\":\n            self.pwhashmod = _md5\n        else:\n            self.pwhashmod = _sha\n        self.key = \"\".join(\n            [\n                self.credentials[0],\n                \":\",\n                self.pwhashmod.new(\"\".join([self.credentials[1], self.challenge[\"salt\"]])).hexdigest().lower(),\n                \":\",\n                self.challenge[\"realm\"],\n            ]\n        )\n        self.key = self.pwhashmod.new(self.key).hexdigest().lower()\n\n    def request(self, method, request_uri, headers, content):\n        \"\"\"Modify the request headers\"\"\"\n        keys = _get_end2end_headers(headers)\n        keylist = \"\".join([\"%s \" % k for k in keys])\n        headers_val = \"\".join([headers[k] for k in keys])\n        created = time.strftime(\"%Y-%m-%dT%H:%M:%SZ\", time.gmtime())\n        cnonce = _cnonce()\n        request_digest = \"%s:%s:%s:%s:%s\" % (method, request_uri, cnonce, self.challenge[\"snonce\"], headers_val,)\n        request_digest = hmac.new(self.key, request_digest, self.hashmod).hexdigest().lower()\n        headers[\"authorization\"] = (\n            'HMACDigest username=\"%s\", realm=\"%s\", snonce=\"%s\",'\n            ' cnonce=\"%s\", uri=\"%s\", created=\"%s\", '\n            'response=\"%s\", headers=\"%s\"'\n        ) % (\n            self.credentials[0],\n            self.challenge[\"realm\"],\n            self.challenge[\"snonce\"],\n            cnonce,\n            request_uri,\n            created,\n            request_digest,\n            keylist,\n        )\n\n    def response(self, response, content):\n        challenge = auth._parse_www_authenticate(response, \"www-authenticate\").get(\"hmacdigest\", {})\n        if challenge.get(\"reason\") in [\"integrity\", \"stale\"]:\n            return True\n        return False\n\n\nclass WsseAuthentication(Authentication):\n    \"\"\"This is thinly tested and should not be relied upon.\n    At this time there isn't any third party server to test against.\n    Blogger and TypePad implemented this algorithm at one point\n    but Blogger has since switched to Basic over HTTPS and\n    TypePad has implemented it wrong, by never issuing a 401\n    challenge but instead requiring your client to telepathically know that\n    their endpoint is expecting WSSE profile=\"UsernameToken\".\"\"\"\n\n    def __init__(self, credentials, host, request_uri, headers, response, content, http):\n        Authentication.__init__(self, credentials, host, request_uri, headers, response, content, http)\n\n    def request(self, method, request_uri, headers, content):\n        \"\"\"Modify the request headers to add the appropriate\n        Authorization header.\"\"\"\n        headers[\"authorization\"] = 'WSSE profile=\"UsernameToken\"'\n        iso_now = time.strftime(\"%Y-%m-%dT%H:%M:%SZ\", time.gmtime())\n        cnonce = _cnonce()\n        password_digest = _wsse_username_token(cnonce, iso_now, self.credentials[1])\n        headers[\"X-WSSE\"] = ('UsernameToken Username=\"%s\", PasswordDigest=\"%s\", ' 'Nonce=\"%s\", Created=\"%s\"') % (\n            self.credentials[0],\n            password_digest,\n            cnonce,\n            iso_now,\n        )\n\n\nclass GoogleLoginAuthentication(Authentication):\n    def __init__(self, credentials, host, request_uri, headers, response, content, http):\n        from urllib.parse import urlencode\n\n        Authentication.__init__(self, credentials, host, request_uri, headers, response, content, http)\n        challenge = auth._parse_www_authenticate(response, \"www-authenticate\")\n        service = challenge[\"googlelogin\"].get(\"service\", \"xapi\")\n        # Bloggger actually returns the service in the challenge\n        # For the rest we guess based on the URI\n        if service == \"xapi\" and request_uri.find(\"calendar\") > 0:\n            service = \"cl\"\n        # No point in guessing Base or Spreadsheet\n        # elif request_uri.find(\"spreadsheets\") > 0:\n        #    service = \"wise\"\n\n        auth = dict(Email=credentials[0], Passwd=credentials[1], service=service, source=headers[\"user-agent\"],)\n        resp, content = self.http.request(\n            \"https://www.google.com/accounts/ClientLogin\",\n            method=\"POST\",\n            body=urlencode(auth),\n            headers={\"Content-Type\": \"application/x-www-form-urlencoded\"},\n        )\n        lines = content.split(\"\\n\")\n        d = dict([tuple(line.split(\"=\", 1)) for line in lines if line])\n        if resp.status == 403:\n            self.Auth = \"\"\n        else:\n            self.Auth = d[\"Auth\"]\n\n    def request(self, method, request_uri, headers, content):\n        \"\"\"Modify the request headers to add the appropriate\n        Authorization header.\"\"\"\n        headers[\"authorization\"] = \"GoogleLogin Auth=\" + self.Auth\n\n\nAUTH_SCHEME_CLASSES = {\n    \"basic\": BasicAuthentication,\n    \"wsse\": WsseAuthentication,\n    \"digest\": DigestAuthentication,\n    \"hmacdigest\": HmacDigestAuthentication,\n    \"googlelogin\": GoogleLoginAuthentication,\n}\n\nAUTH_SCHEME_ORDER = [\"hmacdigest\", \"googlelogin\", \"digest\", \"wsse\", \"basic\"]\n\n\nclass FileCache(object):\n    \"\"\"Uses a local directory as a store for cached files.\n    Not really safe to use if multiple threads or processes are going to\n    be running on the same cache.\n    \"\"\"\n\n    def __init__(self, cache, safe=safename):  # use safe=lambda x: md5.new(x).hexdigest() for the old behavior\n        self.cache = cache\n        self.safe = safe\n        if not os.path.exists(cache):\n            os.makedirs(self.cache)\n\n    def get(self, key):\n        retval = None\n        cacheFullPath = os.path.join(self.cache, self.safe(key))\n        try:\n            f = open(cacheFullPath, \"rb\")\n            retval = f.read()\n            f.close()\n        except IOError:\n            pass\n        return retval\n\n    def set(self, key, value):\n        cacheFullPath = os.path.join(self.cache, self.safe(key))\n        f = open(cacheFullPath, \"wb\")\n        f.write(value)\n        f.close()\n\n    def delete(self, key):\n        cacheFullPath = os.path.join(self.cache, self.safe(key))\n        if os.path.exists(cacheFullPath):\n            os.remove(cacheFullPath)\n\n\nclass Credentials(object):\n    def __init__(self):\n        self.credentials = []\n\n    def add(self, name, password, domain=\"\"):\n        self.credentials.append((domain.lower(), name, password))\n\n    def clear(self):\n        self.credentials = []\n\n    def iter(self, domain):\n        for (cdomain, name, password) in self.credentials:\n            if cdomain == \"\" or domain == cdomain:\n                yield (name, password)\n\n\nclass KeyCerts(Credentials):\n    \"\"\"Identical to Credentials except that\n    name/password are mapped to key/cert.\"\"\"\n\n    def add(self, key, cert, domain, password):\n        self.credentials.append((domain.lower(), key, cert, password))\n\n    def iter(self, domain):\n        for (cdomain, key, cert, password) in self.credentials:\n            if cdomain == \"\" or domain == cdomain:\n                yield (key, cert, password)\n\n\nclass AllHosts(object):\n    pass\n\n\nclass ProxyInfo(object):\n    \"\"\"Collect information required to use a proxy.\"\"\"\n\n    bypass_hosts = ()\n\n    def __init__(\n        self, proxy_type, proxy_host, proxy_port, proxy_rdns=True, proxy_user=None, proxy_pass=None, proxy_headers=None,\n    ):\n        \"\"\"Args:\n\n          proxy_type: The type of proxy server.  This must be set to one of\n          socks.PROXY_TYPE_XXX constants.  For example:  p =\n          ProxyInfo(proxy_type=socks.PROXY_TYPE_HTTP, proxy_host='localhost',\n          proxy_port=8000)\n          proxy_host: The hostname or IP address of the proxy server.\n          proxy_port: The port that the proxy server is running on.\n          proxy_rdns: If True (default), DNS queries will not be performed\n          locally, and instead, handed to the proxy to resolve.  This is useful\n          if the network does not allow resolution of non-local names. In\n          httplib2 0.9 and earlier, this defaulted to False.\n          proxy_user: The username used to authenticate with the proxy server.\n          proxy_pass: The password used to authenticate with the proxy server.\n          proxy_headers: Additional or modified headers for the proxy connect\n          request.\n        \"\"\"\n        if isinstance(proxy_user, bytes):\n            proxy_user = proxy_user.decode()\n        if isinstance(proxy_pass, bytes):\n            proxy_pass = proxy_pass.decode()\n        (\n            self.proxy_type,\n            self.proxy_host,\n            self.proxy_port,\n            self.proxy_rdns,\n            self.proxy_user,\n            self.proxy_pass,\n            self.proxy_headers,\n        ) = (\n            proxy_type,\n            proxy_host,\n            proxy_port,\n            proxy_rdns,\n            proxy_user,\n            proxy_pass,\n            proxy_headers,\n        )\n\n    def astuple(self):\n        return (\n            self.proxy_type,\n            self.proxy_host,\n            self.proxy_port,\n            self.proxy_rdns,\n            self.proxy_user,\n            self.proxy_pass,\n            self.proxy_headers,\n        )\n\n    def isgood(self):\n        return socks and (self.proxy_host != None) and (self.proxy_port != None)\n\n    def applies_to(self, hostname):\n        return not self.bypass_host(hostname)\n\n    def bypass_host(self, hostname):\n        \"\"\"Has this host been excluded from the proxy config\"\"\"\n        if self.bypass_hosts is AllHosts:\n            return True\n\n        hostname = \".\" + hostname.lstrip(\".\")\n        for skip_name in self.bypass_hosts:\n            # *.suffix\n            if skip_name.startswith(\".\") and hostname.endswith(skip_name):\n                return True\n            # exact match\n            if hostname == \".\" + skip_name:\n                return True\n        return False\n\n    def __repr__(self):\n        return (\n            \"<ProxyInfo type={p.proxy_type} \"\n            \"host:port={p.proxy_host}:{p.proxy_port} rdns={p.proxy_rdns}\"\n            + \" user={p.proxy_user} headers={p.proxy_headers}>\"\n        ).format(p=self)\n\n\ndef proxy_info_from_environment(method=\"http\"):\n    \"\"\"Read proxy info from the environment variables.\n    \"\"\"\n    if method not in (\"http\", \"https\"):\n        return\n\n    env_var = method + \"_proxy\"\n    url = os.environ.get(env_var, os.environ.get(env_var.upper()))\n    if not url:\n        return\n    return proxy_info_from_url(url, method, noproxy=None)\n\n\ndef proxy_info_from_url(url, method=\"http\", noproxy=None):\n    \"\"\"Construct a ProxyInfo from a URL (such as http_proxy env var)\n    \"\"\"\n    url = urllib.parse.urlparse(url)\n\n    proxy_type = 3  # socks.PROXY_TYPE_HTTP\n    pi = ProxyInfo(\n        proxy_type=proxy_type,\n        proxy_host=url.hostname,\n        proxy_port=url.port or dict(https=443, http=80)[method],\n        proxy_user=url.username or None,\n        proxy_pass=url.password or None,\n        proxy_headers=None,\n    )\n\n    bypass_hosts = []\n    # If not given an explicit noproxy value, respect values in env vars.\n    if noproxy is None:\n        noproxy = os.environ.get(\"no_proxy\", os.environ.get(\"NO_PROXY\", \"\"))\n    # Special case: A single '*' character means all hosts should be bypassed.\n    if noproxy == \"*\":\n        bypass_hosts = AllHosts\n    elif noproxy.strip():\n        bypass_hosts = noproxy.split(\",\")\n        bypass_hosts = tuple(filter(bool, bypass_hosts))  # To exclude empty string.\n\n    pi.bypass_hosts = bypass_hosts\n    return pi\n\n\nclass HTTPConnectionWithTimeout(http.client.HTTPConnection):\n    \"\"\"HTTPConnection subclass that supports timeouts\n\n    HTTPConnection subclass that supports timeouts\n\n    All timeouts are in seconds. If None is passed for timeout then\n    Python's default timeout for sockets will be used. See for example\n    the docs of socket.setdefaulttimeout():\n    http://docs.python.org/library/socket.html#socket.setdefaulttimeout\n    \"\"\"\n\n    def __init__(self, host, port=None, timeout=None, proxy_info=None):\n        http.client.HTTPConnection.__init__(self, host, port=port, timeout=timeout)\n\n        self.proxy_info = proxy_info\n        if proxy_info and not isinstance(proxy_info, ProxyInfo):\n            self.proxy_info = proxy_info(\"http\")\n\n    def connect(self):\n        \"\"\"Connect to the host and port specified in __init__.\"\"\"\n        if self.proxy_info and socks is None:\n            raise ProxiesUnavailableError(\"Proxy support missing but proxy use was requested!\")\n        if self.proxy_info and self.proxy_info.isgood() and self.proxy_info.applies_to(self.host):\n            use_proxy = True\n            (\n                proxy_type,\n                proxy_host,\n                proxy_port,\n                proxy_rdns,\n                proxy_user,\n                proxy_pass,\n                proxy_headers,\n            ) = self.proxy_info.astuple()\n\n            host = proxy_host\n            port = proxy_port\n        else:\n            use_proxy = False\n\n            host = self.host\n            port = self.port\n            proxy_type = None\n\n        socket_err = None\n\n        for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):\n            af, socktype, proto, canonname, sa = res\n            try:\n                if use_proxy:\n                    self.sock = socks.socksocket(af, socktype, proto)\n                    self.sock.setproxy(\n                        proxy_type, proxy_host, proxy_port, proxy_rdns, proxy_user, proxy_pass,\n                    )\n                else:\n                    self.sock = socket.socket(af, socktype, proto)\n                    self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)\n                if has_timeout(self.timeout):\n                    self.sock.settimeout(self.timeout)\n                if self.debuglevel > 0:\n                    print(\"connect: ({0}, {1}) ************\".format(self.host, self.port))\n                    if use_proxy:\n                        print(\n                            \"proxy: {0} ************\".format(\n                                str((proxy_host, proxy_port, proxy_rdns, proxy_user, proxy_pass, proxy_headers,))\n                            )\n                        )\n\n                self.sock.connect((self.host, self.port) + sa[2:])\n            except socket.error as e:\n                socket_err = e\n                if self.debuglevel > 0:\n                    print(\"connect fail: ({0}, {1})\".format(self.host, self.port))\n                    if use_proxy:\n                        print(\n                            \"proxy: {0}\".format(\n                                str((proxy_host, proxy_port, proxy_rdns, proxy_user, proxy_pass, proxy_headers,))\n                            )\n                        )\n                if self.sock:\n                    self.sock.close()\n                self.sock = None\n                continue\n            break\n        if not self.sock:\n            raise socket_err\n\n\nclass HTTPSConnectionWithTimeout(http.client.HTTPSConnection):\n    \"\"\"This class allows communication via SSL.\n\n    All timeouts are in seconds. If None is passed for timeout then\n    Python's default timeout for sockets will be used. See for example\n    the docs of socket.setdefaulttimeout():\n    http://docs.python.org/library/socket.html#socket.setdefaulttimeout\n    \"\"\"\n\n    def __init__(\n        self,\n        host,\n        port=None,\n        key_file=None,\n        cert_file=None,\n        timeout=None,\n        proxy_info=None,\n        ca_certs=None,\n        disable_ssl_certificate_validation=False,\n        tls_maximum_version=None,\n        tls_minimum_version=None,\n        key_password=None,\n    ):\n\n        self.disable_ssl_certificate_validation = disable_ssl_certificate_validation\n        self.ca_certs = ca_certs if ca_certs else CA_CERTS\n\n        self.proxy_info = proxy_info\n        if proxy_info and not isinstance(proxy_info, ProxyInfo):\n            self.proxy_info = proxy_info(\"https\")\n\n        context = _build_ssl_context(\n            self.disable_ssl_certificate_validation,\n            self.ca_certs,\n            cert_file,\n            key_file,\n            maximum_version=tls_maximum_version,\n            minimum_version=tls_minimum_version,\n            key_password=key_password,\n        )\n        super(HTTPSConnectionWithTimeout, self).__init__(\n            host, port=port, timeout=timeout, context=context,\n        )\n        self.key_file = key_file\n        self.cert_file = cert_file\n        self.key_password = key_password\n\n    def connect(self):\n        \"\"\"Connect to a host on a given (SSL) port.\"\"\"\n        if self.proxy_info and self.proxy_info.isgood() and self.proxy_info.applies_to(self.host):\n            use_proxy = True\n            (\n                proxy_type,\n                proxy_host,\n                proxy_port,\n                proxy_rdns,\n                proxy_user,\n                proxy_pass,\n                proxy_headers,\n            ) = self.proxy_info.astuple()\n\n            host = proxy_host\n            port = proxy_port\n        else:\n            use_proxy = False\n\n            host = self.host\n            port = self.port\n            proxy_type = None\n            proxy_headers = None\n\n        socket_err = None\n\n        address_info = socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM)\n        for family, socktype, proto, canonname, sockaddr in address_info:\n            try:\n                if use_proxy:\n                    sock = socks.socksocket(family, socktype, proto)\n\n                    sock.setproxy(\n                        proxy_type, proxy_host, proxy_port, proxy_rdns, proxy_user, proxy_pass,\n                    )\n                else:\n                    sock = socket.socket(family, socktype, proto)\n                    sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)\n                if has_timeout(self.timeout):\n                    sock.settimeout(self.timeout)\n                sock.connect((self.host, self.port))\n\n                self.sock = self._context.wrap_socket(sock, server_hostname=self.host)\n\n                # Python 3.3 compatibility: emulate the check_hostname behavior\n                if not hasattr(self._context, \"check_hostname\") and not self.disable_ssl_certificate_validation:\n                    try:\n                        ssl.match_hostname(self.sock.getpeercert(), self.host)\n                    except Exception:\n                        self.sock.shutdown(socket.SHUT_RDWR)\n                        self.sock.close()\n                        raise\n\n                if self.debuglevel > 0:\n                    print(\"connect: ({0}, {1})\".format(self.host, self.port))\n                    if use_proxy:\n                        print(\n                            \"proxy: {0}\".format(\n                                str((proxy_host, proxy_port, proxy_rdns, proxy_user, proxy_pass, proxy_headers,))\n                            )\n                        )\n            except (ssl.SSLError, ssl.CertificateError) as e:\n                if sock:\n                    sock.close()\n                if self.sock:\n                    self.sock.close()\n                self.sock = None\n                raise\n            except (socket.timeout, socket.gaierror):\n                raise\n            except socket.error as e:\n                socket_err = e\n                if self.debuglevel > 0:\n                    print(\"connect fail: ({0}, {1})\".format(self.host, self.port))\n                    if use_proxy:\n                        print(\n                            \"proxy: {0}\".format(\n                                str((proxy_host, proxy_port, proxy_rdns, proxy_user, proxy_pass, proxy_headers,))\n                            )\n                        )\n                if self.sock:\n                    self.sock.close()\n                self.sock = None\n                continue\n            break\n        if not self.sock:\n            raise socket_err\n\n\nSCHEME_TO_CONNECTION = {\n    \"http\": HTTPConnectionWithTimeout,\n    \"https\": HTTPSConnectionWithTimeout,\n}\n\n\nclass Http(object):\n    \"\"\"An HTTP client that handles:\n\n    - all methods\n    - caching\n    - ETags\n    - compression,\n    - HTTPS\n    - Basic\n    - Digest\n    - WSSE\n\n    and more.\n    \"\"\"\n\n    def __init__(\n        self,\n        cache=None,\n        timeout=None,\n        proxy_info=proxy_info_from_environment,\n        ca_certs=None,\n        disable_ssl_certificate_validation=False,\n        tls_maximum_version=None,\n        tls_minimum_version=None,\n    ):\n        \"\"\"If 'cache' is a string then it is used as a directory name for\n        a disk cache. Otherwise it must be an object that supports the\n        same interface as FileCache.\n\n        All timeouts are in seconds. If None is passed for timeout\n        then Python's default timeout for sockets will be used. See\n        for example the docs of socket.setdefaulttimeout():\n        http://docs.python.org/library/socket.html#socket.setdefaulttimeout\n\n        `proxy_info` may be:\n          - a callable that takes the http scheme ('http' or 'https') and\n            returns a ProxyInfo instance per request. By default, uses\n            proxy_info_from_environment.\n          - a ProxyInfo instance (static proxy config).\n          - None (proxy disabled).\n\n        ca_certs is the path of a file containing root CA certificates for SSL\n        server certificate validation.  By default, a CA cert file bundled with\n        httplib2 is used.\n\n        If disable_ssl_certificate_validation is true, SSL cert validation will\n        not be performed.\n\n        tls_maximum_version / tls_minimum_version require Python 3.7+ /\n        OpenSSL 1.1.0g+. A value of \"TLSv1_3\" requires OpenSSL 1.1.1+.\n        \"\"\"\n        self.proxy_info = proxy_info\n        self.ca_certs = ca_certs\n        self.disable_ssl_certificate_validation = disable_ssl_certificate_validation\n        self.tls_maximum_version = tls_maximum_version\n        self.tls_minimum_version = tls_minimum_version\n        # Map domain name to an httplib connection\n        self.connections = {}\n        # The location of the cache, for now a directory\n        # where cached responses are held.\n        if cache and isinstance(cache, str):\n            self.cache = FileCache(cache)\n        else:\n            self.cache = cache\n\n        # Name/password\n        self.credentials = Credentials()\n\n        # Key/cert\n        self.certificates = KeyCerts()\n\n        # authorization objects\n        self.authorizations = []\n\n        # If set to False then no redirects are followed, even safe ones.\n        self.follow_redirects = True\n\n        self.redirect_codes = REDIRECT_CODES\n\n        # Which HTTP methods do we apply optimistic concurrency to, i.e.\n        # which methods get an \"if-match:\" etag header added to them.\n        self.optimistic_concurrency_methods = [\"PUT\", \"PATCH\"]\n\n        self.safe_methods = list(SAFE_METHODS)\n\n        # If 'follow_redirects' is True, and this is set to True then\n        # all redirecs are followed, including unsafe ones.\n        self.follow_all_redirects = False\n\n        self.ignore_etag = False\n\n        self.force_exception_to_status_code = False\n\n        self.timeout = timeout\n\n        # Keep Authorization: headers on a redirect.\n        self.forward_authorization_headers = False\n\n    def close(self):\n        \"\"\"Close persistent connections, clear sensitive data.\n        Not thread-safe, requires external synchronization against concurrent requests.\n        \"\"\"\n        existing, self.connections = self.connections, {}\n        for _, c in existing.items():\n            c.close()\n        self.certificates.clear()\n        self.clear_credentials()\n\n    def __getstate__(self):\n        state_dict = copy.copy(self.__dict__)\n        # In case request is augmented by some foreign object such as\n        # credentials which handle auth\n        if \"request\" in state_dict:\n            del state_dict[\"request\"]\n        if \"connections\" in state_dict:\n            del state_dict[\"connections\"]\n        return state_dict\n\n    def __setstate__(self, state):\n        self.__dict__.update(state)\n        self.connections = {}\n\n    def _auth_from_challenge(self, host, request_uri, headers, response, content):\n        \"\"\"A generator that creates Authorization objects\n           that can be applied to requests.\n        \"\"\"\n        challenges = auth._parse_www_authenticate(response, \"www-authenticate\")\n        for cred in self.credentials.iter(host):\n            for scheme in AUTH_SCHEME_ORDER:\n                if scheme in challenges:\n                    yield AUTH_SCHEME_CLASSES[scheme](cred, host, request_uri, headers, response, content, self)\n\n    def add_credentials(self, name, password, domain=\"\"):\n        \"\"\"Add a name and password that will be used\n        any time a request requires authentication.\"\"\"\n        self.credentials.add(name, password, domain)\n\n    def add_certificate(self, key, cert, domain, password=None):\n        \"\"\"Add a key and cert that will be used\n        any time a request requires authentication.\"\"\"\n        self.certificates.add(key, cert, domain, password)\n\n    def clear_credentials(self):\n        \"\"\"Remove all the names and passwords\n        that are used for authentication\"\"\"\n        self.credentials.clear()\n        self.authorizations = []\n\n    def _conn_request(self, conn, request_uri, method, body, headers):\n        i = 0\n        seen_bad_status_line = False\n        while i < RETRIES:\n            i += 1\n            try:\n                if conn.sock is None:\n                    conn.connect()\n                conn.request(method, request_uri, body, headers)\n            except socket.timeout:\n                conn.close()\n                raise\n            except socket.gaierror:\n                conn.close()\n                raise ServerNotFoundError(\"Unable to find the server at %s\" % conn.host)\n            except socket.error as e:\n                errno_ = _errno_from_exception(e)\n                if errno_ in (errno.ENETUNREACH, errno.EADDRNOTAVAIL) and i < RETRIES:\n                    continue  # retry on potentially transient errors\n                raise\n            except http.client.HTTPException:\n                if conn.sock is None:\n                    if i < RETRIES - 1:\n                        conn.close()\n                        conn.connect()\n                        continue\n                    else:\n                        conn.close()\n                        raise\n                if i < RETRIES - 1:\n                    conn.close()\n                    conn.connect()\n                    continue\n                # Just because the server closed the connection doesn't apparently mean\n                # that the server didn't send a response.\n                pass\n            try:\n                response = conn.getresponse()\n            except (http.client.BadStatusLine, http.client.ResponseNotReady):\n                # If we get a BadStatusLine on the first try then that means\n                # the connection just went stale, so retry regardless of the\n                # number of RETRIES set.\n                if not seen_bad_status_line and i == 1:\n                    i = 0\n                    seen_bad_status_line = True\n                    conn.close()\n                    conn.connect()\n                    continue\n                else:\n                    conn.close()\n                    raise\n            except socket.timeout:\n                raise\n            except (socket.error, http.client.HTTPException):\n                conn.close()\n                if i == 0:\n                    conn.close()\n                    conn.connect()\n                    continue\n                else:\n                    raise\n            else:\n                content = b\"\"\n                if method == \"HEAD\":\n                    conn.close()\n                else:\n                    content = response.read()\n                response = Response(response)\n                if method != \"HEAD\":\n                    content = _decompressContent(response, content)\n\n            break\n        return (response, content)\n\n    def _request(\n        self, conn, host, absolute_uri, request_uri, method, body, headers, redirections, cachekey,\n    ):\n        \"\"\"Do the actual request using the connection object\n        and also follow one level of redirects if necessary\"\"\"\n\n        auths = [(auth.depth(request_uri), auth) for auth in self.authorizations if auth.inscope(host, request_uri)]\n        auth = auths and sorted(auths)[0][1] or None\n        if auth:\n            auth.request(method, request_uri, headers, body)\n\n        (response, content) = self._conn_request(conn, request_uri, method, body, headers)\n\n        if auth:\n            if auth.response(response, body):\n                auth.request(method, request_uri, headers, body)\n                (response, content) = self._conn_request(conn, request_uri, method, body, headers)\n                response._stale_digest = 1\n\n        if response.status == 401:\n            for authorization in self._auth_from_challenge(host, request_uri, headers, response, content):\n                authorization.request(method, request_uri, headers, body)\n                (response, content) = self._conn_request(conn, request_uri, method, body, headers)\n                if response.status != 401:\n                    self.authorizations.append(authorization)\n                    authorization.response(response, body)\n                    break\n\n        if self.follow_all_redirects or method in self.safe_methods or response.status in (303, 308):\n            if self.follow_redirects and response.status in self.redirect_codes:\n                # Pick out the location header and basically start from the beginning\n                # remembering first to strip the ETag header and decrement our 'depth'\n                if redirections:\n                    if \"location\" not in response and response.status != 300:\n                        raise RedirectMissingLocation(\n                            _(\"Redirected but the response is missing a Location: header.\"), response, content,\n                        )\n                    # Fix-up relative redirects (which violate an RFC 2616 MUST)\n                    if \"location\" in response:\n                        location = response[\"location\"]\n                        (scheme, authority, path, query, fragment) = parse_uri(location)\n                        if authority == None:\n                            response[\"location\"] = urllib.parse.urljoin(absolute_uri, location)\n                    if response.status == 308 or (response.status == 301 and (method in self.safe_methods)):\n                        response[\"-x-permanent-redirect-url\"] = response[\"location\"]\n                        if \"content-location\" not in response:\n                            response[\"content-location\"] = absolute_uri\n                        _updateCache(headers, response, content, self.cache, cachekey)\n                    if \"if-none-match\" in headers:\n                        del headers[\"if-none-match\"]\n                    if \"if-modified-since\" in headers:\n                        del headers[\"if-modified-since\"]\n                    if \"authorization\" in headers and not self.forward_authorization_headers:\n                        del headers[\"authorization\"]\n                    if \"location\" in response:\n                        location = response[\"location\"]\n                        old_response = copy.deepcopy(response)\n                        if \"content-location\" not in old_response:\n                            old_response[\"content-location\"] = absolute_uri\n                        redirect_method = method\n                        if response.status in [302, 303]:\n                            redirect_method = \"GET\"\n                            body = None\n                        (response, content) = self.request(\n                            location, method=redirect_method, body=body, headers=headers, redirections=redirections - 1,\n                        )\n                        response.previous = old_response\n                else:\n                    raise RedirectLimit(\n                        \"Redirected more times than redirection_limit allows.\", response, content,\n                    )\n            elif response.status in [200, 203] and method in self.safe_methods:\n                # Don't cache 206's since we aren't going to handle byte range requests\n                if \"content-location\" not in response:\n                    response[\"content-location\"] = absolute_uri\n                _updateCache(headers, response, content, self.cache, cachekey)\n\n        return (response, content)\n\n    def _normalize_headers(self, headers):\n        return _normalize_headers(headers)\n\n    # Need to catch and rebrand some exceptions\n    # Then need to optionally turn all exceptions into status codes\n    # including all socket.* and httplib.* exceptions.\n\n    def request(\n        self, uri, method=\"GET\", body=None, headers=None, redirections=DEFAULT_MAX_REDIRECTS, connection_type=None,\n    ):\n        \"\"\" Performs a single HTTP request.\nThe 'uri' is the URI of the HTTP resource and can begin\nwith either 'http' or 'https'. The value of 'uri' must be an absolute URI.\n\nThe 'method' is the HTTP method to perform, such as GET, POST, DELETE, etc.\nThere is no restriction on the methods allowed.\n\nThe 'body' is the entity body to be sent with the request. It is a string\nobject.\n\nAny extra headers that are to be sent with the request should be provided in the\n'headers' dictionary.\n\nThe maximum number of redirect to follow before raising an\nexception is 'redirections. The default is 5.\n\nThe return value is a tuple of (response, content), the first\nbeing and instance of the 'Response' class, the second being\na string that contains the response entity body.\n        \"\"\"\n        conn_key = \"\"\n\n        try:\n            if headers is None:\n                headers = {}\n            else:\n                headers = self._normalize_headers(headers)\n\n            if \"user-agent\" not in headers:\n                headers[\"user-agent\"] = \"Python-httplib2/%s (gzip)\" % __version__\n\n            uri = iri2uri(uri)\n            # Prevent CWE-75 space injection to manipulate request via part of uri.\n            # Prevent CWE-93 CRLF injection to modify headers via part of uri.\n            uri = uri.replace(\" \", \"%20\").replace(\"\\r\", \"%0D\").replace(\"\\n\", \"%0A\")\n\n            (scheme, authority, request_uri, defrag_uri) = urlnorm(uri)\n\n            conn_key = scheme + \":\" + authority\n            conn = self.connections.get(conn_key)\n            if conn is None:\n                if not connection_type:\n                    connection_type = SCHEME_TO_CONNECTION[scheme]\n                certs = list(self.certificates.iter(authority))\n                if issubclass(connection_type, HTTPSConnectionWithTimeout):\n                    if certs:\n                        conn = self.connections[conn_key] = connection_type(\n                            authority,\n                            key_file=certs[0][0],\n                            cert_file=certs[0][1],\n                            timeout=self.timeout,\n                            proxy_info=self.proxy_info,\n                            ca_certs=self.ca_certs,\n                            disable_ssl_certificate_validation=self.disable_ssl_certificate_validation,\n                            tls_maximum_version=self.tls_maximum_version,\n                            tls_minimum_version=self.tls_minimum_version,\n                            key_password=certs[0][2],\n                        )\n                    else:\n                        conn = self.connections[conn_key] = connection_type(\n                            authority,\n                            timeout=self.timeout,\n                            proxy_info=self.proxy_info,\n                            ca_certs=self.ca_certs,\n                            disable_ssl_certificate_validation=self.disable_ssl_certificate_validation,\n                            tls_maximum_version=self.tls_maximum_version,\n                            tls_minimum_version=self.tls_minimum_version,\n                        )\n                else:\n                    conn = self.connections[conn_key] = connection_type(\n                        authority, timeout=self.timeout, proxy_info=self.proxy_info\n                    )\n                conn.set_debuglevel(debuglevel)\n\n            if \"range\" not in headers and \"accept-encoding\" not in headers:\n                headers[\"accept-encoding\"] = \"gzip, deflate\"\n\n            info = email.message.Message()\n            cachekey = None\n            cached_value = None\n            if self.cache:\n                cachekey = defrag_uri\n                cached_value = self.cache.get(cachekey)\n                if cached_value:\n                    try:\n                        info, content = cached_value.split(b\"\\r\\n\\r\\n\", 1)\n                        info = email.message_from_bytes(info)\n                        for k, v in info.items():\n                            if v.startswith(\"=?\") and v.endswith(\"?=\"):\n                                info.replace_header(k, str(*email.header.decode_header(v)[0]))\n                    except (IndexError, ValueError):\n                        self.cache.delete(cachekey)\n                        cachekey = None\n                        cached_value = None\n\n            if (\n                method in self.optimistic_concurrency_methods\n                and self.cache\n                and \"etag\" in info\n                and not self.ignore_etag\n                and \"if-match\" not in headers\n            ):\n                # http://www.w3.org/1999/04/Editing/\n                headers[\"if-match\"] = info[\"etag\"]\n\n            # https://tools.ietf.org/html/rfc7234\n            # A cache MUST invalidate the effective Request URI as well as [...] Location and Content-Location\n            # when a non-error status code is received in response to an unsafe request method.\n            if self.cache and cachekey and method not in self.safe_methods:\n                self.cache.delete(cachekey)\n\n            # Check the vary header in the cache to see if this request\n            # matches what varies in the cache.\n            if method in self.safe_methods and \"vary\" in info:\n                vary = info[\"vary\"]\n                vary_headers = vary.lower().replace(\" \", \"\").split(\",\")\n                for header in vary_headers:\n                    key = \"-varied-%s\" % header\n                    value = info[key]\n                    if headers.get(header, None) != value:\n                        cached_value = None\n                        break\n\n            if (\n                self.cache\n                and cached_value\n                and (method in self.safe_methods or info[\"status\"] == \"308\")\n                and \"range\" not in headers\n            ):\n                redirect_method = method\n                if info[\"status\"] not in (\"307\", \"308\"):\n                    redirect_method = \"GET\"\n                if \"-x-permanent-redirect-url\" in info:\n                    # Should cached permanent redirects be counted in our redirection count? For now, yes.\n                    if redirections <= 0:\n                        raise RedirectLimit(\n                            \"Redirected more times than redirection_limit allows.\", {}, \"\",\n                        )\n                    (response, new_content) = self.request(\n                        info[\"-x-permanent-redirect-url\"],\n                        method=redirect_method,\n                        headers=headers,\n                        redirections=redirections - 1,\n                    )\n                    response.previous = Response(info)\n                    response.previous.fromcache = True\n                else:\n                    # Determine our course of action:\n                    #   Is the cached entry fresh or stale?\n                    #   Has the client requested a non-cached response?\n                    #\n                    # There seems to be three possible answers:\n                    # 1. [FRESH] Return the cache entry w/o doing a GET\n                    # 2. [STALE] Do the GET (but add in cache validators if available)\n                    # 3. [TRANSPARENT] Do a GET w/o any cache validators (Cache-Control: no-cache) on the request\n                    entry_disposition = _entry_disposition(info, headers)\n\n                    if entry_disposition == \"FRESH\":\n                        response = Response(info)\n                        response.fromcache = True\n                        return (response, content)\n\n                    if entry_disposition == \"STALE\":\n                        if \"etag\" in info and not self.ignore_etag and not \"if-none-match\" in headers:\n                            headers[\"if-none-match\"] = info[\"etag\"]\n                        if \"last-modified\" in info and not \"last-modified\" in headers:\n                            headers[\"if-modified-since\"] = info[\"last-modified\"]\n                    elif entry_disposition == \"TRANSPARENT\":\n                        pass\n\n                    (response, new_content) = self._request(\n                        conn, authority, uri, request_uri, method, body, headers, redirections, cachekey,\n                    )\n\n                if response.status == 304 and method == \"GET\":\n                    # Rewrite the cache entry with the new end-to-end headers\n                    # Take all headers that are in response\n                    # and overwrite their values in info.\n                    # unless they are hop-by-hop, or are listed in the connection header.\n\n                    for key in _get_end2end_headers(response):\n                        info[key] = response[key]\n                    merged_response = Response(info)\n                    if hasattr(response, \"_stale_digest\"):\n                        merged_response._stale_digest = response._stale_digest\n                    _updateCache(headers, merged_response, content, self.cache, cachekey)\n                    response = merged_response\n                    response.status = 200\n                    response.fromcache = True\n\n                elif response.status == 200:\n                    content = new_content\n                else:\n                    self.cache.delete(cachekey)\n                    content = new_content\n            else:\n                cc = _parse_cache_control(headers)\n                if \"only-if-cached\" in cc:\n                    info[\"status\"] = \"504\"\n                    response = Response(info)\n                    content = b\"\"\n                else:\n                    (response, content) = self._request(\n                        conn, authority, uri, request_uri, method, body, headers, redirections, cachekey,\n                    )\n        except Exception as e:\n            is_timeout = isinstance(e, socket.timeout)\n            if is_timeout:\n                conn = self.connections.pop(conn_key, None)\n                if conn:\n                    conn.close()\n\n            if self.force_exception_to_status_code:\n                if isinstance(e, HttpLib2ErrorWithResponse):\n                    response = e.response\n                    content = e.content\n                    response.status = 500\n                    response.reason = str(e)\n                elif isinstance(e, socket.timeout):\n                    content = b\"Request Timeout\"\n                    response = Response({\"content-type\": \"text/plain\", \"status\": \"408\", \"content-length\": len(content),})\n                    response.reason = \"Request Timeout\"\n                else:\n                    content = str(e).encode(\"utf-8\")\n                    response = Response({\"content-type\": \"text/plain\", \"status\": \"400\", \"content-length\": len(content),})\n                    response.reason = \"Bad Request\"\n            else:\n                raise\n\n        return (response, content)\n\n\nclass Response(dict):\n    \"\"\"An object more like email.message than httplib.HTTPResponse.\"\"\"\n\n    \"\"\"Is this response from our local cache\"\"\"\n    fromcache = False\n    \"\"\"HTTP protocol version used by server.\n\n    10 for HTTP/1.0, 11 for HTTP/1.1.\n    \"\"\"\n    version = 11\n\n    \"Status code returned by server. \"\n    status = 200\n    \"\"\"Reason phrase returned by server.\"\"\"\n    reason = \"Ok\"\n\n    previous = None\n\n    def __init__(self, info):\n        # info is either an email.message or\n        # an httplib.HTTPResponse object.\n        if isinstance(info, http.client.HTTPResponse):\n            for key, value in info.getheaders():\n                key = key.lower()\n                prev = self.get(key)\n                if prev is not None:\n                    value = \", \".join((prev, value))\n                self[key] = value\n            self.status = info.status\n            self[\"status\"] = str(self.status)\n            self.reason = info.reason\n            self.version = info.version\n        elif isinstance(info, email.message.Message):\n            for key, value in list(info.items()):\n                self[key.lower()] = value\n            self.status = int(self[\"status\"])\n        else:\n            for key, value in info.items():\n                self[key.lower()] = value\n            self.status = int(self.get(\"status\", self.status))\n\n    def __getattr__(self, name):\n        if name == \"dict\":\n            return self\n        else:\n            raise AttributeError(name)\n"
  },
  {
    "path": "shotgun_api3/lib/httplib2/auth.py",
    "content": "import base64\nimport re\n\nfrom .. import pyparsing as pp\n\nfrom .error import *\n\n\ntry:  # pyparsing>=3.0.0\n    downcaseTokens = pp.common.downcaseTokens\nexcept AttributeError:\n    downcaseTokens = pp.downcaseTokens\n\nUNQUOTE_PAIRS = re.compile(r\"\\\\(.)\")\nunquote = lambda s, l, t: UNQUOTE_PAIRS.sub(r\"\\1\", t[0][1:-1])\n\n# https://tools.ietf.org/html/rfc7235#section-1.2\n# https://tools.ietf.org/html/rfc7235#appendix-B\ntchar = \"!#$%&'*+-.^_`|~\" + pp.nums + pp.alphas\ntoken = pp.Word(tchar).setName(\"token\")\ntoken68 = pp.Combine(pp.Word(\"-._~+/\" + pp.nums + pp.alphas) + pp.Optional(pp.Word(\"=\").leaveWhitespace())).setName(\n    \"token68\"\n)\n\nquoted_string = pp.dblQuotedString.copy().setName(\"quoted-string\").setParseAction(unquote)\nauth_param_name = token.copy().setName(\"auth-param-name\").addParseAction(downcaseTokens)\nauth_param = auth_param_name + pp.Suppress(\"=\") + (quoted_string | token)\nparams = pp.Dict(pp.delimitedList(pp.Group(auth_param)))\n\nscheme = token(\"scheme\")\nchallenge = scheme + (params(\"params\") | token68(\"token\"))\n\nauthentication_info = params.copy()\nwww_authenticate = pp.delimitedList(pp.Group(challenge))\n\n\ndef _parse_authentication_info(headers, headername=\"authentication-info\"):\n    \"\"\"https://tools.ietf.org/html/rfc7615\n    \"\"\"\n    header = headers.get(headername, \"\").strip()\n    if not header:\n        return {}\n    try:\n        parsed = authentication_info.parseString(header)\n    except pp.ParseException as ex:\n        # print(ex.explain(ex))\n        raise MalformedHeader(headername)\n\n    return parsed.asDict()\n\n\ndef _parse_www_authenticate(headers, headername=\"www-authenticate\"):\n    \"\"\"Returns a dictionary of dictionaries, one dict per auth_scheme.\"\"\"\n    header = headers.get(headername, \"\").strip()\n    if not header:\n        return {}\n    try:\n        parsed = www_authenticate.parseString(header)\n    except pp.ParseException as ex:\n        # print(ex.explain(ex))\n        raise MalformedHeader(headername)\n\n    retval = {\n        challenge[\"scheme\"].lower(): challenge[\"params\"].asDict()\n        if \"params\" in challenge\n        else {\"token\": challenge.get(\"token\")}\n        for challenge in parsed\n    }\n    return retval\n"
  },
  {
    "path": "shotgun_api3/lib/httplib2/cacerts.txt",
    "content": "# Issuer: CN=GTE CyberTrust Global Root O=GTE Corporation OU=GTE CyberTrust Solutions, Inc.\n# Subject: CN=GTE CyberTrust Global Root O=GTE Corporation OU=GTE CyberTrust Solutions, Inc.\n# Label: \"GTE CyberTrust Global Root\"\n# Serial: 421\n# MD5 Fingerprint: ca:3d:d3:68:f1:03:5c:d0:32:fa:b8:2b:59:e8:5a:db\n# SHA1 Fingerprint: 97:81:79:50:d8:1c:96:70:cc:34:d8:09:cf:79:44:31:36:7e:f4:74\n# SHA256 Fingerprint: a5:31:25:18:8d:21:10:aa:96:4b:02:c7:b7:c6:da:32:03:17:08:94:e5:fb:71:ff:fb:66:67:d5:e6:81:0a:36\n-----BEGIN CERTIFICATE-----\nMIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD\nVQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv\nbHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv\nb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV\nUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU\ncnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds\nb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH\niM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS\nr41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4\n04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r\nGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9\n3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P\nlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/\n-----END CERTIFICATE-----\n\n# Issuer: CN=Thawte Server CA O=Thawte Consulting cc OU=Certification Services Division\n# Subject: CN=Thawte Server CA O=Thawte Consulting cc OU=Certification Services Division\n# Label: \"Thawte Server CA\"\n# Serial: 1\n# MD5 Fingerprint: c5:70:c4:a2:ed:53:78:0c:c8:10:53:81:64:cb:d0:1d\n# SHA1 Fingerprint: 23:e5:94:94:51:95:f2:41:48:03:b4:d5:64:d2:a3:a3:f5:d8:8b:8c\n# SHA256 Fingerprint: b4:41:0b:73:e2:e6:ea:ca:47:fb:c4:2f:8f:a4:01:8a:f4:38:1d:c5:4c:fa:a8:44:50:46:1e:ed:09:45:4d:e9\n-----BEGIN CERTIFICATE-----\nMIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx\nFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD\nVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv\nbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm\nMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx\nMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT\nDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3\ndGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl\ncyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3\nDQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD\ngY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91\nyekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX\nL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj\nEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG\n7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e\nQNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ\nqdq5snUb9kLy78fyGPmJvKP/iiMucEc=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Thawte Premium Server CA O=Thawte Consulting cc OU=Certification Services Division\n# Subject: CN=Thawte Premium Server CA O=Thawte Consulting cc OU=Certification Services Division\n# Label: \"Thawte Premium Server CA\"\n# Serial: 1\n# MD5 Fingerprint: 06:9f:69:79:16:66:90:02:1b:8c:8c:a2:c3:07:6f:3a\n# SHA1 Fingerprint: 62:7f:8d:78:27:65:63:99:d2:7d:7f:90:44:c9:fe:b3:f3:3e:fa:9a\n# SHA256 Fingerprint: ab:70:36:36:5c:71:54:aa:29:c2:c2:9f:5d:41:91:16:3b:16:2a:22:25:01:13:57:d5:6d:07:ff:a7:bc:1f:72\n-----BEGIN CERTIFICATE-----\nMIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx\nFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD\nVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv\nbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy\ndmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t\nMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB\nMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG\nA1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp\nb24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl\ncnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv\nbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE\nVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ\nug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR\nuHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG\n9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI\nhfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM\npAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==\n-----END CERTIFICATE-----\n\n# Issuer: O=Equifax OU=Equifax Secure Certificate Authority\n# Subject: O=Equifax OU=Equifax Secure Certificate Authority\n# Label: \"Equifax Secure CA\"\n# Serial: 903804111\n# MD5 Fingerprint: 67:cb:9d:c0:13:24:8a:82:9b:b2:17:1e:d1:1b:ec:d4\n# SHA1 Fingerprint: d2:32:09:ad:23:d3:14:23:21:74:e4:0d:7f:9d:62:13:97:86:63:3a\n# SHA256 Fingerprint: 08:29:7a:40:47:db:a2:36:80:c7:31:db:6e:31:76:53:ca:78:48:e1:be:bd:3a:0b:01:79:a7:07:f9:2c:f1:78\n-----BEGIN CERTIFICATE-----\nMIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV\nUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy\ndGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1\nMVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx\ndWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B\nAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f\nBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A\ncJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC\nAwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ\nMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm\naWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw\nODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj\nIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF\nMAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA\nA4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y\n7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh\n1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4\n-----END CERTIFICATE-----\n\n# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority - G2/(c) 1998 VeriSign, Inc. - For authorized use only/VeriSign Trust Network\n# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority - G2/(c) 1998 VeriSign, Inc. - For authorized use only/VeriSign Trust Network\n# Label: \"Verisign Class 3 Public Primary Certification Authority - G2\"\n# Serial: 167285380242319648451154478808036881606\n# MD5 Fingerprint: a2:33:9b:4c:74:78:73:d4:6c:e7:c1:f3:8d:cb:5c:e9\n# SHA1 Fingerprint: 85:37:1c:a6:e5:50:14:3d:ce:28:03:47:1b:de:3a:09:e8:f8:77:0f\n# SHA256 Fingerprint: 83:ce:3c:12:29:68:8a:59:3d:48:5f:81:97:3c:0f:91:95:43:1e:da:37:cc:5e:36:43:0e:79:c7:a8:88:63:8b\n-----BEGIN CERTIFICATE-----\nMIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ\nBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh\nc3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy\nMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp\nemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X\nDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw\nFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg\nUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo\nYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5\nMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB\nAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4\npO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0\n13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID\nAQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk\nU01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i\nF6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY\noJ2daZH9\n-----END CERTIFICATE-----\n\n# Issuer: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA\n# Subject: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA\n# Label: \"GlobalSign Root CA\"\n# Serial: 4835703278459707669005204\n# MD5 Fingerprint: 3e:45:52:15:09:51:92:e1:b7:5d:37:9f:b1:87:29:8a\n# SHA1 Fingerprint: b1:bc:96:8b:d4:f4:9d:62:2a:a8:9a:81:f2:15:01:52:a4:1d:82:9c\n# SHA256 Fingerprint: eb:d4:10:40:e4:bb:3e:c7:42:c9:e3:81:d3:1e:f2:a4:1a:48:b6:68:5c:96:e7:ce:f3:c1:df:6c:d4:33:1c:99\n-----BEGIN CERTIFICATE-----\nMIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\nA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\nb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\nMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\nYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\naWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\njc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\nxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\nsnUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\nU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\nAQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\nyj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\nAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\nDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\nHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n-----END CERTIFICATE-----\n\n# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2\n# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2\n# Label: \"GlobalSign Root CA - R2\"\n# Serial: 4835703278459682885658125\n# MD5 Fingerprint: 94:14:77:7e:3e:5e:fd:8f:30:bd:41:b0:cf:e7:d0:30\n# SHA1 Fingerprint: 75:e0:ab:b6:13:85:12:27:1c:04:f8:5f:dd:de:38:e4:b7:24:2e:fe\n# SHA256 Fingerprint: ca:42:dd:41:74:5f:d0:b8:1e:b9:02:36:2c:f9:d8:bf:71:9d:a1:bd:1b:1e:fc:94:6f:5b:4c:99:f4:2c:1b:9e\n-----BEGIN CERTIFICATE-----\nMIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1\nMDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG\nA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI\nhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL\nv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8\neoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq\ntTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd\nC9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa\nzq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB\nmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH\nV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n\nbG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG\n3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs\nJ0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO\n291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS\not+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd\nAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7\nTBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==\n-----END CERTIFICATE-----\n\n# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 1 Policy Validation Authority\n# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 1 Policy Validation Authority\n# Label: \"ValiCert Class 1 VA\"\n# Serial: 1\n# MD5 Fingerprint: 65:58:ab:15:ad:57:6c:1e:a8:a7:b5:69:ac:bf:ff:eb\n# SHA1 Fingerprint: e5:df:74:3c:b6:01:c4:9b:98:43:dc:ab:8c:e8:6a:81:10:9f:e4:8e\n# SHA256 Fingerprint: f4:c1:49:55:1a:30:13:a3:5b:c7:bf:fe:17:a7:f3:44:9b:c1:ab:5b:5a:0a:e7:4b:06:c2:3b:90:00:4c:01:04\n-----BEGIN CERTIFICATE-----\nMIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0\nIFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz\nBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y\naXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG\n9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIyMjM0OFoXDTE5MDYy\nNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y\nazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs\nYXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw\nOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl\ncnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9Y\nLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIiGQj4/xEjm84H9b9pGib+\nTunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCmDuJWBQ8Y\nTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0\nLBwGlN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLW\nI8sogTLDAHkY7FkXicnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPw\nnXS3qT6gpf+2SQMT2iLM7XGCK5nPOrf1LXLI\n-----END CERTIFICATE-----\n\n# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 2 Policy Validation Authority\n# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 2 Policy Validation Authority\n# Label: \"ValiCert Class 2 VA\"\n# Serial: 1\n# MD5 Fingerprint: a9:23:75:9b:ba:49:36:6e:31:c2:db:f2:e7:66:ba:87\n# SHA1 Fingerprint: 31:7a:2a:d0:7f:2b:33:5e:f5:a1:c3:4e:4b:57:e8:b7:d8:f1:fc:a6\n# SHA256 Fingerprint: 58:d0:17:27:9c:d4:dc:63:ab:dd:b1:96:a6:c9:90:6c:30:c4:e0:87:83:ea:e8:c1:60:99:54:d6:93:55:59:6b\n-----BEGIN CERTIFICATE-----\nMIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0\nIFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz\nBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y\naXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG\n9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy\nNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y\nazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs\nYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw\nOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl\ncnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY\ndA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9\nWlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS\nv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v\nUJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu\nIYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC\nW/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd\n-----END CERTIFICATE-----\n\n# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 3 Policy Validation Authority\n# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 3 Policy Validation Authority\n# Label: \"RSA Root Certificate 1\"\n# Serial: 1\n# MD5 Fingerprint: a2:6f:53:b7:ee:40:db:4a:68:e7:fa:18:d9:10:4b:72\n# SHA1 Fingerprint: 69:bd:8c:f4:9c:d3:00:fb:59:2e:17:93:ca:55:6a:f3:ec:aa:35:fb\n# SHA256 Fingerprint: bc:23:f9:8a:31:3c:b9:2d:e3:bb:fc:3a:5a:9f:44:61:ac:39:49:4c:4a:e1:5a:9e:9d:f1:31:e9:9b:73:01:9a\n-----BEGIN CERTIFICATE-----\nMIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0\nIFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz\nBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y\naXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG\n9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMjIzM1oXDTE5MDYy\nNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y\nazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs\nYXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw\nOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl\ncnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfD\ncnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs\n2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqY\nJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliE\nZwgs3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJ\nn0WuPIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A\nPhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu\n-----END CERTIFICATE-----\n\n# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only\n# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only\n# Label: \"Verisign Class 3 Public Primary Certification Authority - G3\"\n# Serial: 206684696279472310254277870180966723415\n# MD5 Fingerprint: cd:68:b6:a7:c7:c4:ce:75:e0:1d:4f:57:44:61:92:09\n# SHA1 Fingerprint: 13:2d:0d:45:53:4b:69:97:cd:b2:d5:c3:39:e2:55:76:60:9b:5c:c6\n# SHA256 Fingerprint: eb:04:cf:5e:b1:f3:9a:fa:76:2f:2b:b1:20:f2:96:cb:a5:20:c1:b9:7d:b1:58:95:65:b8:1c:b9:a1:7b:72:44\n-----BEGIN CERTIFICATE-----\nMIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw\nCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl\ncmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu\nLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT\naWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD\nVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT\naWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ\nbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu\nIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg\nLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b\nN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t\nKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu\nkxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm\nCC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ\nXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu\nimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te\n2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe\nDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC\n/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p\nF4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt\nTxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==\n-----END CERTIFICATE-----\n\n# Issuer: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only\n# Subject: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only\n# Label: \"Verisign Class 4 Public Primary Certification Authority - G3\"\n# Serial: 314531972711909413743075096039378935511\n# MD5 Fingerprint: db:c8:f2:27:2e:b1:ea:6a:29:23:5d:fe:56:3e:33:df\n# SHA1 Fingerprint: c8:ec:8c:87:92:69:cb:4b:ab:39:e9:8d:7e:57:67:f3:14:95:73:9d\n# SHA256 Fingerprint: e3:89:36:0d:0f:db:ae:b3:d2:50:58:4b:47:30:31:4e:22:2f:39:c1:56:a0:20:14:4e:8d:96:05:61:79:15:06\n-----BEGIN CERTIFICATE-----\nMIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw\nCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl\ncmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu\nLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT\naWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD\nVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT\naWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ\nbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu\nIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg\nLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1\nGQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ\n+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd\nU6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm\nNxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY\nufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/\nky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1\nCtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq\ng6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm\nfjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c\n2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/\nbLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Entrust.net Secure Server Certification Authority O=Entrust.net OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited\n# Subject: CN=Entrust.net Secure Server Certification Authority O=Entrust.net OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited\n# Label: \"Entrust.net Secure Server CA\"\n# Serial: 927650371\n# MD5 Fingerprint: df:f2:80:73:cc:f1:e6:61:73:fc:f5:42:e9:c5:7c:ee\n# SHA1 Fingerprint: 99:a6:9b:e6:1a:fe:88:6b:4d:2b:82:00:7c:b8:54:fc:31:7e:15:39\n# SHA256 Fingerprint: 62:f2:40:27:8c:56:4c:4d:d8:bf:7d:9d:4f:6f:36:6e:a8:94:d2:2f:5f:34:d9:89:a9:83:ac:ec:2f:ff:ed:50\n-----BEGIN CERTIFICATE-----\nMIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC\nVVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u\nZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc\nKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u\nZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1\nMjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE\nChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j\nb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF\nbnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg\nU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA\nA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/\nI0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3\nwkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC\nAdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb\noIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5\nBgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p\ndHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk\nMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp\nb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu\ndHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0\nMFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi\nE1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa\nMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI\nhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN\n95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd\n2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited\n# Subject: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited\n# Label: \"Entrust.net Premium 2048 Secure Server CA\"\n# Serial: 946059622\n# MD5 Fingerprint: ba:21:ea:20:d6:dd:db:8f:c1:57:8b:40:ad:a1:fc:fc\n# SHA1 Fingerprint: 80:1d:62:d0:7b:44:9d:5c:5c:03:5c:98:ea:61:fa:44:3c:2a:58:fe\n# SHA256 Fingerprint: d1:c3:39:ea:27:84:eb:87:0f:93:4f:c5:63:4e:4a:a9:ad:55:05:01:64:01:f2:64:65:d3:7a:57:46:63:35:9f\n-----BEGIN CERTIFICATE-----\nMIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML\nRW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp\nbmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5\nIEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp\nZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0xOTEy\nMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3\nLmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp\nYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG\nA1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq\nK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe\nsYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX\nMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT\nXTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/\nHoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH\n4QIDAQABo3QwcjARBglghkgBhvhCAQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGA\nvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdERgL7YibkIozH5oSQJFrlwMB0G\nCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEA\nWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo\noPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQ\nh7A6tcOdBTcSo8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18\nf3v/rxzP5tsHrV7bhZ3QKw0z2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfN\nB/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjXOP/swNlQ8C5LWK5Gb9Auw2DaclVy\nvUxFnmG6v4SBkgPR0ml8xQ==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust\n# Subject: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust\n# Label: \"Baltimore CyberTrust Root\"\n# Serial: 33554617\n# MD5 Fingerprint: ac:b6:94:a5:9c:17:e0:d7:91:52:9b:b1:97:06:a6:e4\n# SHA1 Fingerprint: d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74\n# SHA256 Fingerprint: 16:af:57:a9:f6:76:b0:ab:12:60:95:aa:5e:ba:de:f2:2a:b3:11:19:d6:44:ac:95:cd:4b:93:db:f3:f2:6a:eb\n-----BEGIN CERTIFICATE-----\nMIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ\nRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD\nVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX\nDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y\nZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy\nVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr\nmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr\nIZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK\nmpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu\nXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy\ndc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye\njl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1\nBE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3\nDQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92\n9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx\njkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0\nEpn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz\nksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS\nR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp\n-----END CERTIFICATE-----\n\n# Issuer: CN=Equifax Secure Global eBusiness CA-1 O=Equifax Secure Inc.\n# Subject: CN=Equifax Secure Global eBusiness CA-1 O=Equifax Secure Inc.\n# Label: \"Equifax Secure Global eBusiness CA\"\n# Serial: 1\n# MD5 Fingerprint: 8f:5d:77:06:27:c4:98:3c:5b:93:78:e7:d7:7d:9b:cc\n# SHA1 Fingerprint: 7e:78:4a:10:1c:82:65:cc:2d:e1:f1:6d:47:b4:40:ca:d9:0a:19:45\n# SHA256 Fingerprint: 5f:0b:62:ea:b5:e3:53:ea:65:21:65:16:58:fb:b6:53:59:f4:43:28:0a:4a:fb:d1:04:d7:7d:10:f9:f0:4c:07\n-----BEGIN CERTIFICATE-----\nMIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc\nMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT\nZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw\nMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj\ndXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l\nc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC\nUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc\n58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/\no5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH\nMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr\naGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA\nA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA\nZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv\n8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV\n-----END CERTIFICATE-----\n\n# Issuer: CN=Equifax Secure eBusiness CA-1 O=Equifax Secure Inc.\n# Subject: CN=Equifax Secure eBusiness CA-1 O=Equifax Secure Inc.\n# Label: \"Equifax Secure eBusiness CA 1\"\n# Serial: 4\n# MD5 Fingerprint: 64:9c:ef:2e:44:fc:c6:8f:52:07:d0:51:73:8f:cb:3d\n# SHA1 Fingerprint: da:40:18:8b:91:89:a3:ed:ee:ae:da:97:fe:2f:9d:f5:b7:d1:8a:41\n# SHA256 Fingerprint: cf:56:ff:46:a4:a1:86:10:9d:d9:65:84:b5:ee:b5:8a:51:0c:42:75:b0:e5:f9:4f:40:bb:ae:86:5e:19:f6:73\n-----BEGIN CERTIFICATE-----\nMIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc\nMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT\nZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw\nMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j\nLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ\nKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo\nRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu\nWqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw\nEnv+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD\nAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK\neDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM\nzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+\nWB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN\n/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ==\n-----END CERTIFICATE-----\n\n# Issuer: O=Equifax Secure OU=Equifax Secure eBusiness CA-2\n# Subject: O=Equifax Secure OU=Equifax Secure eBusiness CA-2\n# Label: \"Equifax Secure eBusiness CA 2\"\n# Serial: 930140085\n# MD5 Fingerprint: aa:bf:bf:64:97:da:98:1d:6f:c6:08:3a:95:70:33:ca\n# SHA1 Fingerprint: 39:4f:f6:85:0b:06:be:52:e5:18:56:cc:10:e1:80:e8:82:b3:85:cc\n# SHA256 Fingerprint: 2f:27:4e:48:ab:a4:ac:7b:76:59:33:10:17:75:50:6d:c3:0e:e3:8e:f6:ac:d5:c0:49:32:cf:e0:41:23:42:20\n-----BEGIN CERTIFICATE-----\nMIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV\nUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2Vj\ndXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0\nNVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXggU2VjdXJlMSYwJAYD\nVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCBnzANBgkqhkiG9w0B\nAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn2Z0G\nvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/\nBPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0C\nAwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEX\nMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJl\nIGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkw\nNjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBq\ny/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQF\nMAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA\nA4GBAAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy\n0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1\nE4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN\n-----END CERTIFICATE-----\n\n# Issuer: CN=AddTrust Class 1 CA Root O=AddTrust AB OU=AddTrust TTP Network\n# Subject: CN=AddTrust Class 1 CA Root O=AddTrust AB OU=AddTrust TTP Network\n# Label: \"AddTrust Low-Value Services Root\"\n# Serial: 1\n# MD5 Fingerprint: 1e:42:95:02:33:92:6b:b9:5f:c0:7f:da:d6:b2:4b:fc\n# SHA1 Fingerprint: cc:ab:0e:a0:4c:23:01:d6:69:7b:dd:37:9f:cd:12:eb:24:e3:94:9d\n# SHA256 Fingerprint: 8c:72:09:27:9a:c0:4e:27:5e:16:d0:7f:d3:b7:75:e8:01:54:b5:96:80:46:e3:1f:52:dd:25:76:63:24:e9:a7\n-----BEGIN CERTIFICATE-----\nMIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3\nb3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw\nMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML\nQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD\nVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA\nA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul\nCDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n\ntGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl\ndI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch\nPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC\n+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O\nBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E\nBTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl\nMQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk\nZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB\nIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X\n7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz\n43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY\neDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl\npz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA\nWiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=\n-----END CERTIFICATE-----\n\n# Issuer: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network\n# Subject: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network\n# Label: \"AddTrust External Root\"\n# Serial: 1\n# MD5 Fingerprint: 1d:35:54:04:85:78:b0:3f:42:42:4d:bf:20:73:0a:3f\n# SHA1 Fingerprint: 02:fa:f3:e2:91:43:54:68:60:78:57:69:4d:f5:e4:5b:68:85:18:68\n# SHA256 Fingerprint: 68:7f:a4:51:38:22:78:ff:f0:c8:b1:1f:8d:43:d5:76:67:1c:6e:b2:bc:ea:b4:13:fb:83:d9:65:d0:6d:2f:f2\n-----BEGIN CERTIFICATE-----\nMIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs\nIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290\nMB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux\nFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h\nbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v\ndDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt\nH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9\nuMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX\nmk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX\na0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN\nE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0\nWicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD\nVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0\nJvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU\ncnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx\nIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN\nAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH\nYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5\n6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC\nNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX\nc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a\nmnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=\n-----END CERTIFICATE-----\n\n# Issuer: CN=AddTrust Public CA Root O=AddTrust AB OU=AddTrust TTP Network\n# Subject: CN=AddTrust Public CA Root O=AddTrust AB OU=AddTrust TTP Network\n# Label: \"AddTrust Public Services Root\"\n# Serial: 1\n# MD5 Fingerprint: c1:62:3e:23:c5:82:73:9c:03:59:4b:2b:e9:77:49:7f\n# SHA1 Fingerprint: 2a:b6:28:48:5e:78:fb:f3:ad:9e:79:10:dd:6b:df:99:72:2c:96:e5\n# SHA256 Fingerprint: 07:91:ca:07:49:b2:07:82:aa:d3:c7:d7:bd:0c:df:c9:48:58:35:84:3e:b2:d7:99:60:09:ce:43:ab:6c:69:27\n-----BEGIN CERTIFICATE-----\nMIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3\nb3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx\nMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB\nZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV\nBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC\nAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV\n6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX\nGCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP\ndzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH\n1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF\n62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW\nBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw\nAwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL\nMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU\ncnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv\nb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6\nIBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/\niHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao\nGEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh\n4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm\nXiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY=\n-----END CERTIFICATE-----\n\n# Issuer: CN=AddTrust Qualified CA Root O=AddTrust AB OU=AddTrust TTP Network\n# Subject: CN=AddTrust Qualified CA Root O=AddTrust AB OU=AddTrust TTP Network\n# Label: \"AddTrust Qualified Certificates Root\"\n# Serial: 1\n# MD5 Fingerprint: 27:ec:39:47:cd:da:5a:af:e2:9a:01:65:21:a9:4c:bb\n# SHA1 Fingerprint: 4d:23:78:ec:91:95:39:b5:00:7f:75:8f:03:3b:21:1e:c5:4d:8b:cf\n# SHA256 Fingerprint: 80:95:21:08:05:db:4b:bc:35:5e:44:28:d8:fd:6e:c2:cd:e3:ab:5f:b9:7a:99:42:98:8e:b8:f4:dc:d0:60:16\n-----BEGIN CERTIFICATE-----\nMIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3\nb3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1\nMzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK\nEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh\nBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq\nxBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G\n87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i\n2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U\nWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1\n0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G\nA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T\nAQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr\npGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL\nExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm\naWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv\nhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm\nhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X\ndgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3\nP6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y\niQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no\nxqE=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc.\n# Subject: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc.\n# Label: \"Entrust Root Certification Authority\"\n# Serial: 1164660820\n# MD5 Fingerprint: d6:a5:c3:ed:5d:dd:3e:00:c1:3d:87:92:1f:1d:3f:e4\n# SHA1 Fingerprint: b3:1e:b1:b7:40:e3:6c:84:02:da:dc:37:d4:4d:f5:d4:67:49:52:f9\n# SHA256 Fingerprint: 73:c1:76:43:4f:1b:c6:d5:ad:f4:5b:0e:76:e7:27:28:7c:8d:e5:76:16:c1:e6:e6:14:1a:2b:2c:bc:7d:8e:4c\n-----BEGIN CERTIFICATE-----\nMIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC\nVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0\nLm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW\nKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl\ncnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw\nNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw\nNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy\nZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV\nBAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ\nKoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo\nNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4\n4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9\nKlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI\nrb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi\n94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB\nsDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi\ngA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo\nkORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE\nvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA\nA4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t\nO1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua\nAGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP\n9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/\neu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m\n0vdXcDazv/wor3ElhVsT/h5/WrQ8\n-----END CERTIFICATE-----\n\n# Issuer: CN=GeoTrust Global CA O=GeoTrust Inc.\n# Subject: CN=GeoTrust Global CA O=GeoTrust Inc.\n# Label: \"GeoTrust Global CA\"\n# Serial: 144470\n# MD5 Fingerprint: f7:75:ab:29:fb:51:4e:b7:77:5e:ff:05:3c:99:8e:f5\n# SHA1 Fingerprint: de:28:f4:a4:ff:e5:b9:2f:a3:c5:03:d1:a3:49:a7:f9:96:2a:82:12\n# SHA256 Fingerprint: ff:85:6a:2d:25:1d:cd:88:d3:66:56:f4:50:12:67:98:cf:ab:aa:de:40:79:9c:72:2d:e4:d2:b5:db:36:a7:3a\n-----BEGIN CERTIFICATE-----\nMIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT\nMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i\nYWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG\nEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg\nR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9\n9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq\nfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv\niS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU\n1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+\nbw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW\nMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA\nephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l\nuMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn\nZ57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS\ntQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF\nPseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un\nhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV\n5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==\n-----END CERTIFICATE-----\n\n# Issuer: CN=GeoTrust Global CA 2 O=GeoTrust Inc.\n# Subject: CN=GeoTrust Global CA 2 O=GeoTrust Inc.\n# Label: \"GeoTrust Global CA 2\"\n# Serial: 1\n# MD5 Fingerprint: 0e:40:a7:6c:de:03:5d:8f:d1:0f:e4:d1:8d:f9:6c:a9\n# SHA1 Fingerprint: a9:e9:78:08:14:37:58:88:f2:05:19:b0:6d:2b:0d:2b:60:16:90:7d\n# SHA256 Fingerprint: ca:2d:82:a0:86:77:07:2f:8a:b6:76:4f:f0:35:67:6c:fe:3e:5e:32:5e:01:21:72:df:3f:92:09:6d:b7:9b:85\n-----BEGIN CERTIFICATE-----\nMIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW\nMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs\nIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG\nEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg\nR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A\nPRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8\nY2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL\nTytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL\n5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7\nS4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe\n2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE\nFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap\nEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td\nEPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv\n/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN\nA0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0\nabby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF\nI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz\n4iIprn2DQKi6bA==\n-----END CERTIFICATE-----\n\n# Issuer: CN=GeoTrust Universal CA O=GeoTrust Inc.\n# Subject: CN=GeoTrust Universal CA O=GeoTrust Inc.\n# Label: \"GeoTrust Universal CA\"\n# Serial: 1\n# MD5 Fingerprint: 92:65:58:8b:a2:1a:31:72:73:68:5c:b4:a5:7a:07:48\n# SHA1 Fingerprint: e6:21:f3:35:43:79:05:9a:4b:68:30:9d:8a:2f:74:22:15:87:ec:79\n# SHA256 Fingerprint: a0:45:9b:9f:63:b2:25:59:f5:fa:5d:4c:6d:b3:f9:f7:2f:f1:93:42:03:35:78:f0:73:bf:1d:1b:46:cb:b9:12\n-----BEGIN CERTIFICATE-----\nMIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW\nMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy\nc2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE\nBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0\nIFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV\nVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8\ncQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT\nQjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh\nF7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v\nc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w\nmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd\nVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX\nteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ\nf9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe\nBi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+\nnhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB\n/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY\nMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG\n9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc\naanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX\nIwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn\nANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z\nuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN\nPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja\nQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW\nkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9\nER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt\nDF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm\nbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw=\n-----END CERTIFICATE-----\n\n# Issuer: CN=GeoTrust Universal CA 2 O=GeoTrust Inc.\n# Subject: CN=GeoTrust Universal CA 2 O=GeoTrust Inc.\n# Label: \"GeoTrust Universal CA 2\"\n# Serial: 1\n# MD5 Fingerprint: 34:fc:b8:d0:36:db:9e:14:b3:c2:f2:db:8f:e4:94:c7\n# SHA1 Fingerprint: 37:9a:19:7b:41:85:45:35:0c:a6:03:69:f3:3c:2e:af:47:4f:20:79\n# SHA256 Fingerprint: a0:23:4f:3b:c8:52:7c:a5:62:8e:ec:81:ad:5d:69:89:5d:a5:68:0d:c9:1d:1c:b8:47:7f:33:f8:78:b9:5b:0b\n-----BEGIN CERTIFICATE-----\nMIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW\nMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy\nc2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD\nVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1\nc3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81\nWzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG\nFF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq\nXbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL\nse4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb\nKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd\nIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73\ny/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt\nhAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc\nQIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4\nLt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV\nHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV\nHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ\nKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z\ndXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ\nL1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr\nFg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo\nag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY\nT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz\nGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m\n1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV\nOCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH\n6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX\nQMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS\n-----END CERTIFICATE-----\n\n# Issuer: CN=America Online Root Certification Authority 1 O=America Online Inc.\n# Subject: CN=America Online Root Certification Authority 1 O=America Online Inc.\n# Label: \"America Online Root Certification Authority 1\"\n# Serial: 1\n# MD5 Fingerprint: 14:f1:08:ad:9d:fa:64:e2:89:e7:1c:cf:a8:ad:7d:5e\n# SHA1 Fingerprint: 39:21:c1:15:c1:5d:0e:ca:5c:cb:5b:c4:f0:7d:21:d8:05:0b:56:6a\n# SHA256 Fingerprint: 77:40:73:12:c6:3a:15:3d:5b:c0:0b:4e:51:75:9c:df:da:c2:37:dc:2a:33:b6:79:46:e9:8e:9b:fa:68:0a:e3\n-----BEGIN CERTIFICATE-----\nMIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc\nMBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP\nbmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2\nMDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft\nZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg\nQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP\nADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lk\nhsmj76CGv2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym\n1BW32J/X3HGrfpq/m44zDyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsW\nOqMFf6Dch9Wc/HKpoH145LcxVR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb\n2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQko\nO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUw\nAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAU\nAK3Zo/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB\nBQUAA4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF\nZu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAb\nLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTIdGcL+oir\noQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43gKd8hdIaC2y+C\nMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds\nsPmuujz9dLQR6FgNgLzTqIA6me11zEZ7\n-----END CERTIFICATE-----\n\n# Issuer: CN=America Online Root Certification Authority 2 O=America Online Inc.\n# Subject: CN=America Online Root Certification Authority 2 O=America Online Inc.\n# Label: \"America Online Root Certification Authority 2\"\n# Serial: 1\n# MD5 Fingerprint: d6:ed:3c:ca:e2:66:0f:af:10:43:0d:77:9b:04:09:bf\n# SHA1 Fingerprint: 85:b5:ff:67:9b:0c:79:96:1f:c8:6e:44:22:00:46:13:db:17:92:84\n# SHA256 Fingerprint: 7d:3b:46:5a:60:14:e5:26:c0:af:fc:ee:21:27:d2:31:17:27:ad:81:1c:26:84:2d:00:6a:f3:73:06:cc:80:bd\n-----BEGIN CERTIFICATE-----\nMIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc\nMBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP\nbmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2\nMDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft\nZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg\nQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC\n206B89enfHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFci\nKtZHgVdEglZTvYYUAQv8f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2\nJxhP7JsowtS013wMPgwr38oE18aO6lhOqKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9\nBoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JNRvCAOVIyD+OEsnpD8l7e\nXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0gBe4lL8B\nPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67\nXnfn6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEq\nZ8A9W6Wa6897GqidFEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZ\no2C7HK2JNDJiuEMhBnIMoVxtRsX6Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3\n+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnjB453cMor9H124HhnAgMBAAGj\nYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3OpaaEg5+31IqEj\nFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE\nAwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmn\nxPBUlgtk87FYT15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2\nLHo1YGwRgJfMqZJS5ivmae2p+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzccc\nobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXgJXUjhx5c3LqdsKyzadsXg8n33gy8\nCNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//ZoyzH1kUQ7rVyZ2OuMe\nIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgOZtMA\nDjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2F\nAjgQ5ANh1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUX\nOm/9riW99XJZZLF0KjhfGEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPb\nAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDffZ4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQl\nZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuPcX/9XhmgD0uRuMRUvAaw\nRY8mkaKO/qk=\n-----END CERTIFICATE-----\n\n# Issuer: CN=AAA Certificate Services O=Comodo CA Limited\n# Subject: CN=AAA Certificate Services O=Comodo CA Limited\n# Label: \"Comodo AAA Services root\"\n# Serial: 1\n# MD5 Fingerprint: 49:79:04:b0:eb:87:19:ac:47:b0:bc:11:51:9b:74:d0\n# SHA1 Fingerprint: d1:eb:23:a4:6d:17:d6:8f:d9:25:64:c2:f1:f1:60:17:64:d8:e3:49\n# SHA256 Fingerprint: d7:a7:a0:fb:5d:7e:27:31:d7:71:e9:48:4e:bc:de:f7:1d:5f:0c:3e:0a:29:48:78:2b:c8:3e:e0:ea:69:9e:f4\n-----BEGIN CERTIFICATE-----\nMIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb\nMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow\nGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj\nYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL\nMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE\nBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM\nGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP\nADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua\nBtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe\n3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4\nYgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR\nrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm\nez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU\noBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF\nMAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v\nQUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t\nb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF\nAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q\nGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz\nRt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2\nG9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi\nl2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3\nsmPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Secure Certificate Services O=Comodo CA Limited\n# Subject: CN=Secure Certificate Services O=Comodo CA Limited\n# Label: \"Comodo Secure Services root\"\n# Serial: 1\n# MD5 Fingerprint: d3:d9:bd:ae:9f:ac:67:24:b3:c8:1b:52:e1:b9:a9:bd\n# SHA1 Fingerprint: 4a:65:d5:f4:1d:ef:39:b8:b8:90:4a:4a:d3:64:81:33:cf:c7:a1:d1\n# SHA256 Fingerprint: bd:81:ce:3b:4f:65:91:d1:1a:67:b5:fc:7a:47:fd:ef:25:52:1b:f9:aa:4e:18:b9:e3:df:2e:34:a7:80:3b:e8\n-----BEGIN CERTIFICATE-----\nMIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEb\nMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow\nGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRp\nZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVow\nfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAiBgNV\nBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEB\nBQADggEPADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPM\ncm3ye5drswfxdySRXyWP9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3S\nHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996\nCF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk\n3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz\n6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNV\nHQ4EFgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud\nEwEB/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv\nY2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRw\nOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww\nDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm4J4oqF7Tt/Q0\n5qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj\nZ55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtI\ngKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJ\naD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDl\nizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1HRR3B7Hzs/Sk=\n-----END CERTIFICATE-----\n\n# Issuer: CN=Trusted Certificate Services O=Comodo CA Limited\n# Subject: CN=Trusted Certificate Services O=Comodo CA Limited\n# Label: \"Comodo Trusted Services root\"\n# Serial: 1\n# MD5 Fingerprint: 91:1b:3f:6e:cd:9e:ab:ee:07:fe:1f:71:d2:b3:61:27\n# SHA1 Fingerprint: e1:9f:e3:0e:8b:84:60:9e:80:9b:17:0d:72:a8:c5:ba:6e:14:09:bd\n# SHA256 Fingerprint: 3f:06:e5:56:81:d4:96:f5:be:16:9e:b5:38:9f:9f:2b:8f:f6:1e:17:08:df:68:81:72:48:49:cd:5d:27:cb:69\n-----BEGIN CERTIFICATE-----\nMIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEb\nMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow\nGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0\naWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTla\nMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO\nBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUwIwYD\nVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWW\nfnJSoBVC21ndZHoa0Lh73TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMt\nTGo87IvDktJTdyR0nAducPy9C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7IL\nfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW\n1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7\nkUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0G\nA1UdDgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYD\nVR0TAQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v\nZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRo\ndHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMu\nY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8NtwuleGFTQQuS9/\nHrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32\npSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxIS\njBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+\nxqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/Atyjcn\ndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O9y5Xt5hwXsjEeLBi\n-----END CERTIFICATE-----\n\n# Issuer: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com\n# Subject: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com\n# Label: \"UTN DATACorp SGC Root CA\"\n# Serial: 91374294542884689855167577680241077609\n# MD5 Fingerprint: b3:a5:3e:77:21:6d:ac:4a:c0:c9:fb:d5:41:3d:ca:06\n# SHA1 Fingerprint: 58:11:9f:0e:12:82:87:ea:50:fd:d9:87:45:6f:4f:78:dc:fa:d6:d4\n# SHA256 Fingerprint: 85:fb:2f:91:dd:12:27:5a:01:45:b6:36:53:4f:84:02:4a:d6:8b:69:b8:ee:88:68:4f:f7:11:37:58:05:b3:48\n-----BEGIN CERTIFICATE-----\nMIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCB\nkzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug\nQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho\ndHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw\nIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBaMIGTMQswCQYDVQQG\nEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD\nVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cu\ndXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6\nE5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZ\nD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK\n4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykq\nlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulW\nbfXv33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQAB\no4GrMIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT\nMtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3Js\nLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUEIzAhBggr\nBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3DQEBBQUAA4IB\nAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft\nGzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyj\nj98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVH\nKWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv\n2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3\nmfnGV/TJVTl4uix5yaaIK/QI\n-----END CERTIFICATE-----\n\n# Issuer: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com\n# Subject: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com\n# Label: \"UTN USERFirst Hardware Root CA\"\n# Serial: 91374294542884704022267039221184531197\n# MD5 Fingerprint: 4c:56:41:e5:0d:bb:2b:e8:ca:a3:ed:18:08:ad:43:39\n# SHA1 Fingerprint: 04:83:ed:33:99:ac:36:08:05:87:22:ed:bc:5e:46:00:e3:be:f9:d7\n# SHA256 Fingerprint: 6e:a5:47:41:d0:04:66:7e:ed:1b:48:16:63:4a:a3:a7:9e:6e:4b:96:95:0f:82:79:da:fc:8d:9b:d8:81:21:37\n-----BEGIN CERTIFICATE-----\nMIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB\nlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug\nQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho\ndHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt\nSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG\nA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe\nMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v\nd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh\ncmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn\n0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ\nM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a\nMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd\noI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI\nDsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy\noUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD\nVR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0\ndHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy\nbDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF\nBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM\n//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli\nCE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE\nCJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t\n3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS\nKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA==\n-----END CERTIFICATE-----\n\n# Issuer: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com\n# Subject: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com\n# Label: \"XRamp Global CA Root\"\n# Serial: 107108908803651509692980124233745014957\n# MD5 Fingerprint: a1:0b:44:b3:ca:10:d8:00:6e:9d:0f:d8:0f:92:0a:d1\n# SHA1 Fingerprint: b8:01:86:d1:eb:9c:86:a5:41:04:cf:30:54:f3:4c:52:b7:e5:58:c6\n# SHA256 Fingerprint: ce:cd:dc:90:50:99:d8:da:df:c5:b1:d2:09:b7:37:cb:e2:c1:8c:fb:2c:10:c0:ff:0b:cf:0d:32:86:fc:1a:a2\n-----BEGIN CERTIFICATE-----\nMIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB\ngjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk\nMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY\nUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx\nNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3\ndy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy\ndmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB\ndXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6\n38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP\nKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q\nDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4\nqEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa\nJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi\nPvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P\nBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs\njVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0\neS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD\nggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR\nvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt\nqZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa\nIR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy\ni6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ\nO+7ETPTsJ3xCwnR8gooJybQDJbw=\n-----END CERTIFICATE-----\n\n# Issuer: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority\n# Subject: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority\n# Label: \"Go Daddy Class 2 CA\"\n# Serial: 0\n# MD5 Fingerprint: 91:de:06:25:ab:da:fd:32:17:0c:bb:25:17:2a:84:67\n# SHA1 Fingerprint: 27:96:ba:e6:3f:18:01:e2:77:26:1b:a0:d7:77:70:02:8f:20:ee:e4\n# SHA256 Fingerprint: c3:84:6b:f2:4b:9e:93:ca:64:27:4c:0e:c6:7c:1e:cc:5e:02:4f:fc:ac:d2:d7:40:19:35:0e:81:fe:54:6a:e4\n-----BEGIN CERTIFICATE-----\nMIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh\nMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE\nYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3\nMDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo\nZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg\nMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN\nADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA\nPVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w\nwdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi\nEqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY\navx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+\nYihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE\nsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h\n/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5\nIEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj\nYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD\nggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy\nOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P\nTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ\nHmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER\ndEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf\nReYNnyicsbkqWletNw+vHX/bvZ8=\n-----END CERTIFICATE-----\n\n# Issuer: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority\n# Subject: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority\n# Label: \"Starfield Class 2 CA\"\n# Serial: 0\n# MD5 Fingerprint: 32:4a:4b:bb:c8:63:69:9b:be:74:9a:c6:dd:1d:46:24\n# SHA1 Fingerprint: ad:7e:1c:28:b0:64:ef:8f:60:03:40:20:14:c3:d0:e3:37:0e:b5:8a\n# SHA256 Fingerprint: 14:65:fa:20:53:97:b8:76:fa:a6:f0:a9:95:8e:55:90:e4:0f:cc:7f:aa:4f:b7:c2:c8:67:75:21:fb:5f:b6:58\n-----BEGIN CERTIFICATE-----\nMIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl\nMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp\nU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw\nNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE\nChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp\nZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3\nDQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf\n8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN\n+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0\nX9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa\nK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA\n1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G\nA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR\nzt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0\nYXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD\nbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w\nDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3\nL7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D\neruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl\nxy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp\nVSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY\nWQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q=\n-----END CERTIFICATE-----\n\n# Issuer: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing\n# Subject: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing\n# Label: \"StartCom Certification Authority\"\n# Serial: 1\n# MD5 Fingerprint: 22:4d:8f:8a:fc:f7:35:c2:bb:57:34:90:7b:8b:22:16\n# SHA1 Fingerprint: 3e:2b:f7:f2:03:1b:96:f3:8c:e6:c4:d8:a8:5d:3e:2d:58:47:6a:0f\n# SHA256 Fingerprint: c7:66:a9:be:f2:d4:07:1c:86:3a:31:aa:49:20:e8:13:b2:d1:98:60:8c:b7:b7:cf:e2:11:43:b8:36:df:09:ea\n-----BEGIN CERTIFICATE-----\nMIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW\nMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg\nQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh\ndGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9\nMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi\nU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh\ncnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk\npMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf\nOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C\nJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT\nKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi\nHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM\nAv+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w\n+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+\nGkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3\nZzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B\n26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID\nAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE\nFE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j\nZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js\nLnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM\nBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0\nY29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy\ndGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh\ncnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh\nYmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg\ndGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp\nbGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ\nYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT\nTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ\n9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8\njhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW\nFjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz\newT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1\nny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L\nEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu\nL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq\nyvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC\nO3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V\num0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh\nNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com\n# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com\n# Label: \"DigiCert Assured ID Root CA\"\n# Serial: 17154717934120587862167794914071425081\n# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72\n# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43\n# SHA256 Fingerprint: 3e:90:99:b5:01:5e:8f:48:6c:00:bc:ea:9d:11:1e:e7:21:fa:ba:35:5a:89:bc:f1:df:69:56:1e:3d:c6:32:5c\n-----BEGIN CERTIFICATE-----\nMIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv\nb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG\nEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl\ncnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c\nJpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP\nmDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+\nwRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4\nVYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/\nAUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB\nAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW\nBBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun\npyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC\ndWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf\nfwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm\nNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx\nH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe\n+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com\n# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com\n# Label: \"DigiCert Global Root CA\"\n# Serial: 10944719598952040374951832963794454346\n# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e\n# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36\n# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61\n-----BEGIN CERTIFICATE-----\nMIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\nQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\nCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\nnh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\nT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\ngdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\nTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\nDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\nhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\nPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\nYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\nCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com\n# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com\n# Label: \"DigiCert High Assurance EV Root CA\"\n# Serial: 3553400076410547919724730734378100087\n# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a\n# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25\n# SHA256 Fingerprint: 74:31:e5:f4:c3:c1:ce:46:90:77:4f:0b:61:e0:54:40:88:3b:a9:a0:1e:d0:0b:a6:ab:d7:80:6e:d3:b1:18:cf\n-----BEGIN CERTIFICATE-----\nMIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\nZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL\nMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3\nLmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug\nRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm\n+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW\nPNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM\nxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB\nIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3\nhzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg\nEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF\nMAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA\nFLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec\nnzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z\neM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF\nhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2\nYzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe\nvEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep\n+OkuE6N36B9K\n-----END CERTIFICATE-----\n\n# Issuer: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc.\n# Subject: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc.\n# Label: \"GeoTrust Primary Certification Authority\"\n# Serial: 32798226551256963324313806436981982369\n# MD5 Fingerprint: 02:26:c3:01:5e:08:30:37:43:a9:d0:7d:cf:37:e6:bf\n# SHA1 Fingerprint: 32:3c:11:8e:1b:f7:b8:b6:52:54:e2:e2:10:0d:d6:02:90:37:f0:96\n# SHA256 Fingerprint: 37:d5:10:06:c5:12:ea:ab:62:64:21:f1:ec:8c:92:01:3f:c5:f8:2a:e9:8e:e5:33:eb:46:19:b8:de:b4:d0:6c\n-----BEGIN CERTIFICATE-----\nMIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY\nMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo\nR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx\nMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK\nEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp\nZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9\nAWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA\nZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0\n7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W\nkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI\nmO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G\nA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ\nKoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1\n6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl\n4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K\noKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj\nUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU\nAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=\n-----END CERTIFICATE-----\n\n# Issuer: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only\n# Subject: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only\n# Label: \"thawte Primary Root CA\"\n# Serial: 69529181992039203566298953787712940909\n# MD5 Fingerprint: 8c:ca:dc:0b:22:ce:f5:be:72:ac:41:1a:11:a8:d8:12\n# SHA1 Fingerprint: 91:c6:d6:ee:3e:8a:c8:63:84:e5:48:c2:99:29:5c:75:6c:81:7b:81\n# SHA256 Fingerprint: 8d:72:2f:81:a9:c1:13:c0:79:1d:f1:36:a2:96:6d:b2:6c:95:0a:97:1d:b4:6b:41:99:f4:ea:54:b7:8b:fb:9f\n-----BEGIN CERTIFICATE-----\nMIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB\nqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf\nQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw\nMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV\nBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw\nNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j\nLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG\nA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl\nIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs\nW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta\n3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk\n6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6\nSk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J\nNqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA\nMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP\nr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU\nDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz\nYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX\nxPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2\n/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/\nLHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7\njVaMaA==\n-----END CERTIFICATE-----\n\n# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only\n# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only\n# Label: \"VeriSign Class 3 Public Primary Certification Authority - G5\"\n# Serial: 33037644167568058970164719475676101450\n# MD5 Fingerprint: cb:17:e4:31:67:3e:e2:09:fe:45:57:93:f3:0a:fa:1c\n# SHA1 Fingerprint: 4e:b6:d5:78:49:9b:1c:cf:5f:58:1e:ad:56:be:3d:9b:67:44:a5:e5\n# SHA256 Fingerprint: 9a:cf:ab:7e:43:c8:d8:80:d0:6b:26:2a:94:de:ee:e4:b4:65:99:89:c3:d0:ca:f1:9b:af:64:05:e4:1a:b7:df\n-----BEGIN CERTIFICATE-----\nMIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB\nyjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\nExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp\nU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW\nZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0\naG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL\nMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW\nZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln\nbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp\nU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y\naXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1\nnmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex\nt0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz\nSdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG\nBO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+\nrCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/\nNIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E\nBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH\nBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy\naXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv\nMzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE\np6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y\n5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK\nWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ\n4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N\nhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq\n-----END CERTIFICATE-----\n\n# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited\n# Subject: CN=COMODO Certification Authority O=COMODO CA Limited\n# Label: \"COMODO Certification Authority\"\n# Serial: 104350513648249232941998508985834464573\n# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75\n# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b\n# SHA256 Fingerprint: 0c:2c:d6:3d:f7:80:6f:a3:99:ed:e8:09:11:6b:57:5b:f8:79:89:f0:65:18:f9:80:8c:86:05:03:17:8b:af:66\n-----BEGIN CERTIFICATE-----\nMIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw\nMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0\naG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3\nUcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI\n2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8\nQ5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp\n+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+\nDT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O\nnKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW\n/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g\nPKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u\nQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY\nSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv\nIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/\nRxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4\nzJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd\nBA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB\nZQ==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C.\n# Subject: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C.\n# Label: \"Network Solutions Certificate Authority\"\n# Serial: 116697915152937497490437556386812487904\n# MD5 Fingerprint: d3:f3:a6:16:c0:fa:6b:1d:59:b1:2d:96:4d:0e:11:2e\n# SHA1 Fingerprint: 74:f8:a3:c3:ef:e7:b3:90:06:4b:83:90:3c:21:64:60:20:e5:df:ce\n# SHA256 Fingerprint: 15:f0:ba:00:a3:ac:7a:f3:ac:88:4c:07:2b:10:11:a0:77:bd:77:c0:97:f4:01:64:b2:f8:59:8a:bd:83:86:0c\n-----BEGIN CERTIFICATE-----\nMIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi\nMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu\nMTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp\ndHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV\nUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO\nZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz\nc7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP\nOCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl\nmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF\nBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4\nqY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw\ngZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB\nBjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu\nbmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp\ndHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8\n6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/\nh1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH\n/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv\nwKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN\npGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey\n-----END CERTIFICATE-----\n\n# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited\n# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited\n# Label: \"COMODO ECC Certification Authority\"\n# Serial: 41578283867086692638256921589707938090\n# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23\n# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11\n# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7\n-----BEGIN CERTIFICATE-----\nMIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL\nMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE\nBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT\nIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw\nMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy\nZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N\nT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv\nbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR\nFtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J\ncfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW\nBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/\nBAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm\nfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv\nGDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=\n-----END CERTIFICATE-----\n\n# Issuer: CN=TC TrustCenter Class 2 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 2 CA\n# Subject: CN=TC TrustCenter Class 2 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 2 CA\n# Label: \"TC TrustCenter Class 2 CA II\"\n# Serial: 941389028203453866782103406992443\n# MD5 Fingerprint: ce:78:33:5c:59:78:01:6e:18:ea:b9:36:a0:b9:2e:23\n# SHA1 Fingerprint: ae:50:83:ed:7c:f4:5c:bc:8f:61:c6:21:fe:68:5d:79:42:21:15:6e\n# SHA256 Fingerprint: e6:b8:f8:76:64:85:f8:07:ae:7f:8d:ac:16:70:46:1f:07:c0:a1:3e:ef:3a:1f:f7:17:53:8d:7a:ba:d3:91:b4\n-----BEGIN CERTIFICATE-----\nMIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjEL\nMAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV\nBAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0\nQ2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYwMTEyMTQzODQzWhcNMjUxMjMxMjI1\nOTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i\nSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UEAxMc\nVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jf\ntMjWQ+nEdVl//OEd+DFwIxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKg\nuNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2J\nXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQXa7pIXSSTYtZgo+U4+lK\n8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7uSNQZu+99\n5OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1Ud\nEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3\nkUrL84J6E1wIqzCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy\ndXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6\nLy93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz\nJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290\nY2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u\nTGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iS\nGNn3Bzn1LL4GdXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprt\nZjluS5TmVfwLG4t3wVMTZonZKNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8\nau0WOB9/WIFaGusyiC2y8zl3gK9etmF1KdsjTYjKUCjLhdLTEKJZbtOTVAB6okaV\nhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kPJOzHdiEoZa5X6AeI\ndUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfkvQ==\n-----END CERTIFICATE-----\n\n# Issuer: CN=TC TrustCenter Class 3 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 3 CA\n# Subject: CN=TC TrustCenter Class 3 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 3 CA\n# Label: \"TC TrustCenter Class 3 CA II\"\n# Serial: 1506523511417715638772220530020799\n# MD5 Fingerprint: 56:5f:aa:80:61:12:17:f6:67:21:e6:2b:6d:61:56:8e\n# SHA1 Fingerprint: 80:25:ef:f4:6e:70:c8:d4:72:24:65:84:fe:40:3b:8a:8d:6a:db:f5\n# SHA256 Fingerprint: 8d:a0:84:fc:f9:9c:e0:77:22:f8:9b:32:05:93:98:06:fa:5c:b8:11:e1:c8:13:f6:a1:08:c7:d3:36:b3:40:8e\n-----BEGIN CERTIFICATE-----\nMIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjEL\nMAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV\nBAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0\nQ2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYwMTEyMTQ0MTU3WhcNMjUxMjMxMjI1\nOTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i\nSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UEAxMc\nVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJW\nHt4bNwcwIi9v8Qbxq63WyKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+Q\nVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo6SI7dYnWRBpl8huXJh0obazovVkdKyT2\n1oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZuV3bOx4a+9P/FRQI2Alq\nukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk2ZyqBwi1\nRb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1Ud\nEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NX\nXAek0CSnwPIA1DCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy\ndXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6\nLy93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz\nJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290\nY2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u\nTGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlN\nirTzwppVMXzEO2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8\nTtXqluJucsG7Kv5sbviRmEb8yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6\ng0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9IJqDnxrcOfHFcqMRA/07QlIp2+gB\n95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal092Y+tTmBvTwtiBj\nS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc5A==\n-----END CERTIFICATE-----\n\n# Issuer: CN=TC TrustCenter Universal CA I O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA\n# Subject: CN=TC TrustCenter Universal CA I O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA\n# Label: \"TC TrustCenter Universal CA I\"\n# Serial: 601024842042189035295619584734726\n# MD5 Fingerprint: 45:e1:a5:72:c5:a9:36:64:40:9e:f5:e4:58:84:67:8c\n# SHA1 Fingerprint: 6b:2f:34:ad:89:58:be:62:fd:b0:6b:5c:ce:bb:9d:d9:4f:4e:39:f3\n# SHA256 Fingerprint: eb:f3:c0:2a:87:89:b1:fb:7d:51:19:95:d6:63:b7:29:06:d9:13:ce:0d:5e:10:56:8a:8a:77:e2:58:61:67:e7\n-----BEGIN CERTIFICATE-----\nMIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTEL\nMAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV\nBAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1\nc3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcNMDYwMzIyMTU1NDI4WhcNMjUxMjMx\nMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIg\nR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYwJAYD\nVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSR\nJJZ4Hgmgm5qVSkr1YnwCqMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3T\nfCZdzHd55yx4Oagmcw6iXSVphU9VDprvxrlE4Vc93x9UIuVvZaozhDrzznq+VZeu\njRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtwag+1m7Z3W0hZneTvWq3z\nwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9OgdwZu5GQ\nfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYD\nVR0jBBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAO\nBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0G\nCSqGSIb3DQEBBQUAA4IBAQAo0uCG1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X1\n7caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/CyvwbZ71q+s2IhtNerNXxTPqYn\n8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3ghUJGooWMNjs\nydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT\nujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/\n2TYcuiUaUj0a7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY\n-----END CERTIFICATE-----\n\n# Issuer: CN=Cybertrust Global Root O=Cybertrust, Inc\n# Subject: CN=Cybertrust Global Root O=Cybertrust, Inc\n# Label: \"Cybertrust Global Root\"\n# Serial: 4835703278459682877484360\n# MD5 Fingerprint: 72:e4:4a:87:e3:69:40:80:77:ea:bc:e3:f4:ff:f0:e1\n# SHA1 Fingerprint: 5f:43:e5:b1:bf:f8:78:8c:ac:1c:c7:ca:4a:9a:c6:22:2b:cc:34:c6\n# SHA256 Fingerprint: 96:0a:df:00:63:e9:63:56:75:0c:29:65:dd:0a:08:67:da:0b:9c:bd:6e:77:71:4a:ea:fb:23:49:ab:39:3d:a3\n-----BEGIN CERTIFICATE-----\nMIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG\nA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh\nbCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE\nChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS\nb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5\n7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS\nJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y\nHLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP\nt3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz\nFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY\nXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/\nMB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw\nhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js\nMB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA\nA4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj\nWqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx\nXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o\nomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc\nA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW\nWL1WMRJOEcgh4LMRkWXbtKaIOM5V\n-----END CERTIFICATE-----\n\n# Issuer: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only\n# Subject: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only\n# Label: \"GeoTrust Primary Certification Authority - G3\"\n# Serial: 28809105769928564313984085209975885599\n# MD5 Fingerprint: b5:e8:34:36:c9:10:44:58:48:70:6d:2e:83:d4:b8:05\n# SHA1 Fingerprint: 03:9e:ed:b8:0b:e7:a0:3c:69:53:89:3b:20:d2:d9:32:3a:4c:2a:fd\n# SHA256 Fingerprint: b4:78:b8:12:25:0d:f8:78:63:5c:2a:a7:ec:7d:15:5e:aa:62:5e:e8:29:16:e2:cd:29:43:61:88:6c:d1:fb:d4\n-----BEGIN CERTIFICATE-----\nMIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB\nmDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT\nMChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s\neTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv\ncml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ\nBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg\nMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0\nBgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg\nLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz\n+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm\nhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn\n5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W\nJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL\nDmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC\nhuOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw\nHQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB\nAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB\nzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN\nkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD\nAWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH\nSJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G\nspki4cErx5z481+oghLrGREt\n-----END CERTIFICATE-----\n\n# Issuer: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only\n# Subject: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only\n# Label: \"thawte Primary Root CA - G2\"\n# Serial: 71758320672825410020661621085256472406\n# MD5 Fingerprint: 74:9d:ea:60:24:c4:fd:22:53:3e:cc:3a:72:d9:29:4f\n# SHA1 Fingerprint: aa:db:bc:22:23:8f:c4:01:a1:27:bb:38:dd:f4:1d:db:08:9e:f0:12\n# SHA256 Fingerprint: a4:31:0d:50:af:18:a6:44:71:90:37:2a:86:af:af:8b:95:1f:fb:43:1d:83:7f:1e:56:88:b4:59:71:ed:15:57\n-----BEGIN CERTIFICATE-----\nMIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL\nMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp\nIDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi\nBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw\nMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh\nd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig\nYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v\ndCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/\nBebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6\npapu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E\nBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K\nDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3\nKMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox\nXZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==\n-----END CERTIFICATE-----\n\n# Issuer: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only\n# Subject: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only\n# Label: \"thawte Primary Root CA - G3\"\n# Serial: 127614157056681299805556476275995414779\n# MD5 Fingerprint: fb:1b:5d:43:8a:94:cd:44:c6:76:f2:43:4b:47:e7:31\n# SHA1 Fingerprint: f1:8b:53:8d:1b:e9:03:b6:a6:f0:56:43:5b:17:15:89:ca:f3:6b:f2\n# SHA256 Fingerprint: 4b:03:f4:58:07:ad:70:f2:1b:fc:2c:ae:71:c9:fd:e4:60:4c:06:4c:f5:ff:b6:86:ba:e5:db:aa:d7:fd:d3:4c\n-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB\nrjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf\nQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw\nMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV\nBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa\nFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl\nLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u\nMTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl\nZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm\ngcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8\nYZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf\nb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9\n9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S\nzhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk\nOQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV\nHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA\n2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW\noCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu\nt8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c\nKUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM\nm7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu\nMdRAGmI0Nj81Aa6sY6A=\n-----END CERTIFICATE-----\n\n# Issuer: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only\n# Subject: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only\n# Label: \"GeoTrust Primary Certification Authority - G2\"\n# Serial: 80682863203381065782177908751794619243\n# MD5 Fingerprint: 01:5e:d8:6b:bd:6f:3d:8e:a1:31:f8:12:e0:98:73:6a\n# SHA1 Fingerprint: 8d:17:84:d5:37:f3:03:7d:ec:70:fe:57:8b:51:9a:99:e6:10:d7:b0\n# SHA256 Fingerprint: 5e:db:7a:c4:3b:82:a0:6a:87:61:e8:d7:be:49:79:eb:f2:61:1f:7d:d7:9b:f9:1c:1c:6b:56:6a:21:9e:d7:66\n-----BEGIN CERTIFICATE-----\nMIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL\nMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj\nKSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2\nMDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0\neSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV\nBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw\nNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV\nBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH\nMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL\nSo17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal\ntJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO\nBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG\nCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT\nqQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz\nrD6ogRLQy7rQkgu2npaqBA+K\n-----END CERTIFICATE-----\n\n# Issuer: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only\n# Subject: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only\n# Label: \"VeriSign Universal Root Certification Authority\"\n# Serial: 85209574734084581917763752644031726877\n# MD5 Fingerprint: 8e:ad:b5:01:aa:4d:81:e4:8c:1d:d1:e1:14:00:95:19\n# SHA1 Fingerprint: 36:79:ca:35:66:87:72:30:4d:30:a5:fb:87:3b:0f:a7:7b:b7:0d:54\n# SHA256 Fingerprint: 23:99:56:11:27:a5:71:25:de:8c:ef:ea:61:0d:df:2f:a0:78:b5:c8:06:7f:4e:82:82:90:bf:b8:60:e8:4b:3c\n-----BEGIN CERTIFICATE-----\nMIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB\nvTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\nExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp\nU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W\nZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe\nFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX\nMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0\nIE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y\nIGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh\nbCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF\nAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF\n9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH\nH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H\nLL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN\n/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT\nrJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud\nEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw\nWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs\nexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud\nDgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4\nsAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+\nseQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz\n4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+\nBxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR\nlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3\n7M2CYfE45k+XmCpajQ==\n-----END CERTIFICATE-----\n\n# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only\n# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only\n# Label: \"VeriSign Class 3 Public Primary Certification Authority - G4\"\n# Serial: 63143484348153506665311985501458640051\n# MD5 Fingerprint: 3a:52:e1:e7:fd:6f:3a:e3:6f:f3:6f:99:1b:f9:22:41\n# SHA1 Fingerprint: 22:d5:d8:df:8f:02:31:d1:8d:f7:9d:b7:cf:8a:2d:64:c9:3f:6c:3a\n# SHA256 Fingerprint: 69:dd:d7:ea:90:bb:57:c9:3e:13:5d:c8:5e:a6:fc:d5:48:0b:60:32:39:bd:c4:54:fc:75:8b:2a:26:cf:7f:79\n-----BEGIN CERTIFICATE-----\nMIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL\nMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW\nZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln\nbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp\nU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y\naXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG\nA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp\nU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg\nSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln\nbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5\nIC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm\nGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve\nfLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw\nAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ\naW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj\naHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW\nkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC\n4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga\nFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==\n-----END CERTIFICATE-----\n\n# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3\n# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3\n# Label: \"GlobalSign Root CA - R3\"\n# Serial: 4835703278459759426209954\n# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28\n# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad\n# SHA256 Fingerprint: cb:b5:22:d7:b7:f1:27:ad:6a:01:13:86:5b:df:1c:d4:10:2e:7d:07:59:af:63:5a:7c:f4:72:0d:c9:63:c5:3b\n-----BEGIN CERTIFICATE-----\nMIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4\nMTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG\nA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI\nhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8\nRgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT\ngHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm\nKPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd\nQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ\nXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw\nDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o\nLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU\nRUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp\njjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK\n6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX\nmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs\nMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH\nWD9f\n-----END CERTIFICATE-----\n\n# Issuer: CN=TC TrustCenter Universal CA III O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA\n# Subject: CN=TC TrustCenter Universal CA III O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA\n# Label: \"TC TrustCenter Universal CA III\"\n# Serial: 2010889993983507346460533407902964\n# MD5 Fingerprint: 9f:dd:db:ab:ff:8e:ff:45:21:5f:f0:6c:9d:8f:fe:2b\n# SHA1 Fingerprint: 96:56:cd:7b:57:96:98:95:d0:e1:41:46:68:06:fb:b8:c6:11:06:87\n# SHA256 Fingerprint: 30:9b:4a:87:f6:ca:56:c9:31:69:aa:a9:9c:6d:98:88:54:d7:89:2b:d5:43:7e:2d:07:b2:9c:be:da:55:d3:5d\n-----BEGIN CERTIFICATE-----\nMIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezEL\nMAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV\nBAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1\nc3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAeFw0wOTA5MDkwODE1MjdaFw0yOTEy\nMzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNUQyBUcnVzdENlbnRl\nciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0ExKDAm\nBgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqG\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF\n5+cvAqBNLaT6hdqbJYUtQCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYv\nDIRlzg9uwliT6CwLOunBjvvya8o84pxOjuT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8v\nzArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+EutCHnNaYlAJ/Uqwa1D7KRT\nyGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1M4BDj5yj\ndipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBh\nMB8GA1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMB\nAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI\n4jANBgkqhkiG9w0BAQUFAAOCAQEAg8ev6n9NCjw5sWi+e22JLumzCecYV42Fmhfz\ndkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+KGwWaODIl0YgoGhnYIg5IFHY\naAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhKBgePxLcHsU0G\nDeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV\nCIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPH\nLQNjO9Po5KIqwoIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg==\n-----END CERTIFICATE-----\n\n# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc.\n# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc.\n# Label: \"Go Daddy Root Certificate Authority - G2\"\n# Serial: 0\n# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01\n# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b\n# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da\n-----BEGIN CERTIFICATE-----\nMIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx\nEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT\nEUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp\nZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz\nNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH\nEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE\nAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD\nE6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH\n/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy\nDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh\nGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR\ntDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA\nAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE\nFDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX\nWWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu\n9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr\ngIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo\n2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO\nLPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI\n4uJEvlz36hz1\n-----END CERTIFICATE-----\n\n# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc.\n# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc.\n# Label: \"Starfield Root Certificate Authority - G2\"\n# Serial: 0\n# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96\n# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e\n# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5\n-----BEGIN CERTIFICATE-----\nMIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx\nEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT\nHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs\nZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw\nMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6\nb25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj\naG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp\nY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg\nnLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1\nHOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N\nHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN\ndloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0\nHZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO\nBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G\nCSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU\nsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3\n4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg\n8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K\npL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1\nmMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0\n-----END CERTIFICATE-----\n\n# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc.\n# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc.\n# Label: \"Starfield Services Root Certificate Authority - G2\"\n# Serial: 0\n# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2\n# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f\n# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5\n-----BEGIN CERTIFICATE-----\nMIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx\nEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT\nHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs\nZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5\nMDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD\nVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy\nZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy\ndmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI\nhvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p\nOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2\n8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K\nTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe\nhRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk\n6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw\nDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q\nAdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI\nbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB\nve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z\nqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd\niEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn\n0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN\nsSi6\n-----END CERTIFICATE-----\n\n# Issuer: CN=AffirmTrust Commercial O=AffirmTrust\n# Subject: CN=AffirmTrust Commercial O=AffirmTrust\n# Label: \"AffirmTrust Commercial\"\n# Serial: 8608355977964138876\n# MD5 Fingerprint: 82:92:ba:5b:ef:cd:8a:6f:a6:3d:55:f9:84:f6:d6:b7\n# SHA1 Fingerprint: f9:b5:b6:32:45:5f:9c:be:ec:57:5f:80:dc:e9:6e:2c:c7:b2:78:b7\n# SHA256 Fingerprint: 03:76:ab:1d:54:c5:f9:80:3c:e4:b2:e2:01:a0:ee:7e:ef:7b:57:b6:36:e8:a9:3c:9b:8d:48:60:c9:6f:5f:a7\n-----BEGIN CERTIFICATE-----\nMIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE\nBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz\ndCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL\nMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp\ncm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP\nHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr\nba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL\nMeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1\nyHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr\nVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/\nnx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ\nKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG\nXUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj\nvbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt\nZ8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g\nN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC\nnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=\n-----END CERTIFICATE-----\n\n# Issuer: CN=AffirmTrust Networking O=AffirmTrust\n# Subject: CN=AffirmTrust Networking O=AffirmTrust\n# Label: \"AffirmTrust Networking\"\n# Serial: 8957382827206547757\n# MD5 Fingerprint: 42:65:ca:be:01:9a:9a:4c:a9:8c:41:49:cd:c0:d5:7f\n# SHA1 Fingerprint: 29:36:21:02:8b:20:ed:02:f5:66:c5:32:d1:d6:ed:90:9f:45:00:2f\n# SHA256 Fingerprint: 0a:81:ec:5a:92:97:77:f1:45:90:4a:f3:8d:5d:50:9f:66:b5:e2:c5:8f:cd:b5:31:05:8b:0e:17:f3:f0:b4:1b\n-----BEGIN CERTIFICATE-----\nMIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE\nBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz\ndCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL\nMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp\ncm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y\nYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua\nkCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL\nQESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp\n6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG\nyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i\nQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ\nKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO\ntDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu\nQY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ\nLgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u\nolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48\nx3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=\n-----END CERTIFICATE-----\n\n# Issuer: CN=AffirmTrust Premium O=AffirmTrust\n# Subject: CN=AffirmTrust Premium O=AffirmTrust\n# Label: \"AffirmTrust Premium\"\n# Serial: 7893706540734352110\n# MD5 Fingerprint: c4:5d:0e:48:b6:ac:28:30:4e:0a:bc:f9:38:16:87:57\n# SHA1 Fingerprint: d8:a6:33:2c:e0:03:6f:b1:85:f6:63:4f:7d:6a:06:65:26:32:28:27\n# SHA256 Fingerprint: 70:a7:3f:7f:37:6b:60:07:42:48:90:45:34:b1:14:82:d5:bf:0e:69:8e:cc:49:8d:f5:25:77:eb:f2:e9:3b:9a\n-----BEGIN CERTIFICATE-----\nMIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE\nBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz\ndCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG\nA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U\ncnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf\nqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ\nJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ\n+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS\ns8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5\nHMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7\n70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG\nV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S\nqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S\n5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia\nC1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX\nOwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE\nFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/\nBAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2\nKI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg\nNt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B\n8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ\nMKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc\n0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ\nu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF\nu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH\nYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8\nGKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO\nRtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e\nKeC2uAloGRwYQw==\n-----END CERTIFICATE-----\n\n# Issuer: CN=AffirmTrust Premium ECC O=AffirmTrust\n# Subject: CN=AffirmTrust Premium ECC O=AffirmTrust\n# Label: \"AffirmTrust Premium ECC\"\n# Serial: 8401224907861490260\n# MD5 Fingerprint: 64:b0:09:55:cf:b1:d5:99:e2:be:13:ab:a6:5d:ea:4d\n# SHA1 Fingerprint: b8:23:6b:00:2f:1d:16:86:53:01:55:6c:11:a4:37:ca:eb:ff:c3:bb\n# SHA256 Fingerprint: bd:71:fd:f6:da:97:e4:cf:62:d1:64:7a:dd:25:81:b0:7d:79:ad:f8:39:7e:b4:ec:ba:9c:5e:84:88:82:14:23\n-----BEGIN CERTIFICATE-----\nMIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC\nVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ\ncmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ\nBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt\nVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D\n0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9\nss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G\nA1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G\nA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs\naobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I\nflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==\n-----END CERTIFICATE-----\n\n# Issuer: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing\n# Subject: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing\n# Label: \"StartCom Certification Authority\"\n# Serial: 45\n# MD5 Fingerprint: c9:3b:0d:84:41:fc:a4:76:79:23:08:57:de:10:19:16\n# SHA1 Fingerprint: a3:f1:33:3f:e2:42:bf:cf:c5:d1:4e:8f:39:42:98:40:68:10:d1:a0\n# SHA256 Fingerprint: e1:78:90:ee:09:a3:fb:f4:f4:8b:9c:41:4a:17:d6:37:b7:a5:06:47:e9:bc:75:23:22:72:7f:cc:17:42:a9:11\n-----BEGIN CERTIFICATE-----\nMIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW\nMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg\nQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh\ndGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9\nMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi\nU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh\ncnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk\npMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf\nOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C\nJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT\nKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi\nHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM\nAv+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w\n+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+\nGkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3\nZzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B\n26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID\nAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD\nVR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul\nF2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC\nATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w\nZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk\naWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0\nYXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg\nc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0\naWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93\nd3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG\nCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1\ndGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF\nwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS\nTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst\n0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc\npRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl\nCcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF\nP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK\n1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm\nKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE\nJnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ\n8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm\nfyWl8kgAwKQB2j8=\n-----END CERTIFICATE-----\n\n# Issuer: CN=StartCom Certification Authority G2 O=StartCom Ltd.\n# Subject: CN=StartCom Certification Authority G2 O=StartCom Ltd.\n# Label: \"StartCom Certification Authority G2\"\n# Serial: 59\n# MD5 Fingerprint: 78:4b:fb:9e:64:82:0a:d3:b8:4c:62:f3:64:f2:90:64\n# SHA1 Fingerprint: 31:f1:fd:68:22:63:20:ee:c6:3b:3f:9d:ea:4a:3e:53:7c:7c:39:17\n# SHA256 Fingerprint: c7:ba:65:67:de:93:a7:98:ae:1f:aa:79:1e:71:2d:37:8f:ae:1f:93:c4:39:7f:ea:44:1b:b7:cb:e6:fd:59:95\n-----BEGIN CERTIFICATE-----\nMIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEW\nMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlm\naWNhdGlvbiBBdXRob3JpdHkgRzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1\nOTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoG\nA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzIwggIiMA0G\nCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8Oo1XJ\nJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsD\nvfOpL9HG4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnoo\nD/Uefyf3lLE3PbfHkffiAez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/\nQ0kGi4xDuFby2X8hQxfqp0iVAXV16iulQ5XqFYSdCI0mblWbq9zSOdIxHWDirMxW\nRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbsO+wmETRIjfaAKxojAuuK\nHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8HvKTlXcxN\nnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM\n0D4LnMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/i\nUUjXuG+v+E5+M5iSFGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9\nHa90OrInwMEePnWjFqmveiJdnxMaz6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHg\nTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE\nAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJKoZIhvcNAQEL\nBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K\n2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfX\nUfEpY9Z1zRbkJ4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl\n6/2o1PXWT6RbdejF0mCy2wl+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK\n9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG/+gyRr61M3Z3qAFdlsHB1b6uJcDJ\nHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTcnIhT76IxW1hPkWLI\nwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/XldblhY\nXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5l\nIxKVCCIcl85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoo\nhdVddLHRDiBYmxOlsGOm7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulr\nso8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI\n-----END CERTIFICATE-----\n\n# Issuer: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US\n# Subject: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US\n# Serial: 33af1e6a711a9a0bb2864b11d09fae5\n# MD5 Fingerprint: E4:A6:8A:C8:54:AC:52:42:46:0A:FD:72:48:1B:2A:44\n# SHA1 Fingerprint: DF:3C:24:F9:BF:D6:66:76:1B:26:80:73:FE:06:D1:CC:8D:4F:82:A4\n# SHA256 Fingerprint: CB:3C:CB:B7:60:31:E5:E0:13:8F:8D:D3:9A:23:F9:DE:47:FF:C3:5E:43:C1:14:4C:EA:27:D4:6A:5A:B1:CB:5F\n-----BEGIN CERTIFICATE-----\nMIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\nMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI\n2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx\n1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ\nq2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz\ntCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ\nvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP\nBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV\n5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY\n1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4\nNeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG\nFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91\n8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe\npLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl\nMrY=\n-----END CERTIFICATE-----\n\n# Issuer: /C=US/O=Internet Security Research Group/CN=ISRG Root X1\n# Subject: /C=US/O=Internet Security Research Group/CN=ISRG Root X1\n# Serial: 8210CFB0D240E3594463E0BB63828B00\n# SHA1 Fingerprint: CA:BD:2A:79:A1:07:6A:31:F2:1D:25:36:35:CB:03:9D:43:29:A5:E8\n# SHA256 Fingerprint: 96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6\n-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw\nTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\ncmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4\nWhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu\nZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY\nMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc\nh77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+\n0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U\nA5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW\nT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH\nB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC\nB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv\nKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn\nOlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn\njh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw\nqHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI\nrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV\nHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq\nhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL\nubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ\n3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK\nNFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5\nORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur\nTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC\njNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc\noyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq\n4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA\nmRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d\nemyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=\n-----END CERTIFICATE-----\n\n# Issuer: /C=US/O=Internet Security Research Group/CN=ISRG Root X2\n# Subject: /C=US/O=Internet Security Research Group/CN=ISRG Root X2\n# Serial: 41D29DD172EAEEA780C12C6CE92F8752\n# SHA1 Fingerprint: BD:B1:B9:3C:D5:97:8D:45:C6:26:14:55:F8:DB:95:C7:5A:D1:53:AF\n# SHA256 Fingerprint: 69:72:9B:8E:15:A8:6E:FC:17:7A:57:AF:B7:17:1D:FC:64:AD:D2:8C:2F:CA:8C:F1:50:7E:34:45:3C:CB:14:70\n-----BEGIN CERTIFICATE-----\nMIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw\nCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg\nR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00\nMDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT\nZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw\nEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW\n+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9\nItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T\nAQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI\nzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW\ntL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1\n/q4AaOeMSQ+2b1tbFfLn\n-----END CERTIFICATE-----\n"
  },
  {
    "path": "shotgun_api3/lib/httplib2/certs.py",
    "content": "\"\"\"Utilities for certificate management.\"\"\"\n\nimport os\n\ncertifi_available = False\ncertifi_where = None\ntry:\n    from certifi import where as certifi_where\n    certifi_available = True\nexcept ImportError:\n    pass\n\ncustom_ca_locater_available = False\ncustom_ca_locater_where = None\ntry:\n    from ca_certs_locater import get as custom_ca_locater_where\n    custom_ca_locater_available = True\nexcept ImportError:\n    pass\n\n\nBUILTIN_CA_CERTS = os.path.join(\n    os.path.dirname(os.path.abspath(__file__)), \"cacerts.txt\"\n)\n\n\ndef where():\n    env = os.environ.get(\"HTTPLIB2_CA_CERTS\")\n    if env is not None:\n        if os.path.isfile(env):\n            return env\n        else:\n            raise RuntimeError(\"Environment variable HTTPLIB2_CA_CERTS not a valid file\")\n    if custom_ca_locater_available:\n        return custom_ca_locater_where()\n    if certifi_available:\n        return certifi_where()\n    return BUILTIN_CA_CERTS\n\n\nif __name__ == \"__main__\":\n    print(where())\n"
  },
  {
    "path": "shotgun_api3/lib/httplib2/error.py",
    "content": "# All exceptions raised here derive from HttpLib2Error\nclass HttpLib2Error(Exception):\n    pass\n\n\n# Some exceptions can be caught and optionally\n# be turned back into responses.\nclass HttpLib2ErrorWithResponse(HttpLib2Error):\n    def __init__(self, desc, response, content):\n        self.response = response\n        self.content = content\n        HttpLib2Error.__init__(self, desc)\n\n\nclass RedirectMissingLocation(HttpLib2ErrorWithResponse):\n    pass\n\n\nclass RedirectLimit(HttpLib2ErrorWithResponse):\n    pass\n\n\nclass FailedToDecompressContent(HttpLib2ErrorWithResponse):\n    pass\n\n\nclass UnimplementedDigestAuthOptionError(HttpLib2ErrorWithResponse):\n    pass\n\n\nclass UnimplementedHmacDigestAuthOptionError(HttpLib2ErrorWithResponse):\n    pass\n\n\nclass MalformedHeader(HttpLib2Error):\n    pass\n\n\nclass RelativeURIError(HttpLib2Error):\n    pass\n\n\nclass ServerNotFoundError(HttpLib2Error):\n    pass\n\n\nclass ProxiesUnavailableError(HttpLib2Error):\n    pass\n"
  },
  {
    "path": "shotgun_api3/lib/httplib2/iri2uri.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"Converts an IRI to a URI.\"\"\"\n\n__author__ = \"Joe Gregorio (joe@bitworking.org)\"\n__copyright__ = \"Copyright 2006, Joe Gregorio\"\n__contributors__ = []\n__version__ = \"1.0.0\"\n__license__ = \"MIT\"\n\nimport urllib.parse\n\n# Convert an IRI to a URI following the rules in RFC 3987\n#\n# The characters we need to enocde and escape are defined in the spec:\n#\n# iprivate =  %xE000-F8FF / %xF0000-FFFFD / %x100000-10FFFD\n# ucschar = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF\n#         / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD\n#         / %x40000-4FFFD / %x50000-5FFFD / %x60000-6FFFD\n#         / %x70000-7FFFD / %x80000-8FFFD / %x90000-9FFFD\n#         / %xA0000-AFFFD / %xB0000-BFFFD / %xC0000-CFFFD\n#         / %xD0000-DFFFD / %xE1000-EFFFD\n\nescape_range = [\n    (0xA0, 0xD7FF),\n    (0xE000, 0xF8FF),\n    (0xF900, 0xFDCF),\n    (0xFDF0, 0xFFEF),\n    (0x10000, 0x1FFFD),\n    (0x20000, 0x2FFFD),\n    (0x30000, 0x3FFFD),\n    (0x40000, 0x4FFFD),\n    (0x50000, 0x5FFFD),\n    (0x60000, 0x6FFFD),\n    (0x70000, 0x7FFFD),\n    (0x80000, 0x8FFFD),\n    (0x90000, 0x9FFFD),\n    (0xA0000, 0xAFFFD),\n    (0xB0000, 0xBFFFD),\n    (0xC0000, 0xCFFFD),\n    (0xD0000, 0xDFFFD),\n    (0xE1000, 0xEFFFD),\n    (0xF0000, 0xFFFFD),\n    (0x100000, 0x10FFFD),\n]\n\n\ndef encode(c):\n    retval = c\n    i = ord(c)\n    for low, high in escape_range:\n        if i < low:\n            break\n        if i >= low and i <= high:\n            retval = \"\".join([\"%%%2X\" % o for o in c.encode(\"utf-8\")])\n            break\n    return retval\n\n\ndef iri2uri(uri):\n    \"\"\"Convert an IRI to a URI. Note that IRIs must be\n    passed in a unicode strings. That is, do not utf-8 encode\n    the IRI before passing it into the function.\"\"\"\n    if isinstance(uri, str):\n        (scheme, authority, path, query, fragment) = urllib.parse.urlsplit(uri)\n        authority = authority.encode(\"idna\").decode(\"utf-8\")\n        # For each character in 'ucschar' or 'iprivate'\n        #  1. encode as utf-8\n        #  2. then %-encode each octet of that utf-8\n        uri = urllib.parse.urlunsplit((scheme, authority, path, query, fragment))\n        uri = \"\".join([encode(c) for c in uri])\n    return uri\n\n\nif __name__ == \"__main__\":\n    import unittest\n\n    class Test(unittest.TestCase):\n        def test_uris(self):\n            \"\"\"Test that URIs are invariant under the transformation.\"\"\"\n            invariant = [\n                \"ftp://ftp.is.co.za/rfc/rfc1808.txt\",\n                \"http://www.ietf.org/rfc/rfc2396.txt\",\n                \"ldap://[2001:db8::7]/c=GB?objectClass?one\",\n                \"mailto:John.Doe@example.com\",\n                \"news:comp.infosystems.www.servers.unix\",\n                \"tel:+1-816-555-1212\",\n                \"telnet://192.0.2.16:80/\",\n                \"urn:oasis:names:specification:docbook:dtd:xml:4.1.2\",\n            ]\n            for uri in invariant:\n                self.assertEqual(uri, iri2uri(uri))\n\n        def test_iri(self):\n            \"\"\"Test that the right type of escaping is done for each part of the URI.\"\"\"\n            self.assertEqual(\n                \"http://xn--o3h.com/%E2%98%84\",\n                iri2uri(\"http://\\N{COMET}.com/\\N{COMET}\"),\n            )\n            self.assertEqual(\n                \"http://bitworking.org/?fred=%E2%98%84\",\n                iri2uri(\"http://bitworking.org/?fred=\\N{COMET}\"),\n            )\n            self.assertEqual(\n                \"http://bitworking.org/#%E2%98%84\",\n                iri2uri(\"http://bitworking.org/#\\N{COMET}\"),\n            )\n            self.assertEqual(\"#%E2%98%84\", iri2uri(\"#\\N{COMET}\"))\n            self.assertEqual(\n                \"/fred?bar=%E2%98%9A#%E2%98%84\",\n                iri2uri(\"/fred?bar=\\N{BLACK LEFT POINTING INDEX}#\\N{COMET}\"),\n            )\n            self.assertEqual(\n                \"/fred?bar=%E2%98%9A#%E2%98%84\",\n                iri2uri(iri2uri(\"/fred?bar=\\N{BLACK LEFT POINTING INDEX}#\\N{COMET}\")),\n            )\n            self.assertNotEqual(\n                \"/fred?bar=%E2%98%9A#%E2%98%84\",\n                iri2uri(\n                    \"/fred?bar=\\N{BLACK LEFT POINTING INDEX}#\\N{COMET}\".encode(\"utf-8\")\n                ),\n            )\n\n    unittest.main()\n"
  },
  {
    "path": "shotgun_api3/lib/httplib2/socks.py",
    "content": "\"\"\"SocksiPy - Python SOCKS module.\n\nVersion 1.00\n\nCopyright 2006 Dan-Haim. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright notice, this\n   list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright notice,\n   this list of conditions and the following disclaimer in the documentation\n   and/or other materials provided with the distribution.\n3. Neither the name of Dan Haim nor the names of his contributors may be used\n   to endorse or promote products derived from this software without specific\n   prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY DAN HAIM \"AS IS\" AND ANY EXPRESS OR IMPLIED\nWARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\nEVENT SHALL DAN HAIM OR HIS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA\nOR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\nOF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMANGE.\n\nThis module provides a standard socket-like interface for Python\nfor tunneling connections through SOCKS proxies.\n\nMinor modifications made by Christopher Gilbert (http://motomastyle.com/) for\nuse in PyLoris (http://pyloris.sourceforge.net/).\n\nMinor modifications made by Mario Vilas (http://breakingcode.wordpress.com/)\nmainly to merge bug fixes found in Sourceforge.\n\"\"\"\n\nimport base64\nimport socket\nimport struct\nimport sys\n\nif getattr(socket, \"socket\", None) is None:\n    raise ImportError(\"socket.socket missing, proxy support unusable\")\n\nPROXY_TYPE_SOCKS4 = 1\nPROXY_TYPE_SOCKS5 = 2\nPROXY_TYPE_HTTP = 3\nPROXY_TYPE_HTTP_NO_TUNNEL = 4\n\n_defaultproxy = None\n_orgsocket = socket.socket\n\n\nclass ProxyError(Exception):\n    pass\n\n\nclass GeneralProxyError(ProxyError):\n    pass\n\n\nclass Socks5AuthError(ProxyError):\n    pass\n\n\nclass Socks5Error(ProxyError):\n    pass\n\n\nclass Socks4Error(ProxyError):\n    pass\n\n\nclass HTTPError(ProxyError):\n    pass\n\n\n_generalerrors = (\n    \"success\",\n    \"invalid data\",\n    \"not connected\",\n    \"not available\",\n    \"bad proxy type\",\n    \"bad input\",\n)\n\n_socks5errors = (\n    \"succeeded\",\n    \"general SOCKS server failure\",\n    \"connection not allowed by ruleset\",\n    \"Network unreachable\",\n    \"Host unreachable\",\n    \"Connection refused\",\n    \"TTL expired\",\n    \"Command not supported\",\n    \"Address type not supported\",\n    \"Unknown error\",\n)\n\n_socks5autherrors = (\n    \"succeeded\",\n    \"authentication is required\",\n    \"all offered authentication methods were rejected\",\n    \"unknown username or invalid password\",\n    \"unknown error\",\n)\n\n_socks4errors = (\n    \"request granted\",\n    \"request rejected or failed\",\n    \"request rejected because SOCKS server cannot connect to identd on the client\",\n    \"request rejected because the client program and identd report different \"\n    \"user-ids\",\n    \"unknown error\",\n)\n\n\ndef setdefaultproxy(\n    proxytype=None, addr=None, port=None, rdns=True, username=None, password=None\n):\n    \"\"\"setdefaultproxy(proxytype, addr[, port[, rdns[, username[, password]]]])\n    Sets a default proxy which all further socksocket objects will use,\n    unless explicitly changed.\n    \"\"\"\n    global _defaultproxy\n    _defaultproxy = (proxytype, addr, port, rdns, username, password)\n\n\ndef wrapmodule(module):\n    \"\"\"wrapmodule(module)\n\n    Attempts to replace a module's socket library with a SOCKS socket. Must set\n    a default proxy using setdefaultproxy(...) first.\n    This will only work on modules that import socket directly into the\n    namespace;\n    most of the Python Standard Library falls into this category.\n    \"\"\"\n    if _defaultproxy != None:\n        module.socket.socket = socksocket\n    else:\n        raise GeneralProxyError((4, \"no proxy specified\"))\n\n\nclass socksocket(socket.socket):\n    \"\"\"socksocket([family[, type[, proto]]]) -> socket object\n    Open a SOCKS enabled socket. The parameters are the same as\n    those of the standard socket init. In order for SOCKS to work,\n    you must specify family=AF_INET, type=SOCK_STREAM and proto=0.\n    \"\"\"\n\n    def __init__(\n        self, family=socket.AF_INET, type=socket.SOCK_STREAM, proto=0, _sock=None\n    ):\n        _orgsocket.__init__(self, family, type, proto, _sock)\n        if _defaultproxy != None:\n            self.__proxy = _defaultproxy\n        else:\n            self.__proxy = (None, None, None, None, None, None)\n        self.__proxysockname = None\n        self.__proxypeername = None\n        self.__httptunnel = True\n\n    def __recvall(self, count):\n        \"\"\"__recvall(count) -> data\n        Receive EXACTLY the number of bytes requested from the socket.\n        Blocks until the required number of bytes have been received.\n        \"\"\"\n        data = self.recv(count)\n        while len(data) < count:\n            d = self.recv(count - len(data))\n            if not d:\n                raise GeneralProxyError((0, \"connection closed unexpectedly\"))\n            data = data + d\n        return data\n\n    def sendall(self, content, *args):\n        \"\"\" override socket.socket.sendall method to rewrite the header\n        for non-tunneling proxies if needed\n        \"\"\"\n        if not self.__httptunnel:\n            content = self.__rewriteproxy(content)\n        return super(socksocket, self).sendall(content, *args)\n\n    def __rewriteproxy(self, header):\n        \"\"\" rewrite HTTP request headers to support non-tunneling proxies\n        (i.e. those which do not support the CONNECT method).\n        This only works for HTTP (not HTTPS) since HTTPS requires tunneling.\n        \"\"\"\n        host, endpt = None, None\n        hdrs = header.split(\"\\r\\n\")\n        for hdr in hdrs:\n            if hdr.lower().startswith(\"host:\"):\n                host = hdr\n            elif hdr.lower().startswith(\"get\") or hdr.lower().startswith(\"post\"):\n                endpt = hdr\n        if host and endpt:\n            hdrs.remove(host)\n            hdrs.remove(endpt)\n            host = host.split(\" \")[1]\n            endpt = endpt.split(\" \")\n            if self.__proxy[4] != None and self.__proxy[5] != None:\n                hdrs.insert(0, self.__getauthheader())\n            hdrs.insert(0, \"Host: %s\" % host)\n            hdrs.insert(0, \"%s http://%s%s %s\" % (endpt[0], host, endpt[1], endpt[2]))\n        return \"\\r\\n\".join(hdrs)\n\n    def __getauthheader(self):\n        auth = self.__proxy[4] + b\":\" + self.__proxy[5]\n        return \"Proxy-Authorization: Basic \" + base64.b64encode(auth).decode()\n\n    def setproxy(\n        self,\n        proxytype=None,\n        addr=None,\n        port=None,\n        rdns=True,\n        username=None,\n        password=None,\n        headers=None,\n    ):\n        \"\"\"setproxy(proxytype, addr[, port[, rdns[, username[, password]]]])\n\n        Sets the proxy to be used.\n        proxytype -    The type of the proxy to be used. Three types\n                are supported: PROXY_TYPE_SOCKS4 (including socks4a),\n                PROXY_TYPE_SOCKS5 and PROXY_TYPE_HTTP\n        addr -        The address of the server (IP or DNS).\n        port -        The port of the server. Defaults to 1080 for SOCKS\n                servers and 8080 for HTTP proxy servers.\n        rdns -        Should DNS queries be preformed on the remote side\n                (rather than the local side). The default is True.\n                Note: This has no effect with SOCKS4 servers.\n        username -    Username to authenticate with to the server.\n                The default is no authentication.\n        password -    Password to authenticate with to the server.\n                Only relevant when username is also provided.\n        headers -     Additional or modified headers for the proxy connect\n        request.\n        \"\"\"\n        self.__proxy = (\n            proxytype,\n            addr,\n            port,\n            rdns,\n            username.encode() if username else None,\n            password.encode() if password else None,\n            headers,\n        )\n\n    def __negotiatesocks5(self, destaddr, destport):\n        \"\"\"__negotiatesocks5(self,destaddr,destport)\n        Negotiates a connection through a SOCKS5 server.\n        \"\"\"\n        # First we'll send the authentication packages we support.\n        if (self.__proxy[4] != None) and (self.__proxy[5] != None):\n            # The username/password details were supplied to the\n            # setproxy method so we support the USERNAME/PASSWORD\n            # authentication (in addition to the standard none).\n            self.sendall(struct.pack(\"BBBB\", 0x05, 0x02, 0x00, 0x02))\n        else:\n            # No username/password were entered, therefore we\n            # only support connections with no authentication.\n            self.sendall(struct.pack(\"BBB\", 0x05, 0x01, 0x00))\n        # We'll receive the server's response to determine which\n        # method was selected\n        chosenauth = self.__recvall(2)\n        if chosenauth[0:1] != chr(0x05).encode():\n            self.close()\n            raise GeneralProxyError((1, _generalerrors[1]))\n        # Check the chosen authentication method\n        if chosenauth[1:2] == chr(0x00).encode():\n            # No authentication is required\n            pass\n        elif chosenauth[1:2] == chr(0x02).encode():\n            # Okay, we need to perform a basic username/password\n            # authentication.\n            packet = bytearray()\n            packet.append(0x01)\n            packet.append(len(self.__proxy[4]))\n            packet.extend(self.__proxy[4])\n            packet.append(len(self.__proxy[5]))\n            packet.extend(self.__proxy[5])\n            self.sendall(packet)\n            authstat = self.__recvall(2)\n            if authstat[0:1] != chr(0x01).encode():\n                # Bad response\n                self.close()\n                raise GeneralProxyError((1, _generalerrors[1]))\n            if authstat[1:2] != chr(0x00).encode():\n                # Authentication failed\n                self.close()\n                raise Socks5AuthError((3, _socks5autherrors[3]))\n            # Authentication succeeded\n        else:\n            # Reaching here is always bad\n            self.close()\n            if chosenauth[1] == chr(0xFF).encode():\n                raise Socks5AuthError((2, _socks5autherrors[2]))\n            else:\n                raise GeneralProxyError((1, _generalerrors[1]))\n        # Now we can request the actual connection\n        req = struct.pack(\"BBB\", 0x05, 0x01, 0x00)\n        # If the given destination address is an IP address, we'll\n        # use the IPv4 address request even if remote resolving was specified.\n        try:\n            ipaddr = socket.inet_aton(destaddr)\n            req = req + chr(0x01).encode() + ipaddr\n        except socket.error:\n            # Well it's not an IP number,  so it's probably a DNS name.\n            if self.__proxy[3]:\n                # Resolve remotely\n                ipaddr = None\n                req = (\n                    req\n                    + chr(0x03).encode()\n                    + chr(len(destaddr)).encode()\n                    + destaddr.encode()\n                )\n            else:\n                # Resolve locally\n                ipaddr = socket.inet_aton(socket.gethostbyname(destaddr))\n                req = req + chr(0x01).encode() + ipaddr\n        req = req + struct.pack(\">H\", destport)\n        self.sendall(req)\n        # Get the response\n        resp = self.__recvall(4)\n        if resp[0:1] != chr(0x05).encode():\n            self.close()\n            raise GeneralProxyError((1, _generalerrors[1]))\n        elif resp[1:2] != chr(0x00).encode():\n            # Connection failed\n            self.close()\n            if ord(resp[1:2]) <= 8:\n                raise Socks5Error((ord(resp[1:2]), _socks5errors[ord(resp[1:2])]))\n            else:\n                raise Socks5Error((9, _socks5errors[9]))\n        # Get the bound address/port\n        elif resp[3:4] == chr(0x01).encode():\n            boundaddr = self.__recvall(4)\n        elif resp[3:4] == chr(0x03).encode():\n            resp = resp + self.recv(1)\n            boundaddr = self.__recvall(ord(resp[4:5]))\n        else:\n            self.close()\n            raise GeneralProxyError((1, _generalerrors[1]))\n        boundport = struct.unpack(\">H\", self.__recvall(2))[0]\n        self.__proxysockname = (boundaddr, boundport)\n        if ipaddr != None:\n            self.__proxypeername = (socket.inet_ntoa(ipaddr), destport)\n        else:\n            self.__proxypeername = (destaddr, destport)\n\n    def getproxysockname(self):\n        \"\"\"getsockname() -> address info\n        Returns the bound IP address and port number at the proxy.\n        \"\"\"\n        return self.__proxysockname\n\n    def getproxypeername(self):\n        \"\"\"getproxypeername() -> address info\n        Returns the IP and port number of the proxy.\n        \"\"\"\n        return _orgsocket.getpeername(self)\n\n    def getpeername(self):\n        \"\"\"getpeername() -> address info\n        Returns the IP address and port number of the destination\n        machine (note: getproxypeername returns the proxy)\n        \"\"\"\n        return self.__proxypeername\n\n    def __negotiatesocks4(self, destaddr, destport):\n        \"\"\"__negotiatesocks4(self,destaddr,destport)\n        Negotiates a connection through a SOCKS4 server.\n        \"\"\"\n        # Check if the destination address provided is an IP address\n        rmtrslv = False\n        try:\n            ipaddr = socket.inet_aton(destaddr)\n        except socket.error:\n            # It's a DNS name. Check where it should be resolved.\n            if self.__proxy[3]:\n                ipaddr = struct.pack(\"BBBB\", 0x00, 0x00, 0x00, 0x01)\n                rmtrslv = True\n            else:\n                ipaddr = socket.inet_aton(socket.gethostbyname(destaddr))\n        # Construct the request packet\n        req = struct.pack(\">BBH\", 0x04, 0x01, destport) + ipaddr\n        # The username parameter is considered userid for SOCKS4\n        if self.__proxy[4] != None:\n            req = req + self.__proxy[4]\n        req = req + chr(0x00).encode()\n        # DNS name if remote resolving is required\n        # NOTE: This is actually an extension to the SOCKS4 protocol\n        # called SOCKS4A and may not be supported in all cases.\n        if rmtrslv:\n            req = req + destaddr + chr(0x00).encode()\n        self.sendall(req)\n        # Get the response from the server\n        resp = self.__recvall(8)\n        if resp[0:1] != chr(0x00).encode():\n            # Bad data\n            self.close()\n            raise GeneralProxyError((1, _generalerrors[1]))\n        if resp[1:2] != chr(0x5A).encode():\n            # Server returned an error\n            self.close()\n            if ord(resp[1:2]) in (91, 92, 93):\n                self.close()\n                raise Socks4Error((ord(resp[1:2]), _socks4errors[ord(resp[1:2]) - 90]))\n            else:\n                raise Socks4Error((94, _socks4errors[4]))\n        # Get the bound address/port\n        self.__proxysockname = (\n            socket.inet_ntoa(resp[4:]),\n            struct.unpack(\">H\", resp[2:4])[0],\n        )\n        if rmtrslv != None:\n            self.__proxypeername = (socket.inet_ntoa(ipaddr), destport)\n        else:\n            self.__proxypeername = (destaddr, destport)\n\n    def __negotiatehttp(self, destaddr, destport):\n        \"\"\"__negotiatehttp(self,destaddr,destport)\n        Negotiates a connection through an HTTP server.\n        \"\"\"\n        # If we need to resolve locally, we do this now\n        if not self.__proxy[3]:\n            addr = socket.gethostbyname(destaddr)\n        else:\n            addr = destaddr\n        headers = [\"CONNECT \", addr, \":\", str(destport), \" HTTP/1.1\\r\\n\"]\n        wrote_host_header = False\n        wrote_auth_header = False\n        if self.__proxy[6] != None:\n            for key, val in self.__proxy[6].iteritems():\n                headers += [key, \": \", val, \"\\r\\n\"]\n                wrote_host_header = key.lower() == \"host\"\n                wrote_auth_header = key.lower() == \"proxy-authorization\"\n        if not wrote_host_header:\n            headers += [\"Host: \", destaddr, \"\\r\\n\"]\n        if not wrote_auth_header:\n            if self.__proxy[4] != None and self.__proxy[5] != None:\n                headers += [self.__getauthheader(), \"\\r\\n\"]\n        headers.append(\"\\r\\n\")\n        self.sendall(\"\".join(headers).encode())\n        # We read the response until we get the string \"\\r\\n\\r\\n\"\n        resp = self.recv(1)\n        while resp.find(\"\\r\\n\\r\\n\".encode()) == -1:\n            resp = resp + self.recv(1)\n        # We just need the first line to check if the connection\n        # was successful\n        statusline = resp.splitlines()[0].split(\" \".encode(), 2)\n        if statusline[0] not in (\"HTTP/1.0\".encode(), \"HTTP/1.1\".encode()):\n            self.close()\n            raise GeneralProxyError((1, _generalerrors[1]))\n        try:\n            statuscode = int(statusline[1])\n        except ValueError:\n            self.close()\n            raise GeneralProxyError((1, _generalerrors[1]))\n        if statuscode != 200:\n            self.close()\n            raise HTTPError((statuscode, statusline[2]))\n        self.__proxysockname = (\"0.0.0.0\", 0)\n        self.__proxypeername = (addr, destport)\n\n    def connect(self, destpair):\n        \"\"\"connect(self, despair)\n        Connects to the specified destination through a proxy.\n        destpar - A tuple of the IP/DNS address and the port number.\n        (identical to socket's connect).\n        To select the proxy server use setproxy().\n        \"\"\"\n        # Do a minimal input check first\n        if (\n            (not type(destpair) in (list, tuple))\n            or (len(destpair) < 2)\n            or (not isinstance(destpair[0], (str, bytes)))\n            or (type(destpair[1]) != int)\n        ):\n            raise GeneralProxyError((5, _generalerrors[5]))\n        if self.__proxy[0] == PROXY_TYPE_SOCKS5:\n            if self.__proxy[2] != None:\n                portnum = self.__proxy[2]\n            else:\n                portnum = 1080\n            _orgsocket.connect(self, (self.__proxy[1], portnum))\n            self.__negotiatesocks5(destpair[0], destpair[1])\n        elif self.__proxy[0] == PROXY_TYPE_SOCKS4:\n            if self.__proxy[2] != None:\n                portnum = self.__proxy[2]\n            else:\n                portnum = 1080\n            _orgsocket.connect(self, (self.__proxy[1], portnum))\n            self.__negotiatesocks4(destpair[0], destpair[1])\n        elif self.__proxy[0] == PROXY_TYPE_HTTP:\n            if self.__proxy[2] != None:\n                portnum = self.__proxy[2]\n            else:\n                portnum = 8080\n            _orgsocket.connect(self, (self.__proxy[1], portnum))\n            self.__negotiatehttp(destpair[0], destpair[1])\n        elif self.__proxy[0] == PROXY_TYPE_HTTP_NO_TUNNEL:\n            if self.__proxy[2] != None:\n                portnum = self.__proxy[2]\n            else:\n                portnum = 8080\n            _orgsocket.connect(self, (self.__proxy[1], portnum))\n            if destpair[1] == 443:\n                self.__negotiatehttp(destpair[0], destpair[1])\n            else:\n                self.__httptunnel = False\n        elif self.__proxy[0] == None:\n            _orgsocket.connect(self, (destpair[0], destpair[1]))\n        else:\n            raise GeneralProxyError((4, _generalerrors[4]))\n"
  },
  {
    "path": "shotgun_api3/lib/mockgun/__init__.py",
    "content": "\"\"\"\n -----------------------------------------------------------------------------\n Copyright (c) 2009-2017, Shotgun Software Inc\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n  - Redistributions of source code must retain the above copyright notice, this\n    list of conditions and the following disclaimer.\n\n  - Redistributions in binary form must reproduce the above copyright notice,\n    this list of conditions and the following disclaimer in the documentation\n    and/or other materials provided with the distribution.\n\n  - Neither the name of the Shotgun Software Inc nor the names of its\n    contributors may be used to endorse or promote products derived from this\n    software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n-----------------------------------------------------------------------------\n\"\"\"\n\nfrom .schema import generate_schema # noqa\nfrom .mockgun import Shotgun # noqa\nfrom .errors import MockgunError # noqa"
  },
  {
    "path": "shotgun_api3/lib/mockgun/errors.py",
    "content": "\"\"\"\n -----------------------------------------------------------------------------\n Copyright (c) 2009-2017, Shotgun Software Inc\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n  - Redistributions of source code must retain the above copyright notice, this\n    list of conditions and the following disclaimer.\n\n  - Redistributions in binary form must reproduce the above copyright notice,\n    this list of conditions and the following disclaimer in the documentation\n    and/or other materials provided with the distribution.\n\n  - Neither the name of the Shotgun Software Inc nor the names of its\n    contributors may be used to endorse or promote products derived from this\n    software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n-----------------------------------------------------------------------------\n\"\"\"\n\n\n# ----------------------------------------------------------------------------\n# Errors\nclass MockgunError(Exception):\n    \"\"\"\n    Base for all Mockgun related API Errors.\n    These are errors that relate to mockgun specifically, for example\n    relating to mockups setup and initialization. For operational errors,\n    mockgun raises ShotgunErrors just like the Shotgun API.\n    \"\"\"\n"
  },
  {
    "path": "shotgun_api3/lib/mockgun/mockgun.py",
    "content": "\"\"\"\n -----------------------------------------------------------------------------\n Copyright (c) 2009-2017, Shotgun Software Inc\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n  - Redistributions of source code must retain the above copyright notice, this\n    list of conditions and the following disclaimer.\n\n  - Redistributions in binary form must reproduce the above copyright notice,\n    this list of conditions and the following disclaimer in the documentation\n    and/or other materials provided with the distribution.\n\n  - Neither the name of the Shotgun Software Inc nor the names of its\n    contributors may be used to endorse or promote products derived from this\n    software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n-----------------------------------------------------------------------------\n\n\n\n-----------------------------------------------------------------------------\nM O C K G U N\n-----------------------------------------------------------------------------\n\nExperimental software ahead!\n----------------------------\nDisclaimer! Mockgun is in its early stages of development. It is not fully\ncompatible with the Shotgun API yet and we offer no guarantees at this point\nthat future versions of Mockgun will be backwards compatible. Consider this\nalpha level software and use at your own risk.\n\n\nWhat is Mockgun?\n----------------\nMockgun is a Shotgun API mocker. It's a class that has got *most* of the same\nmethods and parameters that the Shotgun API has got. Mockgun is essentially a\nShotgun *emulator* that (for basic operations) looks and feels like Shotgun.\n\nThe primary purpose of Mockgun is to drive unit test rigs where it becomes\ntoo slow, cumbersome or non-practical to connect to a real Shotgun. Using a\nMockgun for unit tests means that a test can be rerun over and over again\nfrom exactly the same database state. This can be hard to do if you connect\nto a live Shotgun instance.\n\n\nHow do I use Mockgun?\n---------------------\nFirst of all, you need a Shotgun schema to run against. This will define\nall the fields and entities that mockgun will use. Simply connect to\nyour Shotgun site and use the generate_schema() method to download\nthe schema data:\n\n    # connect to your site\n    from shotgun_api3 import Shotgun\n    sg = Shotgun(\"https://mysite.shotgunstudio.com\", script_name=\"xyz\", api_key=\"abc\")\n\n    # write out schema data to files\n    from shotgun_api3.lib import mockgun\n    mockgun.generate_schema(sg, \"/tmp/schema\", \"/tmp/entity_schema\")\n\nNow that you have a schema, you can tell your mockgun instance about it.\nWe do this as a class-level operation, so that the consctructor can be\nexactly like the real Shotgun one:\n\n    from shotgun_api3.lib import mockgun\n\n    # tell mockgun about the schema\n    mockgun.Shotgun.set_schema_paths(\"/tmp/schema\", \"/tmp/entity_schema\")\n\n    # we are ready to mock!\n    # this call will not connect to mysite, but instead create a\n    # mockgun instance which is connected to an *empty* shotgun site\n    # which has got the same schema as mysite.\n    sg = mockgun.Shotgun(\"https://mysite.shotgunstudio.com\", script_name=\"xyz\", api_key=\"abc\")\n\n    # now you can start putting stuff in\n    print(sg.create(\"HumanUser\", {\"firstname\": \"John\", \"login\": \"john\"}))\n    # prints {'login': 'john', 'type': 'HumanUser', 'id': 1, 'firstname': 'John'}\n\n    # and find what you have created\n    print(sg.find(\"HumanUser\", [[\"login\", \"is\", \"john\"]]))\n    prints [{'type': 'HumanUser', 'id': 1}]\n\nThat's it! Mockgun is used to run the Shotgun Pipeline Toolkit unit test rig.\n\nMockgun has a 'database' in the form of a dictionary stored in Mockgun._db\nBy editing this directly, you can modify the database without going through\nthe API.\n\n\nWhat are the limitations?\n---------------------\nThere are many. Don't expect mockgun to be fully featured at this point.\nBelow is a non-exhaustive list of things that we still need to implement:\n\n- Many find queries won't work\n- Methods around session handling and authentication is not implemented\n- Attachments and upload is rundimental at best\n- Schema modification isn't most most likely will never be supported\n- There is no validation or sanitation\n\n\"\"\"\n\nimport datetime\nfrom typing import Any\n\nfrom ... import ShotgunError\nfrom ...shotgun import _Config\nfrom .errors import MockgunError\nfrom .schema import SchemaFactory\n\n# ----------------------------------------------------------------------------\n# Version\n__version__ = \"0.0.1\"\n\n\n# ----------------------------------------------------------------------------\n# API\n\nclass Shotgun(object):\n    \"\"\"\n    Mockgun is a mocked Shotgun API, designed for test purposes.\n    It generates an object which looks and feels like a normal Shotgun API instance.\n    Instead of connecting to a real server, it keeps all its data in memory in a way\n    which makes it easy to introspect and test.\n\n    The methods presented in this class reflect the Shotgun API and are therefore\n    sparsely documented.\n\n    Please note that this class is built for test purposes only and only creates an\n    object which *roughly* resembles the Shotgun API - however, for most common\n    use cases, this is enough to be able to perform relevant and straight forward\n    testing of code.\n    \"\"\"\n\n    __schema_path = None\n    __schema_entity_path = None\n\n    @classmethod\n    def set_schema_paths(cls, schema_path, schema_entity_path):\n        \"\"\"\n        Set the path where schema files can be found. This is done at the class\n        level so all Shotgun instances will share the same schema.\n        The responsability to generate and load these files is left to the user\n        changing the default value.\n\n        :param schema_path: Directory path where schema files are.\n        \"\"\"\n        cls.__schema_path = schema_path\n        cls.__schema_entity_path = schema_entity_path\n\n    @classmethod\n    def get_schema_paths(cls):\n        \"\"\"\n        Returns a tuple with paths to the files which are part of the schema.\n        These paths can then be used in generate_schema if needed.\n\n        :returns: A tuple with schema_file_path and schema_entity_file_path\n        \"\"\"\n        return (cls.__schema_path, cls.__schema_entity_path)\n\n    def __init__(self,\n                 base_url,\n                 script_name=None,\n                 api_key=None,\n                 convert_datetimes_to_utc=True,\n                 http_proxy=None,\n                 connect=True,\n                 ca_certs=None,\n                 login=None,\n                 password=None,\n                 sudo_as_login=None,\n                 session_token=None,\n                 auth_token=None):\n\n        # emulate the config object in the Shotgun API.\n        # these settings won't make sense for mockgun, but\n        # having them present means code and get and set them\n        # they way they would expect to in the real API.\n        self.config = _Config(self)\n\n        self.config.set_server_params(base_url)\n\n        # load in the shotgun schema to associate with this Shotgun\n        (schema_path, schema_entity_path) = self.get_schema_paths()\n\n        if schema_path is None or schema_entity_path is None:\n            raise MockgunError(\"Cannot create Mockgun instance because no schema files have been defined. \"\n                               \"Before creating a Mockgun instance, please call Mockgun.set_schema_paths() \"\n                               \"in order to specify which Flow Production Tracking schema Mockgun should operate against.\")\n\n        self._schema, self._schema_entity = SchemaFactory.get_schemas(schema_path, schema_entity_path)\n\n        # initialize the \"database\"\n        self._db = dict((entity, {}) for entity in self._schema)\n\n        # set some basic public members that exist in the Shotgun API\n        self.base_url = base_url\n\n        # bootstrap the event log\n        # let's make sure there is at least one event log id in our mock db\n        data = {}\n        data[\"event_type\"] = \"Hello_Mockgun_World\"\n        data[\"description\"] = \"Mockgun was born. Yay.\"\n        self.create(\"EventLogEntry\", data)\n\n        self.finds = 0\n\n    ###################################################################################################\n    # public API methods\n\n    def get_session_token(self):\n        return \"bogus_session_token\"\n\n    def schema_read(self):\n        return self._schema\n\n    def schema_field_create(self, entity_type, data_type, display_name, properties=None):\n        raise NotImplementedError\n\n    def schema_field_update(self, entity_type, field_name, properties):\n        raise NotImplementedError\n\n    def schema_field_delete(self, entity_type, field_name):\n        raise NotImplementedError\n\n    def schema_entity_read(self):\n        return self._schema_entity\n\n    def schema_field_read(self, entity_type, field_name=None):\n        if field_name is None:\n            return self._schema[entity_type]\n        else:\n            return dict((k, v) for k, v in self._schema[entity_type].items() if k == field_name)\n\n    def find(\n        self, entity_type, filters, fields=None, order=None, filter_operator=None,\n        limit=0, retired_only=False, page=0\n    ):\n\n        self.finds += 1\n\n        self._validate_entity_type(entity_type)\n        # do not validate custom fields - this makes it hard to mock up a field quickly\n        # self._validate_entity_fields(entity_type, fields)\n\n        # FIXME: This should be refactored so that we can use the complex filer\n        # style in nested filter operations.\n        if isinstance(filters, dict):\n            # complex filter style!\n            # {'conditions': [{'path': 'id', 'relation': 'is', 'values': [1]}], 'logical_operator': 'and'}\n\n            resolved_filters = []\n            for f in filters[\"conditions\"]:\n\n                if f[\"path\"].startswith(\"$FROM$\"):\n                    # special $FROM$Task.step.entity syntax\n                    # skip this for now\n                    continue\n\n                if len(f[\"values\"]) != 1:\n                    # {'path': 'id', 'relation': 'in', 'values': [1,2,3]} --> [\"id\", \"in\", [1,2,3]]\n                    resolved_filters.append([f[\"path\"], f[\"relation\"], f[\"values\"]])\n                else:\n                    # {'path': 'id', 'relation': 'is', 'values': [3]} --> [\"id\", \"is\", 3]\n                    resolved_filters.append([f[\"path\"], f[\"relation\"], f[\"values\"][0]])\n\n        else:\n            # traditiona style sg filters\n            resolved_filters = filters\n\n        results = [\n            # Apply the filters for every single entities for the given entity type.\n            row for row in self._db[entity_type].values()\n            if self._row_matches_filters(\n                entity_type, row, resolved_filters, filter_operator, retired_only\n            )\n        ]\n\n        # handle the ordering of the recordset\n        if order:\n            # order: [{\"field_name\": \"code\", \"direction\": \"asc\"}, ... ]\n            def sort_none(k, order_field):\n                \"\"\"\n                Handle sorting of None consistently.\n                Note: Doesn't handle [checkbox, serializable, url].\n                \"\"\"\n                field_type = self._get_field_type(k[\"type\"], order_field)\n                value = k[order_field]\n                if value is not None:\n                    return value\n                elif field_type in (\"number\", \"percent\", \"duration\"):\n                    return 0\n                elif field_type == \"float\":\n                    return 0.0\n                elif field_type in (\"text\", \"entity_type\", \"date\", \"list\", \"status_list\"):\n                    return \"\"\n                elif field_type == \"date_time\":\n                    return datetime.datetime(datetime.MINYEAR, 1, 1)\n                return None\n\n            for order_entry in order:\n                if \"field_name\" not in order_entry:\n                    raise ValueError(\"Order clauses must be list of dicts with keys 'field_name' and 'direction'!\")\n\n                order_field = order_entry[\"field_name\"]\n                if order_entry[\"direction\"] == \"asc\":\n                    desc_order = False\n                elif order_entry[\"direction\"] == \"desc\":\n                    desc_order = True\n                else:\n                    raise ValueError(\"Unknown ordering direction\")\n\n                results = sorted(\n                    results,\n                    key=lambda k: sort_none(k, order_field),\n                    reverse=desc_order,\n                )\n\n        if fields is None:\n            fields = set([\"type\", \"id\"])\n        else:\n            fields = set(fields) | set([\"type\", \"id\"])\n\n        # get the values requested\n        val = [dict((field, self._get_field_from_row(entity_type, row, field)) for field in fields) for row in results]\n\n        return val\n\n    def find_one(\n        self, entity_type, filters, fields=None, order=None, filter_operator=None,\n        retired_only=False\n    ):\n        results = self.find(\n            entity_type, filters, fields=fields,\n            order=order, filter_operator=filter_operator, retired_only=retired_only\n        )\n        return results[0] if results else None\n\n    def batch(self, requests):\n        results = []\n        for request in requests:\n            if request[\"request_type\"] == \"create\":\n                results.append(self.create(request[\"entity_type\"], request[\"data\"]))\n            elif request[\"request_type\"] == \"update\":\n                # note: Shotgun.update returns a list of a single item\n                results.append(\n                    self.update(request[\"entity_type\"],\n                                request[\"entity_id\"],\n                                request[\"data\"],\n                                request.get(\"multi_entity_update_modes\"))[0]\n                )\n            elif request[\"request_type\"] == \"delete\":\n                results.append(self.delete(request[\"entity_type\"], request[\"entity_id\"]))\n            else:\n                raise ShotgunError(\"Invalid request type %s in request %s\" % (request[\"request_type\"], request))\n        return results\n\n    def create(self, entity_type, data, return_fields=None):\n\n        # special handling of storage fields - if a field value\n        # is a dict with a key local_path, then add fields\n        # local_path_linux, local_path_windows, local_path_mac\n        # as a reflection of this\n        for d in data:\n            if isinstance(data[d], dict) and \"local_path\" in data[d]:\n                # partly imitate some of the business logic happening on the\n                # server side of shotgun when a file/link entity value is created\n                if \"local_storage\" not in data[d]:\n                    data[d][\"local_storage\"] = {\"id\": 0, \"name\": \"auto_generated_by_mockgun\", \"type\": \"LocalStorage\"}\n                if \"local_path_linux\" not in data[d]:\n                    data[d][\"local_path_linux\"] = data[d][\"local_path\"]\n                if \"local_path_windows\" not in data[d]:\n                    data[d][\"local_path_windows\"] = data[d][\"local_path\"]\n                if \"local_path_mac\" not in data[d]:\n                    data[d][\"local_path_mac\"] = data[d][\"local_path\"]\n\n        self._validate_entity_type(entity_type)\n        self._validate_entity_data(entity_type, data)\n        self._validate_entity_fields(entity_type, return_fields)\n        try:\n            # get next id in this table\n            next_id = max(self._db[entity_type]) + 1\n        except ValueError:\n            next_id = 1\n\n        row = self._get_new_row(entity_type)\n\n        self._update_row(entity_type, row, data)\n        row[\"id\"] = next_id\n\n        self._db[entity_type][next_id] = row\n\n        if return_fields is None:\n            result = dict((field, self._get_field_from_row(entity_type, row, field)) for field in data)\n        else:\n            result = dict((field, self._get_field_from_row(entity_type, row, field)) for field in return_fields)\n\n        result[\"type\"] = row[\"type\"]\n        result[\"id\"] = row[\"id\"]\n\n        return result\n\n    def update(self, entity_type, entity_id, data, multi_entity_update_modes=None):\n        self._validate_entity_type(entity_type)\n        self._validate_entity_data(entity_type, data)\n        self._validate_entity_exists(entity_type, entity_id)\n\n        row = self._db[entity_type][entity_id]\n        self._update_row(entity_type, row, data, multi_entity_update_modes)\n\n        return [dict((field, item) for field, item in row.items() if field in data or field in (\"type\", \"id\"))]\n\n    def delete(self, entity_type, entity_id):\n        self._validate_entity_type(entity_type)\n        self._validate_entity_exists(entity_type, entity_id)\n\n        row = self._db[entity_type][entity_id]\n        if not row[\"__retired\"]:\n            row[\"__retired\"] = True\n            return True\n        else:\n            return False\n\n    def revive(self, entity_type, entity_id):\n        self._validate_entity_type(entity_type)\n        self._validate_entity_exists(entity_type, entity_id)\n\n        row = self._db[entity_type][entity_id]\n        if row[\"__retired\"]:\n            row[\"__retired\"] = False\n            return True\n        else:\n            return False\n\n    def upload(self, entity_type, entity_id, path, field_name=None, display_name=None, tag_list=None):\n        raise NotImplementedError\n\n    def upload_thumbnail(self, entity_type, entity_id, path, **kwargs):\n        pass\n\n    def add_user_agent(self, agent):\n        pass\n\n    def set_session_uuid(self, session_uuid):\n        pass\n\n    ###################################################################################################\n    # internal methods and members\n\n    def _validate_entity_type(self, entity_type):\n        if entity_type not in self._schema:\n            raise ShotgunError(\"%s is not a valid entity\" % entity_type)\n\n    def _validate_entity_data(self, entity_type, data):\n        if \"id\" in data or \"type\" in data:\n            raise ShotgunError(\"Can't set id or type on create or update\")\n\n        self._validate_entity_fields(entity_type, data.keys())\n\n        for field, item in data.items():\n\n            if item is None:\n                # none is always ok\n                continue\n\n            field_info = self._schema[entity_type][field]\n\n            if field_info[\"data_type\"][\"value\"] == \"multi_entity\":\n                if not isinstance(item, list):\n                    raise ShotgunError(\n                        \"%s.%s is of type multi_entity, but data %s is not a list\" %\n                        (entity_type, field, item)\n                    )\n                elif item and any(not isinstance(sub_item, dict) for sub_item in item):\n                    raise ShotgunError(\n                        \"%s.%s is of type multi_entity, but data %s contains a non-dictionary\" %\n                        (entity_type, field, item)\n                    )\n                elif item and any(\"id\" not in sub_item or \"type\" not in sub_item for sub_item in item):\n                    raise ShotgunError(\n                        \"%s.%s is of type multi-entity, but an item in data %s does not contain 'type' and 'id'\" %\n                        (entity_type, field, item)\n                    )\n                elif item and any(\n                    sub_item[\"type\"] not in field_info[\"properties\"][\"valid_types\"][\"value\"] for sub_item in item\n                ):\n                    raise ShotgunError(\n                        \"%s.%s is of multi-type entity, but an item in data %s has an invalid type (expected one of %s)\"\n                        % (entity_type, field, item, field_info[\"properties\"][\"valid_types\"][\"value\"])\n                    )\n\n            elif field_info[\"data_type\"][\"value\"] == \"entity\":\n                if not isinstance(item, dict):\n                    raise ShotgunError(\n                        \"%s.%s is of type entity, but data %s is not a dictionary\" %\n                        (entity_type, field, item)\n                    )\n                elif \"id\" not in item or \"type\" not in item:\n                    raise ShotgunError(\n                        \"%s.%s is of type entity, but data %s does not contain 'type' and 'id'\"\n                        % (entity_type, field, item)\n                    )\n                # elif item[\"type\"] not in field_info[\"properties\"][\"valid_types\"][\"value\"]:\n                #    raise ShotgunError(\n                #        \"%s.%s is of type entity, but data %s has an invalid type (expected one of %s)\" %\n                #        (entity_type, field, item, field_info[\"properties\"][\"valid_types\"][\"value\"])\n                #    )\n\n            else:\n                try:\n                    sg_type = field_info[\"data_type\"][\"value\"]\n                    python_type = {\"number\": int,\n                                   \"float\": float,\n                                   \"checkbox\": bool,\n                                   \"percent\": int,\n                                   \"text\": str,\n                                   \"serializable\": dict,\n                                   \"entity_type\": str,\n                                   \"date\": str,\n                                   \"date_time\": datetime.datetime,\n                                   \"duration\": int,\n                                   \"list\": str,\n                                   \"status_list\": str,\n                                   \"url\": dict}[sg_type]\n                except KeyError:\n                    raise ShotgunError(\n                        \"Field %s.%s: Handling for Flow Production Tracking type %s is not implemented\" %\n                        (entity_type, field, sg_type)\n                    )\n\n                if not isinstance(item, python_type):\n                    raise ShotgunError(\n                        \"%s.%s is of type %s, but data %s is not of type %s\" %\n                        (entity_type, field, type(item), sg_type, python_type)\n                    )\n\n                # TODO: add check for correct timezone\n\n    def _validate_entity_fields(self, entity_type, fields):\n        self._validate_entity_type(entity_type)\n        if fields is not None:\n            valid_fields = set(self._schema[entity_type].keys())\n            for field in fields:\n                try:\n                    field2, entity_type2, field3 = field.split(\".\", 2)\n                    self._validate_entity_fields(entity_type2, [field3])\n                except ValueError:\n                    if field not in valid_fields and field not in (\"type\", \"id\"):\n                        raise ShotgunError(\"%s is not a valid field for entity %s\" % (field, entity_type))\n\n    def _get_default_value(self, entity_type, field):\n        field_info = self._schema[entity_type][field]\n        if field_info[\"data_type\"][\"value\"] == \"multi_entity\":\n            default_value = []\n        else:\n            default_value = field_info[\"properties\"][\"default_value\"][\"value\"]\n        return default_value\n\n    def _get_new_row(self, entity_type):\n        row = {\"type\": entity_type, \"__retired\": False}\n        for field in self._schema[entity_type]:\n            field_info = self._schema[entity_type][field]\n            if field_info[\"data_type\"][\"value\"] == \"multi_entity\":\n                default_value = []\n            else:\n                default_value = field_info[\"properties\"][\"default_value\"][\"value\"]\n            row[field] = default_value\n        return row\n\n    def _compare(self, field_type: str, lval: Any, operator: str, rval: Any) -> bool:\n        \"\"\"\n        Compares a field using the operator and value provide by the filter.\n\n        :param str field_type: Type of the field we are operating on.\n        :param lval: Value inside that field. Can be of any type: datetime, date, int, str, bool, etc.\n        :param str operator: Name of the operator to use.\n        :param rval: The value following the operator in a filter.\n\n        :returns: The result of the operator that was applied.\n        :rtype: bool\n        \"\"\"\n        # If we have a list of scalar values\n        if isinstance(lval, list) and field_type != \"multi_entity\":\n            # Compare each one. If one matches the predicate we're good!\n            return any((self._compare(field_type, sub_val, operator, rval)) for sub_val in lval)\n\n        if field_type == \"checkbox\":\n            if operator == \"is\":\n                return lval == rval\n            elif operator == \"is_not\":\n                return lval != rval\n        elif field_type in (\"float\", \"number\", \"date\", \"date_time\"):\n            if operator == \"is\":\n                return lval == rval\n            elif operator == \"is_not\":\n                return lval != rval\n            elif operator == \"less_than\":\n                return lval < rval\n            elif operator == \"greater_than\":\n                return lval > rval\n            elif operator == \"between\":\n                return lval >= rval[0] and lval <= rval[1]\n            elif operator == \"not_between\":\n                return lval < rval[0] or lval > rval[1]\n            elif operator == \"in\":\n                return lval in rval\n        elif field_type in (\"list\", \"status_list\"):\n            if operator == \"is\":\n                return lval == rval\n            elif operator == \"is_not\":\n                return lval != rval\n            elif operator == \"in\":\n                return lval in rval\n            elif operator == \"not_in\":\n                return lval not in rval\n        elif field_type == \"entity_type\":\n            if operator == \"is\":\n                return lval == rval\n        elif field_type == \"text\":\n            # Some operations expect a list but can deal with a single value\n            if operator in (\"in\", \"not_in\") and not isinstance(rval, list):\n                rval = [rval]\n            # Some operation expect a string but can deal with None\n            elif operator in (\"starts_with\", \"ends_with\", \"contains\", \"not_contains\"):\n                lval = lval or ''\n                rval = rval or ''\n            # Shotgun string comparison is case insensitive\n            lval = lval.lower() if lval is not None else None\n            if isinstance(rval, list):\n                rval = [val.lower() if val is not None else None for val in rval]\n            else:\n                rval = rval.lower() if rval is not None else None\n\n            if operator == \"is\":\n                return lval == rval\n            elif operator == \"is_not\":\n                return lval != rval\n            elif operator == \"in\":\n                return lval in rval\n            elif operator == \"contains\":\n                return rval in lval\n            elif operator == \"not_contains\":\n                return rval not in lval\n            elif operator == \"starts_with\":\n                return lval.startswith(rval)\n            elif operator == \"ends_with\":\n                return lval.endswith(rval)\n            elif operator == \"not_in\":\n                return lval not in rval\n        elif field_type == \"entity\":\n            if operator == \"is\":\n                # If one of the two is None, ensure both are.\n                if lval is None or rval is None:\n                    return lval == rval\n                # Both values are set, compare them.\n                return lval[\"type\"] == rval[\"type\"] and lval[\"id\"] == rval[\"id\"]\n            elif operator == \"is_not\":\n                if lval is None or rval is None:\n                    return lval != rval\n                if rval is None:\n                    # We already know lval is not None, so we know they are not equal.\n                    return True\n                return lval[\"type\"] != rval[\"type\"] or lval[\"id\"] != rval[\"id\"]\n            elif operator == \"in\":\n                return all((lval[\"type\"] == sub_rval[\"type\"] and lval[\"id\"] == sub_rval[\"id\"]) for sub_rval in rval)\n            elif operator == \"type_is\":\n                return lval[\"type\"] == rval\n            elif operator == \"type_is_not\":\n                return lval[\"type\"] != rval\n            elif operator == \"name_contains\":\n                return rval in lval[\"name\"]\n            elif operator == \"name_not_contains\":\n                return rval not in lval[\"name\"]\n            elif operator == \"name_starts_with\":\n                return lval[\"name\"].startswith(rval)\n            elif operator == \"name_ends_with\":\n                return lval[\"name\"].endswith(rval)\n        elif field_type == \"multi_entity\":\n            if operator == \"is\":\n                if rval is None:\n                    return len(lval) == 0\n                return rval[\"id\"] in (sub_lval[\"id\"] for sub_lval in lval)\n            elif operator == \"is_not\":\n                if rval is None:\n                    return len(lval) != 0\n                return rval[\"id\"] not in (sub_lval[\"id\"] for sub_lval in lval)\n\n        raise ShotgunError(\"The %s operator is not supported on the %s type\" % (operator, field_type))\n\n    def _get_field_from_row(self, entity_type, row, field):\n        # split dotted form fields\n        try:\n            # is it something like sg_sequence.Sequence.code ?\n            field2, entity_type2, field3 = field.split(\".\", 2)\n\n            if field2 in row:\n\n                field_value = row[field2]\n\n                # If we have a list of links, retrieve the subfields one by one.\n                if isinstance(field_value, list):\n                    values = []\n                    for linked_row in field_value:\n                        # Make sure we're actually iterating on links.\n                        if not isinstance(linked_row, dict):\n                            raise ShotgunError(\"Invalid deep query field %s.%s\" % (entity_type, field))\n\n                        # Skips entities that are not of the requested type.\n                        if linked_row[\"type\"] != entity_type2:\n                            continue\n\n                        entity = self._db[linked_row[\"type\"]][linked_row[\"id\"]]\n\n                        sub_field_value = self._get_field_from_row(entity_type2, entity, field3)\n                        values.append(sub_field_value)\n                    return values\n                # The field is not set, so return None.\n                elif field_value is None:\n                    return None\n                # not multi entity, must be entity.\n                elif not isinstance(field_value, dict):\n                    raise ShotgunError(\"Invalid deep query field %s.%s\" % (entity_type, field))\n\n                # make sure that types in the query match type in the linked field\n                if entity_type2 != field_value[\"type\"]:\n                    raise ShotgunError(\"Deep query field %s.%s does not match type \"\n                                       \"with data %s\" % (entity_type, field, field_value))\n\n                # ok so looks like the value is an entity link\n                # e.g. db contains: {\"sg_sequence\": {\"type\":\"Sequence\", \"id\": 123 } }\n                linked_row = self._db[field_value[\"type\"]][field_value[\"id\"]]\n\n                return self._get_field_from_row(entity_type2, linked_row, field3)\n            else:\n                # sg returns none for unknown stuff\n                return None\n\n        except ValueError:\n            # this is not a deep-linked field - just something like \"code\"\n            if field in row:\n                return row[field]\n            else:\n                # sg returns none for unknown stuff\n                return None\n\n    def _get_field_type(self, entity_type, field):\n        # split dotted form fields\n        try:\n            field2, entity_type2, field3 = field.split(\".\", 2)\n            return self._get_field_type(entity_type2, field3)\n        except ValueError:\n            return self._schema[entity_type][field][\"data_type\"][\"value\"]\n\n    def _row_matches_filter(self, entity_type, row, sg_filter, retired_only):\n\n        try:\n            field, operator, rval = sg_filter\n        except ValueError:\n            raise ShotgunError(\"Filters must be in the form [lval, operator, rval]\")\n\n        # Special case, field is None when we have a filter operator.\n        if field is None:\n            if operator in [\"any\", \"all\"]:\n                return self._row_matches_filters(entity_type, row, rval, operator, retired_only)\n            else:\n                raise ShotgunError(\"Unknown filter_operator type: %s\" % operator)\n        else:\n\n            lval = self._get_field_from_row(entity_type, row, field)\n\n            field_type = self._get_field_type(entity_type, field)\n\n            # if we're operating on an entity, we'll need to grab the name from the lval's row\n            if field_type == \"entity\":\n                # If the entity field is set, we'll retrieve the name of the entity.\n                if lval is not None:\n                    link_type = lval[\"type\"]\n                    link_id = lval[\"id\"]\n                    lval_row = self._db[link_type][link_id]\n                    if \"name\" in lval_row:\n                        lval[\"name\"] = lval_row[\"name\"]\n                    elif \"code\" in lval_row:\n                        lval[\"name\"] = lval_row[\"code\"]\n\n            return self._compare(field_type, lval, operator, rval)\n\n    def _rearrange_filters(self, filters: list) -> None:\n        \"\"\"\n        Modifies the filter syntax to turn it into a list of three items regardless\n        of the actual filter. Most of the filters are list of three elements, so this doesn't change much.\n\n        The filter_operator syntax uses a dictionary with two keys, \"filters\" and\n        \"filter_operator\". Filters using this syntax will be turned into\n        [None, filter[\"filter_operator\"], filter[\"filters\"]]\n\n        Filters of the form [field, operator, values....] will be turned into\n        [field, operator, [values...]].\n\n        :param list filters: List of filters to rearrange.\n\n        :returns: A list of three items.\n        \"\"\"\n        rearranged_filters = []\n\n        # now translate [\"field\", \"in\", 2,3,4] --> [\"field\", \"in\", [2, 3, 4]]\n        for f in filters:\n            if isinstance(f, list):\n                if len(f) > 3:\n                    # [\"field\", \"in\", 2,3,4] --> [\"field\", \"in\", [2, 3, 4]]\n                    new_filter = [f[0], f[1], f[2:]]\n\n                elif f[1] == \"in\" and not isinstance(f[2], list):\n                    # [\"field\", \"in\", 2] --> [\"field\", \"in\", [2]]\n                    new_filter = [f[0], f[1], [f[2]]]\n\n                else:\n                    new_filter = f\n            elif isinstance(f, dict):\n                if \"filter_operator\" not in f or \"filters\" not in f:\n                    raise ShotgunError(\n                        \"Bad filter operator, requires keys 'filter_operator' and 'filters', \"\n                        \"found %s\" % \", \".join(f.keys())\n                    )\n                new_filter = [None, f[\"filter_operator\"], f[\"filters\"]]\n            else:\n                raise ShotgunError(\n                    \"Filters can only be lists or dictionaries, not %s.\" % type(f).__name__\n                )\n\n            rearranged_filters.append(new_filter)\n\n        return rearranged_filters\n\n    def _row_matches_filters(self, entity_type, row, filters, filter_operator, retired_only):\n        filters = self._rearrange_filters(filters)\n\n        if retired_only and not row[\"__retired\"] or not retired_only and row[\"__retired\"]:\n            # ignore retired rows unless the retired_only flag is set\n            # ignore live rows if the retired_only flag is set\n            return False\n        elif filter_operator in (\"all\", None):\n            return all(self._row_matches_filter(entity_type, row, filter, retired_only) for filter in filters)\n        elif filter_operator == \"any\":\n            return any(self._row_matches_filter(entity_type, row, filter, retired_only) for filter in filters)\n        else:\n            raise ShotgunError(\"%s is not a valid filter operator\" % filter_operator)\n\n    def _update_row(self, entity_type, row, data, multi_entity_update_modes=None):\n        for field in data:\n            field_type = self._get_field_type(entity_type, field)\n            if field_type == \"entity\" and data[field]:\n                row[field] = {\"type\": data[field][\"type\"], \"id\": data[field][\"id\"]}\n            elif field_type == \"multi_entity\":\n                update_mode = multi_entity_update_modes.get(field, \"set\") if multi_entity_update_modes else \"set\"\n\n                if update_mode == \"add\":\n                    for item in data[field]:\n                        new_item = {\"type\": item[\"type\"], \"id\": item[\"id\"]}\n                        if new_item not in row[field]:\n                            row[field].append(new_item)\n                elif update_mode == \"remove\":\n                    row[field] = [\n                        item\n                        for item in row[field]\n                        for new_item in data[field]\n                        if item[\"id\"] != new_item[\"id\"]\n                        or item[\"type\"] != new_item[\"type\"]\n                    ]\n                elif update_mode == \"set\":\n                    row[field] = [{\"type\": item[\"type\"], \"id\": item[\"id\"]} for item in data[field]]\n            else:\n                row[field] = data[field]\n\n    def _validate_entity_exists(self, entity_type, entity_id):\n        if entity_id not in self._db[entity_type]:\n            raise ShotgunError(\"No entity of type %s exists with id %s\" % (entity_type, entity_id))\n"
  },
  {
    "path": "shotgun_api3/lib/mockgun/schema.py",
    "content": "\"\"\"\n -----------------------------------------------------------------------------\n Copyright (c) 2009-2017, Shotgun Software Inc\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n  - Redistributions of source code must retain the above copyright notice, this\n    list of conditions and the following disclaimer.\n\n  - Redistributions in binary form must reproduce the above copyright notice,\n    this list of conditions and the following disclaimer in the documentation\n    and/or other materials provided with the distribution.\n\n  - Neither the name of the Shotgun Software Inc nor the names of its\n    contributors may be used to endorse or promote products derived from this\n    software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n-----------------------------------------------------------------------------\n\"\"\"\n\nimport os\nimport pickle\n\nfrom .errors import MockgunError\n\n\nclass SchemaFactory(object):\n    \"\"\"\n    Allows to instantiate a pickled schema.\n    \"\"\"\n\n    _schema_entity_cache = None\n    _schema_entity_cache_path = None\n    _schema_cache = None\n    _schema_cache_path = None\n\n    @classmethod\n    def get_schemas(cls, schema_path: str, schema_entity_path: str) -> tuple:\n        \"\"\"\n        Retrieves the schemas from disk.\n\n        :param str schema_path: Path to the schema.\n        :param str schema_entity_path: Path to the entities schema.\n\n        :returns: Pair of dictionaries holding the schema and entities schema.\n        :rtype: tuple\n        \"\"\"\n        if not os.path.exists(schema_path):\n            raise MockgunError(\"Cannot locate Mockgun schema file '%s'!\" % schema_path)\n\n        if not os.path.exists(schema_entity_path):\n            raise MockgunError(\"Cannot locate Mockgun schema file '%s'!\" % schema_entity_path)\n\n        # Poor man's attempt at a cache. All of our use cases deal with a single pair of files\n        # for the duration of the unit tests, so keep a cache for both inputs. We don't want\n        # to deal with ever growing caches anyway. Just having this simple cache has shown\n        # speed increases of up to 500% for Toolkit unit tests alone.\n\n        if schema_path != cls._schema_cache_path:\n            cls._schema_cache = cls._read_file(schema_path)\n            cls._schema_cache_path = schema_path\n\n        if schema_entity_path != cls._schema_entity_cache_path:\n            cls._schema_entity_cache = cls._read_file(schema_entity_path)\n            cls._schema_entity_cache_path = schema_entity_path\n\n        return cls._schema_cache, cls._schema_entity_cache\n\n    @classmethod\n    def _read_file(cls, path):\n        with open(path, \"rb\") as fh:\n            return pickle.load(fh)\n\n\n# Highest protocol that Python 2.4 supports, which is the earliest version of Python we support.\n# Actually, this is the same version that Python 2.7 supports at the moment!\n_HIGHEST_24_PICKLE_PROTOCOL = 2\n\n\n# ----------------------------------------------------------------------------\n# Utility methods\ndef generate_schema(shotgun, schema_file_path, schema_entity_file_path):\n    \"\"\"\n    Helper method for mockgun.\n    Generates the schema files needed by the mocker by connecting to a real shotgun\n    and downloading the schema information for that site. Once the generated schema\n    files are being passed to mockgun, it will mimic the site's schema structure.\n\n    :param sg_url: Shotgun site url\n    :param sg_script: Script name to connect with\n    :param sg_key: Script key to connect with\n    :param schema_file_path: Path where to write the main schema file to\n    :param schema_entity_file_path: Path where to write the entity schema file to\n    \"\"\"\n\n    schema = shotgun.schema_read()\n    fh = open(schema_file_path, \"wb\")\n    try:\n        pickle.dump(schema, fh, protocol=_HIGHEST_24_PICKLE_PROTOCOL)\n    finally:\n        fh.close()\n\n    schema_entity = shotgun.schema_entity_read()\n    fh = open(schema_entity_file_path, \"wb\")\n    try:\n        pickle.dump(schema_entity, fh, protocol=_HIGHEST_24_PICKLE_PROTOCOL)\n    finally:\n        fh.close()\n"
  },
  {
    "path": "shotgun_api3/lib/pyparsing.py",
    "content": "# -*- coding: utf-8 -*-\n# module pyparsing.py\n#\n# Copyright (c) 2003-2019  Paul T. McGuire\n#\n# Permission is hereby granted, free of charge, to any person obtaining\n# a copy of this software and associated documentation files (the\n# \"Software\"), to deal in the Software without restriction, including\n# without limitation the rights to use, copy, modify, merge, publish,\n# distribute, sublicense, and/or sell copies of the Software, and to\n# permit persons to whom the Software is furnished to do so, subject to\n# the following conditions:\n#\n# The above copyright notice and this permission notice shall be\n# included in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n#\n\n__doc__ = \\\n\"\"\"\npyparsing module - Classes and methods to define and execute parsing grammars\n=============================================================================\n\nThe pyparsing module is an alternative approach to creating and\nexecuting simple grammars, vs. the traditional lex/yacc approach, or the\nuse of regular expressions.  With pyparsing, you don't need to learn\na new syntax for defining grammars or matching expressions - the parsing\nmodule provides a library of classes that you use to construct the\ngrammar directly in Python.\n\nHere is a program to parse \"Hello, World!\" (or any greeting of the form\n``\"<salutation>, <addressee>!\"``), built up using :class:`Word`,\n:class:`Literal`, and :class:`And` elements\n(the :class:`'+'<ParserElement.__add__>` operators create :class:`And` expressions,\nand the strings are auto-converted to :class:`Literal` expressions)::\n\n    from pyparsing import Word, alphas\n\n    # define grammar of a greeting\n    greet = Word(alphas) + \",\" + Word(alphas) + \"!\"\n\n    hello = \"Hello, World!\"\n    print (hello, \"->\", greet.parseString(hello))\n\nThe program outputs the following::\n\n    Hello, World! -> ['Hello', ',', 'World', '!']\n\nThe Python representation of the grammar is quite readable, owing to the\nself-explanatory class names, and the use of '+', '|' and '^' operators.\n\nThe :class:`ParseResults` object returned from\n:class:`ParserElement.parseString` can be\naccessed as a nested list, a dictionary, or an object with named\nattributes.\n\nThe pyparsing module handles some of the problems that are typically\nvexing when writing text parsers:\n\n  - extra or missing whitespace (the above program will also handle\n    \"Hello,World!\", \"Hello  ,  World  !\", etc.)\n  - quoted strings\n  - embedded comments\n\n\nGetting Started -\n-----------------\nVisit the classes :class:`ParserElement` and :class:`ParseResults` to\nsee the base classes that most other pyparsing\nclasses inherit from. Use the docstrings for examples of how to:\n\n - construct literal match expressions from :class:`Literal` and\n   :class:`CaselessLiteral` classes\n - construct character word-group expressions using the :class:`Word`\n   class\n - see how to create repetitive expressions using :class:`ZeroOrMore`\n   and :class:`OneOrMore` classes\n - use :class:`'+'<And>`, :class:`'|'<MatchFirst>`, :class:`'^'<Or>`,\n   and :class:`'&'<Each>` operators to combine simple expressions into\n   more complex ones\n - associate names with your parsed results using\n   :class:`ParserElement.setResultsName`\n - access the parsed data, which is returned as a :class:`ParseResults`\n   object\n - find some helpful expression short-cuts like :class:`delimitedList`\n   and :class:`oneOf`\n - find more useful common expressions in the :class:`pyparsing_common`\n   namespace class\n\"\"\"\n\n__version__ = \"2.4.7\"\n__versionTime__ = \"30 Mar 2020 00:43 UTC\"\n__author__ = \"Paul McGuire <ptmcg@users.sourceforge.net>\"\n\nimport string\nfrom weakref import ref as wkref\nimport copy\nimport sys\nimport warnings\nimport re\nimport collections\nimport pprint\nimport traceback\nimport types\nfrom datetime import datetime\nfrom operator import itemgetter\nimport itertools\nfrom functools import wraps\nfrom contextlib import contextmanager\n\ntry:\n    # Python 3\n    from itertools import filterfalse\nexcept ImportError:\n    from itertools import ifilterfalse as filterfalse\n\ntry:\n    from _thread import RLock\nexcept ImportError:\n    from threading import RLock\n\ntry:\n    # Python 3\n    from collections.abc import Iterable\n    from collections.abc import MutableMapping, Mapping\nexcept ImportError:\n    # Python 2.7\n    from collections import Iterable\n    from collections import MutableMapping, Mapping\n\ntry:\n    from collections import OrderedDict as _OrderedDict\nexcept ImportError:\n    try:\n        from ordereddict import OrderedDict as _OrderedDict\n    except ImportError:\n        _OrderedDict = None\n\ntry:\n    from types import SimpleNamespace\nexcept ImportError:\n    class SimpleNamespace: pass\n\n# version compatibility configuration\n__compat__ = SimpleNamespace()\n__compat__.__doc__ = \"\"\"\n    A cross-version compatibility configuration for pyparsing features that will be\n    released in a future version. By setting values in this configuration to True,\n    those features can be enabled in prior versions for compatibility development\n    and testing.\n\n     - collect_all_And_tokens - flag to enable fix for Issue #63 that fixes erroneous grouping\n       of results names when an And expression is nested within an Or or MatchFirst; set to\n       True to enable bugfix released in pyparsing 2.3.0, or False to preserve\n       pre-2.3.0 handling of named results\n\"\"\"\n__compat__.collect_all_And_tokens = True\n\n__diag__ = SimpleNamespace()\n__diag__.__doc__ = \"\"\"\nDiagnostic configuration (all default to False)\n     - warn_multiple_tokens_in_named_alternation - flag to enable warnings when a results\n       name is defined on a MatchFirst or Or expression with one or more And subexpressions\n       (only warns if __compat__.collect_all_And_tokens is False)\n     - warn_ungrouped_named_tokens_in_collection - flag to enable warnings when a results\n       name is defined on a containing expression with ungrouped subexpressions that also\n       have results names\n     - warn_name_set_on_empty_Forward - flag to enable warnings whan a Forward is defined\n       with a results name, but has no contents defined\n     - warn_on_multiple_string_args_to_oneof - flag to enable warnings whan oneOf is\n       incorrectly called with multiple str arguments\n     - enable_debug_on_named_expressions - flag to auto-enable debug on all subsequent\n       calls to ParserElement.setName()\n\"\"\"\n__diag__.warn_multiple_tokens_in_named_alternation = False\n__diag__.warn_ungrouped_named_tokens_in_collection = False\n__diag__.warn_name_set_on_empty_Forward = False\n__diag__.warn_on_multiple_string_args_to_oneof = False\n__diag__.enable_debug_on_named_expressions = False\n__diag__._all_names = [nm for nm in vars(__diag__) if nm.startswith(\"enable_\") or nm.startswith(\"warn_\")]\n\ndef _enable_all_warnings():\n    __diag__.warn_multiple_tokens_in_named_alternation = True\n    __diag__.warn_ungrouped_named_tokens_in_collection = True\n    __diag__.warn_name_set_on_empty_Forward = True\n    __diag__.warn_on_multiple_string_args_to_oneof = True\n__diag__.enable_all_warnings = _enable_all_warnings\n\n\n__all__ = ['__version__', '__versionTime__', '__author__', '__compat__', '__diag__',\n           'And', 'CaselessKeyword', 'CaselessLiteral', 'CharsNotIn', 'Combine', 'Dict', 'Each', 'Empty',\n           'FollowedBy', 'Forward', 'GoToColumn', 'Group', 'Keyword', 'LineEnd', 'LineStart', 'Literal',\n           'PrecededBy', 'MatchFirst', 'NoMatch', 'NotAny', 'OneOrMore', 'OnlyOnce', 'Optional', 'Or',\n           'ParseBaseException', 'ParseElementEnhance', 'ParseException', 'ParseExpression', 'ParseFatalException',\n           'ParseResults', 'ParseSyntaxException', 'ParserElement', 'QuotedString', 'RecursiveGrammarException',\n           'Regex', 'SkipTo', 'StringEnd', 'StringStart', 'Suppress', 'Token', 'TokenConverter',\n           'White', 'Word', 'WordEnd', 'WordStart', 'ZeroOrMore', 'Char',\n           'alphanums', 'alphas', 'alphas8bit', 'anyCloseTag', 'anyOpenTag', 'cStyleComment', 'col',\n           'commaSeparatedList', 'commonHTMLEntity', 'countedArray', 'cppStyleComment', 'dblQuotedString',\n           'dblSlashComment', 'delimitedList', 'dictOf', 'downcaseTokens', 'empty', 'hexnums',\n           'htmlComment', 'javaStyleComment', 'line', 'lineEnd', 'lineStart', 'lineno',\n           'makeHTMLTags', 'makeXMLTags', 'matchOnlyAtCol', 'matchPreviousExpr', 'matchPreviousLiteral',\n           'nestedExpr', 'nullDebugAction', 'nums', 'oneOf', 'opAssoc', 'operatorPrecedence', 'printables',\n           'punc8bit', 'pythonStyleComment', 'quotedString', 'removeQuotes', 'replaceHTMLEntity',\n           'replaceWith', 'restOfLine', 'sglQuotedString', 'srange', 'stringEnd',\n           'stringStart', 'traceParseAction', 'unicodeString', 'upcaseTokens', 'withAttribute',\n           'indentedBlock', 'originalTextFor', 'ungroup', 'infixNotation', 'locatedExpr', 'withClass',\n           'CloseMatch', 'tokenMap', 'pyparsing_common', 'pyparsing_unicode', 'unicode_set',\n           'conditionAsParseAction', 're',\n           ]\n\nsystem_version = tuple(sys.version_info)[:3]\nPY_3 = system_version[0] == 3\nif PY_3:\n    _MAX_INT = sys.maxsize\n    basestring = str\n    unichr = chr\n    unicode = str\n    _ustr = str\n\n    # build list of single arg builtins, that can be used as parse actions\n    singleArgBuiltins = [sum, len, sorted, reversed, list, tuple, set, any, all, min, max]\n\nelse:\n    _MAX_INT = sys.maxint\n    range = xrange\n\n    def _ustr(obj):\n        \"\"\"Drop-in replacement for str(obj) that tries to be Unicode\n        friendly. It first tries str(obj). If that fails with\n        a UnicodeEncodeError, then it tries unicode(obj). It then\n        < returns the unicode object | encodes it with the default\n        encoding | ... >.\n        \"\"\"\n        if isinstance(obj, unicode):\n            return obj\n\n        try:\n            # If this works, then _ustr(obj) has the same behaviour as str(obj), so\n            # it won't break any existing code.\n            return str(obj)\n\n        except UnicodeEncodeError:\n            # Else encode it\n            ret = unicode(obj).encode(sys.getdefaultencoding(), 'xmlcharrefreplace')\n            xmlcharref = Regex(r'&#\\d+;')\n            xmlcharref.setParseAction(lambda t: '\\\\u' + hex(int(t[0][2:-1]))[2:])\n            return xmlcharref.transformString(ret)\n\n    # build list of single arg builtins, tolerant of Python version, that can be used as parse actions\n    singleArgBuiltins = []\n    import __builtin__\n\n    for fname in \"sum len sorted reversed list tuple set any all min max\".split():\n        try:\n            singleArgBuiltins.append(getattr(__builtin__, fname))\n        except AttributeError:\n            continue\n\n_generatorType = type((y for y in range(1)))\n\ndef _xml_escape(data):\n    \"\"\"Escape &, <, >, \", ', etc. in a string of data.\"\"\"\n\n    # ampersand must be replaced first\n    from_symbols = '&><\"\\''\n    to_symbols = ('&' + s + ';' for s in \"amp gt lt quot apos\".split())\n    for from_, to_ in zip(from_symbols, to_symbols):\n        data = data.replace(from_, to_)\n    return data\n\nalphas = string.ascii_uppercase + string.ascii_lowercase\nnums = \"0123456789\"\nhexnums = nums + \"ABCDEFabcdef\"\nalphanums = alphas + nums\n_bslash = chr(92)\nprintables = \"\".join(c for c in string.printable if c not in string.whitespace)\n\n\ndef conditionAsParseAction(fn, message=None, fatal=False):\n    msg = message if message is not None else \"failed user-defined condition\"\n    exc_type = ParseFatalException if fatal else ParseException\n    fn = _trim_arity(fn)\n\n    @wraps(fn)\n    def pa(s, l, t):\n        if not bool(fn(s, l, t)):\n            raise exc_type(s, l, msg)\n\n    return pa\n\nclass ParseBaseException(Exception):\n    \"\"\"base exception class for all parsing runtime exceptions\"\"\"\n    # Performance tuning: we construct a *lot* of these, so keep this\n    # constructor as small and fast as possible\n    def __init__(self, pstr, loc=0, msg=None, elem=None):\n        self.loc = loc\n        if msg is None:\n            self.msg = pstr\n            self.pstr = \"\"\n        else:\n            self.msg = msg\n            self.pstr = pstr\n        self.parserElement = elem\n        self.args = (pstr, loc, msg)\n\n    @classmethod\n    def _from_exception(cls, pe):\n        \"\"\"\n        internal factory method to simplify creating one type of ParseException\n        from another - avoids having __init__ signature conflicts among subclasses\n        \"\"\"\n        return cls(pe.pstr, pe.loc, pe.msg, pe.parserElement)\n\n    def __getattr__(self, aname):\n        \"\"\"supported attributes by name are:\n           - lineno - returns the line number of the exception text\n           - col - returns the column number of the exception text\n           - line - returns the line containing the exception text\n        \"\"\"\n        if aname == \"lineno\":\n            return lineno(self.loc, self.pstr)\n        elif aname in (\"col\", \"column\"):\n            return col(self.loc, self.pstr)\n        elif aname == \"line\":\n            return line(self.loc, self.pstr)\n        else:\n            raise AttributeError(aname)\n\n    def __str__(self):\n        if self.pstr:\n            if self.loc >= len(self.pstr):\n                foundstr = ', found end of text'\n            else:\n                foundstr = (', found %r' % self.pstr[self.loc:self.loc + 1]).replace(r'\\\\', '\\\\')\n        else:\n            foundstr = ''\n        return (\"%s%s  (at char %d), (line:%d, col:%d)\" %\n                   (self.msg, foundstr, self.loc, self.lineno, self.column))\n    def __repr__(self):\n        return _ustr(self)\n    def markInputline(self, markerString=\">!<\"):\n        \"\"\"Extracts the exception line from the input string, and marks\n           the location of the exception with a special symbol.\n        \"\"\"\n        line_str = self.line\n        line_column = self.column - 1\n        if markerString:\n            line_str = \"\".join((line_str[:line_column],\n                                markerString, line_str[line_column:]))\n        return line_str.strip()\n    def __dir__(self):\n        return \"lineno col line\".split() + dir(type(self))\n\nclass ParseException(ParseBaseException):\n    \"\"\"\n    Exception thrown when parse expressions don't match class;\n    supported attributes by name are:\n    - lineno - returns the line number of the exception text\n    - col - returns the column number of the exception text\n    - line - returns the line containing the exception text\n\n    Example::\n\n        try:\n            Word(nums).setName(\"integer\").parseString(\"ABC\")\n        except ParseException as pe:\n            print(pe)\n            print(\"column: {}\".format(pe.col))\n\n    prints::\n\n       Expected integer (at char 0), (line:1, col:1)\n        column: 1\n\n    \"\"\"\n\n    @staticmethod\n    def explain(exc, depth=16):\n        \"\"\"\n        Method to take an exception and translate the Python internal traceback into a list\n        of the pyparsing expressions that caused the exception to be raised.\n\n        Parameters:\n\n         - exc - exception raised during parsing (need not be a ParseException, in support\n           of Python exceptions that might be raised in a parse action)\n         - depth (default=16) - number of levels back in the stack trace to list expression\n           and function names; if None, the full stack trace names will be listed; if 0, only\n           the failing input line, marker, and exception string will be shown\n\n        Returns a multi-line string listing the ParserElements and/or function names in the\n        exception's stack trace.\n\n        Note: the diagnostic output will include string representations of the expressions\n        that failed to parse. These representations will be more helpful if you use `setName` to\n        give identifiable names to your expressions. Otherwise they will use the default string\n        forms, which may be cryptic to read.\n\n        explain() is only supported under Python 3.\n        \"\"\"\n        import inspect\n\n        if depth is None:\n            depth = sys.getrecursionlimit()\n        ret = []\n        if isinstance(exc, ParseBaseException):\n            ret.append(exc.line)\n            ret.append(' ' * (exc.col - 1) + '^')\n        ret.append(\"{0}: {1}\".format(type(exc).__name__, exc))\n\n        if depth > 0:\n            callers = inspect.getinnerframes(exc.__traceback__, context=depth)\n            seen = set()\n            for i, ff in enumerate(callers[-depth:]):\n                frm = ff[0]\n\n                f_self = frm.f_locals.get('self', None)\n                if isinstance(f_self, ParserElement):\n                    if frm.f_code.co_name not in ('parseImpl', '_parseNoCache'):\n                        continue\n                    if f_self in seen:\n                        continue\n                    seen.add(f_self)\n\n                    self_type = type(f_self)\n                    ret.append(\"{0}.{1} - {2}\".format(self_type.__module__,\n                                                      self_type.__name__,\n                                                      f_self))\n                elif f_self is not None:\n                    self_type = type(f_self)\n                    ret.append(\"{0}.{1}\".format(self_type.__module__,\n                                                self_type.__name__))\n                else:\n                    code = frm.f_code\n                    if code.co_name in ('wrapper', '<module>'):\n                        continue\n\n                    ret.append(\"{0}\".format(code.co_name))\n\n                depth -= 1\n                if not depth:\n                    break\n\n        return '\\n'.join(ret)\n\n\nclass ParseFatalException(ParseBaseException):\n    \"\"\"user-throwable exception thrown when inconsistent parse content\n       is found; stops all parsing immediately\"\"\"\n    pass\n\nclass ParseSyntaxException(ParseFatalException):\n    \"\"\"just like :class:`ParseFatalException`, but thrown internally\n    when an :class:`ErrorStop<And._ErrorStop>` ('-' operator) indicates\n    that parsing is to stop immediately because an unbacktrackable\n    syntax error has been found.\n    \"\"\"\n    pass\n\n#~ class ReparseException(ParseBaseException):\n    #~ \"\"\"Experimental class - parse actions can raise this exception to cause\n       #~ pyparsing to reparse the input string:\n        #~ - with a modified input string, and/or\n        #~ - with a modified start location\n       #~ Set the values of the ReparseException in the constructor, and raise the\n       #~ exception in a parse action to cause pyparsing to use the new string/location.\n       #~ Setting the values as None causes no change to be made.\n       #~ \"\"\"\n    #~ def __init_( self, newstring, restartLoc ):\n        #~ self.newParseText = newstring\n        #~ self.reparseLoc = restartLoc\n\nclass RecursiveGrammarException(Exception):\n    \"\"\"exception thrown by :class:`ParserElement.validate` if the\n    grammar could be improperly recursive\n    \"\"\"\n    def __init__(self, parseElementList):\n        self.parseElementTrace = parseElementList\n\n    def __str__(self):\n        return \"RecursiveGrammarException: %s\" % self.parseElementTrace\n\nclass _ParseResultsWithOffset(object):\n    def __init__(self, p1, p2):\n        self.tup = (p1, p2)\n    def __getitem__(self, i):\n        return self.tup[i]\n    def __repr__(self):\n        return repr(self.tup[0])\n    def setOffset(self, i):\n        self.tup = (self.tup[0], i)\n\nclass ParseResults(object):\n    \"\"\"Structured parse results, to provide multiple means of access to\n    the parsed data:\n\n       - as a list (``len(results)``)\n       - by list index (``results[0], results[1]``, etc.)\n       - by attribute (``results.<resultsName>`` - see :class:`ParserElement.setResultsName`)\n\n    Example::\n\n        integer = Word(nums)\n        date_str = (integer.setResultsName(\"year\") + '/'\n                        + integer.setResultsName(\"month\") + '/'\n                        + integer.setResultsName(\"day\"))\n        # equivalent form:\n        # date_str = integer(\"year\") + '/' + integer(\"month\") + '/' + integer(\"day\")\n\n        # parseString returns a ParseResults object\n        result = date_str.parseString(\"1999/12/31\")\n\n        def test(s, fn=repr):\n            print(\"%s -> %s\" % (s, fn(eval(s))))\n        test(\"list(result)\")\n        test(\"result[0]\")\n        test(\"result['month']\")\n        test(\"result.day\")\n        test(\"'month' in result\")\n        test(\"'minutes' in result\")\n        test(\"result.dump()\", str)\n\n    prints::\n\n        list(result) -> ['1999', '/', '12', '/', '31']\n        result[0] -> '1999'\n        result['month'] -> '12'\n        result.day -> '31'\n        'month' in result -> True\n        'minutes' in result -> False\n        result.dump() -> ['1999', '/', '12', '/', '31']\n        - day: 31\n        - month: 12\n        - year: 1999\n    \"\"\"\n    def __new__(cls, toklist=None, name=None, asList=True, modal=True):\n        if isinstance(toklist, cls):\n            return toklist\n        retobj = object.__new__(cls)\n        retobj.__doinit = True\n        return retobj\n\n    # Performance tuning: we construct a *lot* of these, so keep this\n    # constructor as small and fast as possible\n    def __init__(self, toklist=None, name=None, asList=True, modal=True, isinstance=isinstance):\n        if self.__doinit:\n            self.__doinit = False\n            self.__name = None\n            self.__parent = None\n            self.__accumNames = {}\n            self.__asList = asList\n            self.__modal = modal\n            if toklist is None:\n                toklist = []\n            if isinstance(toklist, list):\n                self.__toklist = toklist[:]\n            elif isinstance(toklist, _generatorType):\n                self.__toklist = list(toklist)\n            else:\n                self.__toklist = [toklist]\n            self.__tokdict = dict()\n\n        if name is not None and name:\n            if not modal:\n                self.__accumNames[name] = 0\n            if isinstance(name, int):\n                name = _ustr(name)  # will always return a str, but use _ustr for consistency\n            self.__name = name\n            if not (isinstance(toklist, (type(None), basestring, list)) and toklist in (None, '', [])):\n                if isinstance(toklist, basestring):\n                    toklist = [toklist]\n                if asList:\n                    if isinstance(toklist, ParseResults):\n                        self[name] = _ParseResultsWithOffset(ParseResults(toklist.__toklist), 0)\n                    else:\n                        self[name] = _ParseResultsWithOffset(ParseResults(toklist[0]), 0)\n                    self[name].__name = name\n                else:\n                    try:\n                        self[name] = toklist[0]\n                    except (KeyError, TypeError, IndexError):\n                        self[name] = toklist\n\n    def __getitem__(self, i):\n        if isinstance(i, (int, slice)):\n            return self.__toklist[i]\n        else:\n            if i not in self.__accumNames:\n                return self.__tokdict[i][-1][0]\n            else:\n                return ParseResults([v[0] for v in self.__tokdict[i]])\n\n    def __setitem__(self, k, v, isinstance=isinstance):\n        if isinstance(v, _ParseResultsWithOffset):\n            self.__tokdict[k] = self.__tokdict.get(k, list()) + [v]\n            sub = v[0]\n        elif isinstance(k, (int, slice)):\n            self.__toklist[k] = v\n            sub = v\n        else:\n            self.__tokdict[k] = self.__tokdict.get(k, list()) + [_ParseResultsWithOffset(v, 0)]\n            sub = v\n        if isinstance(sub, ParseResults):\n            sub.__parent = wkref(self)\n\n    def __delitem__(self, i):\n        if isinstance(i, (int, slice)):\n            mylen = len(self.__toklist)\n            del self.__toklist[i]\n\n            # convert int to slice\n            if isinstance(i, int):\n                if i < 0:\n                    i += mylen\n                i = slice(i, i + 1)\n            # get removed indices\n            removed = list(range(*i.indices(mylen)))\n            removed.reverse()\n            # fixup indices in token dictionary\n            for name, occurrences in self.__tokdict.items():\n                for j in removed:\n                    for k, (value, position) in enumerate(occurrences):\n                        occurrences[k] = _ParseResultsWithOffset(value, position - (position > j))\n        else:\n            del self.__tokdict[i]\n\n    def __contains__(self, k):\n        return k in self.__tokdict\n\n    def __len__(self):\n        return len(self.__toklist)\n\n    def __bool__(self):\n        return (not not self.__toklist)\n    __nonzero__ = __bool__\n\n    def __iter__(self):\n        return iter(self.__toklist)\n\n    def __reversed__(self):\n        return iter(self.__toklist[::-1])\n\n    def _iterkeys(self):\n        if hasattr(self.__tokdict, \"iterkeys\"):\n            return self.__tokdict.iterkeys()\n        else:\n            return iter(self.__tokdict)\n\n    def _itervalues(self):\n        return (self[k] for k in self._iterkeys())\n\n    def _iteritems(self):\n        return ((k, self[k]) for k in self._iterkeys())\n\n    if PY_3:\n        keys = _iterkeys\n        \"\"\"Returns an iterator of all named result keys.\"\"\"\n\n        values = _itervalues\n        \"\"\"Returns an iterator of all named result values.\"\"\"\n\n        items = _iteritems\n        \"\"\"Returns an iterator of all named result key-value tuples.\"\"\"\n\n    else:\n        iterkeys = _iterkeys\n        \"\"\"Returns an iterator of all named result keys (Python 2.x only).\"\"\"\n\n        itervalues = _itervalues\n        \"\"\"Returns an iterator of all named result values (Python 2.x only).\"\"\"\n\n        iteritems = _iteritems\n        \"\"\"Returns an iterator of all named result key-value tuples (Python 2.x only).\"\"\"\n\n        def keys(self):\n            \"\"\"Returns all named result keys (as a list in Python 2.x, as an iterator in Python 3.x).\"\"\"\n            return list(self.iterkeys())\n\n        def values(self):\n            \"\"\"Returns all named result values (as a list in Python 2.x, as an iterator in Python 3.x).\"\"\"\n            return list(self.itervalues())\n\n        def items(self):\n            \"\"\"Returns all named result key-values (as a list of tuples in Python 2.x, as an iterator in Python 3.x).\"\"\"\n            return list(self.iteritems())\n\n    def haskeys(self):\n        \"\"\"Since keys() returns an iterator, this method is helpful in bypassing\n           code that looks for the existence of any defined results names.\"\"\"\n        return bool(self.__tokdict)\n\n    def pop(self, *args, **kwargs):\n        \"\"\"\n        Removes and returns item at specified index (default= ``last``).\n        Supports both ``list`` and ``dict`` semantics for ``pop()``. If\n        passed no argument or an integer argument, it will use ``list``\n        semantics and pop tokens from the list of parsed tokens. If passed\n        a non-integer argument (most likely a string), it will use ``dict``\n        semantics and pop the corresponding value from any defined results\n        names. A second default return value argument is supported, just as in\n        ``dict.pop()``.\n\n        Example::\n\n            def remove_first(tokens):\n                tokens.pop(0)\n            print(OneOrMore(Word(nums)).parseString(\"0 123 321\")) # -> ['0', '123', '321']\n            print(OneOrMore(Word(nums)).addParseAction(remove_first).parseString(\"0 123 321\")) # -> ['123', '321']\n\n            label = Word(alphas)\n            patt = label(\"LABEL\") + OneOrMore(Word(nums))\n            print(patt.parseString(\"AAB 123 321\").dump())\n\n            # Use pop() in a parse action to remove named result (note that corresponding value is not\n            # removed from list form of results)\n            def remove_LABEL(tokens):\n                tokens.pop(\"LABEL\")\n                return tokens\n            patt.addParseAction(remove_LABEL)\n            print(patt.parseString(\"AAB 123 321\").dump())\n\n        prints::\n\n            ['AAB', '123', '321']\n            - LABEL: AAB\n\n            ['AAB', '123', '321']\n        \"\"\"\n        if not args:\n            args = [-1]\n        for k, v in kwargs.items():\n            if k == 'default':\n                args = (args[0], v)\n            else:\n                raise TypeError(\"pop() got an unexpected keyword argument '%s'\" % k)\n        if (isinstance(args[0], int)\n                or len(args) == 1\n                or args[0] in self):\n            index = args[0]\n            ret = self[index]\n            del self[index]\n            return ret\n        else:\n            defaultvalue = args[1]\n            return defaultvalue\n\n    def get(self, key, defaultValue=None):\n        \"\"\"\n        Returns named result matching the given key, or if there is no\n        such name, then returns the given ``defaultValue`` or ``None`` if no\n        ``defaultValue`` is specified.\n\n        Similar to ``dict.get()``.\n\n        Example::\n\n            integer = Word(nums)\n            date_str = integer(\"year\") + '/' + integer(\"month\") + '/' + integer(\"day\")\n\n            result = date_str.parseString(\"1999/12/31\")\n            print(result.get(\"year\")) # -> '1999'\n            print(result.get(\"hour\", \"not specified\")) # -> 'not specified'\n            print(result.get(\"hour\")) # -> None\n        \"\"\"\n        if key in self:\n            return self[key]\n        else:\n            return defaultValue\n\n    def insert(self, index, insStr):\n        \"\"\"\n        Inserts new element at location index in the list of parsed tokens.\n\n        Similar to ``list.insert()``.\n\n        Example::\n\n            print(OneOrMore(Word(nums)).parseString(\"0 123 321\")) # -> ['0', '123', '321']\n\n            # use a parse action to insert the parse location in the front of the parsed results\n            def insert_locn(locn, tokens):\n                tokens.insert(0, locn)\n            print(OneOrMore(Word(nums)).addParseAction(insert_locn).parseString(\"0 123 321\")) # -> [0, '0', '123', '321']\n        \"\"\"\n        self.__toklist.insert(index, insStr)\n        # fixup indices in token dictionary\n        for name, occurrences in self.__tokdict.items():\n            for k, (value, position) in enumerate(occurrences):\n                occurrences[k] = _ParseResultsWithOffset(value, position + (position > index))\n\n    def append(self, item):\n        \"\"\"\n        Add single element to end of ParseResults list of elements.\n\n        Example::\n\n            print(OneOrMore(Word(nums)).parseString(\"0 123 321\")) # -> ['0', '123', '321']\n\n            # use a parse action to compute the sum of the parsed integers, and add it to the end\n            def append_sum(tokens):\n                tokens.append(sum(map(int, tokens)))\n            print(OneOrMore(Word(nums)).addParseAction(append_sum).parseString(\"0 123 321\")) # -> ['0', '123', '321', 444]\n        \"\"\"\n        self.__toklist.append(item)\n\n    def extend(self, itemseq):\n        \"\"\"\n        Add sequence of elements to end of ParseResults list of elements.\n\n        Example::\n\n            patt = OneOrMore(Word(alphas))\n\n            # use a parse action to append the reverse of the matched strings, to make a palindrome\n            def make_palindrome(tokens):\n                tokens.extend(reversed([t[::-1] for t in tokens]))\n                return ''.join(tokens)\n            print(patt.addParseAction(make_palindrome).parseString(\"lskdj sdlkjf lksd\")) # -> 'lskdjsdlkjflksddsklfjkldsjdksl'\n        \"\"\"\n        if isinstance(itemseq, ParseResults):\n            self.__iadd__(itemseq)\n        else:\n            self.__toklist.extend(itemseq)\n\n    def clear(self):\n        \"\"\"\n        Clear all elements and results names.\n        \"\"\"\n        del self.__toklist[:]\n        self.__tokdict.clear()\n\n    def __getattr__(self, name):\n        try:\n            return self[name]\n        except KeyError:\n            return \"\"\n\n    def __add__(self, other):\n        ret = self.copy()\n        ret += other\n        return ret\n\n    def __iadd__(self, other):\n        if other.__tokdict:\n            offset = len(self.__toklist)\n            addoffset = lambda a: offset if a < 0 else a + offset\n            otheritems = other.__tokdict.items()\n            otherdictitems = [(k, _ParseResultsWithOffset(v[0], addoffset(v[1])))\n                              for k, vlist in otheritems for v in vlist]\n            for k, v in otherdictitems:\n                self[k] = v\n                if isinstance(v[0], ParseResults):\n                    v[0].__parent = wkref(self)\n\n        self.__toklist += other.__toklist\n        self.__accumNames.update(other.__accumNames)\n        return self\n\n    def __radd__(self, other):\n        if isinstance(other, int) and other == 0:\n            # useful for merging many ParseResults using sum() builtin\n            return self.copy()\n        else:\n            # this may raise a TypeError - so be it\n            return other + self\n\n    def __repr__(self):\n        return \"(%s, %s)\" % (repr(self.__toklist), repr(self.__tokdict))\n\n    def __str__(self):\n        return '[' + ', '.join(_ustr(i) if isinstance(i, ParseResults) else repr(i) for i in self.__toklist) + ']'\n\n    def _asStringList(self, sep=''):\n        out = []\n        for item in self.__toklist:\n            if out and sep:\n                out.append(sep)\n            if isinstance(item, ParseResults):\n                out += item._asStringList()\n            else:\n                out.append(_ustr(item))\n        return out\n\n    def asList(self):\n        \"\"\"\n        Returns the parse results as a nested list of matching tokens, all converted to strings.\n\n        Example::\n\n            patt = OneOrMore(Word(alphas))\n            result = patt.parseString(\"sldkj lsdkj sldkj\")\n            # even though the result prints in string-like form, it is actually a pyparsing ParseResults\n            print(type(result), result) # -> <class 'pyparsing.ParseResults'> ['sldkj', 'lsdkj', 'sldkj']\n\n            # Use asList() to create an actual list\n            result_list = result.asList()\n            print(type(result_list), result_list) # -> <class 'list'> ['sldkj', 'lsdkj', 'sldkj']\n        \"\"\"\n        return [res.asList() if isinstance(res, ParseResults) else res for res in self.__toklist]\n\n    def asDict(self):\n        \"\"\"\n        Returns the named parse results as a nested dictionary.\n\n        Example::\n\n            integer = Word(nums)\n            date_str = integer(\"year\") + '/' + integer(\"month\") + '/' + integer(\"day\")\n\n            result = date_str.parseString('12/31/1999')\n            print(type(result), repr(result)) # -> <class 'pyparsing.ParseResults'> (['12', '/', '31', '/', '1999'], {'day': [('1999', 4)], 'year': [('12', 0)], 'month': [('31', 2)]})\n\n            result_dict = result.asDict()\n            print(type(result_dict), repr(result_dict)) # -> <class 'dict'> {'day': '1999', 'year': '12', 'month': '31'}\n\n            # even though a ParseResults supports dict-like access, sometime you just need to have a dict\n            import json\n            print(json.dumps(result)) # -> Exception: TypeError: ... is not JSON serializable\n            print(json.dumps(result.asDict())) # -> {\"month\": \"31\", \"day\": \"1999\", \"year\": \"12\"}\n        \"\"\"\n        if PY_3:\n            item_fn = self.items\n        else:\n            item_fn = self.iteritems\n\n        def toItem(obj):\n            if isinstance(obj, ParseResults):\n                if obj.haskeys():\n                    return obj.asDict()\n                else:\n                    return [toItem(v) for v in obj]\n            else:\n                return obj\n\n        return dict((k, toItem(v)) for k, v in item_fn())\n\n    def copy(self):\n        \"\"\"\n        Returns a new copy of a :class:`ParseResults` object.\n        \"\"\"\n        ret = ParseResults(self.__toklist)\n        ret.__tokdict = dict(self.__tokdict.items())\n        ret.__parent = self.__parent\n        ret.__accumNames.update(self.__accumNames)\n        ret.__name = self.__name\n        return ret\n\n    def asXML(self, doctag=None, namedItemsOnly=False, indent=\"\", formatted=True):\n        \"\"\"\n        (Deprecated) Returns the parse results as XML. Tags are created for tokens and lists that have defined results names.\n        \"\"\"\n        nl = \"\\n\"\n        out = []\n        namedItems = dict((v[1], k) for (k, vlist) in self.__tokdict.items()\n                          for v in vlist)\n        nextLevelIndent = indent + \"  \"\n\n        # collapse out indents if formatting is not desired\n        if not formatted:\n            indent = \"\"\n            nextLevelIndent = \"\"\n            nl = \"\"\n\n        selfTag = None\n        if doctag is not None:\n            selfTag = doctag\n        else:\n            if self.__name:\n                selfTag = self.__name\n\n        if not selfTag:\n            if namedItemsOnly:\n                return \"\"\n            else:\n                selfTag = \"ITEM\"\n\n        out += [nl, indent, \"<\", selfTag, \">\"]\n\n        for i, res in enumerate(self.__toklist):\n            if isinstance(res, ParseResults):\n                if i in namedItems:\n                    out += [res.asXML(namedItems[i],\n                                      namedItemsOnly and doctag is None,\n                                      nextLevelIndent,\n                                      formatted)]\n                else:\n                    out += [res.asXML(None,\n                                      namedItemsOnly and doctag is None,\n                                      nextLevelIndent,\n                                      formatted)]\n            else:\n                # individual token, see if there is a name for it\n                resTag = None\n                if i in namedItems:\n                    resTag = namedItems[i]\n                if not resTag:\n                    if namedItemsOnly:\n                        continue\n                    else:\n                        resTag = \"ITEM\"\n                xmlBodyText = _xml_escape(_ustr(res))\n                out += [nl, nextLevelIndent, \"<\", resTag, \">\",\n                        xmlBodyText,\n                                                \"</\", resTag, \">\"]\n\n        out += [nl, indent, \"</\", selfTag, \">\"]\n        return \"\".join(out)\n\n    def __lookup(self, sub):\n        for k, vlist in self.__tokdict.items():\n            for v, loc in vlist:\n                if sub is v:\n                    return k\n        return None\n\n    def getName(self):\n        r\"\"\"\n        Returns the results name for this token expression. Useful when several\n        different expressions might match at a particular location.\n\n        Example::\n\n            integer = Word(nums)\n            ssn_expr = Regex(r\"\\d\\d\\d-\\d\\d-\\d\\d\\d\\d\")\n            house_number_expr = Suppress('#') + Word(nums, alphanums)\n            user_data = (Group(house_number_expr)(\"house_number\")\n                        | Group(ssn_expr)(\"ssn\")\n                        | Group(integer)(\"age\"))\n            user_info = OneOrMore(user_data)\n\n            result = user_info.parseString(\"22 111-22-3333 #221B\")\n            for item in result:\n                print(item.getName(), ':', item[0])\n\n        prints::\n\n            age : 22\n            ssn : 111-22-3333\n            house_number : 221B\n        \"\"\"\n        if self.__name:\n            return self.__name\n        elif self.__parent:\n            par = self.__parent()\n            if par:\n                return par.__lookup(self)\n            else:\n                return None\n        elif (len(self) == 1\n              and len(self.__tokdict) == 1\n              and next(iter(self.__tokdict.values()))[0][1] in (0, -1)):\n            return next(iter(self.__tokdict.keys()))\n        else:\n            return None\n\n    def dump(self, indent='', full=True, include_list=True, _depth=0):\n        \"\"\"\n        Diagnostic method for listing out the contents of\n        a :class:`ParseResults`. Accepts an optional ``indent`` argument so\n        that this string can be embedded in a nested display of other data.\n\n        Example::\n\n            integer = Word(nums)\n            date_str = integer(\"year\") + '/' + integer(\"month\") + '/' + integer(\"day\")\n\n            result = date_str.parseString('12/31/1999')\n            print(result.dump())\n\n        prints::\n\n            ['12', '/', '31', '/', '1999']\n            - day: 1999\n            - month: 31\n            - year: 12\n        \"\"\"\n        out = []\n        NL = '\\n'\n        if include_list:\n            out.append(indent + _ustr(self.asList()))\n        else:\n            out.append('')\n\n        if full:\n            if self.haskeys():\n                items = sorted((str(k), v) for k, v in self.items())\n                for k, v in items:\n                    if out:\n                        out.append(NL)\n                    out.append(\"%s%s- %s: \" % (indent, ('  ' * _depth), k))\n                    if isinstance(v, ParseResults):\n                        if v:\n                            out.append(v.dump(indent=indent, full=full, include_list=include_list, _depth=_depth + 1))\n                        else:\n                            out.append(_ustr(v))\n                    else:\n                        out.append(repr(v))\n            elif any(isinstance(vv, ParseResults) for vv in self):\n                v = self\n                for i, vv in enumerate(v):\n                    if isinstance(vv, ParseResults):\n                        out.append(\"\\n%s%s[%d]:\\n%s%s%s\" % (indent,\n                                                            ('  ' * (_depth)),\n                                                            i,\n                                                            indent,\n                                                            ('  ' * (_depth + 1)),\n                                                            vv.dump(indent=indent,\n                                                                    full=full,\n                                                                    include_list=include_list,\n                                                                    _depth=_depth + 1)))\n                    else:\n                        out.append(\"\\n%s%s[%d]:\\n%s%s%s\" % (indent,\n                                                            ('  ' * (_depth)),\n                                                            i,\n                                                            indent,\n                                                            ('  ' * (_depth + 1)),\n                                                            _ustr(vv)))\n\n        return \"\".join(out)\n\n    def pprint(self, *args, **kwargs):\n        \"\"\"\n        Pretty-printer for parsed results as a list, using the\n        `pprint <https://docs.python.org/3/library/pprint.html>`_ module.\n        Accepts additional positional or keyword args as defined for\n        `pprint.pprint <https://docs.python.org/3/library/pprint.html#pprint.pprint>`_ .\n\n        Example::\n\n            ident = Word(alphas, alphanums)\n            num = Word(nums)\n            func = Forward()\n            term = ident | num | Group('(' + func + ')')\n            func <<= ident + Group(Optional(delimitedList(term)))\n            result = func.parseString(\"fna a,b,(fnb c,d,200),100\")\n            result.pprint(width=40)\n\n        prints::\n\n            ['fna',\n             ['a',\n              'b',\n              ['(', 'fnb', ['c', 'd', '200'], ')'],\n              '100']]\n        \"\"\"\n        pprint.pprint(self.asList(), *args, **kwargs)\n\n    # add support for pickle protocol\n    def __getstate__(self):\n        return (self.__toklist,\n                (self.__tokdict.copy(),\n                 self.__parent is not None and self.__parent() or None,\n                 self.__accumNames,\n                 self.__name))\n\n    def __setstate__(self, state):\n        self.__toklist = state[0]\n        self.__tokdict, par, inAccumNames, self.__name = state[1]\n        self.__accumNames = {}\n        self.__accumNames.update(inAccumNames)\n        if par is not None:\n            self.__parent = wkref(par)\n        else:\n            self.__parent = None\n\n    def __getnewargs__(self):\n        return self.__toklist, self.__name, self.__asList, self.__modal\n\n    def __dir__(self):\n        return dir(type(self)) + list(self.keys())\n\n    @classmethod\n    def from_dict(cls, other, name=None):\n        \"\"\"\n        Helper classmethod to construct a ParseResults from a dict, preserving the\n        name-value relations as results names. If an optional 'name' argument is\n        given, a nested ParseResults will be returned\n        \"\"\"\n        def is_iterable(obj):\n            try:\n                iter(obj)\n            except Exception:\n                return False\n            else:\n                if PY_3:\n                    return not isinstance(obj, (str, bytes))\n                else:\n                    return not isinstance(obj, basestring)\n\n        ret = cls([])\n        for k, v in other.items():\n            if isinstance(v, Mapping):\n                ret += cls.from_dict(v, name=k)\n            else:\n                ret += cls([v], name=k, asList=is_iterable(v))\n        if name is not None:\n            ret = cls([ret], name=name)\n        return ret\n\nMutableMapping.register(ParseResults)\n\ndef col (loc, strg):\n    \"\"\"Returns current column within a string, counting newlines as line separators.\n   The first column is number 1.\n\n   Note: the default parsing behavior is to expand tabs in the input string\n   before starting the parsing process.  See\n   :class:`ParserElement.parseString` for more\n   information on parsing strings containing ``<TAB>`` s, and suggested\n   methods to maintain a consistent view of the parsed string, the parse\n   location, and line and column positions within the parsed string.\n   \"\"\"\n    s = strg\n    return 1 if 0 < loc < len(s) and s[loc-1] == '\\n' else loc - s.rfind(\"\\n\", 0, loc)\n\ndef lineno(loc, strg):\n    \"\"\"Returns current line number within a string, counting newlines as line separators.\n    The first line is number 1.\n\n    Note - the default parsing behavior is to expand tabs in the input string\n    before starting the parsing process.  See :class:`ParserElement.parseString`\n    for more information on parsing strings containing ``<TAB>`` s, and\n    suggested methods to maintain a consistent view of the parsed string, the\n    parse location, and line and column positions within the parsed string.\n    \"\"\"\n    return strg.count(\"\\n\", 0, loc) + 1\n\ndef line(loc, strg):\n    \"\"\"Returns the line of text containing loc within a string, counting newlines as line separators.\n       \"\"\"\n    lastCR = strg.rfind(\"\\n\", 0, loc)\n    nextCR = strg.find(\"\\n\", loc)\n    if nextCR >= 0:\n        return strg[lastCR + 1:nextCR]\n    else:\n        return strg[lastCR + 1:]\n\ndef _defaultStartDebugAction(instring, loc, expr):\n    print((\"Match \" + _ustr(expr) + \" at loc \" + _ustr(loc) + \"(%d,%d)\" % (lineno(loc, instring), col(loc, instring))))\n\ndef _defaultSuccessDebugAction(instring, startloc, endloc, expr, toks):\n    print(\"Matched \" + _ustr(expr) + \" -> \" + str(toks.asList()))\n\ndef _defaultExceptionDebugAction(instring, loc, expr, exc):\n    print(\"Exception raised:\" + _ustr(exc))\n\ndef nullDebugAction(*args):\n    \"\"\"'Do-nothing' debug action, to suppress debugging output during parsing.\"\"\"\n    pass\n\n# Only works on Python 3.x - nonlocal is toxic to Python 2 installs\n#~ 'decorator to trim function calls to match the arity of the target'\n#~ def _trim_arity(func, maxargs=3):\n    #~ if func in singleArgBuiltins:\n        #~ return lambda s,l,t: func(t)\n    #~ limit = 0\n    #~ foundArity = False\n    #~ def wrapper(*args):\n        #~ nonlocal limit,foundArity\n        #~ while 1:\n            #~ try:\n                #~ ret = func(*args[limit:])\n                #~ foundArity = True\n                #~ return ret\n            #~ except TypeError:\n                #~ if limit == maxargs or foundArity:\n                    #~ raise\n                #~ limit += 1\n                #~ continue\n    #~ return wrapper\n\n# this version is Python 2.x-3.x cross-compatible\n'decorator to trim function calls to match the arity of the target'\ndef _trim_arity(func, maxargs=2):\n    if func in singleArgBuiltins:\n        return lambda s, l, t: func(t)\n    limit = [0]\n    foundArity = [False]\n\n    # traceback return data structure changed in Py3.5 - normalize back to plain tuples\n    if system_version[:2] >= (3, 5):\n        def extract_stack(limit=0):\n            # special handling for Python 3.5.0 - extra deep call stack by 1\n            offset = -3 if system_version == (3, 5, 0) else -2\n            frame_summary = traceback.extract_stack(limit=-offset + limit - 1)[offset]\n            return [frame_summary[:2]]\n        def extract_tb(tb, limit=0):\n            frames = traceback.extract_tb(tb, limit=limit)\n            frame_summary = frames[-1]\n            return [frame_summary[:2]]\n    else:\n        extract_stack = traceback.extract_stack\n        extract_tb = traceback.extract_tb\n\n    # synthesize what would be returned by traceback.extract_stack at the call to\n    # user's parse action 'func', so that we don't incur call penalty at parse time\n\n    LINE_DIFF = 6\n    # IF ANY CODE CHANGES, EVEN JUST COMMENTS OR BLANK LINES, BETWEEN THE NEXT LINE AND\n    # THE CALL TO FUNC INSIDE WRAPPER, LINE_DIFF MUST BE MODIFIED!!!!\n    this_line = extract_stack(limit=2)[-1]\n    pa_call_line_synth = (this_line[0], this_line[1] + LINE_DIFF)\n\n    def wrapper(*args):\n        while 1:\n            try:\n                ret = func(*args[limit[0]:])\n                foundArity[0] = True\n                return ret\n            except TypeError:\n                # re-raise TypeErrors if they did not come from our arity testing\n                if foundArity[0]:\n                    raise\n                else:\n                    try:\n                        tb = sys.exc_info()[-1]\n                        if not extract_tb(tb, limit=2)[-1][:2] == pa_call_line_synth:\n                            raise\n                    finally:\n                        try:\n                            del tb\n                        except NameError:\n                            pass\n\n                if limit[0] <= maxargs:\n                    limit[0] += 1\n                    continue\n                raise\n\n    # copy func name to wrapper for sensible debug output\n    func_name = \"<parse action>\"\n    try:\n        func_name = getattr(func, '__name__',\n                            getattr(func, '__class__').__name__)\n    except Exception:\n        func_name = str(func)\n    wrapper.__name__ = func_name\n\n    return wrapper\n\n\nclass ParserElement(object):\n    \"\"\"Abstract base level parser element class.\"\"\"\n    DEFAULT_WHITE_CHARS = \" \\n\\t\\r\"\n    verbose_stacktrace = False\n\n    @staticmethod\n    def setDefaultWhitespaceChars(chars):\n        r\"\"\"\n        Overrides the default whitespace chars\n\n        Example::\n\n            # default whitespace chars are space, <TAB> and newline\n            OneOrMore(Word(alphas)).parseString(\"abc def\\nghi jkl\")  # -> ['abc', 'def', 'ghi', 'jkl']\n\n            # change to just treat newline as significant\n            ParserElement.setDefaultWhitespaceChars(\" \\t\")\n            OneOrMore(Word(alphas)).parseString(\"abc def\\nghi jkl\")  # -> ['abc', 'def']\n        \"\"\"\n        ParserElement.DEFAULT_WHITE_CHARS = chars\n\n    @staticmethod\n    def inlineLiteralsUsing(cls):\n        \"\"\"\n        Set class to be used for inclusion of string literals into a parser.\n\n        Example::\n\n            # default literal class used is Literal\n            integer = Word(nums)\n            date_str = integer(\"year\") + '/' + integer(\"month\") + '/' + integer(\"day\")\n\n            date_str.parseString(\"1999/12/31\")  # -> ['1999', '/', '12', '/', '31']\n\n\n            # change to Suppress\n            ParserElement.inlineLiteralsUsing(Suppress)\n            date_str = integer(\"year\") + '/' + integer(\"month\") + '/' + integer(\"day\")\n\n            date_str.parseString(\"1999/12/31\")  # -> ['1999', '12', '31']\n        \"\"\"\n        ParserElement._literalStringClass = cls\n\n    @classmethod\n    def _trim_traceback(cls, tb):\n        while tb.tb_next:\n            tb = tb.tb_next\n        return tb\n\n    def __init__(self, savelist=False):\n        self.parseAction = list()\n        self.failAction = None\n        # ~ self.name = \"<unknown>\"  # don't define self.name, let subclasses try/except upcall\n        self.strRepr = None\n        self.resultsName = None\n        self.saveAsList = savelist\n        self.skipWhitespace = True\n        self.whiteChars = set(ParserElement.DEFAULT_WHITE_CHARS)\n        self.copyDefaultWhiteChars = True\n        self.mayReturnEmpty = False # used when checking for left-recursion\n        self.keepTabs = False\n        self.ignoreExprs = list()\n        self.debug = False\n        self.streamlined = False\n        self.mayIndexError = True # used to optimize exception handling for subclasses that don't advance parse index\n        self.errmsg = \"\"\n        self.modalResults = True # used to mark results names as modal (report only last) or cumulative (list all)\n        self.debugActions = (None, None, None)  # custom debug actions\n        self.re = None\n        self.callPreparse = True # used to avoid redundant calls to preParse\n        self.callDuringTry = False\n\n    def copy(self):\n        \"\"\"\n        Make a copy of this :class:`ParserElement`.  Useful for defining\n        different parse actions for the same parsing pattern, using copies of\n        the original parse element.\n\n        Example::\n\n            integer = Word(nums).setParseAction(lambda toks: int(toks[0]))\n            integerK = integer.copy().addParseAction(lambda toks: toks[0] * 1024) + Suppress(\"K\")\n            integerM = integer.copy().addParseAction(lambda toks: toks[0] * 1024 * 1024) + Suppress(\"M\")\n\n            print(OneOrMore(integerK | integerM | integer).parseString(\"5K 100 640K 256M\"))\n\n        prints::\n\n            [5120, 100, 655360, 268435456]\n\n        Equivalent form of ``expr.copy()`` is just ``expr()``::\n\n            integerM = integer().addParseAction(lambda toks: toks[0] * 1024 * 1024) + Suppress(\"M\")\n        \"\"\"\n        cpy = copy.copy(self)\n        cpy.parseAction = self.parseAction[:]\n        cpy.ignoreExprs = self.ignoreExprs[:]\n        if self.copyDefaultWhiteChars:\n            cpy.whiteChars = ParserElement.DEFAULT_WHITE_CHARS\n        return cpy\n\n    def setName(self, name):\n        \"\"\"\n        Define name for this expression, makes debugging and exception messages clearer.\n\n        Example::\n\n            Word(nums).parseString(\"ABC\")  # -> Exception: Expected W:(0123...) (at char 0), (line:1, col:1)\n            Word(nums).setName(\"integer\").parseString(\"ABC\")  # -> Exception: Expected integer (at char 0), (line:1, col:1)\n        \"\"\"\n        self.name = name\n        self.errmsg = \"Expected \" + self.name\n        if __diag__.enable_debug_on_named_expressions:\n            self.setDebug()\n        return self\n\n    def setResultsName(self, name, listAllMatches=False):\n        \"\"\"\n        Define name for referencing matching tokens as a nested attribute\n        of the returned parse results.\n        NOTE: this returns a *copy* of the original :class:`ParserElement` object;\n        this is so that the client can define a basic element, such as an\n        integer, and reference it in multiple places with different names.\n\n        You can also set results names using the abbreviated syntax,\n        ``expr(\"name\")`` in place of ``expr.setResultsName(\"name\")``\n        - see :class:`__call__`.\n\n        Example::\n\n            date_str = (integer.setResultsName(\"year\") + '/'\n                        + integer.setResultsName(\"month\") + '/'\n                        + integer.setResultsName(\"day\"))\n\n            # equivalent form:\n            date_str = integer(\"year\") + '/' + integer(\"month\") + '/' + integer(\"day\")\n        \"\"\"\n        return self._setResultsName(name, listAllMatches)\n\n    def _setResultsName(self, name, listAllMatches=False):\n        newself = self.copy()\n        if name.endswith(\"*\"):\n            name = name[:-1]\n            listAllMatches = True\n        newself.resultsName = name\n        newself.modalResults = not listAllMatches\n        return newself\n\n    def setBreak(self, breakFlag=True):\n        \"\"\"Method to invoke the Python pdb debugger when this element is\n           about to be parsed. Set ``breakFlag`` to True to enable, False to\n           disable.\n        \"\"\"\n        if breakFlag:\n            _parseMethod = self._parse\n            def breaker(instring, loc, doActions=True, callPreParse=True):\n                import pdb\n                # this call to pdb.set_trace() is intentional, not a checkin error\n                pdb.set_trace()\n                return _parseMethod(instring, loc, doActions, callPreParse)\n            breaker._originalParseMethod = _parseMethod\n            self._parse = breaker\n        else:\n            if hasattr(self._parse, \"_originalParseMethod\"):\n                self._parse = self._parse._originalParseMethod\n        return self\n\n    def setParseAction(self, *fns, **kwargs):\n        \"\"\"\n        Define one or more actions to perform when successfully matching parse element definition.\n        Parse action fn is a callable method with 0-3 arguments, called as ``fn(s, loc, toks)`` ,\n        ``fn(loc, toks)`` , ``fn(toks)`` , or just ``fn()`` , where:\n\n        - s   = the original string being parsed (see note below)\n        - loc = the location of the matching substring\n        - toks = a list of the matched tokens, packaged as a :class:`ParseResults` object\n\n        If the functions in fns modify the tokens, they can return them as the return\n        value from fn, and the modified list of tokens will replace the original.\n        Otherwise, fn does not need to return any value.\n\n        If None is passed as the parse action, all previously added parse actions for this\n        expression are cleared.\n\n        Optional keyword arguments:\n        - callDuringTry = (default= ``False``) indicate if parse action should be run during lookaheads and alternate testing\n\n        Note: the default parsing behavior is to expand tabs in the input string\n        before starting the parsing process.  See :class:`parseString for more\n        information on parsing strings containing ``<TAB>`` s, and suggested\n        methods to maintain a consistent view of the parsed string, the parse\n        location, and line and column positions within the parsed string.\n\n        Example::\n\n            integer = Word(nums)\n            date_str = integer + '/' + integer + '/' + integer\n\n            date_str.parseString(\"1999/12/31\")  # -> ['1999', '/', '12', '/', '31']\n\n            # use parse action to convert to ints at parse time\n            integer = Word(nums).setParseAction(lambda toks: int(toks[0]))\n            date_str = integer + '/' + integer + '/' + integer\n\n            # note that integer fields are now ints, not strings\n            date_str.parseString(\"1999/12/31\")  # -> [1999, '/', 12, '/', 31]\n        \"\"\"\n        if list(fns) == [None,]:\n            self.parseAction = []\n        else:\n            if not all(callable(fn) for fn in fns):\n                raise TypeError(\"parse actions must be callable\")\n            self.parseAction = list(map(_trim_arity, list(fns)))\n            self.callDuringTry = kwargs.get(\"callDuringTry\", False)\n        return self\n\n    def addParseAction(self, *fns, **kwargs):\n        \"\"\"\n        Add one or more parse actions to expression's list of parse actions. See :class:`setParseAction`.\n\n        See examples in :class:`copy`.\n        \"\"\"\n        self.parseAction += list(map(_trim_arity, list(fns)))\n        self.callDuringTry = self.callDuringTry or kwargs.get(\"callDuringTry\", False)\n        return self\n\n    def addCondition(self, *fns, **kwargs):\n        \"\"\"Add a boolean predicate function to expression's list of parse actions. See\n        :class:`setParseAction` for function call signatures. Unlike ``setParseAction``,\n        functions passed to ``addCondition`` need to return boolean success/fail of the condition.\n\n        Optional keyword arguments:\n        - message = define a custom message to be used in the raised exception\n        - fatal   = if True, will raise ParseFatalException to stop parsing immediately; otherwise will raise ParseException\n\n        Example::\n\n            integer = Word(nums).setParseAction(lambda toks: int(toks[0]))\n            year_int = integer.copy()\n            year_int.addCondition(lambda toks: toks[0] >= 2000, message=\"Only support years 2000 and later\")\n            date_str = year_int + '/' + integer + '/' + integer\n\n            result = date_str.parseString(\"1999/12/31\")  # -> Exception: Only support years 2000 and later (at char 0), (line:1, col:1)\n        \"\"\"\n        for fn in fns:\n            self.parseAction.append(conditionAsParseAction(fn, message=kwargs.get('message'),\n                                                           fatal=kwargs.get('fatal', False)))\n\n        self.callDuringTry = self.callDuringTry or kwargs.get(\"callDuringTry\", False)\n        return self\n\n    def setFailAction(self, fn):\n        \"\"\"Define action to perform if parsing fails at this expression.\n           Fail acton fn is a callable function that takes the arguments\n           ``fn(s, loc, expr, err)`` where:\n           - s = string being parsed\n           - loc = location where expression match was attempted and failed\n           - expr = the parse expression that failed\n           - err = the exception thrown\n           The function returns no value.  It may throw :class:`ParseFatalException`\n           if it is desired to stop parsing immediately.\"\"\"\n        self.failAction = fn\n        return self\n\n    def _skipIgnorables(self, instring, loc):\n        exprsFound = True\n        while exprsFound:\n            exprsFound = False\n            for e in self.ignoreExprs:\n                try:\n                    while 1:\n                        loc, dummy = e._parse(instring, loc)\n                        exprsFound = True\n                except ParseException:\n                    pass\n        return loc\n\n    def preParse(self, instring, loc):\n        if self.ignoreExprs:\n            loc = self._skipIgnorables(instring, loc)\n\n        if self.skipWhitespace:\n            wt = self.whiteChars\n            instrlen = len(instring)\n            while loc < instrlen and instring[loc] in wt:\n                loc += 1\n\n        return loc\n\n    def parseImpl(self, instring, loc, doActions=True):\n        return loc, []\n\n    def postParse(self, instring, loc, tokenlist):\n        return tokenlist\n\n    # ~ @profile\n    def _parseNoCache(self, instring, loc, doActions=True, callPreParse=True):\n        TRY, MATCH, FAIL = 0, 1, 2\n        debugging = (self.debug)  # and doActions)\n\n        if debugging or self.failAction:\n            # ~ print (\"Match\", self, \"at loc\", loc, \"(%d, %d)\" % (lineno(loc, instring), col(loc, instring)))\n            if self.debugActions[TRY]:\n                self.debugActions[TRY](instring, loc, self)\n            try:\n                if callPreParse and self.callPreparse:\n                    preloc = self.preParse(instring, loc)\n                else:\n                    preloc = loc\n                tokensStart = preloc\n                if self.mayIndexError or preloc >= len(instring):\n                    try:\n                        loc, tokens = self.parseImpl(instring, preloc, doActions)\n                    except IndexError:\n                        raise ParseException(instring, len(instring), self.errmsg, self)\n                else:\n                    loc, tokens = self.parseImpl(instring, preloc, doActions)\n            except Exception as err:\n                # ~ print (\"Exception raised:\", err)\n                if self.debugActions[FAIL]:\n                    self.debugActions[FAIL](instring, tokensStart, self, err)\n                if self.failAction:\n                    self.failAction(instring, tokensStart, self, err)\n                raise\n        else:\n            if callPreParse and self.callPreparse:\n                preloc = self.preParse(instring, loc)\n            else:\n                preloc = loc\n            tokensStart = preloc\n            if self.mayIndexError or preloc >= len(instring):\n                try:\n                    loc, tokens = self.parseImpl(instring, preloc, doActions)\n                except IndexError:\n                    raise ParseException(instring, len(instring), self.errmsg, self)\n            else:\n                loc, tokens = self.parseImpl(instring, preloc, doActions)\n\n        tokens = self.postParse(instring, loc, tokens)\n\n        retTokens = ParseResults(tokens, self.resultsName, asList=self.saveAsList, modal=self.modalResults)\n        if self.parseAction and (doActions or self.callDuringTry):\n            if debugging:\n                try:\n                    for fn in self.parseAction:\n                        try:\n                            tokens = fn(instring, tokensStart, retTokens)\n                        except IndexError as parse_action_exc:\n                            exc = ParseException(\"exception raised in parse action\")\n                            exc.__cause__ = parse_action_exc\n                            raise exc\n\n                        if tokens is not None and tokens is not retTokens:\n                            retTokens = ParseResults(tokens,\n                                                      self.resultsName,\n                                                      asList=self.saveAsList and isinstance(tokens, (ParseResults, list)),\n                                                      modal=self.modalResults)\n                except Exception as err:\n                    # ~ print \"Exception raised in user parse action:\", err\n                    if self.debugActions[FAIL]:\n                        self.debugActions[FAIL](instring, tokensStart, self, err)\n                    raise\n            else:\n                for fn in self.parseAction:\n                    try:\n                        tokens = fn(instring, tokensStart, retTokens)\n                    except IndexError as parse_action_exc:\n                        exc = ParseException(\"exception raised in parse action\")\n                        exc.__cause__ = parse_action_exc\n                        raise exc\n\n                    if tokens is not None and tokens is not retTokens:\n                        retTokens = ParseResults(tokens,\n                                                  self.resultsName,\n                                                  asList=self.saveAsList and isinstance(tokens, (ParseResults, list)),\n                                                  modal=self.modalResults)\n        if debugging:\n            # ~ print (\"Matched\", self, \"->\", retTokens.asList())\n            if self.debugActions[MATCH]:\n                self.debugActions[MATCH](instring, tokensStart, loc, self, retTokens)\n\n        return loc, retTokens\n\n    def tryParse(self, instring, loc):\n        try:\n            return self._parse(instring, loc, doActions=False)[0]\n        except ParseFatalException:\n            raise ParseException(instring, loc, self.errmsg, self)\n\n    def canParseNext(self, instring, loc):\n        try:\n            self.tryParse(instring, loc)\n        except (ParseException, IndexError):\n            return False\n        else:\n            return True\n\n    class _UnboundedCache(object):\n        def __init__(self):\n            cache = {}\n            self.not_in_cache = not_in_cache = object()\n\n            def get(self, key):\n                return cache.get(key, not_in_cache)\n\n            def set(self, key, value):\n                cache[key] = value\n\n            def clear(self):\n                cache.clear()\n\n            def cache_len(self):\n                return len(cache)\n\n            self.get = types.MethodType(get, self)\n            self.set = types.MethodType(set, self)\n            self.clear = types.MethodType(clear, self)\n            self.__len__ = types.MethodType(cache_len, self)\n\n    if _OrderedDict is not None:\n        class _FifoCache(object):\n            def __init__(self, size):\n                self.not_in_cache = not_in_cache = object()\n\n                cache = _OrderedDict()\n\n                def get(self, key):\n                    return cache.get(key, not_in_cache)\n\n                def set(self, key, value):\n                    cache[key] = value\n                    while len(cache) > size:\n                        try:\n                            cache.popitem(False)\n                        except KeyError:\n                            pass\n\n                def clear(self):\n                    cache.clear()\n\n                def cache_len(self):\n                    return len(cache)\n\n                self.get = types.MethodType(get, self)\n                self.set = types.MethodType(set, self)\n                self.clear = types.MethodType(clear, self)\n                self.__len__ = types.MethodType(cache_len, self)\n\n    else:\n        class _FifoCache(object):\n            def __init__(self, size):\n                self.not_in_cache = not_in_cache = object()\n\n                cache = {}\n                key_fifo = collections.deque([], size)\n\n                def get(self, key):\n                    return cache.get(key, not_in_cache)\n\n                def set(self, key, value):\n                    cache[key] = value\n                    while len(key_fifo) > size:\n                        cache.pop(key_fifo.popleft(), None)\n                    key_fifo.append(key)\n\n                def clear(self):\n                    cache.clear()\n                    key_fifo.clear()\n\n                def cache_len(self):\n                    return len(cache)\n\n                self.get = types.MethodType(get, self)\n                self.set = types.MethodType(set, self)\n                self.clear = types.MethodType(clear, self)\n                self.__len__ = types.MethodType(cache_len, self)\n\n    # argument cache for optimizing repeated calls when backtracking through recursive expressions\n    packrat_cache = {} # this is set later by enabledPackrat(); this is here so that resetCache() doesn't fail\n    packrat_cache_lock = RLock()\n    packrat_cache_stats = [0, 0]\n\n    # this method gets repeatedly called during backtracking with the same arguments -\n    # we can cache these arguments and save ourselves the trouble of re-parsing the contained expression\n    def _parseCache(self, instring, loc, doActions=True, callPreParse=True):\n        HIT, MISS = 0, 1\n        lookup = (self, instring, loc, callPreParse, doActions)\n        with ParserElement.packrat_cache_lock:\n            cache = ParserElement.packrat_cache\n            value = cache.get(lookup)\n            if value is cache.not_in_cache:\n                ParserElement.packrat_cache_stats[MISS] += 1\n                try:\n                    value = self._parseNoCache(instring, loc, doActions, callPreParse)\n                except ParseBaseException as pe:\n                    # cache a copy of the exception, without the traceback\n                    cache.set(lookup, pe.__class__(*pe.args))\n                    raise\n                else:\n                    cache.set(lookup, (value[0], value[1].copy()))\n                    return value\n            else:\n                ParserElement.packrat_cache_stats[HIT] += 1\n                if isinstance(value, Exception):\n                    raise value\n                return value[0], value[1].copy()\n\n    _parse = _parseNoCache\n\n    @staticmethod\n    def resetCache():\n        ParserElement.packrat_cache.clear()\n        ParserElement.packrat_cache_stats[:] = [0] * len(ParserElement.packrat_cache_stats)\n\n    _packratEnabled = False\n    @staticmethod\n    def enablePackrat(cache_size_limit=128):\n        \"\"\"Enables \"packrat\" parsing, which adds memoizing to the parsing logic.\n           Repeated parse attempts at the same string location (which happens\n           often in many complex grammars) can immediately return a cached value,\n           instead of re-executing parsing/validating code.  Memoizing is done of\n           both valid results and parsing exceptions.\n\n           Parameters:\n\n           - cache_size_limit - (default= ``128``) - if an integer value is provided\n             will limit the size of the packrat cache; if None is passed, then\n             the cache size will be unbounded; if 0 is passed, the cache will\n             be effectively disabled.\n\n           This speedup may break existing programs that use parse actions that\n           have side-effects.  For this reason, packrat parsing is disabled when\n           you first import pyparsing.  To activate the packrat feature, your\n           program must call the class method :class:`ParserElement.enablePackrat`.\n           For best results, call ``enablePackrat()`` immediately after\n           importing pyparsing.\n\n           Example::\n\n               import pyparsing\n               pyparsing.ParserElement.enablePackrat()\n        \"\"\"\n        if not ParserElement._packratEnabled:\n            ParserElement._packratEnabled = True\n            if cache_size_limit is None:\n                ParserElement.packrat_cache = ParserElement._UnboundedCache()\n            else:\n                ParserElement.packrat_cache = ParserElement._FifoCache(cache_size_limit)\n            ParserElement._parse = ParserElement._parseCache\n\n    def parseString(self, instring, parseAll=False):\n        \"\"\"\n        Execute the parse expression with the given string.\n        This is the main interface to the client code, once the complete\n        expression has been built.\n\n        Returns the parsed data as a :class:`ParseResults` object, which may be\n        accessed as a list, or as a dict or object with attributes if the given parser\n        includes results names.\n\n        If you want the grammar to require that the entire input string be\n        successfully parsed, then set ``parseAll`` to True (equivalent to ending\n        the grammar with ``StringEnd()``).\n\n        Note: ``parseString`` implicitly calls ``expandtabs()`` on the input string,\n        in order to report proper column numbers in parse actions.\n        If the input string contains tabs and\n        the grammar uses parse actions that use the ``loc`` argument to index into the\n        string being parsed, you can ensure you have a consistent view of the input\n        string by:\n\n        - calling ``parseWithTabs`` on your grammar before calling ``parseString``\n          (see :class:`parseWithTabs`)\n        - define your parse action using the full ``(s, loc, toks)`` signature, and\n          reference the input string using the parse action's ``s`` argument\n        - explictly expand the tabs in your input string before calling\n          ``parseString``\n\n        Example::\n\n            Word('a').parseString('aaaaabaaa')  # -> ['aaaaa']\n            Word('a').parseString('aaaaabaaa', parseAll=True)  # -> Exception: Expected end of text\n        \"\"\"\n        ParserElement.resetCache()\n        if not self.streamlined:\n            self.streamline()\n            # ~ self.saveAsList = True\n        for e in self.ignoreExprs:\n            e.streamline()\n        if not self.keepTabs:\n            instring = instring.expandtabs()\n        try:\n            loc, tokens = self._parse(instring, 0)\n            if parseAll:\n                loc = self.preParse(instring, loc)\n                se = Empty() + StringEnd()\n                se._parse(instring, loc)\n        except ParseBaseException as exc:\n            if ParserElement.verbose_stacktrace:\n                raise\n            else:\n                # catch and re-raise exception from here, clearing out pyparsing internal stack trace\n                if getattr(exc, '__traceback__', None) is not None:\n                    exc.__traceback__ = self._trim_traceback(exc.__traceback__)\n                raise exc\n        else:\n            return tokens\n\n    def scanString(self, instring, maxMatches=_MAX_INT, overlap=False):\n        \"\"\"\n        Scan the input string for expression matches.  Each match will return the\n        matching tokens, start location, and end location.  May be called with optional\n        ``maxMatches`` argument, to clip scanning after 'n' matches are found.  If\n        ``overlap`` is specified, then overlapping matches will be reported.\n\n        Note that the start and end locations are reported relative to the string\n        being parsed.  See :class:`parseString` for more information on parsing\n        strings with embedded tabs.\n\n        Example::\n\n            source = \"sldjf123lsdjjkf345sldkjf879lkjsfd987\"\n            print(source)\n            for tokens, start, end in Word(alphas).scanString(source):\n                print(' '*start + '^'*(end-start))\n                print(' '*start + tokens[0])\n\n        prints::\n\n            sldjf123lsdjjkf345sldkjf879lkjsfd987\n            ^^^^^\n            sldjf\n                    ^^^^^^^\n                    lsdjjkf\n                              ^^^^^^\n                              sldkjf\n                                       ^^^^^^\n                                       lkjsfd\n        \"\"\"\n        if not self.streamlined:\n            self.streamline()\n        for e in self.ignoreExprs:\n            e.streamline()\n\n        if not self.keepTabs:\n            instring = _ustr(instring).expandtabs()\n        instrlen = len(instring)\n        loc = 0\n        preparseFn = self.preParse\n        parseFn = self._parse\n        ParserElement.resetCache()\n        matches = 0\n        try:\n            while loc <= instrlen and matches < maxMatches:\n                try:\n                    preloc = preparseFn(instring, loc)\n                    nextLoc, tokens = parseFn(instring, preloc, callPreParse=False)\n                except ParseException:\n                    loc = preloc + 1\n                else:\n                    if nextLoc > loc:\n                        matches += 1\n                        yield tokens, preloc, nextLoc\n                        if overlap:\n                            nextloc = preparseFn(instring, loc)\n                            if nextloc > loc:\n                                loc = nextLoc\n                            else:\n                                loc += 1\n                        else:\n                            loc = nextLoc\n                    else:\n                        loc = preloc + 1\n        except ParseBaseException as exc:\n            if ParserElement.verbose_stacktrace:\n                raise\n            else:\n                # catch and re-raise exception from here, clearing out pyparsing internal stack trace\n                if getattr(exc, '__traceback__', None) is not None:\n                    exc.__traceback__ = self._trim_traceback(exc.__traceback__)\n                raise exc\n\n    def transformString(self, instring):\n        \"\"\"\n        Extension to :class:`scanString`, to modify matching text with modified tokens that may\n        be returned from a parse action.  To use ``transformString``, define a grammar and\n        attach a parse action to it that modifies the returned token list.\n        Invoking ``transformString()`` on a target string will then scan for matches,\n        and replace the matched text patterns according to the logic in the parse\n        action.  ``transformString()`` returns the resulting transformed string.\n\n        Example::\n\n            wd = Word(alphas)\n            wd.setParseAction(lambda toks: toks[0].title())\n\n            print(wd.transformString(\"now is the winter of our discontent made glorious summer by this sun of york.\"))\n\n        prints::\n\n            Now Is The Winter Of Our Discontent Made Glorious Summer By This Sun Of York.\n        \"\"\"\n        out = []\n        lastE = 0\n        # force preservation of <TAB>s, to minimize unwanted transformation of string, and to\n        # keep string locs straight between transformString and scanString\n        self.keepTabs = True\n        try:\n            for t, s, e in self.scanString(instring):\n                out.append(instring[lastE:s])\n                if t:\n                    if isinstance(t, ParseResults):\n                        out += t.asList()\n                    elif isinstance(t, list):\n                        out += t\n                    else:\n                        out.append(t)\n                lastE = e\n            out.append(instring[lastE:])\n            out = [o for o in out if o]\n            return \"\".join(map(_ustr, _flatten(out)))\n        except ParseBaseException as exc:\n            if ParserElement.verbose_stacktrace:\n                raise\n            else:\n                # catch and re-raise exception from here, clearing out pyparsing internal stack trace\n                if getattr(exc, '__traceback__', None) is not None:\n                    exc.__traceback__ = self._trim_traceback(exc.__traceback__)\n                raise exc\n\n    def searchString(self, instring, maxMatches=_MAX_INT):\n        \"\"\"\n        Another extension to :class:`scanString`, simplifying the access to the tokens found\n        to match the given parse expression.  May be called with optional\n        ``maxMatches`` argument, to clip searching after 'n' matches are found.\n\n        Example::\n\n            # a capitalized word starts with an uppercase letter, followed by zero or more lowercase letters\n            cap_word = Word(alphas.upper(), alphas.lower())\n\n            print(cap_word.searchString(\"More than Iron, more than Lead, more than Gold I need Electricity\"))\n\n            # the sum() builtin can be used to merge results into a single ParseResults object\n            print(sum(cap_word.searchString(\"More than Iron, more than Lead, more than Gold I need Electricity\")))\n\n        prints::\n\n            [['More'], ['Iron'], ['Lead'], ['Gold'], ['I'], ['Electricity']]\n            ['More', 'Iron', 'Lead', 'Gold', 'I', 'Electricity']\n        \"\"\"\n        try:\n            return ParseResults([t for t, s, e in self.scanString(instring, maxMatches)])\n        except ParseBaseException as exc:\n            if ParserElement.verbose_stacktrace:\n                raise\n            else:\n                # catch and re-raise exception from here, clearing out pyparsing internal stack trace\n                if getattr(exc, '__traceback__', None) is not None:\n                    exc.__traceback__ = self._trim_traceback(exc.__traceback__)\n                raise exc\n\n    def split(self, instring, maxsplit=_MAX_INT, includeSeparators=False):\n        \"\"\"\n        Generator method to split a string using the given expression as a separator.\n        May be called with optional ``maxsplit`` argument, to limit the number of splits;\n        and the optional ``includeSeparators`` argument (default= ``False``), if the separating\n        matching text should be included in the split results.\n\n        Example::\n\n            punc = oneOf(list(\".,;:/-!?\"))\n            print(list(punc.split(\"This, this?, this sentence, is badly punctuated!\")))\n\n        prints::\n\n            ['This', ' this', '', ' this sentence', ' is badly punctuated', '']\n        \"\"\"\n        splits = 0\n        last = 0\n        for t, s, e in self.scanString(instring, maxMatches=maxsplit):\n            yield instring[last:s]\n            if includeSeparators:\n                yield t[0]\n            last = e\n        yield instring[last:]\n\n    def __add__(self, other):\n        \"\"\"\n        Implementation of + operator - returns :class:`And`. Adding strings to a ParserElement\n        converts them to :class:`Literal`s by default.\n\n        Example::\n\n            greet = Word(alphas) + \",\" + Word(alphas) + \"!\"\n            hello = \"Hello, World!\"\n            print (hello, \"->\", greet.parseString(hello))\n\n        prints::\n\n            Hello, World! -> ['Hello', ',', 'World', '!']\n\n        ``...`` may be used as a parse expression as a short form of :class:`SkipTo`.\n\n            Literal('start') + ... + Literal('end')\n\n        is equivalent to:\n\n            Literal('start') + SkipTo('end')(\"_skipped*\") + Literal('end')\n\n        Note that the skipped text is returned with '_skipped' as a results name,\n        and to support having multiple skips in the same parser, the value returned is\n        a list of all skipped text.\n        \"\"\"\n        if other is Ellipsis:\n            return _PendingSkip(self)\n\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        if not isinstance(other, ParserElement):\n            warnings.warn(\"Cannot combine element of type %s with ParserElement\" % type(other),\n                          SyntaxWarning, stacklevel=2)\n            return None\n        return And([self, other])\n\n    def __radd__(self, other):\n        \"\"\"\n        Implementation of + operator when left operand is not a :class:`ParserElement`\n        \"\"\"\n        if other is Ellipsis:\n            return SkipTo(self)(\"_skipped*\") + self\n\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        if not isinstance(other, ParserElement):\n            warnings.warn(\"Cannot combine element of type %s with ParserElement\" % type(other),\n                          SyntaxWarning, stacklevel=2)\n            return None\n        return other + self\n\n    def __sub__(self, other):\n        \"\"\"\n        Implementation of - operator, returns :class:`And` with error stop\n        \"\"\"\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        if not isinstance(other, ParserElement):\n            warnings.warn(\"Cannot combine element of type %s with ParserElement\" % type(other),\n                          SyntaxWarning, stacklevel=2)\n            return None\n        return self + And._ErrorStop() + other\n\n    def __rsub__(self, other):\n        \"\"\"\n        Implementation of - operator when left operand is not a :class:`ParserElement`\n        \"\"\"\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        if not isinstance(other, ParserElement):\n            warnings.warn(\"Cannot combine element of type %s with ParserElement\" % type(other),\n                          SyntaxWarning, stacklevel=2)\n            return None\n        return other - self\n\n    def __mul__(self, other):\n        \"\"\"\n        Implementation of * operator, allows use of ``expr * 3`` in place of\n        ``expr + expr + expr``.  Expressions may also me multiplied by a 2-integer\n        tuple, similar to ``{min, max}`` multipliers in regular expressions.  Tuples\n        may also include ``None`` as in:\n         - ``expr*(n, None)`` or ``expr*(n, )`` is equivalent\n              to ``expr*n + ZeroOrMore(expr)``\n              (read as \"at least n instances of ``expr``\")\n         - ``expr*(None, n)`` is equivalent to ``expr*(0, n)``\n              (read as \"0 to n instances of ``expr``\")\n         - ``expr*(None, None)`` is equivalent to ``ZeroOrMore(expr)``\n         - ``expr*(1, None)`` is equivalent to ``OneOrMore(expr)``\n\n        Note that ``expr*(None, n)`` does not raise an exception if\n        more than n exprs exist in the input stream; that is,\n        ``expr*(None, n)`` does not enforce a maximum number of expr\n        occurrences.  If this behavior is desired, then write\n        ``expr*(None, n) + ~expr``\n        \"\"\"\n        if other is Ellipsis:\n            other = (0, None)\n        elif isinstance(other, tuple) and other[:1] == (Ellipsis,):\n            other = ((0, ) + other[1:] + (None,))[:2]\n\n        if isinstance(other, int):\n            minElements, optElements = other, 0\n        elif isinstance(other, tuple):\n            other = tuple(o if o is not Ellipsis else None for o in other)\n            other = (other + (None, None))[:2]\n            if other[0] is None:\n                other = (0, other[1])\n            if isinstance(other[0], int) and other[1] is None:\n                if other[0] == 0:\n                    return ZeroOrMore(self)\n                if other[0] == 1:\n                    return OneOrMore(self)\n                else:\n                    return self * other[0] + ZeroOrMore(self)\n            elif isinstance(other[0], int) and isinstance(other[1], int):\n                minElements, optElements = other\n                optElements -= minElements\n            else:\n                raise TypeError(\"cannot multiply 'ParserElement' and ('%s', '%s') objects\", type(other[0]), type(other[1]))\n        else:\n            raise TypeError(\"cannot multiply 'ParserElement' and '%s' objects\", type(other))\n\n        if minElements < 0:\n            raise ValueError(\"cannot multiply ParserElement by negative value\")\n        if optElements < 0:\n            raise ValueError(\"second tuple value must be greater or equal to first tuple value\")\n        if minElements == optElements == 0:\n            raise ValueError(\"cannot multiply ParserElement by 0 or (0, 0)\")\n\n        if optElements:\n            def makeOptionalList(n):\n                if n > 1:\n                    return Optional(self + makeOptionalList(n - 1))\n                else:\n                    return Optional(self)\n            if minElements:\n                if minElements == 1:\n                    ret = self + makeOptionalList(optElements)\n                else:\n                    ret = And([self] * minElements) + makeOptionalList(optElements)\n            else:\n                ret = makeOptionalList(optElements)\n        else:\n            if minElements == 1:\n                ret = self\n            else:\n                ret = And([self] * minElements)\n        return ret\n\n    def __rmul__(self, other):\n        return self.__mul__(other)\n\n    def __or__(self, other):\n        \"\"\"\n        Implementation of | operator - returns :class:`MatchFirst`\n        \"\"\"\n        if other is Ellipsis:\n            return _PendingSkip(self, must_skip=True)\n\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        if not isinstance(other, ParserElement):\n            warnings.warn(\"Cannot combine element of type %s with ParserElement\" % type(other),\n                          SyntaxWarning, stacklevel=2)\n            return None\n        return MatchFirst([self, other])\n\n    def __ror__(self, other):\n        \"\"\"\n        Implementation of | operator when left operand is not a :class:`ParserElement`\n        \"\"\"\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        if not isinstance(other, ParserElement):\n            warnings.warn(\"Cannot combine element of type %s with ParserElement\" % type(other),\n                          SyntaxWarning, stacklevel=2)\n            return None\n        return other | self\n\n    def __xor__(self, other):\n        \"\"\"\n        Implementation of ^ operator - returns :class:`Or`\n        \"\"\"\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        if not isinstance(other, ParserElement):\n            warnings.warn(\"Cannot combine element of type %s with ParserElement\" % type(other),\n                          SyntaxWarning, stacklevel=2)\n            return None\n        return Or([self, other])\n\n    def __rxor__(self, other):\n        \"\"\"\n        Implementation of ^ operator when left operand is not a :class:`ParserElement`\n        \"\"\"\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        if not isinstance(other, ParserElement):\n            warnings.warn(\"Cannot combine element of type %s with ParserElement\" % type(other),\n                          SyntaxWarning, stacklevel=2)\n            return None\n        return other ^ self\n\n    def __and__(self, other):\n        \"\"\"\n        Implementation of & operator - returns :class:`Each`\n        \"\"\"\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        if not isinstance(other, ParserElement):\n            warnings.warn(\"Cannot combine element of type %s with ParserElement\" % type(other),\n                          SyntaxWarning, stacklevel=2)\n            return None\n        return Each([self, other])\n\n    def __rand__(self, other):\n        \"\"\"\n        Implementation of & operator when left operand is not a :class:`ParserElement`\n        \"\"\"\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        if not isinstance(other, ParserElement):\n            warnings.warn(\"Cannot combine element of type %s with ParserElement\" % type(other),\n                          SyntaxWarning, stacklevel=2)\n            return None\n        return other & self\n\n    def __invert__(self):\n        \"\"\"\n        Implementation of ~ operator - returns :class:`NotAny`\n        \"\"\"\n        return NotAny(self)\n\n    def __iter__(self):\n        # must implement __iter__ to override legacy use of sequential access to __getitem__ to\n        # iterate over a sequence\n        raise TypeError('%r object is not iterable' % self.__class__.__name__)\n\n    def __getitem__(self, key):\n        \"\"\"\n        use ``[]`` indexing notation as a short form for expression repetition:\n         - ``expr[n]`` is equivalent to ``expr*n``\n         - ``expr[m, n]`` is equivalent to ``expr*(m, n)``\n         - ``expr[n, ...]`` or ``expr[n,]`` is equivalent\n              to ``expr*n + ZeroOrMore(expr)``\n              (read as \"at least n instances of ``expr``\")\n         - ``expr[..., n]`` is equivalent to ``expr*(0, n)``\n              (read as \"0 to n instances of ``expr``\")\n         - ``expr[...]`` and ``expr[0, ...]`` are equivalent to ``ZeroOrMore(expr)``\n         - ``expr[1, ...]`` is equivalent to ``OneOrMore(expr)``\n         ``None`` may be used in place of ``...``.\n\n        Note that ``expr[..., n]`` and ``expr[m, n]``do not raise an exception\n        if more than ``n`` ``expr``s exist in the input stream.  If this behavior is\n        desired, then write ``expr[..., n] + ~expr``.\n       \"\"\"\n\n        # convert single arg keys to tuples\n        try:\n            if isinstance(key, str):\n                key = (key,)\n            iter(key)\n        except TypeError:\n            key = (key, key)\n\n        if len(key) > 2:\n            warnings.warn(\"only 1 or 2 index arguments supported ({0}{1})\".format(key[:5],\n                                                                                '... [{0}]'.format(len(key))\n                                                                                if len(key) > 5 else ''))\n\n        # clip to 2 elements\n        ret = self * tuple(key[:2])\n        return ret\n\n    def __call__(self, name=None):\n        \"\"\"\n        Shortcut for :class:`setResultsName`, with ``listAllMatches=False``.\n\n        If ``name`` is given with a trailing ``'*'`` character, then ``listAllMatches`` will be\n        passed as ``True``.\n\n        If ``name` is omitted, same as calling :class:`copy`.\n\n        Example::\n\n            # these are equivalent\n            userdata = Word(alphas).setResultsName(\"name\") + Word(nums + \"-\").setResultsName(\"socsecno\")\n            userdata = Word(alphas)(\"name\") + Word(nums + \"-\")(\"socsecno\")\n        \"\"\"\n        if name is not None:\n            return self._setResultsName(name)\n        else:\n            return self.copy()\n\n    def suppress(self):\n        \"\"\"\n        Suppresses the output of this :class:`ParserElement`; useful to keep punctuation from\n        cluttering up returned output.\n        \"\"\"\n        return Suppress(self)\n\n    def leaveWhitespace(self):\n        \"\"\"\n        Disables the skipping of whitespace before matching the characters in the\n        :class:`ParserElement`'s defined pattern.  This is normally only used internally by\n        the pyparsing module, but may be needed in some whitespace-sensitive grammars.\n        \"\"\"\n        self.skipWhitespace = False\n        return self\n\n    def setWhitespaceChars(self, chars):\n        \"\"\"\n        Overrides the default whitespace chars\n        \"\"\"\n        self.skipWhitespace = True\n        self.whiteChars = chars\n        self.copyDefaultWhiteChars = False\n        return self\n\n    def parseWithTabs(self):\n        \"\"\"\n        Overrides default behavior to expand ``<TAB>``s to spaces before parsing the input string.\n        Must be called before ``parseString`` when the input grammar contains elements that\n        match ``<TAB>`` characters.\n        \"\"\"\n        self.keepTabs = True\n        return self\n\n    def ignore(self, other):\n        \"\"\"\n        Define expression to be ignored (e.g., comments) while doing pattern\n        matching; may be called repeatedly, to define multiple comment or other\n        ignorable patterns.\n\n        Example::\n\n            patt = OneOrMore(Word(alphas))\n            patt.parseString('ablaj /* comment */ lskjd') # -> ['ablaj']\n\n            patt.ignore(cStyleComment)\n            patt.parseString('ablaj /* comment */ lskjd') # -> ['ablaj', 'lskjd']\n        \"\"\"\n        if isinstance(other, basestring):\n            other = Suppress(other)\n\n        if isinstance(other, Suppress):\n            if other not in self.ignoreExprs:\n                self.ignoreExprs.append(other)\n        else:\n            self.ignoreExprs.append(Suppress(other.copy()))\n        return self\n\n    def setDebugActions(self, startAction, successAction, exceptionAction):\n        \"\"\"\n        Enable display of debugging messages while doing pattern matching.\n        \"\"\"\n        self.debugActions = (startAction or _defaultStartDebugAction,\n                             successAction or _defaultSuccessDebugAction,\n                             exceptionAction or _defaultExceptionDebugAction)\n        self.debug = True\n        return self\n\n    def setDebug(self, flag=True):\n        \"\"\"\n        Enable display of debugging messages while doing pattern matching.\n        Set ``flag`` to True to enable, False to disable.\n\n        Example::\n\n            wd = Word(alphas).setName(\"alphaword\")\n            integer = Word(nums).setName(\"numword\")\n            term = wd | integer\n\n            # turn on debugging for wd\n            wd.setDebug()\n\n            OneOrMore(term).parseString(\"abc 123 xyz 890\")\n\n        prints::\n\n            Match alphaword at loc 0(1,1)\n            Matched alphaword -> ['abc']\n            Match alphaword at loc 3(1,4)\n            Exception raised:Expected alphaword (at char 4), (line:1, col:5)\n            Match alphaword at loc 7(1,8)\n            Matched alphaword -> ['xyz']\n            Match alphaword at loc 11(1,12)\n            Exception raised:Expected alphaword (at char 12), (line:1, col:13)\n            Match alphaword at loc 15(1,16)\n            Exception raised:Expected alphaword (at char 15), (line:1, col:16)\n\n        The output shown is that produced by the default debug actions - custom debug actions can be\n        specified using :class:`setDebugActions`. Prior to attempting\n        to match the ``wd`` expression, the debugging message ``\"Match <exprname> at loc <n>(<line>,<col>)\"``\n        is shown. Then if the parse succeeds, a ``\"Matched\"`` message is shown, or an ``\"Exception raised\"``\n        message is shown. Also note the use of :class:`setName` to assign a human-readable name to the expression,\n        which makes debugging and exception messages easier to understand - for instance, the default\n        name created for the :class:`Word` expression without calling ``setName`` is ``\"W:(ABCD...)\"``.\n        \"\"\"\n        if flag:\n            self.setDebugActions(_defaultStartDebugAction, _defaultSuccessDebugAction, _defaultExceptionDebugAction)\n        else:\n            self.debug = False\n        return self\n\n    def __str__(self):\n        return self.name\n\n    def __repr__(self):\n        return _ustr(self)\n\n    def streamline(self):\n        self.streamlined = True\n        self.strRepr = None\n        return self\n\n    def checkRecursion(self, parseElementList):\n        pass\n\n    def validate(self, validateTrace=None):\n        \"\"\"\n        Check defined expressions for valid structure, check for infinite recursive definitions.\n        \"\"\"\n        self.checkRecursion([])\n\n    def parseFile(self, file_or_filename, parseAll=False):\n        \"\"\"\n        Execute the parse expression on the given file or filename.\n        If a filename is specified (instead of a file object),\n        the entire file is opened, read, and closed before parsing.\n        \"\"\"\n        try:\n            file_contents = file_or_filename.read()\n        except AttributeError:\n            with open(file_or_filename, \"r\") as f:\n                file_contents = f.read()\n        try:\n            return self.parseString(file_contents, parseAll)\n        except ParseBaseException as exc:\n            if ParserElement.verbose_stacktrace:\n                raise\n            else:\n                # catch and re-raise exception from here, clearing out pyparsing internal stack trace\n                if getattr(exc, '__traceback__', None) is not None:\n                    exc.__traceback__ = self._trim_traceback(exc.__traceback__)\n                raise exc\n\n    def __eq__(self, other):\n        if self is other:\n            return True\n        elif isinstance(other, basestring):\n            return self.matches(other)\n        elif isinstance(other, ParserElement):\n            return vars(self) == vars(other)\n        return False\n\n    def __ne__(self, other):\n        return not (self == other)\n\n    def __hash__(self):\n        return id(self)\n\n    def __req__(self, other):\n        return self == other\n\n    def __rne__(self, other):\n        return not (self == other)\n\n    def matches(self, testString, parseAll=True):\n        \"\"\"\n        Method for quick testing of a parser against a test string. Good for simple\n        inline microtests of sub expressions while building up larger parser.\n\n        Parameters:\n         - testString - to test against this expression for a match\n         - parseAll - (default= ``True``) - flag to pass to :class:`parseString` when running tests\n\n        Example::\n\n            expr = Word(nums)\n            assert expr.matches(\"100\")\n        \"\"\"\n        try:\n            self.parseString(_ustr(testString), parseAll=parseAll)\n            return True\n        except ParseBaseException:\n            return False\n\n    def runTests(self, tests, parseAll=True, comment='#',\n                 fullDump=True, printResults=True, failureTests=False, postParse=None,\n                 file=None):\n        \"\"\"\n        Execute the parse expression on a series of test strings, showing each\n        test, the parsed results or where the parse failed. Quick and easy way to\n        run a parse expression against a list of sample strings.\n\n        Parameters:\n         - tests - a list of separate test strings, or a multiline string of test strings\n         - parseAll - (default= ``True``) - flag to pass to :class:`parseString` when running tests\n         - comment - (default= ``'#'``) - expression for indicating embedded comments in the test\n              string; pass None to disable comment filtering\n         - fullDump - (default= ``True``) - dump results as list followed by results names in nested outline;\n              if False, only dump nested list\n         - printResults - (default= ``True``) prints test output to stdout\n         - failureTests - (default= ``False``) indicates if these tests are expected to fail parsing\n         - postParse - (default= ``None``) optional callback for successful parse results; called as\n              `fn(test_string, parse_results)` and returns a string to be added to the test output\n         - file - (default=``None``) optional file-like object to which test output will be written;\n              if None, will default to ``sys.stdout``\n\n        Returns: a (success, results) tuple, where success indicates that all tests succeeded\n        (or failed if ``failureTests`` is True), and the results contain a list of lines of each\n        test's output\n\n        Example::\n\n            number_expr = pyparsing_common.number.copy()\n\n            result = number_expr.runTests('''\n                # unsigned integer\n                100\n                # negative integer\n                -100\n                # float with scientific notation\n                6.02e23\n                # integer with scientific notation\n                1e-12\n                ''')\n            print(\"Success\" if result[0] else \"Failed!\")\n\n            result = number_expr.runTests('''\n                # stray character\n                100Z\n                # missing leading digit before '.'\n                -.100\n                # too many '.'\n                3.14.159\n                ''', failureTests=True)\n            print(\"Success\" if result[0] else \"Failed!\")\n\n        prints::\n\n            # unsigned integer\n            100\n            [100]\n\n            # negative integer\n            -100\n            [-100]\n\n            # float with scientific notation\n            6.02e23\n            [6.02e+23]\n\n            # integer with scientific notation\n            1e-12\n            [1e-12]\n\n            Success\n\n            # stray character\n            100Z\n               ^\n            FAIL: Expected end of text (at char 3), (line:1, col:4)\n\n            # missing leading digit before '.'\n            -.100\n            ^\n            FAIL: Expected {real number with scientific notation | real number | signed integer} (at char 0), (line:1, col:1)\n\n            # too many '.'\n            3.14.159\n                ^\n            FAIL: Expected end of text (at char 4), (line:1, col:5)\n\n            Success\n\n        Each test string must be on a single line. If you want to test a string that spans multiple\n        lines, create a test like this::\n\n            expr.runTest(r\"this is a test\\\\n of strings that spans \\\\n 3 lines\")\n\n        (Note that this is a raw string literal, you must include the leading 'r'.)\n        \"\"\"\n        if isinstance(tests, basestring):\n            tests = list(map(str.strip, tests.rstrip().splitlines()))\n        if isinstance(comment, basestring):\n            comment = Literal(comment)\n        if file is None:\n            file = sys.stdout\n        print_ = file.write\n\n        allResults = []\n        comments = []\n        success = True\n        NL = Literal(r'\\n').addParseAction(replaceWith('\\n')).ignore(quotedString)\n        BOM = u'\\ufeff'\n        for t in tests:\n            if comment is not None and comment.matches(t, False) or comments and not t:\n                comments.append(t)\n                continue\n            if not t:\n                continue\n            out = ['\\n' + '\\n'.join(comments) if comments else '', t]\n            comments = []\n            try:\n                # convert newline marks to actual newlines, and strip leading BOM if present\n                t = NL.transformString(t.lstrip(BOM))\n                result = self.parseString(t, parseAll=parseAll)\n            except ParseBaseException as pe:\n                fatal = \"(FATAL)\" if isinstance(pe, ParseFatalException) else \"\"\n                if '\\n' in t:\n                    out.append(line(pe.loc, t))\n                    out.append(' ' * (col(pe.loc, t) - 1) + '^' + fatal)\n                else:\n                    out.append(' ' * pe.loc + '^' + fatal)\n                out.append(\"FAIL: \" + str(pe))\n                success = success and failureTests\n                result = pe\n            except Exception as exc:\n                out.append(\"FAIL-EXCEPTION: \" + str(exc))\n                success = success and failureTests\n                result = exc\n            else:\n                success = success and not failureTests\n                if postParse is not None:\n                    try:\n                        pp_value = postParse(t, result)\n                        if pp_value is not None:\n                            if isinstance(pp_value, ParseResults):\n                                out.append(pp_value.dump())\n                            else:\n                                out.append(str(pp_value))\n                        else:\n                            out.append(result.dump())\n                    except Exception as e:\n                        out.append(result.dump(full=fullDump))\n                        out.append(\"{0} failed: {1}: {2}\".format(postParse.__name__, type(e).__name__, e))\n                else:\n                    out.append(result.dump(full=fullDump))\n\n            if printResults:\n                if fullDump:\n                    out.append('')\n                print_('\\n'.join(out))\n\n            allResults.append((t, result))\n\n        return success, allResults\n\n\nclass _PendingSkip(ParserElement):\n    # internal placeholder class to hold a place were '...' is added to a parser element,\n    # once another ParserElement is added, this placeholder will be replaced with a SkipTo\n    def __init__(self, expr, must_skip=False):\n        super(_PendingSkip, self).__init__()\n        self.strRepr = str(expr + Empty()).replace('Empty', '...')\n        self.name = self.strRepr\n        self.anchor = expr\n        self.must_skip = must_skip\n\n    def __add__(self, other):\n        skipper = SkipTo(other).setName(\"...\")(\"_skipped*\")\n        if self.must_skip:\n            def must_skip(t):\n                if not t._skipped or t._skipped.asList() == ['']:\n                    del t[0]\n                    t.pop(\"_skipped\", None)\n            def show_skip(t):\n                if t._skipped.asList()[-1:] == ['']:\n                    skipped = t.pop('_skipped')\n                    t['_skipped'] = 'missing <' + repr(self.anchor) + '>'\n            return (self.anchor + skipper().addParseAction(must_skip)\n                    | skipper().addParseAction(show_skip)) + other\n\n        return self.anchor + skipper + other\n\n    def __repr__(self):\n        return self.strRepr\n\n    def parseImpl(self, *args):\n        raise Exception(\"use of `...` expression without following SkipTo target expression\")\n\n\nclass Token(ParserElement):\n    \"\"\"Abstract :class:`ParserElement` subclass, for defining atomic\n    matching patterns.\n    \"\"\"\n    def __init__(self):\n        super(Token, self).__init__(savelist=False)\n\n\nclass Empty(Token):\n    \"\"\"An empty token, will always match.\n    \"\"\"\n    def __init__(self):\n        super(Empty, self).__init__()\n        self.name = \"Empty\"\n        self.mayReturnEmpty = True\n        self.mayIndexError = False\n\n\nclass NoMatch(Token):\n    \"\"\"A token that will never match.\n    \"\"\"\n    def __init__(self):\n        super(NoMatch, self).__init__()\n        self.name = \"NoMatch\"\n        self.mayReturnEmpty = True\n        self.mayIndexError = False\n        self.errmsg = \"Unmatchable token\"\n\n    def parseImpl(self, instring, loc, doActions=True):\n        raise ParseException(instring, loc, self.errmsg, self)\n\n\nclass Literal(Token):\n    \"\"\"Token to exactly match a specified string.\n\n    Example::\n\n        Literal('blah').parseString('blah')  # -> ['blah']\n        Literal('blah').parseString('blahfooblah')  # -> ['blah']\n        Literal('blah').parseString('bla')  # -> Exception: Expected \"blah\"\n\n    For case-insensitive matching, use :class:`CaselessLiteral`.\n\n    For keyword matching (force word break before and after the matched string),\n    use :class:`Keyword` or :class:`CaselessKeyword`.\n    \"\"\"\n    def __init__(self, matchString):\n        super(Literal, self).__init__()\n        self.match = matchString\n        self.matchLen = len(matchString)\n        try:\n            self.firstMatchChar = matchString[0]\n        except IndexError:\n            warnings.warn(\"null string passed to Literal; use Empty() instead\",\n                            SyntaxWarning, stacklevel=2)\n            self.__class__ = Empty\n        self.name = '\"%s\"' % _ustr(self.match)\n        self.errmsg = \"Expected \" + self.name\n        self.mayReturnEmpty = False\n        self.mayIndexError = False\n\n        # Performance tuning: modify __class__ to select\n        # a parseImpl optimized for single-character check\n        if self.matchLen == 1 and type(self) is Literal:\n            self.__class__ = _SingleCharLiteral\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if instring[loc] == self.firstMatchChar and instring.startswith(self.match, loc):\n            return loc + self.matchLen, self.match\n        raise ParseException(instring, loc, self.errmsg, self)\n\nclass _SingleCharLiteral(Literal):\n    def parseImpl(self, instring, loc, doActions=True):\n        if instring[loc] == self.firstMatchChar:\n            return loc + 1, self.match\n        raise ParseException(instring, loc, self.errmsg, self)\n\n_L = Literal\nParserElement._literalStringClass = Literal\n\nclass Keyword(Token):\n    \"\"\"Token to exactly match a specified string as a keyword, that is,\n    it must be immediately followed by a non-keyword character.  Compare\n    with :class:`Literal`:\n\n     - ``Literal(\"if\")`` will match the leading ``'if'`` in\n       ``'ifAndOnlyIf'``.\n     - ``Keyword(\"if\")`` will not; it will only match the leading\n       ``'if'`` in ``'if x=1'``, or ``'if(y==2)'``\n\n    Accepts two optional constructor arguments in addition to the\n    keyword string:\n\n     - ``identChars`` is a string of characters that would be valid\n       identifier characters, defaulting to all alphanumerics + \"_\" and\n       \"$\"\n     - ``caseless`` allows case-insensitive matching, default is ``False``.\n\n    Example::\n\n        Keyword(\"start\").parseString(\"start\")  # -> ['start']\n        Keyword(\"start\").parseString(\"starting\")  # -> Exception\n\n    For case-insensitive matching, use :class:`CaselessKeyword`.\n    \"\"\"\n    DEFAULT_KEYWORD_CHARS = alphanums + \"_$\"\n\n    def __init__(self, matchString, identChars=None, caseless=False):\n        super(Keyword, self).__init__()\n        if identChars is None:\n            identChars = Keyword.DEFAULT_KEYWORD_CHARS\n        self.match = matchString\n        self.matchLen = len(matchString)\n        try:\n            self.firstMatchChar = matchString[0]\n        except IndexError:\n            warnings.warn(\"null string passed to Keyword; use Empty() instead\",\n                          SyntaxWarning, stacklevel=2)\n        self.name = '\"%s\"' % self.match\n        self.errmsg = \"Expected \" + self.name\n        self.mayReturnEmpty = False\n        self.mayIndexError = False\n        self.caseless = caseless\n        if caseless:\n            self.caselessmatch = matchString.upper()\n            identChars = identChars.upper()\n        self.identChars = set(identChars)\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if self.caseless:\n            if ((instring[loc:loc + self.matchLen].upper() == self.caselessmatch)\n                    and (loc >= len(instring) - self.matchLen\n                         or instring[loc + self.matchLen].upper() not in self.identChars)\n                    and (loc == 0\n                         or instring[loc - 1].upper() not in self.identChars)):\n                return loc + self.matchLen, self.match\n\n        else:\n            if instring[loc] == self.firstMatchChar:\n                if ((self.matchLen == 1 or instring.startswith(self.match, loc))\n                        and (loc >= len(instring) - self.matchLen\n                             or instring[loc + self.matchLen] not in self.identChars)\n                        and (loc == 0 or instring[loc - 1] not in self.identChars)):\n                    return loc + self.matchLen, self.match\n\n        raise ParseException(instring, loc, self.errmsg, self)\n\n    def copy(self):\n        c = super(Keyword, self).copy()\n        c.identChars = Keyword.DEFAULT_KEYWORD_CHARS\n        return c\n\n    @staticmethod\n    def setDefaultKeywordChars(chars):\n        \"\"\"Overrides the default Keyword chars\n        \"\"\"\n        Keyword.DEFAULT_KEYWORD_CHARS = chars\n\nclass CaselessLiteral(Literal):\n    \"\"\"Token to match a specified string, ignoring case of letters.\n    Note: the matched results will always be in the case of the given\n    match string, NOT the case of the input text.\n\n    Example::\n\n        OneOrMore(CaselessLiteral(\"CMD\")).parseString(\"cmd CMD Cmd10\") # -> ['CMD', 'CMD', 'CMD']\n\n    (Contrast with example for :class:`CaselessKeyword`.)\n    \"\"\"\n    def __init__(self, matchString):\n        super(CaselessLiteral, self).__init__(matchString.upper())\n        # Preserve the defining literal.\n        self.returnString = matchString\n        self.name = \"'%s'\" % self.returnString\n        self.errmsg = \"Expected \" + self.name\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if instring[loc:loc + self.matchLen].upper() == self.match:\n            return loc + self.matchLen, self.returnString\n        raise ParseException(instring, loc, self.errmsg, self)\n\nclass CaselessKeyword(Keyword):\n    \"\"\"\n    Caseless version of :class:`Keyword`.\n\n    Example::\n\n        OneOrMore(CaselessKeyword(\"CMD\")).parseString(\"cmd CMD Cmd10\") # -> ['CMD', 'CMD']\n\n    (Contrast with example for :class:`CaselessLiteral`.)\n    \"\"\"\n    def __init__(self, matchString, identChars=None):\n        super(CaselessKeyword, self).__init__(matchString, identChars, caseless=True)\n\nclass CloseMatch(Token):\n    \"\"\"A variation on :class:`Literal` which matches \"close\" matches,\n    that is, strings with at most 'n' mismatching characters.\n    :class:`CloseMatch` takes parameters:\n\n     - ``match_string`` - string to be matched\n     - ``maxMismatches`` - (``default=1``) maximum number of\n       mismatches allowed to count as a match\n\n    The results from a successful parse will contain the matched text\n    from the input string and the following named results:\n\n     - ``mismatches`` - a list of the positions within the\n       match_string where mismatches were found\n     - ``original`` - the original match_string used to compare\n       against the input string\n\n    If ``mismatches`` is an empty list, then the match was an exact\n    match.\n\n    Example::\n\n        patt = CloseMatch(\"ATCATCGAATGGA\")\n        patt.parseString(\"ATCATCGAAXGGA\") # -> (['ATCATCGAAXGGA'], {'mismatches': [[9]], 'original': ['ATCATCGAATGGA']})\n        patt.parseString(\"ATCAXCGAAXGGA\") # -> Exception: Expected 'ATCATCGAATGGA' (with up to 1 mismatches) (at char 0), (line:1, col:1)\n\n        # exact match\n        patt.parseString(\"ATCATCGAATGGA\") # -> (['ATCATCGAATGGA'], {'mismatches': [[]], 'original': ['ATCATCGAATGGA']})\n\n        # close match allowing up to 2 mismatches\n        patt = CloseMatch(\"ATCATCGAATGGA\", maxMismatches=2)\n        patt.parseString(\"ATCAXCGAAXGGA\") # -> (['ATCAXCGAAXGGA'], {'mismatches': [[4, 9]], 'original': ['ATCATCGAATGGA']})\n    \"\"\"\n    def __init__(self, match_string, maxMismatches=1):\n        super(CloseMatch, self).__init__()\n        self.name = match_string\n        self.match_string = match_string\n        self.maxMismatches = maxMismatches\n        self.errmsg = \"Expected %r (with up to %d mismatches)\" % (self.match_string, self.maxMismatches)\n        self.mayIndexError = False\n        self.mayReturnEmpty = False\n\n    def parseImpl(self, instring, loc, doActions=True):\n        start = loc\n        instrlen = len(instring)\n        maxloc = start + len(self.match_string)\n\n        if maxloc <= instrlen:\n            match_string = self.match_string\n            match_stringloc = 0\n            mismatches = []\n            maxMismatches = self.maxMismatches\n\n            for match_stringloc, s_m in enumerate(zip(instring[loc:maxloc], match_string)):\n                src, mat = s_m\n                if src != mat:\n                    mismatches.append(match_stringloc)\n                    if len(mismatches) > maxMismatches:\n                        break\n            else:\n                loc = match_stringloc + 1\n                results = ParseResults([instring[start:loc]])\n                results['original'] = match_string\n                results['mismatches'] = mismatches\n                return loc, results\n\n        raise ParseException(instring, loc, self.errmsg, self)\n\n\nclass Word(Token):\n    \"\"\"Token for matching words composed of allowed character sets.\n    Defined with string containing all allowed initial characters, an\n    optional string containing allowed body characters (if omitted,\n    defaults to the initial character set), and an optional minimum,\n    maximum, and/or exact length.  The default value for ``min`` is\n    1 (a minimum value < 1 is not valid); the default values for\n    ``max`` and ``exact`` are 0, meaning no maximum or exact\n    length restriction. An optional ``excludeChars`` parameter can\n    list characters that might be found in the input ``bodyChars``\n    string; useful to define a word of all printables except for one or\n    two characters, for instance.\n\n    :class:`srange` is useful for defining custom character set strings\n    for defining ``Word`` expressions, using range notation from\n    regular expression character sets.\n\n    A common mistake is to use :class:`Word` to match a specific literal\n    string, as in ``Word(\"Address\")``. Remember that :class:`Word`\n    uses the string argument to define *sets* of matchable characters.\n    This expression would match \"Add\", \"AAA\", \"dAred\", or any other word\n    made up of the characters 'A', 'd', 'r', 'e', and 's'. To match an\n    exact literal string, use :class:`Literal` or :class:`Keyword`.\n\n    pyparsing includes helper strings for building Words:\n\n     - :class:`alphas`\n     - :class:`nums`\n     - :class:`alphanums`\n     - :class:`hexnums`\n     - :class:`alphas8bit` (alphabetic characters in ASCII range 128-255\n       - accented, tilded, umlauted, etc.)\n     - :class:`punc8bit` (non-alphabetic characters in ASCII range\n       128-255 - currency, symbols, superscripts, diacriticals, etc.)\n     - :class:`printables` (any non-whitespace character)\n\n    Example::\n\n        # a word composed of digits\n        integer = Word(nums) # equivalent to Word(\"0123456789\") or Word(srange(\"0-9\"))\n\n        # a word with a leading capital, and zero or more lowercase\n        capital_word = Word(alphas.upper(), alphas.lower())\n\n        # hostnames are alphanumeric, with leading alpha, and '-'\n        hostname = Word(alphas, alphanums + '-')\n\n        # roman numeral (not a strict parser, accepts invalid mix of characters)\n        roman = Word(\"IVXLCDM\")\n\n        # any string of non-whitespace characters, except for ','\n        csv_value = Word(printables, excludeChars=\",\")\n    \"\"\"\n    def __init__(self, initChars, bodyChars=None, min=1, max=0, exact=0, asKeyword=False, excludeChars=None):\n        super(Word, self).__init__()\n        if excludeChars:\n            excludeChars = set(excludeChars)\n            initChars = ''.join(c for c in initChars if c not in excludeChars)\n            if bodyChars:\n                bodyChars = ''.join(c for c in bodyChars if c not in excludeChars)\n        self.initCharsOrig = initChars\n        self.initChars = set(initChars)\n        if bodyChars:\n            self.bodyCharsOrig = bodyChars\n            self.bodyChars = set(bodyChars)\n        else:\n            self.bodyCharsOrig = initChars\n            self.bodyChars = set(initChars)\n\n        self.maxSpecified = max > 0\n\n        if min < 1:\n            raise ValueError(\"cannot specify a minimum length < 1; use Optional(Word()) if zero-length word is permitted\")\n\n        self.minLen = min\n\n        if max > 0:\n            self.maxLen = max\n        else:\n            self.maxLen = _MAX_INT\n\n        if exact > 0:\n            self.maxLen = exact\n            self.minLen = exact\n\n        self.name = _ustr(self)\n        self.errmsg = \"Expected \" + self.name\n        self.mayIndexError = False\n        self.asKeyword = asKeyword\n\n        if ' ' not in self.initCharsOrig + self.bodyCharsOrig and (min == 1 and max == 0 and exact == 0):\n            if self.bodyCharsOrig == self.initCharsOrig:\n                self.reString = \"[%s]+\" % _escapeRegexRangeChars(self.initCharsOrig)\n            elif len(self.initCharsOrig) == 1:\n                self.reString = \"%s[%s]*\" % (re.escape(self.initCharsOrig),\n                                             _escapeRegexRangeChars(self.bodyCharsOrig),)\n            else:\n                self.reString = \"[%s][%s]*\" % (_escapeRegexRangeChars(self.initCharsOrig),\n                                               _escapeRegexRangeChars(self.bodyCharsOrig),)\n            if self.asKeyword:\n                self.reString = r\"\\b\" + self.reString + r\"\\b\"\n\n            try:\n                self.re = re.compile(self.reString)\n            except Exception:\n                self.re = None\n            else:\n                self.re_match = self.re.match\n                self.__class__ = _WordRegex\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if instring[loc] not in self.initChars:\n            raise ParseException(instring, loc, self.errmsg, self)\n\n        start = loc\n        loc += 1\n        instrlen = len(instring)\n        bodychars = self.bodyChars\n        maxloc = start + self.maxLen\n        maxloc = min(maxloc, instrlen)\n        while loc < maxloc and instring[loc] in bodychars:\n            loc += 1\n\n        throwException = False\n        if loc - start < self.minLen:\n            throwException = True\n        elif self.maxSpecified and loc < instrlen and instring[loc] in bodychars:\n            throwException = True\n        elif self.asKeyword:\n            if (start > 0 and instring[start - 1] in bodychars\n                    or loc < instrlen and instring[loc] in bodychars):\n                throwException = True\n\n        if throwException:\n            raise ParseException(instring, loc, self.errmsg, self)\n\n        return loc, instring[start:loc]\n\n    def __str__(self):\n        try:\n            return super(Word, self).__str__()\n        except Exception:\n            pass\n\n        if self.strRepr is None:\n\n            def charsAsStr(s):\n                if len(s) > 4:\n                    return s[:4] + \"...\"\n                else:\n                    return s\n\n            if self.initCharsOrig != self.bodyCharsOrig:\n                self.strRepr = \"W:(%s, %s)\" % (charsAsStr(self.initCharsOrig), charsAsStr(self.bodyCharsOrig))\n            else:\n                self.strRepr = \"W:(%s)\" % charsAsStr(self.initCharsOrig)\n\n        return self.strRepr\n\nclass _WordRegex(Word):\n    def parseImpl(self, instring, loc, doActions=True):\n        result = self.re_match(instring, loc)\n        if not result:\n            raise ParseException(instring, loc, self.errmsg, self)\n\n        loc = result.end()\n        return loc, result.group()\n\n\nclass Char(_WordRegex):\n    \"\"\"A short-cut class for defining ``Word(characters, exact=1)``,\n    when defining a match of any single character in a string of\n    characters.\n    \"\"\"\n    def __init__(self, charset, asKeyword=False, excludeChars=None):\n        super(Char, self).__init__(charset, exact=1, asKeyword=asKeyword, excludeChars=excludeChars)\n        self.reString = \"[%s]\" % _escapeRegexRangeChars(''.join(self.initChars))\n        if asKeyword:\n            self.reString = r\"\\b%s\\b\" % self.reString\n        self.re = re.compile(self.reString)\n        self.re_match = self.re.match\n\n\nclass Regex(Token):\n    r\"\"\"Token for matching strings that match a given regular\n    expression. Defined with string specifying the regular expression in\n    a form recognized by the stdlib Python  `re module <https://docs.python.org/3/library/re.html>`_.\n    If the given regex contains named groups (defined using ``(?P<name>...)``),\n    these will be preserved as named parse results.\n\n    If instead of the Python stdlib re module you wish to use a different RE module\n    (such as the `regex` module), you can replace it by either building your\n    Regex object with a compiled RE that was compiled using regex:\n\n    Example::\n\n        realnum = Regex(r\"[+-]?\\d+\\.\\d*\")\n        date = Regex(r'(?P<year>\\d{4})-(?P<month>\\d\\d?)-(?P<day>\\d\\d?)')\n        # ref: https://stackoverflow.com/questions/267399/how-do-you-match-only-valid-roman-numerals-with-a-regular-expression\n        roman = Regex(r\"M{0,4}(CM|CD|D?{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\")\n\n        # use regex module instead of stdlib re module to construct a Regex using\n        # a compiled regular expression\n        import regex\n        parser = pp.Regex(regex.compile(r'[0-9]'))\n\n    \"\"\"\n    def __init__(self, pattern, flags=0, asGroupList=False, asMatch=False):\n        \"\"\"The parameters ``pattern`` and ``flags`` are passed\n        to the ``re.compile()`` function as-is. See the Python\n        `re module <https://docs.python.org/3/library/re.html>`_ module for an\n        explanation of the acceptable patterns and flags.\n        \"\"\"\n        super(Regex, self).__init__()\n\n        if isinstance(pattern, basestring):\n            if not pattern:\n                warnings.warn(\"null string passed to Regex; use Empty() instead\",\n                              SyntaxWarning, stacklevel=2)\n\n            self.pattern = pattern\n            self.flags = flags\n\n            try:\n                self.re = re.compile(self.pattern, self.flags)\n                self.reString = self.pattern\n            except re.error:\n                warnings.warn(\"invalid pattern (%s) passed to Regex\" % pattern,\n                              SyntaxWarning, stacklevel=2)\n                raise\n\n        elif hasattr(pattern, 'pattern') and hasattr(pattern, 'match'):\n            self.re = pattern\n            self.pattern = self.reString = pattern.pattern\n            self.flags = flags\n\n        else:\n            raise TypeError(\"Regex may only be constructed with a string or a compiled RE object\")\n\n        self.re_match = self.re.match\n\n        self.name = _ustr(self)\n        self.errmsg = \"Expected \" + self.name\n        self.mayIndexError = False\n        self.mayReturnEmpty = self.re_match(\"\") is not None\n        self.asGroupList = asGroupList\n        self.asMatch = asMatch\n        if self.asGroupList:\n            self.parseImpl = self.parseImplAsGroupList\n        if self.asMatch:\n            self.parseImpl = self.parseImplAsMatch\n\n    def parseImpl(self, instring, loc, doActions=True):\n        result = self.re_match(instring, loc)\n        if not result:\n            raise ParseException(instring, loc, self.errmsg, self)\n\n        loc = result.end()\n        ret = ParseResults(result.group())\n        d = result.groupdict()\n        if d:\n            for k, v in d.items():\n                ret[k] = v\n        return loc, ret\n\n    def parseImplAsGroupList(self, instring, loc, doActions=True):\n        result = self.re_match(instring, loc)\n        if not result:\n            raise ParseException(instring, loc, self.errmsg, self)\n\n        loc = result.end()\n        ret = result.groups()\n        return loc, ret\n\n    def parseImplAsMatch(self, instring, loc, doActions=True):\n        result = self.re_match(instring, loc)\n        if not result:\n            raise ParseException(instring, loc, self.errmsg, self)\n\n        loc = result.end()\n        ret = result\n        return loc, ret\n\n    def __str__(self):\n        try:\n            return super(Regex, self).__str__()\n        except Exception:\n            pass\n\n        if self.strRepr is None:\n            self.strRepr = \"Re:(%s)\" % repr(self.pattern)\n\n        return self.strRepr\n\n    def sub(self, repl):\n        r\"\"\"\n        Return Regex with an attached parse action to transform the parsed\n        result as if called using `re.sub(expr, repl, string) <https://docs.python.org/3/library/re.html#re.sub>`_.\n\n        Example::\n\n            make_html = Regex(r\"(\\w+):(.*?):\").sub(r\"<\\1>\\2</\\1>\")\n            print(make_html.transformString(\"h1:main title:\"))\n            # prints \"<h1>main title</h1>\"\n        \"\"\"\n        if self.asGroupList:\n            warnings.warn(\"cannot use sub() with Regex(asGroupList=True)\",\n                          SyntaxWarning, stacklevel=2)\n            raise SyntaxError()\n\n        if self.asMatch and callable(repl):\n            warnings.warn(\"cannot use sub() with a callable with Regex(asMatch=True)\",\n                          SyntaxWarning, stacklevel=2)\n            raise SyntaxError()\n\n        if self.asMatch:\n            def pa(tokens):\n                return tokens[0].expand(repl)\n        else:\n            def pa(tokens):\n                return self.re.sub(repl, tokens[0])\n        return self.addParseAction(pa)\n\nclass QuotedString(Token):\n    r\"\"\"\n    Token for matching strings that are delimited by quoting characters.\n\n    Defined with the following parameters:\n\n        - quoteChar - string of one or more characters defining the\n          quote delimiting string\n        - escChar - character to escape quotes, typically backslash\n          (default= ``None``)\n        - escQuote - special quote sequence to escape an embedded quote\n          string (such as SQL's ``\"\"`` to escape an embedded ``\"``)\n          (default= ``None``)\n        - multiline - boolean indicating whether quotes can span\n          multiple lines (default= ``False``)\n        - unquoteResults - boolean indicating whether the matched text\n          should be unquoted (default= ``True``)\n        - endQuoteChar - string of one or more characters defining the\n          end of the quote delimited string (default= ``None``  => same as\n          quoteChar)\n        - convertWhitespaceEscapes - convert escaped whitespace\n          (``'\\t'``, ``'\\n'``, etc.) to actual whitespace\n          (default= ``True``)\n\n    Example::\n\n        qs = QuotedString('\"')\n        print(qs.searchString('lsjdf \"This is the quote\" sldjf'))\n        complex_qs = QuotedString('{{', endQuoteChar='}}')\n        print(complex_qs.searchString('lsjdf {{This is the \"quote\"}} sldjf'))\n        sql_qs = QuotedString('\"', escQuote='\"\"')\n        print(sql_qs.searchString('lsjdf \"This is the quote with \"\"embedded\"\" quotes\" sldjf'))\n\n    prints::\n\n        [['This is the quote']]\n        [['This is the \"quote\"']]\n        [['This is the quote with \"embedded\" quotes']]\n    \"\"\"\n    def __init__(self, quoteChar, escChar=None, escQuote=None, multiline=False,\n                 unquoteResults=True, endQuoteChar=None, convertWhitespaceEscapes=True):\n        super(QuotedString, self).__init__()\n\n        # remove white space from quote chars - wont work anyway\n        quoteChar = quoteChar.strip()\n        if not quoteChar:\n            warnings.warn(\"quoteChar cannot be the empty string\", SyntaxWarning, stacklevel=2)\n            raise SyntaxError()\n\n        if endQuoteChar is None:\n            endQuoteChar = quoteChar\n        else:\n            endQuoteChar = endQuoteChar.strip()\n            if not endQuoteChar:\n                warnings.warn(\"endQuoteChar cannot be the empty string\", SyntaxWarning, stacklevel=2)\n                raise SyntaxError()\n\n        self.quoteChar = quoteChar\n        self.quoteCharLen = len(quoteChar)\n        self.firstQuoteChar = quoteChar[0]\n        self.endQuoteChar = endQuoteChar\n        self.endQuoteCharLen = len(endQuoteChar)\n        self.escChar = escChar\n        self.escQuote = escQuote\n        self.unquoteResults = unquoteResults\n        self.convertWhitespaceEscapes = convertWhitespaceEscapes\n\n        if multiline:\n            self.flags = re.MULTILINE | re.DOTALL\n            self.pattern = r'%s(?:[^%s%s]' % (re.escape(self.quoteChar),\n                                              _escapeRegexRangeChars(self.endQuoteChar[0]),\n                                              (escChar is not None and _escapeRegexRangeChars(escChar) or ''))\n        else:\n            self.flags = 0\n            self.pattern = r'%s(?:[^%s\\n\\r%s]' % (re.escape(self.quoteChar),\n                                                  _escapeRegexRangeChars(self.endQuoteChar[0]),\n                                                  (escChar is not None and _escapeRegexRangeChars(escChar) or ''))\n        if len(self.endQuoteChar) > 1:\n            self.pattern += (\n                '|(?:' + ')|(?:'.join(\"%s[^%s]\" % (re.escape(self.endQuoteChar[:i]),\n                                                   _escapeRegexRangeChars(self.endQuoteChar[i]))\n                                      for i in range(len(self.endQuoteChar) - 1, 0, -1)) + ')')\n\n        if escQuote:\n            self.pattern += (r'|(?:%s)' % re.escape(escQuote))\n        if escChar:\n            self.pattern += (r'|(?:%s.)' % re.escape(escChar))\n            self.escCharReplacePattern = re.escape(self.escChar) + \"(.)\"\n        self.pattern += (r')*%s' % re.escape(self.endQuoteChar))\n\n        try:\n            self.re = re.compile(self.pattern, self.flags)\n            self.reString = self.pattern\n            self.re_match = self.re.match\n        except re.error:\n            warnings.warn(\"invalid pattern (%s) passed to Regex\" % self.pattern,\n                          SyntaxWarning, stacklevel=2)\n            raise\n\n        self.name = _ustr(self)\n        self.errmsg = \"Expected \" + self.name\n        self.mayIndexError = False\n        self.mayReturnEmpty = True\n\n    def parseImpl(self, instring, loc, doActions=True):\n        result = instring[loc] == self.firstQuoteChar and self.re_match(instring, loc) or None\n        if not result:\n            raise ParseException(instring, loc, self.errmsg, self)\n\n        loc = result.end()\n        ret = result.group()\n\n        if self.unquoteResults:\n\n            # strip off quotes\n            ret = ret[self.quoteCharLen: -self.endQuoteCharLen]\n\n            if isinstance(ret, basestring):\n                # replace escaped whitespace\n                if '\\\\' in ret and self.convertWhitespaceEscapes:\n                    ws_map = {\n                        r'\\t': '\\t',\n                        r'\\n': '\\n',\n                        r'\\f': '\\f',\n                        r'\\r': '\\r',\n                    }\n                    for wslit, wschar in ws_map.items():\n                        ret = ret.replace(wslit, wschar)\n\n                # replace escaped characters\n                if self.escChar:\n                    ret = re.sub(self.escCharReplacePattern, r\"\\g<1>\", ret)\n\n                # replace escaped quotes\n                if self.escQuote:\n                    ret = ret.replace(self.escQuote, self.endQuoteChar)\n\n        return loc, ret\n\n    def __str__(self):\n        try:\n            return super(QuotedString, self).__str__()\n        except Exception:\n            pass\n\n        if self.strRepr is None:\n            self.strRepr = \"quoted string, starting with %s ending with %s\" % (self.quoteChar, self.endQuoteChar)\n\n        return self.strRepr\n\n\nclass CharsNotIn(Token):\n    \"\"\"Token for matching words composed of characters *not* in a given\n    set (will include whitespace in matched characters if not listed in\n    the provided exclusion set - see example). Defined with string\n    containing all disallowed characters, and an optional minimum,\n    maximum, and/or exact length.  The default value for ``min`` is\n    1 (a minimum value < 1 is not valid); the default values for\n    ``max`` and ``exact`` are 0, meaning no maximum or exact\n    length restriction.\n\n    Example::\n\n        # define a comma-separated-value as anything that is not a ','\n        csv_value = CharsNotIn(',')\n        print(delimitedList(csv_value).parseString(\"dkls,lsdkjf,s12 34,@!#,213\"))\n\n    prints::\n\n        ['dkls', 'lsdkjf', 's12 34', '@!#', '213']\n    \"\"\"\n    def __init__(self, notChars, min=1, max=0, exact=0):\n        super(CharsNotIn, self).__init__()\n        self.skipWhitespace = False\n        self.notChars = notChars\n\n        if min < 1:\n            raise ValueError(\"cannot specify a minimum length < 1; use \"\n                             \"Optional(CharsNotIn()) if zero-length char group is permitted\")\n\n        self.minLen = min\n\n        if max > 0:\n            self.maxLen = max\n        else:\n            self.maxLen = _MAX_INT\n\n        if exact > 0:\n            self.maxLen = exact\n            self.minLen = exact\n\n        self.name = _ustr(self)\n        self.errmsg = \"Expected \" + self.name\n        self.mayReturnEmpty = (self.minLen == 0)\n        self.mayIndexError = False\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if instring[loc] in self.notChars:\n            raise ParseException(instring, loc, self.errmsg, self)\n\n        start = loc\n        loc += 1\n        notchars = self.notChars\n        maxlen = min(start + self.maxLen, len(instring))\n        while loc < maxlen and instring[loc] not in notchars:\n            loc += 1\n\n        if loc - start < self.minLen:\n            raise ParseException(instring, loc, self.errmsg, self)\n\n        return loc, instring[start:loc]\n\n    def __str__(self):\n        try:\n            return super(CharsNotIn, self).__str__()\n        except Exception:\n            pass\n\n        if self.strRepr is None:\n            if len(self.notChars) > 4:\n                self.strRepr = \"!W:(%s...)\" % self.notChars[:4]\n            else:\n                self.strRepr = \"!W:(%s)\" % self.notChars\n\n        return self.strRepr\n\nclass White(Token):\n    \"\"\"Special matching class for matching whitespace.  Normally,\n    whitespace is ignored by pyparsing grammars.  This class is included\n    when some whitespace structures are significant.  Define with\n    a string containing the whitespace characters to be matched; default\n    is ``\" \\\\t\\\\r\\\\n\"``.  Also takes optional ``min``,\n    ``max``, and ``exact`` arguments, as defined for the\n    :class:`Word` class.\n    \"\"\"\n    whiteStrs = {\n        ' ' : '<SP>',\n        '\\t': '<TAB>',\n        '\\n': '<LF>',\n        '\\r': '<CR>',\n        '\\f': '<FF>',\n        u'\\u00A0': '<NBSP>',\n        u'\\u1680': '<OGHAM_SPACE_MARK>',\n        u'\\u180E': '<MONGOLIAN_VOWEL_SEPARATOR>',\n        u'\\u2000': '<EN_QUAD>',\n        u'\\u2001': '<EM_QUAD>',\n        u'\\u2002': '<EN_SPACE>',\n        u'\\u2003': '<EM_SPACE>',\n        u'\\u2004': '<THREE-PER-EM_SPACE>',\n        u'\\u2005': '<FOUR-PER-EM_SPACE>',\n        u'\\u2006': '<SIX-PER-EM_SPACE>',\n        u'\\u2007': '<FIGURE_SPACE>',\n        u'\\u2008': '<PUNCTUATION_SPACE>',\n        u'\\u2009': '<THIN_SPACE>',\n        u'\\u200A': '<HAIR_SPACE>',\n        u'\\u200B': '<ZERO_WIDTH_SPACE>',\n        u'\\u202F': '<NNBSP>',\n        u'\\u205F': '<MMSP>',\n        u'\\u3000': '<IDEOGRAPHIC_SPACE>',\n        }\n    def __init__(self, ws=\" \\t\\r\\n\", min=1, max=0, exact=0):\n        super(White, self).__init__()\n        self.matchWhite = ws\n        self.setWhitespaceChars(\"\".join(c for c in self.whiteChars if c not in self.matchWhite))\n        # ~ self.leaveWhitespace()\n        self.name = (\"\".join(White.whiteStrs[c] for c in self.matchWhite))\n        self.mayReturnEmpty = True\n        self.errmsg = \"Expected \" + self.name\n\n        self.minLen = min\n\n        if max > 0:\n            self.maxLen = max\n        else:\n            self.maxLen = _MAX_INT\n\n        if exact > 0:\n            self.maxLen = exact\n            self.minLen = exact\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if instring[loc] not in self.matchWhite:\n            raise ParseException(instring, loc, self.errmsg, self)\n        start = loc\n        loc += 1\n        maxloc = start + self.maxLen\n        maxloc = min(maxloc, len(instring))\n        while loc < maxloc and instring[loc] in self.matchWhite:\n            loc += 1\n\n        if loc - start < self.minLen:\n            raise ParseException(instring, loc, self.errmsg, self)\n\n        return loc, instring[start:loc]\n\n\nclass _PositionToken(Token):\n    def __init__(self):\n        super(_PositionToken, self).__init__()\n        self.name = self.__class__.__name__\n        self.mayReturnEmpty = True\n        self.mayIndexError = False\n\nclass GoToColumn(_PositionToken):\n    \"\"\"Token to advance to a specific column of input text; useful for\n    tabular report scraping.\n    \"\"\"\n    def __init__(self, colno):\n        super(GoToColumn, self).__init__()\n        self.col = colno\n\n    def preParse(self, instring, loc):\n        if col(loc, instring) != self.col:\n            instrlen = len(instring)\n            if self.ignoreExprs:\n                loc = self._skipIgnorables(instring, loc)\n            while loc < instrlen and instring[loc].isspace() and col(loc, instring) != self.col:\n                loc += 1\n        return loc\n\n    def parseImpl(self, instring, loc, doActions=True):\n        thiscol = col(loc, instring)\n        if thiscol > self.col:\n            raise ParseException(instring, loc, \"Text not in expected column\", self)\n        newloc = loc + self.col - thiscol\n        ret = instring[loc: newloc]\n        return newloc, ret\n\n\nclass LineStart(_PositionToken):\n    r\"\"\"Matches if current position is at the beginning of a line within\n    the parse string\n\n    Example::\n\n        test = '''\\\n        AAA this line\n        AAA and this line\n          AAA but not this one\n        B AAA and definitely not this one\n        '''\n\n        for t in (LineStart() + 'AAA' + restOfLine).searchString(test):\n            print(t)\n\n    prints::\n\n        ['AAA', ' this line']\n        ['AAA', ' and this line']\n\n    \"\"\"\n    def __init__(self):\n        super(LineStart, self).__init__()\n        self.errmsg = \"Expected start of line\"\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if col(loc, instring) == 1:\n            return loc, []\n        raise ParseException(instring, loc, self.errmsg, self)\n\nclass LineEnd(_PositionToken):\n    \"\"\"Matches if current position is at the end of a line within the\n    parse string\n    \"\"\"\n    def __init__(self):\n        super(LineEnd, self).__init__()\n        self.setWhitespaceChars(ParserElement.DEFAULT_WHITE_CHARS.replace(\"\\n\", \"\"))\n        self.errmsg = \"Expected end of line\"\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if loc < len(instring):\n            if instring[loc] == \"\\n\":\n                return loc + 1, \"\\n\"\n            else:\n                raise ParseException(instring, loc, self.errmsg, self)\n        elif loc == len(instring):\n            return loc + 1, []\n        else:\n            raise ParseException(instring, loc, self.errmsg, self)\n\nclass StringStart(_PositionToken):\n    \"\"\"Matches if current position is at the beginning of the parse\n    string\n    \"\"\"\n    def __init__(self):\n        super(StringStart, self).__init__()\n        self.errmsg = \"Expected start of text\"\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if loc != 0:\n            # see if entire string up to here is just whitespace and ignoreables\n            if loc != self.preParse(instring, 0):\n                raise ParseException(instring, loc, self.errmsg, self)\n        return loc, []\n\nclass StringEnd(_PositionToken):\n    \"\"\"Matches if current position is at the end of the parse string\n    \"\"\"\n    def __init__(self):\n        super(StringEnd, self).__init__()\n        self.errmsg = \"Expected end of text\"\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if loc < len(instring):\n            raise ParseException(instring, loc, self.errmsg, self)\n        elif loc == len(instring):\n            return loc + 1, []\n        elif loc > len(instring):\n            return loc, []\n        else:\n            raise ParseException(instring, loc, self.errmsg, self)\n\nclass WordStart(_PositionToken):\n    \"\"\"Matches if the current position is at the beginning of a Word,\n    and is not preceded by any character in a given set of\n    ``wordChars`` (default= ``printables``). To emulate the\n    ``\\b`` behavior of regular expressions, use\n    ``WordStart(alphanums)``. ``WordStart`` will also match at\n    the beginning of the string being parsed, or at the beginning of\n    a line.\n    \"\"\"\n    def __init__(self, wordChars=printables):\n        super(WordStart, self).__init__()\n        self.wordChars = set(wordChars)\n        self.errmsg = \"Not at the start of a word\"\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if loc != 0:\n            if (instring[loc - 1] in self.wordChars\n                    or instring[loc] not in self.wordChars):\n                raise ParseException(instring, loc, self.errmsg, self)\n        return loc, []\n\nclass WordEnd(_PositionToken):\n    \"\"\"Matches if the current position is at the end of a Word, and is\n    not followed by any character in a given set of ``wordChars``\n    (default= ``printables``). To emulate the ``\\b`` behavior of\n    regular expressions, use ``WordEnd(alphanums)``. ``WordEnd``\n    will also match at the end of the string being parsed, or at the end\n    of a line.\n    \"\"\"\n    def __init__(self, wordChars=printables):\n        super(WordEnd, self).__init__()\n        self.wordChars = set(wordChars)\n        self.skipWhitespace = False\n        self.errmsg = \"Not at the end of a word\"\n\n    def parseImpl(self, instring, loc, doActions=True):\n        instrlen = len(instring)\n        if instrlen > 0 and loc < instrlen:\n            if (instring[loc] in self.wordChars or\n                    instring[loc - 1] not in self.wordChars):\n                raise ParseException(instring, loc, self.errmsg, self)\n        return loc, []\n\n\nclass ParseExpression(ParserElement):\n    \"\"\"Abstract subclass of ParserElement, for combining and\n    post-processing parsed tokens.\n    \"\"\"\n    def __init__(self, exprs, savelist=False):\n        super(ParseExpression, self).__init__(savelist)\n        if isinstance(exprs, _generatorType):\n            exprs = list(exprs)\n\n        if isinstance(exprs, basestring):\n            self.exprs = [self._literalStringClass(exprs)]\n        elif isinstance(exprs, ParserElement):\n            self.exprs = [exprs]\n        elif isinstance(exprs, Iterable):\n            exprs = list(exprs)\n            # if sequence of strings provided, wrap with Literal\n            if any(isinstance(expr, basestring) for expr in exprs):\n                exprs = (self._literalStringClass(e) if isinstance(e, basestring) else e for e in exprs)\n            self.exprs = list(exprs)\n        else:\n            try:\n                self.exprs = list(exprs)\n            except TypeError:\n                self.exprs = [exprs]\n        self.callPreparse = False\n\n    def append(self, other):\n        self.exprs.append(other)\n        self.strRepr = None\n        return self\n\n    def leaveWhitespace(self):\n        \"\"\"Extends ``leaveWhitespace`` defined in base class, and also invokes ``leaveWhitespace`` on\n           all contained expressions.\"\"\"\n        self.skipWhitespace = False\n        self.exprs = [e.copy() for e in self.exprs]\n        for e in self.exprs:\n            e.leaveWhitespace()\n        return self\n\n    def ignore(self, other):\n        if isinstance(other, Suppress):\n            if other not in self.ignoreExprs:\n                super(ParseExpression, self).ignore(other)\n                for e in self.exprs:\n                    e.ignore(self.ignoreExprs[-1])\n        else:\n            super(ParseExpression, self).ignore(other)\n            for e in self.exprs:\n                e.ignore(self.ignoreExprs[-1])\n        return self\n\n    def __str__(self):\n        try:\n            return super(ParseExpression, self).__str__()\n        except Exception:\n            pass\n\n        if self.strRepr is None:\n            self.strRepr = \"%s:(%s)\" % (self.__class__.__name__, _ustr(self.exprs))\n        return self.strRepr\n\n    def streamline(self):\n        super(ParseExpression, self).streamline()\n\n        for e in self.exprs:\n            e.streamline()\n\n        # collapse nested And's of the form And(And(And(a, b), c), d) to And(a, b, c, d)\n        # but only if there are no parse actions or resultsNames on the nested And's\n        # (likewise for Or's and MatchFirst's)\n        if len(self.exprs) == 2:\n            other = self.exprs[0]\n            if (isinstance(other, self.__class__)\n                    and not other.parseAction\n                    and other.resultsName is None\n                    and not other.debug):\n                self.exprs = other.exprs[:] + [self.exprs[1]]\n                self.strRepr = None\n                self.mayReturnEmpty |= other.mayReturnEmpty\n                self.mayIndexError  |= other.mayIndexError\n\n            other = self.exprs[-1]\n            if (isinstance(other, self.__class__)\n                    and not other.parseAction\n                    and other.resultsName is None\n                    and not other.debug):\n                self.exprs = self.exprs[:-1] + other.exprs[:]\n                self.strRepr = None\n                self.mayReturnEmpty |= other.mayReturnEmpty\n                self.mayIndexError  |= other.mayIndexError\n\n        self.errmsg = \"Expected \" + _ustr(self)\n\n        return self\n\n    def validate(self, validateTrace=None):\n        tmp = (validateTrace if validateTrace is not None else [])[:] + [self]\n        for e in self.exprs:\n            e.validate(tmp)\n        self.checkRecursion([])\n\n    def copy(self):\n        ret = super(ParseExpression, self).copy()\n        ret.exprs = [e.copy() for e in self.exprs]\n        return ret\n\n    def _setResultsName(self, name, listAllMatches=False):\n        if __diag__.warn_ungrouped_named_tokens_in_collection:\n            for e in self.exprs:\n                if isinstance(e, ParserElement) and e.resultsName:\n                    warnings.warn(\"{0}: setting results name {1!r} on {2} expression \"\n                                  \"collides with {3!r} on contained expression\".format(\"warn_ungrouped_named_tokens_in_collection\",\n                                                                                       name,\n                                                                                       type(self).__name__,\n                                                                                       e.resultsName),\n                                  stacklevel=3)\n\n        return super(ParseExpression, self)._setResultsName(name, listAllMatches)\n\n\nclass And(ParseExpression):\n    \"\"\"\n    Requires all given :class:`ParseExpression` s to be found in the given order.\n    Expressions may be separated by whitespace.\n    May be constructed using the ``'+'`` operator.\n    May also be constructed using the ``'-'`` operator, which will\n    suppress backtracking.\n\n    Example::\n\n        integer = Word(nums)\n        name_expr = OneOrMore(Word(alphas))\n\n        expr = And([integer(\"id\"), name_expr(\"name\"), integer(\"age\")])\n        # more easily written as:\n        expr = integer(\"id\") + name_expr(\"name\") + integer(\"age\")\n    \"\"\"\n\n    class _ErrorStop(Empty):\n        def __init__(self, *args, **kwargs):\n            super(And._ErrorStop, self).__init__(*args, **kwargs)\n            self.name = '-'\n            self.leaveWhitespace()\n\n    def __init__(self, exprs, savelist=True):\n        exprs = list(exprs)\n        if exprs and Ellipsis in exprs:\n            tmp = []\n            for i, expr in enumerate(exprs):\n                if expr is Ellipsis:\n                    if i < len(exprs) - 1:\n                        skipto_arg = (Empty() + exprs[i + 1]).exprs[-1]\n                        tmp.append(SkipTo(skipto_arg)(\"_skipped*\"))\n                    else:\n                        raise Exception(\"cannot construct And with sequence ending in ...\")\n                else:\n                    tmp.append(expr)\n            exprs[:] = tmp\n        super(And, self).__init__(exprs, savelist)\n        self.mayReturnEmpty = all(e.mayReturnEmpty for e in self.exprs)\n        self.setWhitespaceChars(self.exprs[0].whiteChars)\n        self.skipWhitespace = self.exprs[0].skipWhitespace\n        self.callPreparse = True\n\n    def streamline(self):\n        # collapse any _PendingSkip's\n        if self.exprs:\n            if any(isinstance(e, ParseExpression) and e.exprs and isinstance(e.exprs[-1], _PendingSkip)\n                   for e in self.exprs[:-1]):\n                for i, e in enumerate(self.exprs[:-1]):\n                    if e is None:\n                        continue\n                    if (isinstance(e, ParseExpression)\n                            and e.exprs and isinstance(e.exprs[-1], _PendingSkip)):\n                        e.exprs[-1] = e.exprs[-1] + self.exprs[i + 1]\n                        self.exprs[i + 1] = None\n                self.exprs = [e for e in self.exprs if e is not None]\n\n        super(And, self).streamline()\n        self.mayReturnEmpty = all(e.mayReturnEmpty for e in self.exprs)\n        return self\n\n    def parseImpl(self, instring, loc, doActions=True):\n        # pass False as last arg to _parse for first element, since we already\n        # pre-parsed the string as part of our And pre-parsing\n        loc, resultlist = self.exprs[0]._parse(instring, loc, doActions, callPreParse=False)\n        errorStop = False\n        for e in self.exprs[1:]:\n            if isinstance(e, And._ErrorStop):\n                errorStop = True\n                continue\n            if errorStop:\n                try:\n                    loc, exprtokens = e._parse(instring, loc, doActions)\n                except ParseSyntaxException:\n                    raise\n                except ParseBaseException as pe:\n                    pe.__traceback__ = None\n                    raise ParseSyntaxException._from_exception(pe)\n                except IndexError:\n                    raise ParseSyntaxException(instring, len(instring), self.errmsg, self)\n            else:\n                loc, exprtokens = e._parse(instring, loc, doActions)\n            if exprtokens or exprtokens.haskeys():\n                resultlist += exprtokens\n        return loc, resultlist\n\n    def __iadd__(self, other):\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        return self.append(other)  # And([self, other])\n\n    def checkRecursion(self, parseElementList):\n        subRecCheckList = parseElementList[:] + [self]\n        for e in self.exprs:\n            e.checkRecursion(subRecCheckList)\n            if not e.mayReturnEmpty:\n                break\n\n    def __str__(self):\n        if hasattr(self, \"name\"):\n            return self.name\n\n        if self.strRepr is None:\n            self.strRepr = \"{\" + \" \".join(_ustr(e) for e in self.exprs) + \"}\"\n\n        return self.strRepr\n\n\nclass Or(ParseExpression):\n    \"\"\"Requires that at least one :class:`ParseExpression` is found. If\n    two expressions match, the expression that matches the longest\n    string will be used. May be constructed using the ``'^'``\n    operator.\n\n    Example::\n\n        # construct Or using '^' operator\n\n        number = Word(nums) ^ Combine(Word(nums) + '.' + Word(nums))\n        print(number.searchString(\"123 3.1416 789\"))\n\n    prints::\n\n        [['123'], ['3.1416'], ['789']]\n    \"\"\"\n    def __init__(self, exprs, savelist=False):\n        super(Or, self).__init__(exprs, savelist)\n        if self.exprs:\n            self.mayReturnEmpty = any(e.mayReturnEmpty for e in self.exprs)\n        else:\n            self.mayReturnEmpty = True\n\n    def streamline(self):\n        super(Or, self).streamline()\n        if __compat__.collect_all_And_tokens:\n            self.saveAsList = any(e.saveAsList for e in self.exprs)\n        return self\n\n    def parseImpl(self, instring, loc, doActions=True):\n        maxExcLoc = -1\n        maxException = None\n        matches = []\n        for e in self.exprs:\n            try:\n                loc2 = e.tryParse(instring, loc)\n            except ParseException as err:\n                err.__traceback__ = None\n                if err.loc > maxExcLoc:\n                    maxException = err\n                    maxExcLoc = err.loc\n            except IndexError:\n                if len(instring) > maxExcLoc:\n                    maxException = ParseException(instring, len(instring), e.errmsg, self)\n                    maxExcLoc = len(instring)\n            else:\n                # save match among all matches, to retry longest to shortest\n                matches.append((loc2, e))\n\n        if matches:\n            # re-evaluate all matches in descending order of length of match, in case attached actions\n            # might change whether or how much they match of the input.\n            matches.sort(key=itemgetter(0), reverse=True)\n\n            if not doActions:\n                # no further conditions or parse actions to change the selection of\n                # alternative, so the first match will be the best match\n                best_expr = matches[0][1]\n                return best_expr._parse(instring, loc, doActions)\n\n            longest = -1, None\n            for loc1, expr1 in matches:\n                if loc1 <= longest[0]:\n                    # already have a longer match than this one will deliver, we are done\n                    return longest\n\n                try:\n                    loc2, toks = expr1._parse(instring, loc, doActions)\n                except ParseException as err:\n                    err.__traceback__ = None\n                    if err.loc > maxExcLoc:\n                        maxException = err\n                        maxExcLoc = err.loc\n                else:\n                    if loc2 >= loc1:\n                        return loc2, toks\n                    # didn't match as much as before\n                    elif loc2 > longest[0]:\n                        longest = loc2, toks\n\n            if longest != (-1, None):\n                return longest\n\n        if maxException is not None:\n            maxException.msg = self.errmsg\n            raise maxException\n        else:\n            raise ParseException(instring, loc, \"no defined alternatives to match\", self)\n\n\n    def __ixor__(self, other):\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        return self.append(other)  # Or([self, other])\n\n    def __str__(self):\n        if hasattr(self, \"name\"):\n            return self.name\n\n        if self.strRepr is None:\n            self.strRepr = \"{\" + \" ^ \".join(_ustr(e) for e in self.exprs) + \"}\"\n\n        return self.strRepr\n\n    def checkRecursion(self, parseElementList):\n        subRecCheckList = parseElementList[:] + [self]\n        for e in self.exprs:\n            e.checkRecursion(subRecCheckList)\n\n    def _setResultsName(self, name, listAllMatches=False):\n        if (not __compat__.collect_all_And_tokens\n                and __diag__.warn_multiple_tokens_in_named_alternation):\n            if any(isinstance(e, And) for e in self.exprs):\n                warnings.warn(\"{0}: setting results name {1!r} on {2} expression \"\n                              \"may only return a single token for an And alternative, \"\n                              \"in future will return the full list of tokens\".format(\n                    \"warn_multiple_tokens_in_named_alternation\", name, type(self).__name__),\n                    stacklevel=3)\n\n        return super(Or, self)._setResultsName(name, listAllMatches)\n\n\nclass MatchFirst(ParseExpression):\n    \"\"\"Requires that at least one :class:`ParseExpression` is found. If\n    two expressions match, the first one listed is the one that will\n    match. May be constructed using the ``'|'`` operator.\n\n    Example::\n\n        # construct MatchFirst using '|' operator\n\n        # watch the order of expressions to match\n        number = Word(nums) | Combine(Word(nums) + '.' + Word(nums))\n        print(number.searchString(\"123 3.1416 789\")) #  Fail! -> [['123'], ['3'], ['1416'], ['789']]\n\n        # put more selective expression first\n        number = Combine(Word(nums) + '.' + Word(nums)) | Word(nums)\n        print(number.searchString(\"123 3.1416 789\")) #  Better -> [['123'], ['3.1416'], ['789']]\n    \"\"\"\n    def __init__(self, exprs, savelist=False):\n        super(MatchFirst, self).__init__(exprs, savelist)\n        if self.exprs:\n            self.mayReturnEmpty = any(e.mayReturnEmpty for e in self.exprs)\n        else:\n            self.mayReturnEmpty = True\n\n    def streamline(self):\n        super(MatchFirst, self).streamline()\n        if __compat__.collect_all_And_tokens:\n            self.saveAsList = any(e.saveAsList for e in self.exprs)\n        return self\n\n    def parseImpl(self, instring, loc, doActions=True):\n        maxExcLoc = -1\n        maxException = None\n        for e in self.exprs:\n            try:\n                ret = e._parse(instring, loc, doActions)\n                return ret\n            except ParseException as err:\n                if err.loc > maxExcLoc:\n                    maxException = err\n                    maxExcLoc = err.loc\n            except IndexError:\n                if len(instring) > maxExcLoc:\n                    maxException = ParseException(instring, len(instring), e.errmsg, self)\n                    maxExcLoc = len(instring)\n\n        # only got here if no expression matched, raise exception for match that made it the furthest\n        else:\n            if maxException is not None:\n                maxException.msg = self.errmsg\n                raise maxException\n            else:\n                raise ParseException(instring, loc, \"no defined alternatives to match\", self)\n\n    def __ior__(self, other):\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        return self.append(other)  # MatchFirst([self, other])\n\n    def __str__(self):\n        if hasattr(self, \"name\"):\n            return self.name\n\n        if self.strRepr is None:\n            self.strRepr = \"{\" + \" | \".join(_ustr(e) for e in self.exprs) + \"}\"\n\n        return self.strRepr\n\n    def checkRecursion(self, parseElementList):\n        subRecCheckList = parseElementList[:] + [self]\n        for e in self.exprs:\n            e.checkRecursion(subRecCheckList)\n\n    def _setResultsName(self, name, listAllMatches=False):\n        if (not __compat__.collect_all_And_tokens\n                and __diag__.warn_multiple_tokens_in_named_alternation):\n            if any(isinstance(e, And) for e in self.exprs):\n                warnings.warn(\"{0}: setting results name {1!r} on {2} expression \"\n                              \"may only return a single token for an And alternative, \"\n                              \"in future will return the full list of tokens\".format(\n                    \"warn_multiple_tokens_in_named_alternation\", name, type(self).__name__),\n                    stacklevel=3)\n\n        return super(MatchFirst, self)._setResultsName(name, listAllMatches)\n\n\nclass Each(ParseExpression):\n    \"\"\"Requires all given :class:`ParseExpression` s to be found, but in\n    any order. Expressions may be separated by whitespace.\n\n    May be constructed using the ``'&'`` operator.\n\n    Example::\n\n        color = oneOf(\"RED ORANGE YELLOW GREEN BLUE PURPLE BLACK WHITE BROWN\")\n        shape_type = oneOf(\"SQUARE CIRCLE TRIANGLE STAR HEXAGON OCTAGON\")\n        integer = Word(nums)\n        shape_attr = \"shape:\" + shape_type(\"shape\")\n        posn_attr = \"posn:\" + Group(integer(\"x\") + ',' + integer(\"y\"))(\"posn\")\n        color_attr = \"color:\" + color(\"color\")\n        size_attr = \"size:\" + integer(\"size\")\n\n        # use Each (using operator '&') to accept attributes in any order\n        # (shape and posn are required, color and size are optional)\n        shape_spec = shape_attr & posn_attr & Optional(color_attr) & Optional(size_attr)\n\n        shape_spec.runTests('''\n            shape: SQUARE color: BLACK posn: 100, 120\n            shape: CIRCLE size: 50 color: BLUE posn: 50,80\n            color:GREEN size:20 shape:TRIANGLE posn:20,40\n            '''\n            )\n\n    prints::\n\n        shape: SQUARE color: BLACK posn: 100, 120\n        ['shape:', 'SQUARE', 'color:', 'BLACK', 'posn:', ['100', ',', '120']]\n        - color: BLACK\n        - posn: ['100', ',', '120']\n          - x: 100\n          - y: 120\n        - shape: SQUARE\n\n\n        shape: CIRCLE size: 50 color: BLUE posn: 50,80\n        ['shape:', 'CIRCLE', 'size:', '50', 'color:', 'BLUE', 'posn:', ['50', ',', '80']]\n        - color: BLUE\n        - posn: ['50', ',', '80']\n          - x: 50\n          - y: 80\n        - shape: CIRCLE\n        - size: 50\n\n\n        color: GREEN size: 20 shape: TRIANGLE posn: 20,40\n        ['color:', 'GREEN', 'size:', '20', 'shape:', 'TRIANGLE', 'posn:', ['20', ',', '40']]\n        - color: GREEN\n        - posn: ['20', ',', '40']\n          - x: 20\n          - y: 40\n        - shape: TRIANGLE\n        - size: 20\n    \"\"\"\n    def __init__(self, exprs, savelist=True):\n        super(Each, self).__init__(exprs, savelist)\n        self.mayReturnEmpty = all(e.mayReturnEmpty for e in self.exprs)\n        self.skipWhitespace = True\n        self.initExprGroups = True\n        self.saveAsList = True\n\n    def streamline(self):\n        super(Each, self).streamline()\n        self.mayReturnEmpty = all(e.mayReturnEmpty for e in self.exprs)\n        return self\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if self.initExprGroups:\n            self.opt1map = dict((id(e.expr), e) for e in self.exprs if isinstance(e, Optional))\n            opt1 = [e.expr for e in self.exprs if isinstance(e, Optional)]\n            opt2 = [e for e in self.exprs if e.mayReturnEmpty and not isinstance(e, (Optional, Regex))]\n            self.optionals = opt1 + opt2\n            self.multioptionals = [e.expr for e in self.exprs if isinstance(e, ZeroOrMore)]\n            self.multirequired = [e.expr for e in self.exprs if isinstance(e, OneOrMore)]\n            self.required = [e for e in self.exprs if not isinstance(e, (Optional, ZeroOrMore, OneOrMore))]\n            self.required += self.multirequired\n            self.initExprGroups = False\n        tmpLoc = loc\n        tmpReqd = self.required[:]\n        tmpOpt  = self.optionals[:]\n        matchOrder = []\n\n        keepMatching = True\n        while keepMatching:\n            tmpExprs = tmpReqd + tmpOpt + self.multioptionals + self.multirequired\n            failed = []\n            for e in tmpExprs:\n                try:\n                    tmpLoc = e.tryParse(instring, tmpLoc)\n                except ParseException:\n                    failed.append(e)\n                else:\n                    matchOrder.append(self.opt1map.get(id(e), e))\n                    if e in tmpReqd:\n                        tmpReqd.remove(e)\n                    elif e in tmpOpt:\n                        tmpOpt.remove(e)\n            if len(failed) == len(tmpExprs):\n                keepMatching = False\n\n        if tmpReqd:\n            missing = \", \".join(_ustr(e) for e in tmpReqd)\n            raise ParseException(instring, loc, \"Missing one or more required elements (%s)\" % missing)\n\n        # add any unmatched Optionals, in case they have default values defined\n        matchOrder += [e for e in self.exprs if isinstance(e, Optional) and e.expr in tmpOpt]\n\n        resultlist = []\n        for e in matchOrder:\n            loc, results = e._parse(instring, loc, doActions)\n            resultlist.append(results)\n\n        finalResults = sum(resultlist, ParseResults([]))\n        return loc, finalResults\n\n    def __str__(self):\n        if hasattr(self, \"name\"):\n            return self.name\n\n        if self.strRepr is None:\n            self.strRepr = \"{\" + \" & \".join(_ustr(e) for e in self.exprs) + \"}\"\n\n        return self.strRepr\n\n    def checkRecursion(self, parseElementList):\n        subRecCheckList = parseElementList[:] + [self]\n        for e in self.exprs:\n            e.checkRecursion(subRecCheckList)\n\n\nclass ParseElementEnhance(ParserElement):\n    \"\"\"Abstract subclass of :class:`ParserElement`, for combining and\n    post-processing parsed tokens.\n    \"\"\"\n    def __init__(self, expr, savelist=False):\n        super(ParseElementEnhance, self).__init__(savelist)\n        if isinstance(expr, basestring):\n            if issubclass(self._literalStringClass, Token):\n                expr = self._literalStringClass(expr)\n            else:\n                expr = self._literalStringClass(Literal(expr))\n        self.expr = expr\n        self.strRepr = None\n        if expr is not None:\n            self.mayIndexError = expr.mayIndexError\n            self.mayReturnEmpty = expr.mayReturnEmpty\n            self.setWhitespaceChars(expr.whiteChars)\n            self.skipWhitespace = expr.skipWhitespace\n            self.saveAsList = expr.saveAsList\n            self.callPreparse = expr.callPreparse\n            self.ignoreExprs.extend(expr.ignoreExprs)\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if self.expr is not None:\n            return self.expr._parse(instring, loc, doActions, callPreParse=False)\n        else:\n            raise ParseException(\"\", loc, self.errmsg, self)\n\n    def leaveWhitespace(self):\n        self.skipWhitespace = False\n        self.expr = self.expr.copy()\n        if self.expr is not None:\n            self.expr.leaveWhitespace()\n        return self\n\n    def ignore(self, other):\n        if isinstance(other, Suppress):\n            if other not in self.ignoreExprs:\n                super(ParseElementEnhance, self).ignore(other)\n                if self.expr is not None:\n                    self.expr.ignore(self.ignoreExprs[-1])\n        else:\n            super(ParseElementEnhance, self).ignore(other)\n            if self.expr is not None:\n                self.expr.ignore(self.ignoreExprs[-1])\n        return self\n\n    def streamline(self):\n        super(ParseElementEnhance, self).streamline()\n        if self.expr is not None:\n            self.expr.streamline()\n        return self\n\n    def checkRecursion(self, parseElementList):\n        if self in parseElementList:\n            raise RecursiveGrammarException(parseElementList + [self])\n        subRecCheckList = parseElementList[:] + [self]\n        if self.expr is not None:\n            self.expr.checkRecursion(subRecCheckList)\n\n    def validate(self, validateTrace=None):\n        if validateTrace is None:\n            validateTrace = []\n        tmp = validateTrace[:] + [self]\n        if self.expr is not None:\n            self.expr.validate(tmp)\n        self.checkRecursion([])\n\n    def __str__(self):\n        try:\n            return super(ParseElementEnhance, self).__str__()\n        except Exception:\n            pass\n\n        if self.strRepr is None and self.expr is not None:\n            self.strRepr = \"%s:(%s)\" % (self.__class__.__name__, _ustr(self.expr))\n        return self.strRepr\n\n\nclass FollowedBy(ParseElementEnhance):\n    \"\"\"Lookahead matching of the given parse expression.\n    ``FollowedBy`` does *not* advance the parsing position within\n    the input string, it only verifies that the specified parse\n    expression matches at the current position.  ``FollowedBy``\n    always returns a null token list. If any results names are defined\n    in the lookahead expression, those *will* be returned for access by\n    name.\n\n    Example::\n\n        # use FollowedBy to match a label only if it is followed by a ':'\n        data_word = Word(alphas)\n        label = data_word + FollowedBy(':')\n        attr_expr = Group(label + Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join))\n\n        OneOrMore(attr_expr).parseString(\"shape: SQUARE color: BLACK posn: upper left\").pprint()\n\n    prints::\n\n        [['shape', 'SQUARE'], ['color', 'BLACK'], ['posn', 'upper left']]\n    \"\"\"\n    def __init__(self, expr):\n        super(FollowedBy, self).__init__(expr)\n        self.mayReturnEmpty = True\n\n    def parseImpl(self, instring, loc, doActions=True):\n        # by using self._expr.parse and deleting the contents of the returned ParseResults list\n        # we keep any named results that were defined in the FollowedBy expression\n        _, ret = self.expr._parse(instring, loc, doActions=doActions)\n        del ret[:]\n\n        return loc, ret\n\n\nclass PrecededBy(ParseElementEnhance):\n    \"\"\"Lookbehind matching of the given parse expression.\n    ``PrecededBy`` does not advance the parsing position within the\n    input string, it only verifies that the specified parse expression\n    matches prior to the current position.  ``PrecededBy`` always\n    returns a null token list, but if a results name is defined on the\n    given expression, it is returned.\n\n    Parameters:\n\n     - expr - expression that must match prior to the current parse\n       location\n     - retreat - (default= ``None``) - (int) maximum number of characters\n       to lookbehind prior to the current parse location\n\n    If the lookbehind expression is a string, Literal, Keyword, or\n    a Word or CharsNotIn with a specified exact or maximum length, then\n    the retreat parameter is not required. Otherwise, retreat must be\n    specified to give a maximum number of characters to look back from\n    the current parse position for a lookbehind match.\n\n    Example::\n\n        # VB-style variable names with type prefixes\n        int_var = PrecededBy(\"#\") + pyparsing_common.identifier\n        str_var = PrecededBy(\"$\") + pyparsing_common.identifier\n\n    \"\"\"\n    def __init__(self, expr, retreat=None):\n        super(PrecededBy, self).__init__(expr)\n        self.expr = self.expr().leaveWhitespace()\n        self.mayReturnEmpty = True\n        self.mayIndexError = False\n        self.exact = False\n        if isinstance(expr, str):\n            retreat = len(expr)\n            self.exact = True\n        elif isinstance(expr, (Literal, Keyword)):\n            retreat = expr.matchLen\n            self.exact = True\n        elif isinstance(expr, (Word, CharsNotIn)) and expr.maxLen != _MAX_INT:\n            retreat = expr.maxLen\n            self.exact = True\n        elif isinstance(expr, _PositionToken):\n            retreat = 0\n            self.exact = True\n        self.retreat = retreat\n        self.errmsg = \"not preceded by \" + str(expr)\n        self.skipWhitespace = False\n        self.parseAction.append(lambda s, l, t: t.__delitem__(slice(None, None)))\n\n    def parseImpl(self, instring, loc=0, doActions=True):\n        if self.exact:\n            if loc < self.retreat:\n                raise ParseException(instring, loc, self.errmsg)\n            start = loc - self.retreat\n            _, ret = self.expr._parse(instring, start)\n        else:\n            # retreat specified a maximum lookbehind window, iterate\n            test_expr = self.expr + StringEnd()\n            instring_slice = instring[max(0, loc - self.retreat):loc]\n            last_expr = ParseException(instring, loc, self.errmsg)\n            for offset in range(1, min(loc, self.retreat + 1)+1):\n                try:\n                    # print('trying', offset, instring_slice, repr(instring_slice[loc - offset:]))\n                    _, ret = test_expr._parse(instring_slice, len(instring_slice) - offset)\n                except ParseBaseException as pbe:\n                    last_expr = pbe\n                else:\n                    break\n            else:\n                raise last_expr\n        return loc, ret\n\n\nclass NotAny(ParseElementEnhance):\n    \"\"\"Lookahead to disallow matching with the given parse expression.\n    ``NotAny`` does *not* advance the parsing position within the\n    input string, it only verifies that the specified parse expression\n    does *not* match at the current position.  Also, ``NotAny`` does\n    *not* skip over leading whitespace. ``NotAny`` always returns\n    a null token list.  May be constructed using the '~' operator.\n\n    Example::\n\n        AND, OR, NOT = map(CaselessKeyword, \"AND OR NOT\".split())\n\n        # take care not to mistake keywords for identifiers\n        ident = ~(AND | OR | NOT) + Word(alphas)\n        boolean_term = Optional(NOT) + ident\n\n        # very crude boolean expression - to support parenthesis groups and\n        # operation hierarchy, use infixNotation\n        boolean_expr = boolean_term + ZeroOrMore((AND | OR) + boolean_term)\n\n        # integers that are followed by \".\" are actually floats\n        integer = Word(nums) + ~Char(\".\")\n    \"\"\"\n    def __init__(self, expr):\n        super(NotAny, self).__init__(expr)\n        # ~ self.leaveWhitespace()\n        self.skipWhitespace = False  # do NOT use self.leaveWhitespace(), don't want to propagate to exprs\n        self.mayReturnEmpty = True\n        self.errmsg = \"Found unwanted token, \" + _ustr(self.expr)\n\n    def parseImpl(self, instring, loc, doActions=True):\n        if self.expr.canParseNext(instring, loc):\n            raise ParseException(instring, loc, self.errmsg, self)\n        return loc, []\n\n    def __str__(self):\n        if hasattr(self, \"name\"):\n            return self.name\n\n        if self.strRepr is None:\n            self.strRepr = \"~{\" + _ustr(self.expr) + \"}\"\n\n        return self.strRepr\n\nclass _MultipleMatch(ParseElementEnhance):\n    def __init__(self, expr, stopOn=None):\n        super(_MultipleMatch, self).__init__(expr)\n        self.saveAsList = True\n        ender = stopOn\n        if isinstance(ender, basestring):\n            ender = self._literalStringClass(ender)\n        self.stopOn(ender)\n\n    def stopOn(self, ender):\n        if isinstance(ender, basestring):\n            ender = self._literalStringClass(ender)\n        self.not_ender = ~ender if ender is not None else None\n        return self\n\n    def parseImpl(self, instring, loc, doActions=True):\n        self_expr_parse = self.expr._parse\n        self_skip_ignorables = self._skipIgnorables\n        check_ender = self.not_ender is not None\n        if check_ender:\n            try_not_ender = self.not_ender.tryParse\n\n        # must be at least one (but first see if we are the stopOn sentinel;\n        # if so, fail)\n        if check_ender:\n            try_not_ender(instring, loc)\n        loc, tokens = self_expr_parse(instring, loc, doActions, callPreParse=False)\n        try:\n            hasIgnoreExprs = (not not self.ignoreExprs)\n            while 1:\n                if check_ender:\n                    try_not_ender(instring, loc)\n                if hasIgnoreExprs:\n                    preloc = self_skip_ignorables(instring, loc)\n                else:\n                    preloc = loc\n                loc, tmptokens = self_expr_parse(instring, preloc, doActions)\n                if tmptokens or tmptokens.haskeys():\n                    tokens += tmptokens\n        except (ParseException, IndexError):\n            pass\n\n        return loc, tokens\n\n    def _setResultsName(self, name, listAllMatches=False):\n        if __diag__.warn_ungrouped_named_tokens_in_collection:\n            for e in [self.expr] + getattr(self.expr, 'exprs', []):\n                if isinstance(e, ParserElement) and e.resultsName:\n                    warnings.warn(\"{0}: setting results name {1!r} on {2} expression \"\n                                  \"collides with {3!r} on contained expression\".format(\"warn_ungrouped_named_tokens_in_collection\",\n                                                                                       name,\n                                                                                       type(self).__name__,\n                                                                                       e.resultsName),\n                                  stacklevel=3)\n\n        return super(_MultipleMatch, self)._setResultsName(name, listAllMatches)\n\n\nclass OneOrMore(_MultipleMatch):\n    \"\"\"Repetition of one or more of the given expression.\n\n    Parameters:\n     - expr - expression that must match one or more times\n     - stopOn - (default= ``None``) - expression for a terminating sentinel\n          (only required if the sentinel would ordinarily match the repetition\n          expression)\n\n    Example::\n\n        data_word = Word(alphas)\n        label = data_word + FollowedBy(':')\n        attr_expr = Group(label + Suppress(':') + OneOrMore(data_word).setParseAction(' '.join))\n\n        text = \"shape: SQUARE posn: upper left color: BLACK\"\n        OneOrMore(attr_expr).parseString(text).pprint()  # Fail! read 'color' as data instead of next label -> [['shape', 'SQUARE color']]\n\n        # use stopOn attribute for OneOrMore to avoid reading label string as part of the data\n        attr_expr = Group(label + Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join))\n        OneOrMore(attr_expr).parseString(text).pprint() # Better -> [['shape', 'SQUARE'], ['posn', 'upper left'], ['color', 'BLACK']]\n\n        # could also be written as\n        (attr_expr * (1,)).parseString(text).pprint()\n    \"\"\"\n\n    def __str__(self):\n        if hasattr(self, \"name\"):\n            return self.name\n\n        if self.strRepr is None:\n            self.strRepr = \"{\" + _ustr(self.expr) + \"}...\"\n\n        return self.strRepr\n\nclass ZeroOrMore(_MultipleMatch):\n    \"\"\"Optional repetition of zero or more of the given expression.\n\n    Parameters:\n     - expr - expression that must match zero or more times\n     - stopOn - (default= ``None``) - expression for a terminating sentinel\n          (only required if the sentinel would ordinarily match the repetition\n          expression)\n\n    Example: similar to :class:`OneOrMore`\n    \"\"\"\n    def __init__(self, expr, stopOn=None):\n        super(ZeroOrMore, self).__init__(expr, stopOn=stopOn)\n        self.mayReturnEmpty = True\n\n    def parseImpl(self, instring, loc, doActions=True):\n        try:\n            return super(ZeroOrMore, self).parseImpl(instring, loc, doActions)\n        except (ParseException, IndexError):\n            return loc, []\n\n    def __str__(self):\n        if hasattr(self, \"name\"):\n            return self.name\n\n        if self.strRepr is None:\n            self.strRepr = \"[\" + _ustr(self.expr) + \"]...\"\n\n        return self.strRepr\n\n\nclass _NullToken(object):\n    def __bool__(self):\n        return False\n    __nonzero__ = __bool__\n    def __str__(self):\n        return \"\"\n\nclass Optional(ParseElementEnhance):\n    \"\"\"Optional matching of the given expression.\n\n    Parameters:\n     - expr - expression that must match zero or more times\n     - default (optional) - value to be returned if the optional expression is not found.\n\n    Example::\n\n        # US postal code can be a 5-digit zip, plus optional 4-digit qualifier\n        zip = Combine(Word(nums, exact=5) + Optional('-' + Word(nums, exact=4)))\n        zip.runTests('''\n            # traditional ZIP code\n            12345\n\n            # ZIP+4 form\n            12101-0001\n\n            # invalid ZIP\n            98765-\n            ''')\n\n    prints::\n\n        # traditional ZIP code\n        12345\n        ['12345']\n\n        # ZIP+4 form\n        12101-0001\n        ['12101-0001']\n\n        # invalid ZIP\n        98765-\n             ^\n        FAIL: Expected end of text (at char 5), (line:1, col:6)\n    \"\"\"\n    __optionalNotMatched = _NullToken()\n\n    def __init__(self, expr, default=__optionalNotMatched):\n        super(Optional, self).__init__(expr, savelist=False)\n        self.saveAsList = self.expr.saveAsList\n        self.defaultValue = default\n        self.mayReturnEmpty = True\n\n    def parseImpl(self, instring, loc, doActions=True):\n        try:\n            loc, tokens = self.expr._parse(instring, loc, doActions, callPreParse=False)\n        except (ParseException, IndexError):\n            if self.defaultValue is not self.__optionalNotMatched:\n                if self.expr.resultsName:\n                    tokens = ParseResults([self.defaultValue])\n                    tokens[self.expr.resultsName] = self.defaultValue\n                else:\n                    tokens = [self.defaultValue]\n            else:\n                tokens = []\n        return loc, tokens\n\n    def __str__(self):\n        if hasattr(self, \"name\"):\n            return self.name\n\n        if self.strRepr is None:\n            self.strRepr = \"[\" + _ustr(self.expr) + \"]\"\n\n        return self.strRepr\n\nclass SkipTo(ParseElementEnhance):\n    \"\"\"Token for skipping over all undefined text until the matched\n    expression is found.\n\n    Parameters:\n     - expr - target expression marking the end of the data to be skipped\n     - include - (default= ``False``) if True, the target expression is also parsed\n          (the skipped text and target expression are returned as a 2-element list).\n     - ignore - (default= ``None``) used to define grammars (typically quoted strings and\n          comments) that might contain false matches to the target expression\n     - failOn - (default= ``None``) define expressions that are not allowed to be\n          included in the skipped test; if found before the target expression is found,\n          the SkipTo is not a match\n\n    Example::\n\n        report = '''\n            Outstanding Issues Report - 1 Jan 2000\n\n               # | Severity | Description                               |  Days Open\n            -----+----------+-------------------------------------------+-----------\n             101 | Critical | Intermittent system crash                 |          6\n              94 | Cosmetic | Spelling error on Login ('log|n')         |         14\n              79 | Minor    | System slow when running too many reports |         47\n            '''\n        integer = Word(nums)\n        SEP = Suppress('|')\n        # use SkipTo to simply match everything up until the next SEP\n        # - ignore quoted strings, so that a '|' character inside a quoted string does not match\n        # - parse action will call token.strip() for each matched token, i.e., the description body\n        string_data = SkipTo(SEP, ignore=quotedString)\n        string_data.setParseAction(tokenMap(str.strip))\n        ticket_expr = (integer(\"issue_num\") + SEP\n                      + string_data(\"sev\") + SEP\n                      + string_data(\"desc\") + SEP\n                      + integer(\"days_open\"))\n\n        for tkt in ticket_expr.searchString(report):\n            print tkt.dump()\n\n    prints::\n\n        ['101', 'Critical', 'Intermittent system crash', '6']\n        - days_open: 6\n        - desc: Intermittent system crash\n        - issue_num: 101\n        - sev: Critical\n        ['94', 'Cosmetic', \"Spelling error on Login ('log|n')\", '14']\n        - days_open: 14\n        - desc: Spelling error on Login ('log|n')\n        - issue_num: 94\n        - sev: Cosmetic\n        ['79', 'Minor', 'System slow when running too many reports', '47']\n        - days_open: 47\n        - desc: System slow when running too many reports\n        - issue_num: 79\n        - sev: Minor\n    \"\"\"\n    def __init__(self, other, include=False, ignore=None, failOn=None):\n        super(SkipTo, self).__init__(other)\n        self.ignoreExpr = ignore\n        self.mayReturnEmpty = True\n        self.mayIndexError = False\n        self.includeMatch = include\n        self.saveAsList = False\n        if isinstance(failOn, basestring):\n            self.failOn = self._literalStringClass(failOn)\n        else:\n            self.failOn = failOn\n        self.errmsg = \"No match found for \" + _ustr(self.expr)\n\n    def parseImpl(self, instring, loc, doActions=True):\n        startloc = loc\n        instrlen = len(instring)\n        expr = self.expr\n        expr_parse = self.expr._parse\n        self_failOn_canParseNext = self.failOn.canParseNext if self.failOn is not None else None\n        self_ignoreExpr_tryParse = self.ignoreExpr.tryParse if self.ignoreExpr is not None else None\n\n        tmploc = loc\n        while tmploc <= instrlen:\n            if self_failOn_canParseNext is not None:\n                # break if failOn expression matches\n                if self_failOn_canParseNext(instring, tmploc):\n                    break\n\n            if self_ignoreExpr_tryParse is not None:\n                # advance past ignore expressions\n                while 1:\n                    try:\n                        tmploc = self_ignoreExpr_tryParse(instring, tmploc)\n                    except ParseBaseException:\n                        break\n\n            try:\n                expr_parse(instring, tmploc, doActions=False, callPreParse=False)\n            except (ParseException, IndexError):\n                # no match, advance loc in string\n                tmploc += 1\n            else:\n                # matched skipto expr, done\n                break\n\n        else:\n            # ran off the end of the input string without matching skipto expr, fail\n            raise ParseException(instring, loc, self.errmsg, self)\n\n        # build up return values\n        loc = tmploc\n        skiptext = instring[startloc:loc]\n        skipresult = ParseResults(skiptext)\n\n        if self.includeMatch:\n            loc, mat = expr_parse(instring, loc, doActions, callPreParse=False)\n            skipresult += mat\n\n        return loc, skipresult\n\nclass Forward(ParseElementEnhance):\n    \"\"\"Forward declaration of an expression to be defined later -\n    used for recursive grammars, such as algebraic infix notation.\n    When the expression is known, it is assigned to the ``Forward``\n    variable using the '<<' operator.\n\n    Note: take care when assigning to ``Forward`` not to overlook\n    precedence of operators.\n\n    Specifically, '|' has a lower precedence than '<<', so that::\n\n        fwdExpr << a | b | c\n\n    will actually be evaluated as::\n\n        (fwdExpr << a) | b | c\n\n    thereby leaving b and c out as parseable alternatives.  It is recommended that you\n    explicitly group the values inserted into the ``Forward``::\n\n        fwdExpr << (a | b | c)\n\n    Converting to use the '<<=' operator instead will avoid this problem.\n\n    See :class:`ParseResults.pprint` for an example of a recursive\n    parser created using ``Forward``.\n    \"\"\"\n    def __init__(self, other=None):\n        super(Forward, self).__init__(other, savelist=False)\n\n    def __lshift__(self, other):\n        if isinstance(other, basestring):\n            other = self._literalStringClass(other)\n        self.expr = other\n        self.strRepr = None\n        self.mayIndexError = self.expr.mayIndexError\n        self.mayReturnEmpty = self.expr.mayReturnEmpty\n        self.setWhitespaceChars(self.expr.whiteChars)\n        self.skipWhitespace = self.expr.skipWhitespace\n        self.saveAsList = self.expr.saveAsList\n        self.ignoreExprs.extend(self.expr.ignoreExprs)\n        return self\n\n    def __ilshift__(self, other):\n        return self << other\n\n    def leaveWhitespace(self):\n        self.skipWhitespace = False\n        return self\n\n    def streamline(self):\n        if not self.streamlined:\n            self.streamlined = True\n            if self.expr is not None:\n                self.expr.streamline()\n        return self\n\n    def validate(self, validateTrace=None):\n        if validateTrace is None:\n            validateTrace = []\n\n        if self not in validateTrace:\n            tmp = validateTrace[:] + [self]\n            if self.expr is not None:\n                self.expr.validate(tmp)\n        self.checkRecursion([])\n\n    def __str__(self):\n        if hasattr(self, \"name\"):\n            return self.name\n        if self.strRepr is not None:\n            return self.strRepr\n\n        # Avoid infinite recursion by setting a temporary strRepr\n        self.strRepr = \": ...\"\n\n        # Use the string representation of main expression.\n        retString = '...'\n        try:\n            if self.expr is not None:\n                retString = _ustr(self.expr)[:1000]\n            else:\n                retString = \"None\"\n        finally:\n            self.strRepr = self.__class__.__name__ + \": \" + retString\n        return self.strRepr\n\n    def copy(self):\n        if self.expr is not None:\n            return super(Forward, self).copy()\n        else:\n            ret = Forward()\n            ret <<= self\n            return ret\n\n    def _setResultsName(self, name, listAllMatches=False):\n        if __diag__.warn_name_set_on_empty_Forward:\n            if self.expr is None:\n                warnings.warn(\"{0}: setting results name {0!r} on {1} expression \"\n                              \"that has no contained expression\".format(\"warn_name_set_on_empty_Forward\",\n                                                                        name,\n                                                                        type(self).__name__),\n                              stacklevel=3)\n\n        return super(Forward, self)._setResultsName(name, listAllMatches)\n\nclass TokenConverter(ParseElementEnhance):\n    \"\"\"\n    Abstract subclass of :class:`ParseExpression`, for converting parsed results.\n    \"\"\"\n    def __init__(self, expr, savelist=False):\n        super(TokenConverter, self).__init__(expr)  # , savelist)\n        self.saveAsList = False\n\nclass Combine(TokenConverter):\n    \"\"\"Converter to concatenate all matching tokens to a single string.\n    By default, the matching patterns must also be contiguous in the\n    input string; this can be disabled by specifying\n    ``'adjacent=False'`` in the constructor.\n\n    Example::\n\n        real = Word(nums) + '.' + Word(nums)\n        print(real.parseString('3.1416')) # -> ['3', '.', '1416']\n        # will also erroneously match the following\n        print(real.parseString('3. 1416')) # -> ['3', '.', '1416']\n\n        real = Combine(Word(nums) + '.' + Word(nums))\n        print(real.parseString('3.1416')) # -> ['3.1416']\n        # no match when there are internal spaces\n        print(real.parseString('3. 1416')) # -> Exception: Expected W:(0123...)\n    \"\"\"\n    def __init__(self, expr, joinString=\"\", adjacent=True):\n        super(Combine, self).__init__(expr)\n        # suppress whitespace-stripping in contained parse expressions, but re-enable it on the Combine itself\n        if adjacent:\n            self.leaveWhitespace()\n        self.adjacent = adjacent\n        self.skipWhitespace = True\n        self.joinString = joinString\n        self.callPreparse = True\n\n    def ignore(self, other):\n        if self.adjacent:\n            ParserElement.ignore(self, other)\n        else:\n            super(Combine, self).ignore(other)\n        return self\n\n    def postParse(self, instring, loc, tokenlist):\n        retToks = tokenlist.copy()\n        del retToks[:]\n        retToks += ParseResults([\"\".join(tokenlist._asStringList(self.joinString))], modal=self.modalResults)\n\n        if self.resultsName and retToks.haskeys():\n            return [retToks]\n        else:\n            return retToks\n\nclass Group(TokenConverter):\n    \"\"\"Converter to return the matched tokens as a list - useful for\n    returning tokens of :class:`ZeroOrMore` and :class:`OneOrMore` expressions.\n\n    Example::\n\n        ident = Word(alphas)\n        num = Word(nums)\n        term = ident | num\n        func = ident + Optional(delimitedList(term))\n        print(func.parseString(\"fn a, b, 100\"))  # -> ['fn', 'a', 'b', '100']\n\n        func = ident + Group(Optional(delimitedList(term)))\n        print(func.parseString(\"fn a, b, 100\"))  # -> ['fn', ['a', 'b', '100']]\n    \"\"\"\n    def __init__(self, expr):\n        super(Group, self).__init__(expr)\n        self.saveAsList = True\n\n    def postParse(self, instring, loc, tokenlist):\n        return [tokenlist]\n\nclass Dict(TokenConverter):\n    \"\"\"Converter to return a repetitive expression as a list, but also\n    as a dictionary. Each element can also be referenced using the first\n    token in the expression as its key. Useful for tabular report\n    scraping when the first column can be used as a item key.\n\n    Example::\n\n        data_word = Word(alphas)\n        label = data_word + FollowedBy(':')\n        attr_expr = Group(label + Suppress(':') + OneOrMore(data_word).setParseAction(' '.join))\n\n        text = \"shape: SQUARE posn: upper left color: light blue texture: burlap\"\n        attr_expr = (label + Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join))\n\n        # print attributes as plain groups\n        print(OneOrMore(attr_expr).parseString(text).dump())\n\n        # instead of OneOrMore(expr), parse using Dict(OneOrMore(Group(expr))) - Dict will auto-assign names\n        result = Dict(OneOrMore(Group(attr_expr))).parseString(text)\n        print(result.dump())\n\n        # access named fields as dict entries, or output as dict\n        print(result['shape'])\n        print(result.asDict())\n\n    prints::\n\n        ['shape', 'SQUARE', 'posn', 'upper left', 'color', 'light blue', 'texture', 'burlap']\n        [['shape', 'SQUARE'], ['posn', 'upper left'], ['color', 'light blue'], ['texture', 'burlap']]\n        - color: light blue\n        - posn: upper left\n        - shape: SQUARE\n        - texture: burlap\n        SQUARE\n        {'color': 'light blue', 'posn': 'upper left', 'texture': 'burlap', 'shape': 'SQUARE'}\n\n    See more examples at :class:`ParseResults` of accessing fields by results name.\n    \"\"\"\n    def __init__(self, expr):\n        super(Dict, self).__init__(expr)\n        self.saveAsList = True\n\n    def postParse(self, instring, loc, tokenlist):\n        for i, tok in enumerate(tokenlist):\n            if len(tok) == 0:\n                continue\n            ikey = tok[0]\n            if isinstance(ikey, int):\n                ikey = _ustr(tok[0]).strip()\n            if len(tok) == 1:\n                tokenlist[ikey] = _ParseResultsWithOffset(\"\", i)\n            elif len(tok) == 2 and not isinstance(tok[1], ParseResults):\n                tokenlist[ikey] = _ParseResultsWithOffset(tok[1], i)\n            else:\n                dictvalue = tok.copy()  # ParseResults(i)\n                del dictvalue[0]\n                if len(dictvalue) != 1 or (isinstance(dictvalue, ParseResults) and dictvalue.haskeys()):\n                    tokenlist[ikey] = _ParseResultsWithOffset(dictvalue, i)\n                else:\n                    tokenlist[ikey] = _ParseResultsWithOffset(dictvalue[0], i)\n\n        if self.resultsName:\n            return [tokenlist]\n        else:\n            return tokenlist\n\n\nclass Suppress(TokenConverter):\n    \"\"\"Converter for ignoring the results of a parsed expression.\n\n    Example::\n\n        source = \"a, b, c,d\"\n        wd = Word(alphas)\n        wd_list1 = wd + ZeroOrMore(',' + wd)\n        print(wd_list1.parseString(source))\n\n        # often, delimiters that are useful during parsing are just in the\n        # way afterward - use Suppress to keep them out of the parsed output\n        wd_list2 = wd + ZeroOrMore(Suppress(',') + wd)\n        print(wd_list2.parseString(source))\n\n    prints::\n\n        ['a', ',', 'b', ',', 'c', ',', 'd']\n        ['a', 'b', 'c', 'd']\n\n    (See also :class:`delimitedList`.)\n    \"\"\"\n    def postParse(self, instring, loc, tokenlist):\n        return []\n\n    def suppress(self):\n        return self\n\n\nclass OnlyOnce(object):\n    \"\"\"Wrapper for parse actions, to ensure they are only called once.\n    \"\"\"\n    def __init__(self, methodCall):\n        self.callable = _trim_arity(methodCall)\n        self.called = False\n    def __call__(self, s, l, t):\n        if not self.called:\n            results = self.callable(s, l, t)\n            self.called = True\n            return results\n        raise ParseException(s, l, \"\")\n    def reset(self):\n        self.called = False\n\ndef traceParseAction(f):\n    \"\"\"Decorator for debugging parse actions.\n\n    When the parse action is called, this decorator will print\n    ``\">> entering method-name(line:<current_source_line>, <parse_location>, <matched_tokens>)\"``.\n    When the parse action completes, the decorator will print\n    ``\"<<\"`` followed by the returned value, or any exception that the parse action raised.\n\n    Example::\n\n        wd = Word(alphas)\n\n        @traceParseAction\n        def remove_duplicate_chars(tokens):\n            return ''.join(sorted(set(''.join(tokens))))\n\n        wds = OneOrMore(wd).setParseAction(remove_duplicate_chars)\n        print(wds.parseString(\"slkdjs sld sldd sdlf sdljf\"))\n\n    prints::\n\n        >>entering remove_duplicate_chars(line: 'slkdjs sld sldd sdlf sdljf', 0, (['slkdjs', 'sld', 'sldd', 'sdlf', 'sdljf'], {}))\n        <<leaving remove_duplicate_chars (ret: 'dfjkls')\n        ['dfjkls']\n    \"\"\"\n    f = _trim_arity(f)\n    def z(*paArgs):\n        thisFunc = f.__name__\n        s, l, t = paArgs[-3:]\n        if len(paArgs) > 3:\n            thisFunc = paArgs[0].__class__.__name__ + '.' + thisFunc\n        sys.stderr.write(\">>entering %s(line: '%s', %d, %r)\\n\" % (thisFunc, line(l, s), l, t))\n        try:\n            ret = f(*paArgs)\n        except Exception as exc:\n            sys.stderr.write(\"<<leaving %s (exception: %s)\\n\" % (thisFunc, exc))\n            raise\n        sys.stderr.write(\"<<leaving %s (ret: %r)\\n\" % (thisFunc, ret))\n        return ret\n    try:\n        z.__name__ = f.__name__\n    except AttributeError:\n        pass\n    return z\n\n#\n# global helpers\n#\ndef delimitedList(expr, delim=\",\", combine=False):\n    \"\"\"Helper to define a delimited list of expressions - the delimiter\n    defaults to ','. By default, the list elements and delimiters can\n    have intervening whitespace, and comments, but this can be\n    overridden by passing ``combine=True`` in the constructor. If\n    ``combine`` is set to ``True``, the matching tokens are\n    returned as a single token string, with the delimiters included;\n    otherwise, the matching tokens are returned as a list of tokens,\n    with the delimiters suppressed.\n\n    Example::\n\n        delimitedList(Word(alphas)).parseString(\"aa,bb,cc\") # -> ['aa', 'bb', 'cc']\n        delimitedList(Word(hexnums), delim=':', combine=True).parseString(\"AA:BB:CC:DD:EE\") # -> ['AA:BB:CC:DD:EE']\n    \"\"\"\n    dlName = _ustr(expr) + \" [\" + _ustr(delim) + \" \" + _ustr(expr) + \"]...\"\n    if combine:\n        return Combine(expr + ZeroOrMore(delim + expr)).setName(dlName)\n    else:\n        return (expr + ZeroOrMore(Suppress(delim) + expr)).setName(dlName)\n\ndef countedArray(expr, intExpr=None):\n    \"\"\"Helper to define a counted list of expressions.\n\n    This helper defines a pattern of the form::\n\n        integer expr expr expr...\n\n    where the leading integer tells how many expr expressions follow.\n    The matched tokens returns the array of expr tokens as a list - the\n    leading count token is suppressed.\n\n    If ``intExpr`` is specified, it should be a pyparsing expression\n    that produces an integer value.\n\n    Example::\n\n        countedArray(Word(alphas)).parseString('2 ab cd ef')  # -> ['ab', 'cd']\n\n        # in this parser, the leading integer value is given in binary,\n        # '10' indicating that 2 values are in the array\n        binaryConstant = Word('01').setParseAction(lambda t: int(t[0], 2))\n        countedArray(Word(alphas), intExpr=binaryConstant).parseString('10 ab cd ef')  # -> ['ab', 'cd']\n    \"\"\"\n    arrayExpr = Forward()\n    def countFieldParseAction(s, l, t):\n        n = t[0]\n        arrayExpr << (n and Group(And([expr] * n)) or Group(empty))\n        return []\n    if intExpr is None:\n        intExpr = Word(nums).setParseAction(lambda t: int(t[0]))\n    else:\n        intExpr = intExpr.copy()\n    intExpr.setName(\"arrayLen\")\n    intExpr.addParseAction(countFieldParseAction, callDuringTry=True)\n    return (intExpr + arrayExpr).setName('(len) ' + _ustr(expr) + '...')\n\ndef _flatten(L):\n    ret = []\n    for i in L:\n        if isinstance(i, list):\n            ret.extend(_flatten(i))\n        else:\n            ret.append(i)\n    return ret\n\ndef matchPreviousLiteral(expr):\n    \"\"\"Helper to define an expression that is indirectly defined from\n    the tokens matched in a previous expression, that is, it looks for\n    a 'repeat' of a previous expression.  For example::\n\n        first = Word(nums)\n        second = matchPreviousLiteral(first)\n        matchExpr = first + \":\" + second\n\n    will match ``\"1:1\"``, but not ``\"1:2\"``.  Because this\n    matches a previous literal, will also match the leading\n    ``\"1:1\"`` in ``\"1:10\"``. If this is not desired, use\n    :class:`matchPreviousExpr`. Do *not* use with packrat parsing\n    enabled.\n    \"\"\"\n    rep = Forward()\n    def copyTokenToRepeater(s, l, t):\n        if t:\n            if len(t) == 1:\n                rep << t[0]\n            else:\n                # flatten t tokens\n                tflat = _flatten(t.asList())\n                rep << And(Literal(tt) for tt in tflat)\n        else:\n            rep << Empty()\n    expr.addParseAction(copyTokenToRepeater, callDuringTry=True)\n    rep.setName('(prev) ' + _ustr(expr))\n    return rep\n\ndef matchPreviousExpr(expr):\n    \"\"\"Helper to define an expression that is indirectly defined from\n    the tokens matched in a previous expression, that is, it looks for\n    a 'repeat' of a previous expression.  For example::\n\n        first = Word(nums)\n        second = matchPreviousExpr(first)\n        matchExpr = first + \":\" + second\n\n    will match ``\"1:1\"``, but not ``\"1:2\"``.  Because this\n    matches by expressions, will *not* match the leading ``\"1:1\"``\n    in ``\"1:10\"``; the expressions are evaluated first, and then\n    compared, so ``\"1\"`` is compared with ``\"10\"``. Do *not* use\n    with packrat parsing enabled.\n    \"\"\"\n    rep = Forward()\n    e2 = expr.copy()\n    rep <<= e2\n    def copyTokenToRepeater(s, l, t):\n        matchTokens = _flatten(t.asList())\n        def mustMatchTheseTokens(s, l, t):\n            theseTokens = _flatten(t.asList())\n            if theseTokens != matchTokens:\n                raise ParseException('', 0, '')\n        rep.setParseAction(mustMatchTheseTokens, callDuringTry=True)\n    expr.addParseAction(copyTokenToRepeater, callDuringTry=True)\n    rep.setName('(prev) ' + _ustr(expr))\n    return rep\n\ndef _escapeRegexRangeChars(s):\n    # ~  escape these chars: ^-[]\n    for c in r\"\\^-[]\":\n        s = s.replace(c, _bslash + c)\n    s = s.replace(\"\\n\", r\"\\n\")\n    s = s.replace(\"\\t\", r\"\\t\")\n    return _ustr(s)\n\ndef oneOf(strs, caseless=False, useRegex=True, asKeyword=False):\n    \"\"\"Helper to quickly define a set of alternative Literals, and makes\n    sure to do longest-first testing when there is a conflict,\n    regardless of the input order, but returns\n    a :class:`MatchFirst` for best performance.\n\n    Parameters:\n\n     - strs - a string of space-delimited literals, or a collection of\n       string literals\n     - caseless - (default= ``False``) - treat all literals as\n       caseless\n     - useRegex - (default= ``True``) - as an optimization, will\n       generate a Regex object; otherwise, will generate\n       a :class:`MatchFirst` object (if ``caseless=True`` or ``asKeyword=True``, or if\n       creating a :class:`Regex` raises an exception)\n     - asKeyword - (default=``False``) - enforce Keyword-style matching on the\n       generated expressions\n\n    Example::\n\n        comp_oper = oneOf(\"< = > <= >= !=\")\n        var = Word(alphas)\n        number = Word(nums)\n        term = var | number\n        comparison_expr = term + comp_oper + term\n        print(comparison_expr.searchString(\"B = 12  AA=23 B<=AA AA>12\"))\n\n    prints::\n\n        [['B', '=', '12'], ['AA', '=', '23'], ['B', '<=', 'AA'], ['AA', '>', '12']]\n    \"\"\"\n    if isinstance(caseless, basestring):\n        warnings.warn(\"More than one string argument passed to oneOf, pass \"\n                      \"choices as a list or space-delimited string\", stacklevel=2)\n\n    if caseless:\n        isequal = (lambda a, b: a.upper() == b.upper())\n        masks = (lambda a, b: b.upper().startswith(a.upper()))\n        parseElementClass = CaselessKeyword if asKeyword else CaselessLiteral\n    else:\n        isequal = (lambda a, b: a == b)\n        masks = (lambda a, b: b.startswith(a))\n        parseElementClass = Keyword if asKeyword else Literal\n\n    symbols = []\n    if isinstance(strs, basestring):\n        symbols = strs.split()\n    elif isinstance(strs, Iterable):\n        symbols = list(strs)\n    else:\n        warnings.warn(\"Invalid argument to oneOf, expected string or iterable\",\n                      SyntaxWarning, stacklevel=2)\n    if not symbols:\n        return NoMatch()\n\n    if not asKeyword:\n        # if not producing keywords, need to reorder to take care to avoid masking\n        # longer choices with shorter ones\n        i = 0\n        while i < len(symbols) - 1:\n            cur = symbols[i]\n            for j, other in enumerate(symbols[i + 1:]):\n                if isequal(other, cur):\n                    del symbols[i + j + 1]\n                    break\n                elif masks(cur, other):\n                    del symbols[i + j + 1]\n                    symbols.insert(i, other)\n                    break\n            else:\n                i += 1\n\n    if not (caseless or asKeyword) and useRegex:\n        # ~ print (strs, \"->\", \"|\".join([_escapeRegexChars(sym) for sym in symbols]))\n        try:\n            if len(symbols) == len(\"\".join(symbols)):\n                return Regex(\"[%s]\" % \"\".join(_escapeRegexRangeChars(sym) for sym in symbols)).setName(' | '.join(symbols))\n            else:\n                return Regex(\"|\".join(re.escape(sym) for sym in symbols)).setName(' | '.join(symbols))\n        except Exception:\n            warnings.warn(\"Exception creating Regex for oneOf, building MatchFirst\",\n                    SyntaxWarning, stacklevel=2)\n\n    # last resort, just use MatchFirst\n    return MatchFirst(parseElementClass(sym) for sym in symbols).setName(' | '.join(symbols))\n\ndef dictOf(key, value):\n    \"\"\"Helper to easily and clearly define a dictionary by specifying\n    the respective patterns for the key and value.  Takes care of\n    defining the :class:`Dict`, :class:`ZeroOrMore`, and\n    :class:`Group` tokens in the proper order.  The key pattern\n    can include delimiting markers or punctuation, as long as they are\n    suppressed, thereby leaving the significant key text.  The value\n    pattern can include named results, so that the :class:`Dict` results\n    can include named token fields.\n\n    Example::\n\n        text = \"shape: SQUARE posn: upper left color: light blue texture: burlap\"\n        attr_expr = (label + Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join))\n        print(OneOrMore(attr_expr).parseString(text).dump())\n\n        attr_label = label\n        attr_value = Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join)\n\n        # similar to Dict, but simpler call format\n        result = dictOf(attr_label, attr_value).parseString(text)\n        print(result.dump())\n        print(result['shape'])\n        print(result.shape)  # object attribute access works too\n        print(result.asDict())\n\n    prints::\n\n        [['shape', 'SQUARE'], ['posn', 'upper left'], ['color', 'light blue'], ['texture', 'burlap']]\n        - color: light blue\n        - posn: upper left\n        - shape: SQUARE\n        - texture: burlap\n        SQUARE\n        SQUARE\n        {'color': 'light blue', 'shape': 'SQUARE', 'posn': 'upper left', 'texture': 'burlap'}\n    \"\"\"\n    return Dict(OneOrMore(Group(key + value)))\n\ndef originalTextFor(expr, asString=True):\n    \"\"\"Helper to return the original, untokenized text for a given\n    expression.  Useful to restore the parsed fields of an HTML start\n    tag into the raw tag text itself, or to revert separate tokens with\n    intervening whitespace back to the original matching input text. By\n    default, returns astring containing the original parsed text.\n\n    If the optional ``asString`` argument is passed as\n    ``False``, then the return value is\n    a :class:`ParseResults` containing any results names that\n    were originally matched, and a single token containing the original\n    matched text from the input string.  So if the expression passed to\n    :class:`originalTextFor` contains expressions with defined\n    results names, you must set ``asString`` to ``False`` if you\n    want to preserve those results name values.\n\n    Example::\n\n        src = \"this is test <b> bold <i>text</i> </b> normal text \"\n        for tag in (\"b\", \"i\"):\n            opener, closer = makeHTMLTags(tag)\n            patt = originalTextFor(opener + SkipTo(closer) + closer)\n            print(patt.searchString(src)[0])\n\n    prints::\n\n        ['<b> bold <i>text</i> </b>']\n        ['<i>text</i>']\n    \"\"\"\n    locMarker = Empty().setParseAction(lambda s, loc, t: loc)\n    endlocMarker = locMarker.copy()\n    endlocMarker.callPreparse = False\n    matchExpr = locMarker(\"_original_start\") + expr + endlocMarker(\"_original_end\")\n    if asString:\n        extractText = lambda s, l, t: s[t._original_start: t._original_end]\n    else:\n        def extractText(s, l, t):\n            t[:] = [s[t.pop('_original_start'):t.pop('_original_end')]]\n    matchExpr.setParseAction(extractText)\n    matchExpr.ignoreExprs = expr.ignoreExprs\n    return matchExpr\n\ndef ungroup(expr):\n    \"\"\"Helper to undo pyparsing's default grouping of And expressions,\n    even if all but one are non-empty.\n    \"\"\"\n    return TokenConverter(expr).addParseAction(lambda t: t[0])\n\ndef locatedExpr(expr):\n    \"\"\"Helper to decorate a returned token with its starting and ending\n    locations in the input string.\n\n    This helper adds the following results names:\n\n     - locn_start = location where matched expression begins\n     - locn_end = location where matched expression ends\n     - value = the actual parsed results\n\n    Be careful if the input text contains ``<TAB>`` characters, you\n    may want to call :class:`ParserElement.parseWithTabs`\n\n    Example::\n\n        wd = Word(alphas)\n        for match in locatedExpr(wd).searchString(\"ljsdf123lksdjjf123lkkjj1222\"):\n            print(match)\n\n    prints::\n\n        [[0, 'ljsdf', 5]]\n        [[8, 'lksdjjf', 15]]\n        [[18, 'lkkjj', 23]]\n    \"\"\"\n    locator = Empty().setParseAction(lambda s, l, t: l)\n    return Group(locator(\"locn_start\") + expr(\"value\") + locator.copy().leaveWhitespace()(\"locn_end\"))\n\n\n# convenience constants for positional expressions\nempty       = Empty().setName(\"empty\")\nlineStart   = LineStart().setName(\"lineStart\")\nlineEnd     = LineEnd().setName(\"lineEnd\")\nstringStart = StringStart().setName(\"stringStart\")\nstringEnd   = StringEnd().setName(\"stringEnd\")\n\n_escapedPunc = Word(_bslash, r\"\\[]-*.$+^?()~ \", exact=2).setParseAction(lambda s, l, t: t[0][1])\n_escapedHexChar = Regex(r\"\\\\0?[xX][0-9a-fA-F]+\").setParseAction(lambda s, l, t: unichr(int(t[0].lstrip(r'\\0x'), 16)))\n_escapedOctChar = Regex(r\"\\\\0[0-7]+\").setParseAction(lambda s, l, t: unichr(int(t[0][1:], 8)))\n_singleChar = _escapedPunc | _escapedHexChar | _escapedOctChar | CharsNotIn(r'\\]', exact=1)\n_charRange = Group(_singleChar + Suppress(\"-\") + _singleChar)\n_reBracketExpr = Literal(\"[\") + Optional(\"^\").setResultsName(\"negate\") + Group(OneOrMore(_charRange | _singleChar)).setResultsName(\"body\") + \"]\"\n\ndef srange(s):\n    r\"\"\"Helper to easily define string ranges for use in Word\n    construction. Borrows syntax from regexp '[]' string range\n    definitions::\n\n        srange(\"[0-9]\")   -> \"0123456789\"\n        srange(\"[a-z]\")   -> \"abcdefghijklmnopqrstuvwxyz\"\n        srange(\"[a-z$_]\") -> \"abcdefghijklmnopqrstuvwxyz$_\"\n\n    The input string must be enclosed in []'s, and the returned string\n    is the expanded character set joined into a single string. The\n    values enclosed in the []'s may be:\n\n     - a single character\n     - an escaped character with a leading backslash (such as ``\\-``\n       or ``\\]``)\n     - an escaped hex character with a leading ``'\\x'``\n       (``\\x21``, which is a ``'!'`` character) (``\\0x##``\n       is also supported for backwards compatibility)\n     - an escaped octal character with a leading ``'\\0'``\n       (``\\041``, which is a ``'!'`` character)\n     - a range of any of the above, separated by a dash (``'a-z'``,\n       etc.)\n     - any combination of the above (``'aeiouy'``,\n       ``'a-zA-Z0-9_$'``, etc.)\n    \"\"\"\n    _expanded = lambda p: p if not isinstance(p, ParseResults) else ''.join(unichr(c) for c in range(ord(p[0]), ord(p[1]) + 1))\n    try:\n        return \"\".join(_expanded(part) for part in _reBracketExpr.parseString(s).body)\n    except Exception:\n        return \"\"\n\ndef matchOnlyAtCol(n):\n    \"\"\"Helper method for defining parse actions that require matching at\n    a specific column in the input text.\n    \"\"\"\n    def verifyCol(strg, locn, toks):\n        if col(locn, strg) != n:\n            raise ParseException(strg, locn, \"matched token not at column %d\" % n)\n    return verifyCol\n\ndef replaceWith(replStr):\n    \"\"\"Helper method for common parse actions that simply return\n    a literal value.  Especially useful when used with\n    :class:`transformString<ParserElement.transformString>` ().\n\n    Example::\n\n        num = Word(nums).setParseAction(lambda toks: int(toks[0]))\n        na = oneOf(\"N/A NA\").setParseAction(replaceWith(math.nan))\n        term = na | num\n\n        OneOrMore(term).parseString(\"324 234 N/A 234\") # -> [324, 234, nan, 234]\n    \"\"\"\n    return lambda s, l, t: [replStr]\n\ndef removeQuotes(s, l, t):\n    \"\"\"Helper parse action for removing quotation marks from parsed\n    quoted strings.\n\n    Example::\n\n        # by default, quotation marks are included in parsed results\n        quotedString.parseString(\"'Now is the Winter of our Discontent'\") # -> [\"'Now is the Winter of our Discontent'\"]\n\n        # use removeQuotes to strip quotation marks from parsed results\n        quotedString.setParseAction(removeQuotes)\n        quotedString.parseString(\"'Now is the Winter of our Discontent'\") # -> [\"Now is the Winter of our Discontent\"]\n    \"\"\"\n    return t[0][1:-1]\n\ndef tokenMap(func, *args):\n    \"\"\"Helper to define a parse action by mapping a function to all\n    elements of a ParseResults list. If any additional args are passed,\n    they are forwarded to the given function as additional arguments\n    after the token, as in\n    ``hex_integer = Word(hexnums).setParseAction(tokenMap(int, 16))``,\n    which will convert the parsed data to an integer using base 16.\n\n    Example (compare the last to example in :class:`ParserElement.transformString`::\n\n        hex_ints = OneOrMore(Word(hexnums)).setParseAction(tokenMap(int, 16))\n        hex_ints.runTests('''\n            00 11 22 aa FF 0a 0d 1a\n            ''')\n\n        upperword = Word(alphas).setParseAction(tokenMap(str.upper))\n        OneOrMore(upperword).runTests('''\n            my kingdom for a horse\n            ''')\n\n        wd = Word(alphas).setParseAction(tokenMap(str.title))\n        OneOrMore(wd).setParseAction(' '.join).runTests('''\n            now is the winter of our discontent made glorious summer by this sun of york\n            ''')\n\n    prints::\n\n        00 11 22 aa FF 0a 0d 1a\n        [0, 17, 34, 170, 255, 10, 13, 26]\n\n        my kingdom for a horse\n        ['MY', 'KINGDOM', 'FOR', 'A', 'HORSE']\n\n        now is the winter of our discontent made glorious summer by this sun of york\n        ['Now Is The Winter Of Our Discontent Made Glorious Summer By This Sun Of York']\n    \"\"\"\n    def pa(s, l, t):\n        return [func(tokn, *args) for tokn in t]\n\n    try:\n        func_name = getattr(func, '__name__',\n                            getattr(func, '__class__').__name__)\n    except Exception:\n        func_name = str(func)\n    pa.__name__ = func_name\n\n    return pa\n\nupcaseTokens = tokenMap(lambda t: _ustr(t).upper())\n\"\"\"(Deprecated) Helper parse action to convert tokens to upper case.\nDeprecated in favor of :class:`pyparsing_common.upcaseTokens`\"\"\"\n\ndowncaseTokens = tokenMap(lambda t: _ustr(t).lower())\n\"\"\"(Deprecated) Helper parse action to convert tokens to lower case.\nDeprecated in favor of :class:`pyparsing_common.downcaseTokens`\"\"\"\n\ndef _makeTags(tagStr, xml,\n              suppress_LT=Suppress(\"<\"),\n              suppress_GT=Suppress(\">\")):\n    \"\"\"Internal helper to construct opening and closing tag expressions, given a tag name\"\"\"\n    if isinstance(tagStr, basestring):\n        resname = tagStr\n        tagStr = Keyword(tagStr, caseless=not xml)\n    else:\n        resname = tagStr.name\n\n    tagAttrName = Word(alphas, alphanums + \"_-:\")\n    if xml:\n        tagAttrValue = dblQuotedString.copy().setParseAction(removeQuotes)\n        openTag = (suppress_LT\n                   + tagStr(\"tag\")\n                   + Dict(ZeroOrMore(Group(tagAttrName + Suppress(\"=\") + tagAttrValue)))\n                   + Optional(\"/\", default=[False])(\"empty\").setParseAction(lambda s, l, t: t[0] == '/')\n                   + suppress_GT)\n    else:\n        tagAttrValue = quotedString.copy().setParseAction(removeQuotes) | Word(printables, excludeChars=\">\")\n        openTag = (suppress_LT\n                   + tagStr(\"tag\")\n                   + Dict(ZeroOrMore(Group(tagAttrName.setParseAction(downcaseTokens)\n                                           + Optional(Suppress(\"=\") + tagAttrValue))))\n                   + Optional(\"/\", default=[False])(\"empty\").setParseAction(lambda s, l, t: t[0] == '/')\n                   + suppress_GT)\n    closeTag = Combine(_L(\"</\") + tagStr + \">\", adjacent=False)\n\n    openTag.setName(\"<%s>\" % resname)\n    # add start<tagname> results name in parse action now that ungrouped names are not reported at two levels\n    openTag.addParseAction(lambda t: t.__setitem__(\"start\" + \"\".join(resname.replace(\":\", \" \").title().split()), t.copy()))\n    closeTag = closeTag(\"end\" + \"\".join(resname.replace(\":\", \" \").title().split())).setName(\"</%s>\" % resname)\n    openTag.tag = resname\n    closeTag.tag = resname\n    openTag.tag_body = SkipTo(closeTag())\n    return openTag, closeTag\n\ndef makeHTMLTags(tagStr):\n    \"\"\"Helper to construct opening and closing tag expressions for HTML,\n    given a tag name. Matches tags in either upper or lower case,\n    attributes with namespaces and with quoted or unquoted values.\n\n    Example::\n\n        text = '<td>More info at the <a href=\"https://github.com/pyparsing/pyparsing/wiki\">pyparsing</a> wiki page</td>'\n        # makeHTMLTags returns pyparsing expressions for the opening and\n        # closing tags as a 2-tuple\n        a, a_end = makeHTMLTags(\"A\")\n        link_expr = a + SkipTo(a_end)(\"link_text\") + a_end\n\n        for link in link_expr.searchString(text):\n            # attributes in the <A> tag (like \"href\" shown here) are\n            # also accessible as named results\n            print(link.link_text, '->', link.href)\n\n    prints::\n\n        pyparsing -> https://github.com/pyparsing/pyparsing/wiki\n    \"\"\"\n    return _makeTags(tagStr, False)\n\ndef makeXMLTags(tagStr):\n    \"\"\"Helper to construct opening and closing tag expressions for XML,\n    given a tag name. Matches tags only in the given upper/lower case.\n\n    Example: similar to :class:`makeHTMLTags`\n    \"\"\"\n    return _makeTags(tagStr, True)\n\ndef withAttribute(*args, **attrDict):\n    \"\"\"Helper to create a validating parse action to be used with start\n    tags created with :class:`makeXMLTags` or\n    :class:`makeHTMLTags`. Use ``withAttribute`` to qualify\n    a starting tag with a required attribute value, to avoid false\n    matches on common tags such as ``<TD>`` or ``<DIV>``.\n\n    Call ``withAttribute`` with a series of attribute names and\n    values. Specify the list of filter attributes names and values as:\n\n     - keyword arguments, as in ``(align=\"right\")``, or\n     - as an explicit dict with ``**`` operator, when an attribute\n       name is also a Python reserved word, as in ``**{\"class\":\"Customer\", \"align\":\"right\"}``\n     - a list of name-value tuples, as in ``((\"ns1:class\", \"Customer\"), (\"ns2:align\", \"right\"))``\n\n    For attribute names with a namespace prefix, you must use the second\n    form.  Attribute names are matched insensitive to upper/lower case.\n\n    If just testing for ``class`` (with or without a namespace), use\n    :class:`withClass`.\n\n    To verify that the attribute exists, but without specifying a value,\n    pass ``withAttribute.ANY_VALUE`` as the value.\n\n    Example::\n\n        html = '''\n            <div>\n            Some text\n            <div type=\"grid\">1 4 0 1 0</div>\n            <div type=\"graph\">1,3 2,3 1,1</div>\n            <div>this has no type</div>\n            </div>\n\n        '''\n        div,div_end = makeHTMLTags(\"div\")\n\n        # only match div tag having a type attribute with value \"grid\"\n        div_grid = div().setParseAction(withAttribute(type=\"grid\"))\n        grid_expr = div_grid + SkipTo(div | div_end)(\"body\")\n        for grid_header in grid_expr.searchString(html):\n            print(grid_header.body)\n\n        # construct a match with any div tag having a type attribute, regardless of the value\n        div_any_type = div().setParseAction(withAttribute(type=withAttribute.ANY_VALUE))\n        div_expr = div_any_type + SkipTo(div | div_end)(\"body\")\n        for div_header in div_expr.searchString(html):\n            print(div_header.body)\n\n    prints::\n\n        1 4 0 1 0\n\n        1 4 0 1 0\n        1,3 2,3 1,1\n    \"\"\"\n    if args:\n        attrs = args[:]\n    else:\n        attrs = attrDict.items()\n    attrs = [(k, v) for k, v in attrs]\n    def pa(s, l, tokens):\n        for attrName, attrValue in attrs:\n            if attrName not in tokens:\n                raise ParseException(s, l, \"no matching attribute \" + attrName)\n            if attrValue != withAttribute.ANY_VALUE and tokens[attrName] != attrValue:\n                raise ParseException(s, l, \"attribute '%s' has value '%s', must be '%s'\" %\n                                            (attrName, tokens[attrName], attrValue))\n    return pa\nwithAttribute.ANY_VALUE = object()\n\ndef withClass(classname, namespace=''):\n    \"\"\"Simplified version of :class:`withAttribute` when\n    matching on a div class - made difficult because ``class`` is\n    a reserved word in Python.\n\n    Example::\n\n        html = '''\n            <div>\n            Some text\n            <div class=\"grid\">1 4 0 1 0</div>\n            <div class=\"graph\">1,3 2,3 1,1</div>\n            <div>this &lt;div&gt; has no class</div>\n            </div>\n\n        '''\n        div,div_end = makeHTMLTags(\"div\")\n        div_grid = div().setParseAction(withClass(\"grid\"))\n\n        grid_expr = div_grid + SkipTo(div | div_end)(\"body\")\n        for grid_header in grid_expr.searchString(html):\n            print(grid_header.body)\n\n        div_any_type = div().setParseAction(withClass(withAttribute.ANY_VALUE))\n        div_expr = div_any_type + SkipTo(div | div_end)(\"body\")\n        for div_header in div_expr.searchString(html):\n            print(div_header.body)\n\n    prints::\n\n        1 4 0 1 0\n\n        1 4 0 1 0\n        1,3 2,3 1,1\n    \"\"\"\n    classattr = \"%s:class\" % namespace if namespace else \"class\"\n    return withAttribute(**{classattr: classname})\n\nopAssoc = SimpleNamespace()\nopAssoc.LEFT = object()\nopAssoc.RIGHT = object()\n\ndef infixNotation(baseExpr, opList, lpar=Suppress('('), rpar=Suppress(')')):\n    \"\"\"Helper method for constructing grammars of expressions made up of\n    operators working in a precedence hierarchy.  Operators may be unary\n    or binary, left- or right-associative.  Parse actions can also be\n    attached to operator expressions. The generated parser will also\n    recognize the use of parentheses to override operator precedences\n    (see example below).\n\n    Note: if you define a deep operator list, you may see performance\n    issues when using infixNotation. See\n    :class:`ParserElement.enablePackrat` for a mechanism to potentially\n    improve your parser performance.\n\n    Parameters:\n     - baseExpr - expression representing the most basic element for the\n       nested\n     - opList - list of tuples, one for each operator precedence level\n       in the expression grammar; each tuple is of the form ``(opExpr,\n       numTerms, rightLeftAssoc, parseAction)``, where:\n\n       - opExpr is the pyparsing expression for the operator; may also\n         be a string, which will be converted to a Literal; if numTerms\n         is 3, opExpr is a tuple of two expressions, for the two\n         operators separating the 3 terms\n       - numTerms is the number of terms for this operator (must be 1,\n         2, or 3)\n       - rightLeftAssoc is the indicator whether the operator is right\n         or left associative, using the pyparsing-defined constants\n         ``opAssoc.RIGHT`` and ``opAssoc.LEFT``.\n       - parseAction is the parse action to be associated with\n         expressions matching this operator expression (the parse action\n         tuple member may be omitted); if the parse action is passed\n         a tuple or list of functions, this is equivalent to calling\n         ``setParseAction(*fn)``\n         (:class:`ParserElement.setParseAction`)\n     - lpar - expression for matching left-parentheses\n       (default= ``Suppress('(')``)\n     - rpar - expression for matching right-parentheses\n       (default= ``Suppress(')')``)\n\n    Example::\n\n        # simple example of four-function arithmetic with ints and\n        # variable names\n        integer = pyparsing_common.signed_integer\n        varname = pyparsing_common.identifier\n\n        arith_expr = infixNotation(integer | varname,\n            [\n            ('-', 1, opAssoc.RIGHT),\n            (oneOf('* /'), 2, opAssoc.LEFT),\n            (oneOf('+ -'), 2, opAssoc.LEFT),\n            ])\n\n        arith_expr.runTests('''\n            5+3*6\n            (5+3)*6\n            -2--11\n            ''', fullDump=False)\n\n    prints::\n\n        5+3*6\n        [[5, '+', [3, '*', 6]]]\n\n        (5+3)*6\n        [[[5, '+', 3], '*', 6]]\n\n        -2--11\n        [[['-', 2], '-', ['-', 11]]]\n    \"\"\"\n    # captive version of FollowedBy that does not do parse actions or capture results names\n    class _FB(FollowedBy):\n        def parseImpl(self, instring, loc, doActions=True):\n            self.expr.tryParse(instring, loc)\n            return loc, []\n\n    ret = Forward()\n    lastExpr = baseExpr | (lpar + ret + rpar)\n    for i, operDef in enumerate(opList):\n        opExpr, arity, rightLeftAssoc, pa = (operDef + (None, ))[:4]\n        termName = \"%s term\" % opExpr if arity < 3 else \"%s%s term\" % opExpr\n        if arity == 3:\n            if opExpr is None or len(opExpr) != 2:\n                raise ValueError(\n                    \"if numterms=3, opExpr must be a tuple or list of two expressions\")\n            opExpr1, opExpr2 = opExpr\n        thisExpr = Forward().setName(termName)\n        if rightLeftAssoc == opAssoc.LEFT:\n            if arity == 1:\n                matchExpr = _FB(lastExpr + opExpr) + Group(lastExpr + OneOrMore(opExpr))\n            elif arity == 2:\n                if opExpr is not None:\n                    matchExpr = _FB(lastExpr + opExpr + lastExpr) + Group(lastExpr + OneOrMore(opExpr + lastExpr))\n                else:\n                    matchExpr = _FB(lastExpr + lastExpr) + Group(lastExpr + OneOrMore(lastExpr))\n            elif arity == 3:\n                matchExpr = (_FB(lastExpr + opExpr1 + lastExpr + opExpr2 + lastExpr)\n                             + Group(lastExpr + OneOrMore(opExpr1 + lastExpr + opExpr2 + lastExpr)))\n            else:\n                raise ValueError(\"operator must be unary (1), binary (2), or ternary (3)\")\n        elif rightLeftAssoc == opAssoc.RIGHT:\n            if arity == 1:\n                # try to avoid LR with this extra test\n                if not isinstance(opExpr, Optional):\n                    opExpr = Optional(opExpr)\n                matchExpr = _FB(opExpr.expr + thisExpr) + Group(opExpr + thisExpr)\n            elif arity == 2:\n                if opExpr is not None:\n                    matchExpr = _FB(lastExpr + opExpr + thisExpr) + Group(lastExpr + OneOrMore(opExpr + thisExpr))\n                else:\n                    matchExpr = _FB(lastExpr + thisExpr) + Group(lastExpr + OneOrMore(thisExpr))\n            elif arity == 3:\n                matchExpr = (_FB(lastExpr + opExpr1 + thisExpr + opExpr2 + thisExpr)\n                             + Group(lastExpr + opExpr1 + thisExpr + opExpr2 + thisExpr))\n            else:\n                raise ValueError(\"operator must be unary (1), binary (2), or ternary (3)\")\n        else:\n            raise ValueError(\"operator must indicate right or left associativity\")\n        if pa:\n            if isinstance(pa, (tuple, list)):\n                matchExpr.setParseAction(*pa)\n            else:\n                matchExpr.setParseAction(pa)\n        thisExpr <<= (matchExpr.setName(termName) | lastExpr)\n        lastExpr = thisExpr\n    ret <<= lastExpr\n    return ret\n\noperatorPrecedence = infixNotation\n\"\"\"(Deprecated) Former name of :class:`infixNotation`, will be\ndropped in a future release.\"\"\"\n\ndblQuotedString = Combine(Regex(r'\"(?:[^\"\\n\\r\\\\]|(?:\"\")|(?:\\\\(?:[^x]|x[0-9a-fA-F]+)))*') + '\"').setName(\"string enclosed in double quotes\")\nsglQuotedString = Combine(Regex(r\"'(?:[^'\\n\\r\\\\]|(?:'')|(?:\\\\(?:[^x]|x[0-9a-fA-F]+)))*\") + \"'\").setName(\"string enclosed in single quotes\")\nquotedString = Combine(Regex(r'\"(?:[^\"\\n\\r\\\\]|(?:\"\")|(?:\\\\(?:[^x]|x[0-9a-fA-F]+)))*') + '\"'\n                       | Regex(r\"'(?:[^'\\n\\r\\\\]|(?:'')|(?:\\\\(?:[^x]|x[0-9a-fA-F]+)))*\") + \"'\").setName(\"quotedString using single or double quotes\")\nunicodeString = Combine(_L('u') + quotedString.copy()).setName(\"unicode string literal\")\n\ndef nestedExpr(opener=\"(\", closer=\")\", content=None, ignoreExpr=quotedString.copy()):\n    \"\"\"Helper method for defining nested lists enclosed in opening and\n    closing delimiters (\"(\" and \")\" are the default).\n\n    Parameters:\n     - opener - opening character for a nested list\n       (default= ``\"(\"``); can also be a pyparsing expression\n     - closer - closing character for a nested list\n       (default= ``\")\"``); can also be a pyparsing expression\n     - content - expression for items within the nested lists\n       (default= ``None``)\n     - ignoreExpr - expression for ignoring opening and closing\n       delimiters (default= :class:`quotedString`)\n\n    If an expression is not provided for the content argument, the\n    nested expression will capture all whitespace-delimited content\n    between delimiters as a list of separate values.\n\n    Use the ``ignoreExpr`` argument to define expressions that may\n    contain opening or closing characters that should not be treated as\n    opening or closing characters for nesting, such as quotedString or\n    a comment expression.  Specify multiple expressions using an\n    :class:`Or` or :class:`MatchFirst`. The default is\n    :class:`quotedString`, but if no expressions are to be ignored, then\n    pass ``None`` for this argument.\n\n    Example::\n\n        data_type = oneOf(\"void int short long char float double\")\n        decl_data_type = Combine(data_type + Optional(Word('*')))\n        ident = Word(alphas+'_', alphanums+'_')\n        number = pyparsing_common.number\n        arg = Group(decl_data_type + ident)\n        LPAR, RPAR = map(Suppress, \"()\")\n\n        code_body = nestedExpr('{', '}', ignoreExpr=(quotedString | cStyleComment))\n\n        c_function = (decl_data_type(\"type\")\n                      + ident(\"name\")\n                      + LPAR + Optional(delimitedList(arg), [])(\"args\") + RPAR\n                      + code_body(\"body\"))\n        c_function.ignore(cStyleComment)\n\n        source_code = '''\n            int is_odd(int x) {\n                return (x%2);\n            }\n\n            int dec_to_hex(char hchar) {\n                if (hchar >= '0' && hchar <= '9') {\n                    return (ord(hchar)-ord('0'));\n                } else {\n                    return (10+ord(hchar)-ord('A'));\n                }\n            }\n        '''\n        for func in c_function.searchString(source_code):\n            print(\"%(name)s (%(type)s) args: %(args)s\" % func)\n\n\n    prints::\n\n        is_odd (int) args: [['int', 'x']]\n        dec_to_hex (int) args: [['char', 'hchar']]\n    \"\"\"\n    if opener == closer:\n        raise ValueError(\"opening and closing strings cannot be the same\")\n    if content is None:\n        if isinstance(opener, basestring) and isinstance(closer, basestring):\n            if len(opener) == 1 and len(closer) == 1:\n                if ignoreExpr is not None:\n                    content = (Combine(OneOrMore(~ignoreExpr\n                                                 + CharsNotIn(opener\n                                                              + closer\n                                                              + ParserElement.DEFAULT_WHITE_CHARS, exact=1)\n                                                 )\n                                       ).setParseAction(lambda t: t[0].strip()))\n                else:\n                    content = (empty.copy() + CharsNotIn(opener\n                                                         + closer\n                                                         + ParserElement.DEFAULT_WHITE_CHARS\n                                                         ).setParseAction(lambda t: t[0].strip()))\n            else:\n                if ignoreExpr is not None:\n                    content = (Combine(OneOrMore(~ignoreExpr\n                                                 + ~Literal(opener)\n                                                 + ~Literal(closer)\n                                                 + CharsNotIn(ParserElement.DEFAULT_WHITE_CHARS, exact=1))\n                                       ).setParseAction(lambda t: t[0].strip()))\n                else:\n                    content = (Combine(OneOrMore(~Literal(opener)\n                                                 + ~Literal(closer)\n                                                 + CharsNotIn(ParserElement.DEFAULT_WHITE_CHARS, exact=1))\n                                       ).setParseAction(lambda t: t[0].strip()))\n        else:\n            raise ValueError(\"opening and closing arguments must be strings if no content expression is given\")\n    ret = Forward()\n    if ignoreExpr is not None:\n        ret <<= Group(Suppress(opener) + ZeroOrMore(ignoreExpr | ret | content) + Suppress(closer))\n    else:\n        ret <<= Group(Suppress(opener) + ZeroOrMore(ret | content)  + Suppress(closer))\n    ret.setName('nested %s%s expression' % (opener, closer))\n    return ret\n\ndef indentedBlock(blockStatementExpr, indentStack, indent=True):\n    \"\"\"Helper method for defining space-delimited indentation blocks,\n    such as those used to define block statements in Python source code.\n\n    Parameters:\n\n     - blockStatementExpr - expression defining syntax of statement that\n       is repeated within the indented block\n     - indentStack - list created by caller to manage indentation stack\n       (multiple statementWithIndentedBlock expressions within a single\n       grammar should share a common indentStack)\n     - indent - boolean indicating whether block must be indented beyond\n       the current level; set to False for block of left-most\n       statements (default= ``True``)\n\n    A valid block must contain at least one ``blockStatement``.\n\n    Example::\n\n        data = '''\n        def A(z):\n          A1\n          B = 100\n          G = A2\n          A2\n          A3\n        B\n        def BB(a,b,c):\n          BB1\n          def BBA():\n            bba1\n            bba2\n            bba3\n        C\n        D\n        def spam(x,y):\n             def eggs(z):\n                 pass\n        '''\n\n\n        indentStack = [1]\n        stmt = Forward()\n\n        identifier = Word(alphas, alphanums)\n        funcDecl = (\"def\" + identifier + Group(\"(\" + Optional(delimitedList(identifier)) + \")\") + \":\")\n        func_body = indentedBlock(stmt, indentStack)\n        funcDef = Group(funcDecl + func_body)\n\n        rvalue = Forward()\n        funcCall = Group(identifier + \"(\" + Optional(delimitedList(rvalue)) + \")\")\n        rvalue << (funcCall | identifier | Word(nums))\n        assignment = Group(identifier + \"=\" + rvalue)\n        stmt << (funcDef | assignment | identifier)\n\n        module_body = OneOrMore(stmt)\n\n        parseTree = module_body.parseString(data)\n        parseTree.pprint()\n\n    prints::\n\n        [['def',\n          'A',\n          ['(', 'z', ')'],\n          ':',\n          [['A1'], [['B', '=', '100']], [['G', '=', 'A2']], ['A2'], ['A3']]],\n         'B',\n         ['def',\n          'BB',\n          ['(', 'a', 'b', 'c', ')'],\n          ':',\n          [['BB1'], [['def', 'BBA', ['(', ')'], ':', [['bba1'], ['bba2'], ['bba3']]]]]],\n         'C',\n         'D',\n         ['def',\n          'spam',\n          ['(', 'x', 'y', ')'],\n          ':',\n          [[['def', 'eggs', ['(', 'z', ')'], ':', [['pass']]]]]]]\n    \"\"\"\n    backup_stack = indentStack[:]\n\n    def reset_stack():\n        indentStack[:] = backup_stack\n\n    def checkPeerIndent(s, l, t):\n        if l >= len(s): return\n        curCol = col(l, s)\n        if curCol != indentStack[-1]:\n            if curCol > indentStack[-1]:\n                raise ParseException(s, l, \"illegal nesting\")\n            raise ParseException(s, l, \"not a peer entry\")\n\n    def checkSubIndent(s, l, t):\n        curCol = col(l, s)\n        if curCol > indentStack[-1]:\n            indentStack.append(curCol)\n        else:\n            raise ParseException(s, l, \"not a subentry\")\n\n    def checkUnindent(s, l, t):\n        if l >= len(s): return\n        curCol = col(l, s)\n        if not(indentStack and curCol in indentStack):\n            raise ParseException(s, l, \"not an unindent\")\n        if curCol < indentStack[-1]:\n            indentStack.pop()\n\n    NL = OneOrMore(LineEnd().setWhitespaceChars(\"\\t \").suppress(), stopOn=StringEnd())\n    INDENT = (Empty() + Empty().setParseAction(checkSubIndent)).setName('INDENT')\n    PEER   = Empty().setParseAction(checkPeerIndent).setName('')\n    UNDENT = Empty().setParseAction(checkUnindent).setName('UNINDENT')\n    if indent:\n        smExpr = Group(Optional(NL)\n                       + INDENT\n                       + OneOrMore(PEER + Group(blockStatementExpr) + Optional(NL), stopOn=StringEnd())\n                       + UNDENT)\n    else:\n        smExpr = Group(Optional(NL)\n                       + OneOrMore(PEER + Group(blockStatementExpr) + Optional(NL), stopOn=StringEnd())\n                       + UNDENT)\n    smExpr.setFailAction(lambda a, b, c, d: reset_stack())\n    blockStatementExpr.ignore(_bslash + LineEnd())\n    return smExpr.setName('indented block')\n\nalphas8bit = srange(r\"[\\0xc0-\\0xd6\\0xd8-\\0xf6\\0xf8-\\0xff]\")\npunc8bit = srange(r\"[\\0xa1-\\0xbf\\0xd7\\0xf7]\")\n\nanyOpenTag, anyCloseTag = makeHTMLTags(Word(alphas, alphanums + \"_:\").setName('any tag'))\n_htmlEntityMap = dict(zip(\"gt lt amp nbsp quot apos\".split(), '><& \"\\''))\ncommonHTMLEntity = Regex('&(?P<entity>' + '|'.join(_htmlEntityMap.keys()) +\");\").setName(\"common HTML entity\")\ndef replaceHTMLEntity(t):\n    \"\"\"Helper parser action to replace common HTML entities with their special characters\"\"\"\n    return _htmlEntityMap.get(t.entity)\n\n# it's easy to get these comment structures wrong - they're very common, so may as well make them available\ncStyleComment = Combine(Regex(r\"/\\*(?:[^*]|\\*(?!/))*\") + '*/').setName(\"C style comment\")\n\"Comment of the form ``/* ... */``\"\n\nhtmlComment = Regex(r\"<!--[\\s\\S]*?-->\").setName(\"HTML comment\")\n\"Comment of the form ``<!-- ... -->``\"\n\nrestOfLine = Regex(r\".*\").leaveWhitespace().setName(\"rest of line\")\ndblSlashComment = Regex(r\"//(?:\\\\\\n|[^\\n])*\").setName(\"// comment\")\n\"Comment of the form ``// ... (to end of line)``\"\n\ncppStyleComment = Combine(Regex(r\"/\\*(?:[^*]|\\*(?!/))*\") + '*/' | dblSlashComment).setName(\"C++ style comment\")\n\"Comment of either form :class:`cStyleComment` or :class:`dblSlashComment`\"\n\njavaStyleComment = cppStyleComment\n\"Same as :class:`cppStyleComment`\"\n\npythonStyleComment = Regex(r\"#.*\").setName(\"Python style comment\")\n\"Comment of the form ``# ... (to end of line)``\"\n\n_commasepitem = Combine(OneOrMore(Word(printables, excludeChars=',')\n                                  + Optional(Word(\" \\t\")\n                                             + ~Literal(\",\") + ~LineEnd()))).streamline().setName(\"commaItem\")\ncommaSeparatedList = delimitedList(Optional(quotedString.copy() | _commasepitem, default=\"\")).setName(\"commaSeparatedList\")\n\"\"\"(Deprecated) Predefined expression of 1 or more printable words or\nquoted strings, separated by commas.\n\nThis expression is deprecated in favor of :class:`pyparsing_common.comma_separated_list`.\n\"\"\"\n\n# some other useful expressions - using lower-case class name since we are really using this as a namespace\nclass pyparsing_common:\n    \"\"\"Here are some common low-level expressions that may be useful in\n    jump-starting parser development:\n\n     - numeric forms (:class:`integers<integer>`, :class:`reals<real>`,\n       :class:`scientific notation<sci_real>`)\n     - common :class:`programming identifiers<identifier>`\n     - network addresses (:class:`MAC<mac_address>`,\n       :class:`IPv4<ipv4_address>`, :class:`IPv6<ipv6_address>`)\n     - ISO8601 :class:`dates<iso8601_date>` and\n       :class:`datetime<iso8601_datetime>`\n     - :class:`UUID<uuid>`\n     - :class:`comma-separated list<comma_separated_list>`\n\n    Parse actions:\n\n     - :class:`convertToInteger`\n     - :class:`convertToFloat`\n     - :class:`convertToDate`\n     - :class:`convertToDatetime`\n     - :class:`stripHTMLTags`\n     - :class:`upcaseTokens`\n     - :class:`downcaseTokens`\n\n    Example::\n\n        pyparsing_common.number.runTests('''\n            # any int or real number, returned as the appropriate type\n            100\n            -100\n            +100\n            3.14159\n            6.02e23\n            1e-12\n            ''')\n\n        pyparsing_common.fnumber.runTests('''\n            # any int or real number, returned as float\n            100\n            -100\n            +100\n            3.14159\n            6.02e23\n            1e-12\n            ''')\n\n        pyparsing_common.hex_integer.runTests('''\n            # hex numbers\n            100\n            FF\n            ''')\n\n        pyparsing_common.fraction.runTests('''\n            # fractions\n            1/2\n            -3/4\n            ''')\n\n        pyparsing_common.mixed_integer.runTests('''\n            # mixed fractions\n            1\n            1/2\n            -3/4\n            1-3/4\n            ''')\n\n        import uuid\n        pyparsing_common.uuid.setParseAction(tokenMap(uuid.UUID))\n        pyparsing_common.uuid.runTests('''\n            # uuid\n            12345678-1234-5678-1234-567812345678\n            ''')\n\n    prints::\n\n        # any int or real number, returned as the appropriate type\n        100\n        [100]\n\n        -100\n        [-100]\n\n        +100\n        [100]\n\n        3.14159\n        [3.14159]\n\n        6.02e23\n        [6.02e+23]\n\n        1e-12\n        [1e-12]\n\n        # any int or real number, returned as float\n        100\n        [100.0]\n\n        -100\n        [-100.0]\n\n        +100\n        [100.0]\n\n        3.14159\n        [3.14159]\n\n        6.02e23\n        [6.02e+23]\n\n        1e-12\n        [1e-12]\n\n        # hex numbers\n        100\n        [256]\n\n        FF\n        [255]\n\n        # fractions\n        1/2\n        [0.5]\n\n        -3/4\n        [-0.75]\n\n        # mixed fractions\n        1\n        [1]\n\n        1/2\n        [0.5]\n\n        -3/4\n        [-0.75]\n\n        1-3/4\n        [1.75]\n\n        # uuid\n        12345678-1234-5678-1234-567812345678\n        [UUID('12345678-1234-5678-1234-567812345678')]\n    \"\"\"\n\n    convertToInteger = tokenMap(int)\n    \"\"\"\n    Parse action for converting parsed integers to Python int\n    \"\"\"\n\n    convertToFloat = tokenMap(float)\n    \"\"\"\n    Parse action for converting parsed numbers to Python float\n    \"\"\"\n\n    integer = Word(nums).setName(\"integer\").setParseAction(convertToInteger)\n    \"\"\"expression that parses an unsigned integer, returns an int\"\"\"\n\n    hex_integer = Word(hexnums).setName(\"hex integer\").setParseAction(tokenMap(int, 16))\n    \"\"\"expression that parses a hexadecimal integer, returns an int\"\"\"\n\n    signed_integer = Regex(r'[+-]?\\d+').setName(\"signed integer\").setParseAction(convertToInteger)\n    \"\"\"expression that parses an integer with optional leading sign, returns an int\"\"\"\n\n    fraction = (signed_integer().setParseAction(convertToFloat) + '/' + signed_integer().setParseAction(convertToFloat)).setName(\"fraction\")\n    \"\"\"fractional expression of an integer divided by an integer, returns a float\"\"\"\n    fraction.addParseAction(lambda t: t[0]/t[-1])\n\n    mixed_integer = (fraction | signed_integer + Optional(Optional('-').suppress() + fraction)).setName(\"fraction or mixed integer-fraction\")\n    \"\"\"mixed integer of the form 'integer - fraction', with optional leading integer, returns float\"\"\"\n    mixed_integer.addParseAction(sum)\n\n    real = Regex(r'[+-]?(?:\\d+\\.\\d*|\\.\\d+)').setName(\"real number\").setParseAction(convertToFloat)\n    \"\"\"expression that parses a floating point number and returns a float\"\"\"\n\n    sci_real = Regex(r'[+-]?(?:\\d+(?:[eE][+-]?\\d+)|(?:\\d+\\.\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?)').setName(\"real number with scientific notation\").setParseAction(convertToFloat)\n    \"\"\"expression that parses a floating point number with optional\n    scientific notation and returns a float\"\"\"\n\n    # streamlining this expression makes the docs nicer-looking\n    number = (sci_real | real | signed_integer).streamline()\n    \"\"\"any numeric expression, returns the corresponding Python type\"\"\"\n\n    fnumber = Regex(r'[+-]?\\d+\\.?\\d*([eE][+-]?\\d+)?').setName(\"fnumber\").setParseAction(convertToFloat)\n    \"\"\"any int or real number, returned as float\"\"\"\n\n    identifier = Word(alphas + '_', alphanums + '_').setName(\"identifier\")\n    \"\"\"typical code identifier (leading alpha or '_', followed by 0 or more alphas, nums, or '_')\"\"\"\n\n    ipv4_address = Regex(r'(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})(\\.(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})){3}').setName(\"IPv4 address\")\n    \"IPv4 address (``0.0.0.0 - 255.255.255.255``)\"\n\n    _ipv6_part = Regex(r'[0-9a-fA-F]{1,4}').setName(\"hex_integer\")\n    _full_ipv6_address = (_ipv6_part + (':' + _ipv6_part) * 7).setName(\"full IPv6 address\")\n    _short_ipv6_address = (Optional(_ipv6_part + (':' + _ipv6_part) * (0, 6))\n                           + \"::\"\n                           + Optional(_ipv6_part + (':' + _ipv6_part) * (0, 6))\n                           ).setName(\"short IPv6 address\")\n    _short_ipv6_address.addCondition(lambda t: sum(1 for tt in t if pyparsing_common._ipv6_part.matches(tt)) < 8)\n    _mixed_ipv6_address = (\"::ffff:\" + ipv4_address).setName(\"mixed IPv6 address\")\n    ipv6_address = Combine((_full_ipv6_address | _mixed_ipv6_address | _short_ipv6_address).setName(\"IPv6 address\")).setName(\"IPv6 address\")\n    \"IPv6 address (long, short, or mixed form)\"\n\n    mac_address = Regex(r'[0-9a-fA-F]{2}([:.-])[0-9a-fA-F]{2}(?:\\1[0-9a-fA-F]{2}){4}').setName(\"MAC address\")\n    \"MAC address xx:xx:xx:xx:xx (may also have '-' or '.' delimiters)\"\n\n    @staticmethod\n    def convertToDate(fmt=\"%Y-%m-%d\"):\n        \"\"\"\n        Helper to create a parse action for converting parsed date string to Python datetime.date\n\n        Params -\n         - fmt - format to be passed to datetime.strptime (default= ``\"%Y-%m-%d\"``)\n\n        Example::\n\n            date_expr = pyparsing_common.iso8601_date.copy()\n            date_expr.setParseAction(pyparsing_common.convertToDate())\n            print(date_expr.parseString(\"1999-12-31\"))\n\n        prints::\n\n            [datetime.date(1999, 12, 31)]\n        \"\"\"\n        def cvt_fn(s, l, t):\n            try:\n                return datetime.strptime(t[0], fmt).date()\n            except ValueError as ve:\n                raise ParseException(s, l, str(ve))\n        return cvt_fn\n\n    @staticmethod\n    def convertToDatetime(fmt=\"%Y-%m-%dT%H:%M:%S.%f\"):\n        \"\"\"Helper to create a parse action for converting parsed\n        datetime string to Python datetime.datetime\n\n        Params -\n         - fmt - format to be passed to datetime.strptime (default= ``\"%Y-%m-%dT%H:%M:%S.%f\"``)\n\n        Example::\n\n            dt_expr = pyparsing_common.iso8601_datetime.copy()\n            dt_expr.setParseAction(pyparsing_common.convertToDatetime())\n            print(dt_expr.parseString(\"1999-12-31T23:59:59.999\"))\n\n        prints::\n\n            [datetime.datetime(1999, 12, 31, 23, 59, 59, 999000)]\n        \"\"\"\n        def cvt_fn(s, l, t):\n            try:\n                return datetime.strptime(t[0], fmt)\n            except ValueError as ve:\n                raise ParseException(s, l, str(ve))\n        return cvt_fn\n\n    iso8601_date = Regex(r'(?P<year>\\d{4})(?:-(?P<month>\\d\\d)(?:-(?P<day>\\d\\d))?)?').setName(\"ISO8601 date\")\n    \"ISO8601 date (``yyyy-mm-dd``)\"\n\n    iso8601_datetime = Regex(r'(?P<year>\\d{4})-(?P<month>\\d\\d)-(?P<day>\\d\\d)[T ](?P<hour>\\d\\d):(?P<minute>\\d\\d)(:(?P<second>\\d\\d(\\.\\d*)?)?)?(?P<tz>Z|[+-]\\d\\d:?\\d\\d)?').setName(\"ISO8601 datetime\")\n    \"ISO8601 datetime (``yyyy-mm-ddThh:mm:ss.s(Z|+-00:00)``) - trailing seconds, milliseconds, and timezone optional; accepts separating ``'T'`` or ``' '``\"\n\n    uuid = Regex(r'[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}').setName(\"UUID\")\n    \"UUID (``xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx``)\"\n\n    _html_stripper = anyOpenTag.suppress() | anyCloseTag.suppress()\n    @staticmethod\n    def stripHTMLTags(s, l, tokens):\n        \"\"\"Parse action to remove HTML tags from web page HTML source\n\n        Example::\n\n            # strip HTML links from normal text\n            text = '<td>More info at the <a href=\"https://github.com/pyparsing/pyparsing/wiki\">pyparsing</a> wiki page</td>'\n            td, td_end = makeHTMLTags(\"TD\")\n            table_text = td + SkipTo(td_end).setParseAction(pyparsing_common.stripHTMLTags)(\"body\") + td_end\n            print(table_text.parseString(text).body)\n\n        Prints::\n\n            More info at the pyparsing wiki page\n        \"\"\"\n        return pyparsing_common._html_stripper.transformString(tokens[0])\n\n    _commasepitem = Combine(OneOrMore(~Literal(\",\")\n                                      + ~LineEnd()\n                                      + Word(printables, excludeChars=',')\n                                      + Optional(White(\" \\t\")))).streamline().setName(\"commaItem\")\n    comma_separated_list = delimitedList(Optional(quotedString.copy()\n                                                  | _commasepitem, default='')\n                                         ).setName(\"comma separated list\")\n    \"\"\"Predefined expression of 1 or more printable words or quoted strings, separated by commas.\"\"\"\n\n    upcaseTokens = staticmethod(tokenMap(lambda t: _ustr(t).upper()))\n    \"\"\"Parse action to convert tokens to upper case.\"\"\"\n\n    downcaseTokens = staticmethod(tokenMap(lambda t: _ustr(t).lower()))\n    \"\"\"Parse action to convert tokens to lower case.\"\"\"\n\n\nclass _lazyclassproperty(object):\n    def __init__(self, fn):\n        self.fn = fn\n        self.__doc__ = fn.__doc__\n        self.__name__ = fn.__name__\n\n    def __get__(self, obj, cls):\n        if cls is None:\n            cls = type(obj)\n        if not hasattr(cls, '_intern') or any(cls._intern is getattr(superclass, '_intern', [])\n                                              for superclass in cls.__mro__[1:]):\n            cls._intern = {}\n        attrname = self.fn.__name__\n        if attrname not in cls._intern:\n            cls._intern[attrname] = self.fn(cls)\n        return cls._intern[attrname]\n\n\nclass unicode_set(object):\n    \"\"\"\n    A set of Unicode characters, for language-specific strings for\n    ``alphas``, ``nums``, ``alphanums``, and ``printables``.\n    A unicode_set is defined by a list of ranges in the Unicode character\n    set, in a class attribute ``_ranges``, such as::\n\n        _ranges = [(0x0020, 0x007e), (0x00a0, 0x00ff),]\n\n    A unicode set can also be defined using multiple inheritance of other unicode sets::\n\n        class CJK(Chinese, Japanese, Korean):\n            pass\n    \"\"\"\n    _ranges = []\n\n    @classmethod\n    def _get_chars_for_ranges(cls):\n        ret = []\n        for cc in cls.__mro__:\n            if cc is unicode_set:\n                break\n            for rr in cc._ranges:\n                ret.extend(range(rr[0], rr[-1] + 1))\n        return [unichr(c) for c in sorted(set(ret))]\n\n    @_lazyclassproperty\n    def printables(cls):\n        \"all non-whitespace characters in this range\"\n        return u''.join(filterfalse(unicode.isspace, cls._get_chars_for_ranges()))\n\n    @_lazyclassproperty\n    def alphas(cls):\n        \"all alphabetic characters in this range\"\n        return u''.join(filter(unicode.isalpha, cls._get_chars_for_ranges()))\n\n    @_lazyclassproperty\n    def nums(cls):\n        \"all numeric digit characters in this range\"\n        return u''.join(filter(unicode.isdigit, cls._get_chars_for_ranges()))\n\n    @_lazyclassproperty\n    def alphanums(cls):\n        \"all alphanumeric characters in this range\"\n        return cls.alphas + cls.nums\n\n\nclass pyparsing_unicode(unicode_set):\n    \"\"\"\n    A namespace class for defining common language unicode_sets.\n    \"\"\"\n    _ranges = [(32, sys.maxunicode)]\n\n    class Latin1(unicode_set):\n        \"Unicode set for Latin-1 Unicode Character Range\"\n        _ranges = [(0x0020, 0x007e), (0x00a0, 0x00ff),]\n\n    class LatinA(unicode_set):\n        \"Unicode set for Latin-A Unicode Character Range\"\n        _ranges = [(0x0100, 0x017f),]\n\n    class LatinB(unicode_set):\n        \"Unicode set for Latin-B Unicode Character Range\"\n        _ranges = [(0x0180, 0x024f),]\n\n    class Greek(unicode_set):\n        \"Unicode set for Greek Unicode Character Ranges\"\n        _ranges = [\n            (0x0370, 0x03ff), (0x1f00, 0x1f15), (0x1f18, 0x1f1d), (0x1f20, 0x1f45), (0x1f48, 0x1f4d),\n            (0x1f50, 0x1f57), (0x1f59,), (0x1f5b,), (0x1f5d,), (0x1f5f, 0x1f7d), (0x1f80, 0x1fb4), (0x1fb6, 0x1fc4),\n            (0x1fc6, 0x1fd3), (0x1fd6, 0x1fdb), (0x1fdd, 0x1fef), (0x1ff2, 0x1ff4), (0x1ff6, 0x1ffe),\n        ]\n\n    class Cyrillic(unicode_set):\n        \"Unicode set for Cyrillic Unicode Character Range\"\n        _ranges = [(0x0400, 0x04ff)]\n\n    class Chinese(unicode_set):\n        \"Unicode set for Chinese Unicode Character Range\"\n        _ranges = [(0x4e00, 0x9fff), (0x3000, 0x303f),]\n\n    class Japanese(unicode_set):\n        \"Unicode set for Japanese Unicode Character Range, combining Kanji, Hiragana, and Katakana ranges\"\n        _ranges = []\n\n        class Kanji(unicode_set):\n            \"Unicode set for Kanji Unicode Character Range\"\n            _ranges = [(0x4E00, 0x9Fbf), (0x3000, 0x303f),]\n\n        class Hiragana(unicode_set):\n            \"Unicode set for Hiragana Unicode Character Range\"\n            _ranges = [(0x3040, 0x309f),]\n\n        class Katakana(unicode_set):\n            \"Unicode set for Katakana  Unicode Character Range\"\n            _ranges = [(0x30a0, 0x30ff),]\n\n    class Korean(unicode_set):\n        \"Unicode set for Korean Unicode Character Range\"\n        _ranges = [(0xac00, 0xd7af), (0x1100, 0x11ff), (0x3130, 0x318f), (0xa960, 0xa97f), (0xd7b0, 0xd7ff), (0x3000, 0x303f),]\n\n    class CJK(Chinese, Japanese, Korean):\n        \"Unicode set for combined Chinese, Japanese, and Korean (CJK) Unicode Character Range\"\n        pass\n\n    class Thai(unicode_set):\n        \"Unicode set for Thai Unicode Character Range\"\n        _ranges = [(0x0e01, 0x0e3a), (0x0e3f, 0x0e5b),]\n\n    class Arabic(unicode_set):\n        \"Unicode set for Arabic Unicode Character Range\"\n        _ranges = [(0x0600, 0x061b), (0x061e, 0x06ff), (0x0700, 0x077f),]\n\n    class Hebrew(unicode_set):\n        \"Unicode set for Hebrew Unicode Character Range\"\n        _ranges = [(0x0590, 0x05ff),]\n\n    class Devanagari(unicode_set):\n        \"Unicode set for Devanagari Unicode Character Range\"\n        _ranges = [(0x0900, 0x097f), (0xa8e0, 0xa8ff)]\n\npyparsing_unicode.Japanese._ranges = (pyparsing_unicode.Japanese.Kanji._ranges\n                                      + pyparsing_unicode.Japanese.Hiragana._ranges\n                                      + pyparsing_unicode.Japanese.Katakana._ranges)\n\n# define ranges in language character sets\nif PY_3:\n    setattr(pyparsing_unicode, u\"العربية\", pyparsing_unicode.Arabic)\n    setattr(pyparsing_unicode, u\"中文\", pyparsing_unicode.Chinese)\n    setattr(pyparsing_unicode, u\"кириллица\", pyparsing_unicode.Cyrillic)\n    setattr(pyparsing_unicode, u\"Ελληνικά\", pyparsing_unicode.Greek)\n    setattr(pyparsing_unicode, u\"עִברִית\", pyparsing_unicode.Hebrew)\n    setattr(pyparsing_unicode, u\"日本語\", pyparsing_unicode.Japanese)\n    setattr(pyparsing_unicode.Japanese, u\"漢字\", pyparsing_unicode.Japanese.Kanji)\n    setattr(pyparsing_unicode.Japanese, u\"カタカナ\", pyparsing_unicode.Japanese.Katakana)\n    setattr(pyparsing_unicode.Japanese, u\"ひらがな\", pyparsing_unicode.Japanese.Hiragana)\n    setattr(pyparsing_unicode, u\"한국어\", pyparsing_unicode.Korean)\n    setattr(pyparsing_unicode, u\"ไทย\", pyparsing_unicode.Thai)\n    setattr(pyparsing_unicode, u\"देवनागरी\", pyparsing_unicode.Devanagari)\n\n\nclass pyparsing_test:\n    \"\"\"\n    namespace class for classes useful in writing unit tests\n    \"\"\"\n\n    class reset_pyparsing_context:\n        \"\"\"\n        Context manager to be used when writing unit tests that modify pyparsing config values:\n         - packrat parsing\n         - default whitespace characters.\n         - default keyword characters\n         - literal string auto-conversion class\n         - __diag__ settings\n\n        Example:\n            with reset_pyparsing_context():\n                # test that literals used to construct a grammar are automatically suppressed\n                ParserElement.inlineLiteralsUsing(Suppress)\n\n                term = Word(alphas) | Word(nums)\n                group = Group('(' + term[...] + ')')\n\n                # assert that the '()' characters are not included in the parsed tokens\n                self.assertParseAndCheckLisst(group, \"(abc 123 def)\", ['abc', '123', 'def'])\n\n            # after exiting context manager, literals are converted to Literal expressions again\n        \"\"\"\n\n        def __init__(self):\n            self._save_context = {}\n\n        def save(self):\n            self._save_context[\"default_whitespace\"] = ParserElement.DEFAULT_WHITE_CHARS\n            self._save_context[\"default_keyword_chars\"] = Keyword.DEFAULT_KEYWORD_CHARS\n            self._save_context[\n                \"literal_string_class\"\n            ] = ParserElement._literalStringClass\n            self._save_context[\"packrat_enabled\"] = ParserElement._packratEnabled\n            self._save_context[\"packrat_parse\"] = ParserElement._parse\n            self._save_context[\"__diag__\"] = {\n                name: getattr(__diag__, name) for name in __diag__._all_names\n            }\n            self._save_context[\"__compat__\"] = {\n                \"collect_all_And_tokens\": __compat__.collect_all_And_tokens\n            }\n            return self\n\n        def restore(self):\n            # reset pyparsing global state\n            if (\n                ParserElement.DEFAULT_WHITE_CHARS\n                != self._save_context[\"default_whitespace\"]\n            ):\n                ParserElement.setDefaultWhitespaceChars(\n                    self._save_context[\"default_whitespace\"]\n                )\n            Keyword.DEFAULT_KEYWORD_CHARS = self._save_context[\"default_keyword_chars\"]\n            ParserElement.inlineLiteralsUsing(\n                self._save_context[\"literal_string_class\"]\n            )\n            for name, value in self._save_context[\"__diag__\"].items():\n                setattr(__diag__, name, value)\n            ParserElement._packratEnabled = self._save_context[\"packrat_enabled\"]\n            ParserElement._parse = self._save_context[\"packrat_parse\"]\n            __compat__.collect_all_And_tokens = self._save_context[\"__compat__\"]\n\n        def __enter__(self):\n            return self.save()\n\n        def __exit__(self, *args):\n            return self.restore()\n\n    class TestParseResultsAsserts:\n        \"\"\"\n        A mixin class to add parse results assertion methods to normal unittest.TestCase classes.\n        \"\"\"\n        def assertParseResultsEquals(\n            self, result, expected_list=None, expected_dict=None, msg=None\n        ):\n            \"\"\"\n            Unit test assertion to compare a ParseResults object with an optional expected_list,\n            and compare any defined results names with an optional expected_dict.\n            \"\"\"\n            if expected_list is not None:\n                self.assertEqual(expected_list, result.asList(), msg=msg)\n            if expected_dict is not None:\n                self.assertEqual(expected_dict, result.asDict(), msg=msg)\n\n        def assertParseAndCheckList(\n            self, expr, test_string, expected_list, msg=None, verbose=True\n        ):\n            \"\"\"\n            Convenience wrapper assert to test a parser element and input string, and assert that\n            the resulting ParseResults.asList() is equal to the expected_list.\n            \"\"\"\n            result = expr.parseString(test_string, parseAll=True)\n            if verbose:\n                print(result.dump())\n            self.assertParseResultsEquals(result, expected_list=expected_list, msg=msg)\n\n        def assertParseAndCheckDict(\n            self, expr, test_string, expected_dict, msg=None, verbose=True\n        ):\n            \"\"\"\n            Convenience wrapper assert to test a parser element and input string, and assert that\n            the resulting ParseResults.asDict() is equal to the expected_dict.\n            \"\"\"\n            result = expr.parseString(test_string, parseAll=True)\n            if verbose:\n                print(result.dump())\n            self.assertParseResultsEquals(result, expected_dict=expected_dict, msg=msg)\n\n        def assertRunTestResults(\n            self, run_tests_report, expected_parse_results=None, msg=None\n        ):\n            \"\"\"\n            Unit test assertion to evaluate output of ParserElement.runTests(). If a list of\n            list-dict tuples is given as the expected_parse_results argument, then these are zipped\n            with the report tuples returned by runTests and evaluated using assertParseResultsEquals.\n            Finally, asserts that the overall runTests() success value is True.\n\n            :param run_tests_report: tuple(bool, [tuple(str, ParseResults or Exception)]) returned from runTests\n            :param expected_parse_results (optional): [tuple(str, list, dict, Exception)]\n            \"\"\"\n            run_test_success, run_test_results = run_tests_report\n\n            if expected_parse_results is not None:\n                merged = [\n                    (rpt[0], rpt[1], expected)\n                    for rpt, expected in zip(run_test_results, expected_parse_results)\n                ]\n                for test_string, result, expected in merged:\n                    # expected should be a tuple containing a list and/or a dict or an exception,\n                    # and optional failure message string\n                    # an empty tuple will skip any result validation\n                    fail_msg = next(\n                        (exp for exp in expected if isinstance(exp, str)), None\n                    )\n                    expected_exception = next(\n                        (\n                            exp\n                            for exp in expected\n                            if isinstance(exp, type) and issubclass(exp, Exception)\n                        ),\n                        None,\n                    )\n                    if expected_exception is not None:\n                        with self.assertRaises(\n                            expected_exception=expected_exception, msg=fail_msg or msg\n                        ):\n                            if isinstance(result, Exception):\n                                raise result\n                    else:\n                        expected_list = next(\n                            (exp for exp in expected if isinstance(exp, list)), None\n                        )\n                        expected_dict = next(\n                            (exp for exp in expected if isinstance(exp, dict)), None\n                        )\n                        if (expected_list, expected_dict) != (None, None):\n                            self.assertParseResultsEquals(\n                                result,\n                                expected_list=expected_list,\n                                expected_dict=expected_dict,\n                                msg=fail_msg or msg,\n                            )\n                        else:\n                            # warning here maybe?\n                            print(\"no validation for {!r}\".format(test_string))\n\n            # do this last, in case some specific test results can be reported instead\n            self.assertTrue(\n                run_test_success, msg=msg if msg is not None else \"failed runTests\"\n            )\n\n        @contextmanager\n        def assertRaisesParseException(self, exc_type=ParseException, msg=None):\n            with self.assertRaises(exc_type, msg=msg):\n                yield\n\n\nif __name__ == \"__main__\":\n\n    selectToken    = CaselessLiteral(\"select\")\n    fromToken      = CaselessLiteral(\"from\")\n\n    ident          = Word(alphas, alphanums + \"_$\")\n\n    columnName     = delimitedList(ident, \".\", combine=True).setParseAction(upcaseTokens)\n    columnNameList = Group(delimitedList(columnName)).setName(\"columns\")\n    columnSpec     = ('*' | columnNameList)\n\n    tableName      = delimitedList(ident, \".\", combine=True).setParseAction(upcaseTokens)\n    tableNameList  = Group(delimitedList(tableName)).setName(\"tables\")\n\n    simpleSQL      = selectToken(\"command\") + columnSpec(\"columns\") + fromToken + tableNameList(\"tables\")\n\n    # demo runTests method, including embedded comments in test string\n    simpleSQL.runTests(\"\"\"\n        # '*' as column list and dotted table name\n        select * from SYS.XYZZY\n\n        # caseless match on \"SELECT\", and casts back to \"select\"\n        SELECT * from XYZZY, ABC\n\n        # list of column names, and mixed case SELECT keyword\n        Select AA,BB,CC from Sys.dual\n\n        # multiple tables\n        Select A, B, C from Sys.dual, Table2\n\n        # invalid SELECT keyword - should fail\n        Xelect A, B, C from Sys.dual\n\n        # incomplete command - should fail\n        Select\n\n        # invalid column name - should fail\n        Select ^^^ frox Sys.dual\n\n        \"\"\")\n\n    pyparsing_common.number.runTests(\"\"\"\n        100\n        -100\n        +100\n        3.14159\n        6.02e23\n        1e-12\n        \"\"\")\n\n    # any int or real number, returned as float\n    pyparsing_common.fnumber.runTests(\"\"\"\n        100\n        -100\n        +100\n        3.14159\n        6.02e23\n        1e-12\n        \"\"\")\n\n    pyparsing_common.hex_integer.runTests(\"\"\"\n        100\n        FF\n        \"\"\")\n\n    import uuid\n    pyparsing_common.uuid.setParseAction(tokenMap(uuid.UUID))\n    pyparsing_common.uuid.runTests(\"\"\"\n        12345678-1234-5678-1234-567812345678\n        \"\"\")\n"
  },
  {
    "path": "shotgun_api3/lib/requirements.txt",
    "content": "# Copyright (c) 2009-2019, Shotgun Software Inc.\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are met:\n#\n#  - Redistributions of source code must retain the above copyright notice,\n#    this list of conditions and the following disclaimer.\n#\n#  - Redistributions in binary form must reproduce the above copyright notice,\n#    this list of conditions and the following disclaimer in the documentation\n#    and/or other materials provided with the distribution.\n#\n#  - Neither the name of the Shotgun Software Inc nor the names of its\n#    contributors may be used to endorse or promote products derived from this\n#    software without specific prior written permission.\n#\n# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n# POSSIBILITY OF SUCH DAMAGE.\n\n# This file is unused. It is left there so Github can warn us is a CVE is\n# released for our dependencies.\nhttplib2==0.22.0\ncertifi==2026.1.4\npyparsing==2.4.7\n"
  },
  {
    "path": "shotgun_api3/lib/sgtimezone.py",
    "content": "#! /opt/local/bin/python\n\n# Copyright (c) 2019 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\n\n# ----------------------------------------------------------------------------\n#  SG_TIMEZONE module\n#  this is rolled into the this shotgun api file to avoid having to require\n#  current users of api2 to install new modules and modify PYTHONPATH info.\n# ----------------------------------------------------------------------------\n\nfrom datetime import tzinfo, timedelta\nimport time as _time\n\n\nclass SgTimezone(object):\n    '''\n    Shotgun's server infrastructure is configured for Coordinated Universal\n    Time (UTC). In order to provide relevant local timestamps to users, we wrap\n    the datetime module's tzinfo to provide convenient conversion methods.\n    '''\n\n    ZERO = timedelta(0)\n    STDOFFSET = timedelta(seconds=-_time.timezone)\n    if _time.daylight:\n        DSTOFFSET = timedelta(seconds=-_time.altzone)\n    else:\n        DSTOFFSET = STDOFFSET\n    DSTDIFF = DSTOFFSET - STDOFFSET\n\n    def __init__(self):\n        self.utc = UTC()\n        self.local = LocalTimezone()\n\n    @classmethod\n    def UTC(cls):\n        '''\n        For backwards compatibility, from when UTC was a nested class,\n        we allow instantiation via SgTimezone\n        '''\n        return UTC()\n\n    @classmethod\n    def LocalTimezone(cls):\n        '''\n        For backwards compatibility, from when LocalTimezone was a nested\n        class, we allow instantiation via SgTimezone\n        '''\n        return LocalTimezone()\n\n\nclass UTC(tzinfo):\n    '''\n    Implementation of datetime's tzinfo to provide consistent calculated\n    offsets against Coordinated Universal Time (UTC)\n    '''\n\n    def utcoffset(self, dt):\n        return SgTimezone.ZERO\n\n    def tzname(self, dt):\n        return \"UTC\"\n\n    def dst(self, dt):\n        return SgTimezone.ZERO\n\n\nclass LocalTimezone(tzinfo):\n    '''\n    Implementation of datetime's tzinfo to provide convenient conversion\n    between Shotgun server time and local user time\n    '''\n\n    def utcoffset(self, dt):\n        '''\n        Difference between the user's local timezone and UTC timezone in seconds\n        '''\n        if self._isdst(dt):\n            return SgTimezone.DSTOFFSET\n        else:\n            return SgTimezone.STDOFFSET\n\n    def dst(self, dt):\n        '''\n        Daylight savings time (dst) offset in seconds\n        '''\n        if self._isdst(dt):\n            return SgTimezone.DSTDIFF\n        else:\n            return SgTimezone.ZERO\n\n    def tzname(self, dt):\n        '''\n        Name of the user's local timezone, including a reference\n        to daylight savings time (dst) if applicable\n        '''\n        return _time.tzname[self._isdst(dt)]\n\n    def _isdst(self, dt):\n        '''\n        Calculate whether the timestamp in question was in daylight savings\n        '''\n        tt = (dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.weekday(), 0, -1)\n        stamp = _time.mktime(tt)\n        tt = _time.localtime(stamp)\n        return tt.tm_isdst > 0\n"
  },
  {
    "path": "shotgun_api3/py.typed",
    "content": ""
  },
  {
    "path": "shotgun_api3/shotgun.py",
    "content": "#!/usr/bin/env python\n\"\"\"\n-----------------------------------------------------------------------------\nCopyright (c) 2009-2019, Shotgun Software Inc.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n - Redistributions of source code must retain the above copyright notice, this\n   list of conditions and the following disclaimer.\n\n - Redistributions in binary form must reproduce the above copyright notice,\n   this list of conditions and the following disclaimer in the documentation\n   and/or other materials provided with the distribution.\n\n - Neither the name of the Shotgun Software Inc nor the names of its\n   contributors may be used to endorse or promote products derived from this\n   software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\"\"\"\n\nfrom __future__ import annotations  # Required for compatibility with Python 3.7\n\nimport base64\nimport copy\nimport datetime\nimport json\nimport http.client  # Used for secure file upload\nimport http.cookiejar  # used for attachment upload\nimport io\nimport logging\nimport mimetypes\nimport os\nimport re\nimport shutil  # used for attachment download\nimport ssl\nimport stat  # used for attachment upload\nimport sys\nimport time\nimport urllib.error\nimport urllib.parse\nimport urllib.request\nimport uuid  # used for attachment upload\nimport xml.etree.ElementTree\nfrom typing import (\n    Any,\n    BinaryIO,\n    Dict,\n    Iterable,\n    List,\n    Optional,\n    Tuple,\n    TypeVar,\n    Union,\n)\n\n# Import Error and ResponseError (even though they're unused in this file) since they need\n# to be exposed as part of the API.\nfrom xmlrpc.client import Error, ProtocolError, ResponseError  # noqa\n\nfrom .lib.httplib2 import Http, ProxyInfo, socks\nfrom .lib.sgtimezone import SgTimezone\n\nLOG = logging.getLogger(\"shotgun_api3\")\n\"\"\"\nLogging instance for shotgun_api3\n\nProvides a logging instance where log messages are sent during execution. This instance has no\nhandler associated with it.\n\n.. seealso:: :ref:`logging`\n\"\"\"\nLOG.setLevel(logging.WARN)\n\n# mimetypes imported in version specific imports\nmimetypes.add_type(\"video/webm\", \".webm\")  # webm and mp4 seem to be missing\nmimetypes.add_type(\"video/mp4\", \".mp4\")  # from some OS/distros\n\nSG_TIMEZONE = SgTimezone()\n\nSHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION = False\n\n\n# ----------------------------------------------------------------------------\n# Version\n__version__ = \"3.10.0\"\n\n\n# ----------------------------------------------------------------------------\n# Types\n\n\nT = TypeVar(\"T\")\n\nif sys.version_info < (3, 9):\n    OrderItem = Dict\n    GroupingItem = Dict\n    BaseEntity = Dict\nelse:\n    from typing import TypedDict\n\n    class OrderItem(TypedDict):\n        field_name: str\n        direction: str\n\n    class GroupingItem(TypedDict):\n        field: str\n        type: str\n        direction: str\n\n    class BaseEntity(TypedDict, total=False):\n        id: int\n        type: str\n\n\n# ----------------------------------------------------------------------------\n# Errors\n\n\nclass ShotgunError(Exception):\n    \"\"\"\n    Base for all Shotgun API Errors.\n    \"\"\"\n\n    pass\n\n\nclass ShotgunFileDownloadError(ShotgunError):\n    \"\"\"\n    Exception for file download-related errors.\n    \"\"\"\n\n    pass\n\n\nclass ShotgunThumbnailNotReady(ShotgunError):\n    \"\"\"\n    Exception for when trying to use a 'pending thumbnail' (aka transient thumbnail) in an operation\n    \"\"\"\n\n    pass\n\n\nclass Fault(ShotgunError):\n    \"\"\"\n    Exception when server-side exception detected.\n    \"\"\"\n\n    pass\n\n\nclass AuthenticationFault(Fault):\n    \"\"\"\n    Exception when the server side reports an error related to authentication.\n    \"\"\"\n\n    pass\n\n\nclass MissingTwoFactorAuthenticationFault(Fault):\n    \"\"\"\n    Exception when the server side reports an error related to missing two-factor authentication\n    credentials.\n    \"\"\"\n\n    pass\n\n\nclass UserCredentialsNotAllowedForSSOAuthenticationFault(Fault):\n    \"\"\"\n    Exception when the server is configured to use SSO. It is not possible to use\n    a username/password pair to authenticate on such server.\n    \"\"\"\n\n    pass\n\n\nclass UserCredentialsNotAllowedForOxygenAuthenticationFault(Fault):\n    \"\"\"\n    Exception when the server is configured to use Oxygen. It is not possible to use\n    a username/password pair to authenticate on such server.\n    \"\"\"\n\n    pass\n\n\n# ----------------------------------------------------------------------------\n# API\n\n\nclass ServerCapabilities(object):\n    \"\"\"\n    Container for the servers capabilities, such as version enabled features.\n\n    .. warning::\n\n        This class is part of the internal API and its interfaces may change at any time in\n        the future. Therefore, usage of this class is discouraged.\n    \"\"\"\n\n    def __init__(self, host: str, meta: Dict[str, Any]) -> None:\n        \"\"\"\n        ServerCapabilities.__init__\n\n        :param str host: Host name for the server excluding protocol.\n        :param dict meta: dict of meta data for the server returned from the info() api method.\n\n        :ivar str host:\n        :ivar dict server_info:\n        :ivar tuple version: Simple version of the Shotgun server. ``(major, minor, rev)``\n        :ivar bool is_dev: ``True`` if server is running a development version of the Shotgun\n            codebase.\n        \"\"\"\n        # Server host name\n        self.host = host\n        self.server_info = meta\n\n        # Version from server is major.minor.rev or major.minor.rev.\"Dev\"\n        # Store version as tuple and check dev flag\n        try:\n            self.version = meta.get(\"version\", None)\n        except AttributeError:\n            self.version = None\n        if not self.version:\n            raise ShotgunError(\n                \"The Flow Production Tracking Server didn't respond with a version number. \"\n                \"This may be because you are running an older version of \"\n                \"Flow Production Tracking against a more recent version of the Flow Production Tracking API. \"\n                \"For more information, please contact the Autodesk support.\"\n            )\n\n        if len(self.version) > 3 and self.version[3] == \"Dev\":\n            self.is_dev = True\n        else:\n            self.is_dev = False\n\n        self.version = tuple(self.version[:3])\n        self._ensure_json_supported()\n\n    def _ensure_support(self, feature: Dict[str, Any], raise_hell: bool = True) -> bool:\n        \"\"\"\n        Checks the server version supports a given feature, raises an exception if it does not.\n\n        :param dict feature: dict where **version** key contains a 3 integer tuple indicating the\n            supported server version and **label** key contains a human-readable label str::\n\n                { 'version': (5, 4, 4), 'label': 'project parameter }\n        :param bool raise_hell: Whether to raise an exception if the feature is not supported.\n            Defaults to ``True``\n        :raises: :class:`ShotgunError` if the current server version does not support ``feature``\n        \"\"\"\n\n        if not self.version or self.version < feature[\"version\"]:\n            if raise_hell:\n                raise ShotgunError(\n                    \"%s requires server version %s or higher, \"\n                    \"server is %s\"\n                    % (\n                        feature[\"label\"],\n                        _version_str(feature[\"version\"]),\n                        _version_str(self.version),\n                    )\n                )\n            return False\n        else:\n            return True\n\n    def _ensure_json_supported(self) -> None:\n        \"\"\"\n        Ensures server has support for JSON API endpoint added in v2.4.0.\n        \"\"\"\n        self._ensure_support({\"version\": (2, 4, 0), \"label\": \"JSON API\"})\n\n    def ensure_include_archived_projects(self) -> None:\n        \"\"\"\n        Ensures server has support for archived Projects feature added in v5.3.14.\n        \"\"\"\n        self._ensure_support(\n            {\"version\": (5, 3, 14), \"label\": \"include_archived_projects parameter\"}\n        )\n\n    def ensure_per_project_customization(self) -> bool:\n        \"\"\"\n        Ensures server has support for per-project customization feature added in v5.4.4.\n        \"\"\"\n        return self._ensure_support(\n            {\"version\": (5, 4, 4), \"label\": \"project parameter\"}, True\n        )\n\n    def ensure_support_for_additional_filter_presets(self) -> bool:\n        \"\"\"\n        Ensures server has support for additional filter presets feature added in v7.0.0.\n        \"\"\"\n        return self._ensure_support(\n            {\"version\": (7, 0, 0), \"label\": \"additional_filter_presets parameter\"}, True\n        )\n\n    def ensure_user_following_support(self) -> bool:\n        \"\"\"\n        Ensures server has support for listing items a user is following, added in v7.0.12.\n        \"\"\"\n        return self._ensure_support(\n            {\"version\": (7, 0, 12), \"label\": \"user_following parameter\"}, True\n        )\n\n    def ensure_paging_info_without_counts_support(self) -> bool:\n        \"\"\"\n        Ensures server has support for optimized pagination, added in v7.4.0.\n        \"\"\"\n        return self._ensure_support(\n            {\"version\": (7, 4, 0), \"label\": \"optimized pagination\"}, False\n        )\n\n    def ensure_return_image_urls_support(self) -> bool:\n        \"\"\"\n        Ensures server has support for returning thumbnail URLs without additional round-trips, added in v3.3.0.\n        \"\"\"\n        return self._ensure_support(\n            {\"version\": (3, 3, 0), \"label\": \"return thumbnail URLs\"}, False\n        )\n\n    def __str__(self) -> str:\n        return \"ServerCapabilities: host %s, version %s, is_dev %s\" % (\n            self.host,\n            self.version,\n            self.is_dev,\n        )\n\n\nclass ClientCapabilities(object):\n    \"\"\"\n    Container for the client capabilities.\n\n    .. warning::\n\n        This class is part of the internal API and its interfaces may change at any time in\n        the future. Therefore, usage of this class is discouraged.\n\n    :ivar str platform: The current client platform. Valid values are ``mac``, ``linux``,\n        ``windows``, or ``None`` (if the current platform couldn't be determined).\n    :ivar str local_path_field: The PTR field used for local file paths. This is calculated using\n        the value of ``platform``. Ex. ``local_path_mac``.\n    :ivar str py_version: Simple version of Python executable as a string. Eg. ``3.9``.\n    :ivar str ssl_version: Version of OpenSSL installed. Eg. ``OpenSSL 1.0.2g  1 Mar 2016``.\n    \"\"\"\n\n    def __init__(self):\n        system = sys.platform.lower()\n\n        if system == \"darwin\":\n            self.platform = \"mac\"\n        elif system.startswith(\"linux\"):\n            self.platform = \"linux\"\n        elif system == \"win32\":\n            self.platform = \"windows\"\n        else:\n            self.platform = None\n\n        if self.platform:\n            self.local_path_field = \"local_path_%s\" % (self.platform)\n        else:\n            self.local_path_field = None\n\n        self.py_version = \".\".join(str(x) for x in sys.version_info[:2])\n        self.ssl_version = ssl.OPENSSL_VERSION\n\n    def __str__(self):\n        return (\n            \"ClientCapabilities: platform %s, local_path_field %s, \"\n            \"py_verison %s, ssl version %s\"\n            % (self.platform, self.local_path_field, self.py_version, self.ssl_version)\n        )\n\n\nclass _Config(object):\n    \"\"\"\n    Container for the client configuration.\n    \"\"\"\n\n    def __init__(self, sg: \"Shotgun\"):\n        \"\"\"\n        :param sg: Shotgun connection.\n        \"\"\"\n        self._sg = sg\n        self.max_rpc_attempts = 3\n        # rpc_attempt_interval stores the number of milliseconds to wait between\n        # request retries.  By default, this will be 3000 milliseconds. You can\n        # override this by setting this property on the config like so:\n        #\n        #      sg = Shotgun(site_name, script_name, script_key)\n        #      sg.config.rpc_attempt_interval = 1000 # adjusting default interval\n        #\n        # Or by setting the ``SHOTGUN_API_RETRY_INTERVAL`` environment variable.\n        # In the case that the environment variable is already set, setting the\n        # property on the config will override it.\n        self.rpc_attempt_interval = 3000\n        # From http://docs.python.org/2.6/library/httplib.html:\n        # If the optional timeout parameter is given, blocking operations\n        # (like connection attempts) will timeout after that many seconds\n        # (if it is not given, the global default timeout setting is used)\n        self.timeout_secs: Optional[float] = None\n        self.api_ver = \"api3\"\n        self.convert_datetimes_to_utc = True\n        self._records_per_page: Optional[int] = None\n        self.api_key: Optional[str] = None\n        self.script_name: Optional[str] = None\n        self.user_login: Optional[str] = None\n        self.user_password: Optional[str] = None\n        self.auth_token: Optional[str] = None\n        self.sudo_as_login: Optional[str] = None\n        # Authentication parameters to be folded into final auth_params dict\n        self.extra_auth_params: Optional[Dict[str, Any]] = None\n        # uuid as a string\n        self.session_uuid: Optional[str] = None\n        self.scheme: Optional[str] = None\n        self.server: Optional[str] = None\n        self.api_path: Optional[str] = None\n        # The raw_http_proxy reflects the exact string passed in\n        # to the Shotgun constructor. This can be useful if you\n        # need to construct a Shotgun API instance based on\n        # another Shotgun API instance.\n        self.raw_http_proxy: Optional[str] = None\n        # if a proxy server is being used, the proxy_handler\n        # below will contain a urllib2.ProxyHandler instance\n        # which can be used whenever a request needs to be made.\n        self.proxy_handler: Optional[\"urllib.request.ProxyHandler\"] = None\n        self.proxy_server: Optional[str] = None\n        self.proxy_port = 8080\n        self.proxy_user: Optional[str] = None\n        self.proxy_pass: Optional[str] = None\n        self.session_token: Optional[str] = None\n        self.authorization: Optional[str] = None\n        self.localized = False\n\n    def set_server_params(self, base_url: str) -> None:\n        \"\"\"\n        Set the different server related fields based on the passed in URL.\n\n        This will impact the following attributes:\n\n        - scheme: http or https\n        - api_path: usually /api3/json\n        - server: usually something.shotgunstudio.com\n\n        :param str base_url: The server URL.\n\n        :raises ValueError: Raised if protocol is not http or https.\n        \"\"\"\n        self.scheme, self.server, api_base, _, _ = urllib.parse.urlsplit(base_url)\n        if self.scheme not in (\"http\", \"https\"):\n            raise ValueError(\"base_url must use http or https got '%s'\" % base_url)\n        self.api_path = urllib.parse.urljoin(\n            urllib.parse.urljoin(api_base or \"/\", self.api_ver + \"/\"), \"json\"\n        )\n\n    @property\n    def records_per_page(self) -> int:\n        \"\"\"\n        The records per page value from the server.\n        \"\"\"\n        if self._records_per_page is None:\n            # Check for api_max_entities_per_page in the server info and change the record per page\n            # value if it is supplied.\n            self._records_per_page = (\n                self._sg.server_info.get(\"api_max_entities_per_page\") or 500\n            )\n        return self._records_per_page\n\n\nclass Shotgun(object):\n    \"\"\"\n    Shotgun Client connection.\n    \"\"\"\n\n    # reg ex from\n    # http://underground.infovark.com/2008/07/22/iso-date-validation-regex/\n    # Note a length check is done before checking the reg ex\n    _DATE_PATTERN = re.compile(r\"^(\\d{4})\\D?(0[1-9]|1[0-2])\\D?([12]\\d|0[1-9]|3[01])$\")\n    _DATE_TIME_PATTERN = re.compile(\n        r\"^(\\d{4})\\D?(0[1-9]|1[0-2])\\D?([12]\\d|0[1-9]|3[01])\"\n        r\"(\\D?([01]\\d|2[0-3])\\D?([0-5]\\d)\\D?([0-5]\\d)?\\D?(\\d{3})?)?$\"\n    )\n\n    _MULTIPART_UPLOAD_CHUNK_SIZE = 20000000\n    MAX_ATTEMPTS = 3  # Retries on failure\n    BACKOFF = 0.75  # Seconds to wait before retry, times the attempt number\n\n    def __init__(\n        self,\n        base_url: str,\n        script_name: Optional[str] = None,\n        api_key: Optional[str] = None,\n        convert_datetimes_to_utc: bool = True,\n        http_proxy: Optional[str] = None,\n        connect: bool = True,\n        ca_certs: Optional[str] = None,\n        login: Optional[str] = None,\n        password: Optional[str] = None,\n        sudo_as_login: Optional[str] = None,\n        session_token: Optional[str] = None,\n        auth_token: Optional[str] = None,\n    ) -> None:\n        \"\"\"\n        Initializes a new instance of the Shotgun client.\n\n        :param str base_url: http or https url of the Shotgun server. Do not include the trailing\n            slash::\n\n                https://example.shotgunstudio.com\n        :param str script_name: name of the Script entity used to authenticate to the server.\n            If provided, then ``api_key`` must be as well, and neither ``login`` nor ``password``\n            can be provided.\n\n            .. seealso:: :ref:`authentication`\n        :param str api_key: API key for the provided ``script_name``. Used to authenticate to the\n            server.  If provided, then ``script_name`` must be as well, and neither ``login`` nor\n            ``password`` can be provided.\n\n            .. seealso:: :ref:`authentication`\n        :param bool convert_datetimes_to_utc: (optional) When ``True``, datetime values are converted\n            from local time to UTC time before being sent to the server. Datetimes received from\n            the server are then converted back to local time. When ``False`` the client should use\n            UTC date time values. Default is ``True``.\n        :param str http_proxy: (optional) URL for a proxy server to use for all connections. The\n            expected str format is ``[username:password@]111.222.333.444[:8080]``. Examples::\n\n                192.168.0.1\n                192.168.0.1:8888\n                joe:user@192.168.0.1:8888\n        :param bool connect: (optional) When ``True``, as soon as the :class:`~shotgun_api3.Shotgun`\n            instance is created, a connection will be made to the Shotgun server to determine the\n            server capabilities and confirm this version of the client is compatible with the server\n            version. This is mostly used for testing. Default is ``True``.\n        :param str ca_certs: (optional) path to an external SSL certificates file. By default, the\n            Shotgun API will use its own built-in certificates file which stores root certificates\n            for the most common Certificate Authorities (CAs). If you are using a corporate or\n            internal CA, or are packaging an application into an executable, it may be necessary to\n            point to your own certificates file. You can do this by passing in the full path to the\n            file via this parameter or by setting the environment variable ``SHOTGUN_API_CACERTS``.\n            In the case both are set, this parameter will take precedence.\n        :param str login: The user login str to use to authenticate to the server when using user-based\n            authentication. If provided, then ``password`` must be as well, and neither\n            ``script_name`` nor ``api_key`` can be provided.\n\n            .. seealso:: :ref:`authentication`\n        :param str password: The password str to use to authenticate to the server when using user-based\n            authentication. If provided, then ``login`` must be as well and neither ``script_name``\n            nor ``api_key`` can be provided.\n\n            See :ref:`authentication` for more info.\n        :param str sudo_as_login: A user login string for the user whose permissions will be applied\n            to all actions. Event log entries will be generated showing this user performing all\n            actions with an additional extra meta-data parameter ``sudo_actual_user`` indicating the\n            script or user that is actually authenticated.\n        :param str session_token: The session token to use to authenticate to the server. This\n            can be used as an alternative to authenticating with a script user or regular user.\n            You can retrieve the session token by running the\n            :meth:`~shotgun_api3.Shotgun.get_session_token()` method.\n\n            .. todo: Add this info to the Authentication section of the docs\n        :param str auth_token: The authentication token required to authenticate to a server with\n            two-factor authentication turned on. If provided, then ``login`` and ``password`` must\n            be provided as well, and neither ``script_name`` nor ``api_key`` can be provided.\n\n            .. note:: These tokens can be short lived so a session is established right away if an\n                ``auth_token`` is provided. A\n                :class:`~shotgun_api3.MissingTwoFactorAuthenticationFault` will be raised if the\n                ``auth_token`` is invalid.\n            .. todo: Add this info to the Authentication section of the docs\n        \"\"\"\n\n        # verify authentication arguments\n        if session_token is not None:\n            if script_name is not None or api_key is not None:\n                raise ValueError(\n                    \"cannot provide both session_token \" \"and script_name/api_key\"\n                )\n            if login is not None or password is not None:\n                raise ValueError(\n                    \"cannot provide both session_token \" \"and login/password\"\n                )\n\n        if login is not None or password is not None:\n            if script_name is not None or api_key is not None:\n                raise ValueError(\n                    \"cannot provide both login/password \" \"and script_name/api_key\"\n                )\n            if login is None:\n                raise ValueError(\"password provided without login\")\n            if password is None:\n                raise ValueError(\"login provided without password\")\n\n        if script_name is not None or api_key is not None:\n            if script_name is None:\n                raise ValueError(\"api_key provided without script_name\")\n            if api_key is None:\n                raise ValueError(\"script_name provided without api_key\")\n\n        if auth_token is not None:\n            if login is None or password is None:\n                raise ValueError(\n                    \"must provide a user login and password with an auth_token\"\n                )\n\n            if script_name is not None or api_key is not None:\n                raise ValueError(\"cannot provide an auth_code with script_name/api_key\")\n\n        if not any([session_token, script_name, api_key, login, password]):\n            if connect:\n                raise ValueError(\n                    \"must provide login/password, session_token or script_name/api_key\"\n                )\n\n        self.config: _Config = _Config(self)\n        self.config.api_key = api_key\n        self.config.script_name = script_name\n        self.config.user_login = login\n        self.config.user_password = password\n        self.config.auth_token = auth_token\n        self.config.session_token = session_token\n        self.config.sudo_as_login = sudo_as_login\n        self.config.convert_datetimes_to_utc = convert_datetimes_to_utc\n        self.config.raw_http_proxy = http_proxy\n\n        try:\n            self.config.rpc_attempt_interval = int(\n                os.environ.get(\"SHOTGUN_API_RETRY_INTERVAL\", 3000)\n            )\n        except ValueError:\n            retry_interval = os.environ.get(\"SHOTGUN_API_RETRY_INTERVAL\", 3000)\n            raise ValueError(\n                \"Invalid value '%s' found in environment variable \"\n                \"SHOTGUN_API_RETRY_INTERVAL, must be int.\" % retry_interval\n            )\n        if self.config.rpc_attempt_interval < 0:\n            raise ValueError(\n                \"Value of SHOTGUN_API_RETRY_INTERVAL must be positive, \"\n                \"got '%s'.\" % self.config.rpc_attempt_interval\n            )\n\n        global SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION\n        if (\n            os.environ.get(\"SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION\", \"0\")\n            .strip()\n            .lower()\n            == \"1\"\n        ):\n            SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION = True\n\n        self._connection: Optional[Http] = None\n\n        self.__ca_certs = self._get_certs_file(ca_certs)\n\n        self.base_url = (base_url or \"\").lower()\n        self.config.set_server_params(self.base_url)\n\n        # if the service contains user information strip it out\n        # copied from the xmlrpclib which turned the user:password into\n        # and auth header\n\n        # Do NOT self._split_url(self.base_url) here, as it contains the lower\n        # case version of the base_url argument. Doing so would base64.encodebytes\n        # the lowercase version of the credentials.\n        auth, self.config.server = self._split_url(base_url)\n        if auth:\n            auth = base64.encodebytes(\n                urllib.parse.unquote(auth).encode(\"utf-8\")\n            ).decode(\"utf-8\")\n            self.config.authorization = \"Basic \" + auth.strip()\n\n        # foo:bar@123.456.789.012:3456\n        if http_proxy:\n            # check if we're using authentication. Start from the end since\n            # there might be @ in the user's password.\n            p = http_proxy.rsplit(\"@\", 1)\n            if len(p) > 1:\n                self.config.proxy_user, self.config.proxy_pass = p[0].split(\":\", 1)\n                proxy_server = p[1]\n            else:\n                proxy_server = http_proxy\n            proxy_netloc_list = proxy_server.split(\":\", 1)\n            self.config.proxy_server = proxy_netloc_list[0]\n            if len(proxy_netloc_list) > 1:\n                try:\n                    self.config.proxy_port = int(proxy_netloc_list[1])\n                except ValueError:\n                    raise ValueError(\n                        \"Invalid http_proxy address '%s'. Valid \"\n                        \"format is '123.456.789.012' or '123.456.789.012:3456'\"\n                        \". If no port is specified, a default of %d will be \"\n                        \"used.\" % (http_proxy, self.config.proxy_port)\n                    )\n\n            # now populate self.config.proxy_handler\n            if self.config.proxy_user and self.config.proxy_pass:\n                auth_string = \"%s:%s@\" % (\n                    self.config.proxy_user,\n                    self.config.proxy_pass,\n                )\n            else:\n                auth_string = \"\"\n            proxy_addr = \"http://%s%s:%d\" % (\n                auth_string,\n                self.config.proxy_server,\n                self.config.proxy_port,\n            )\n            self.config.proxy_handler = urllib.request.ProxyHandler(\n                {self.config.scheme: proxy_addr}\n            )\n\n        self.client_caps = ClientCapabilities()\n        # this relies on self.client_caps being set first\n        self.reset_user_agent()\n\n        self._server_caps: Optional[ServerCapabilities] = None\n        # test to ensure the the server supports the json API\n        # call to server will only be made once and will raise error\n        if connect:\n            self.server_caps\n\n        # When using auth_token in a 2FA scenario we need to switch to session-based\n        # authentication because the auth token will no longer be valid after a first use.\n        if self.config.auth_token is not None:\n            self.config.session_token = self.get_session_token()\n            self.config.user_login = None\n            self.config.user_password = None\n            self.config.auth_token = None\n\n    def _split_url(self, base_url: str) -> Tuple[Optional[str], Optional[str]]:\n        \"\"\"\n        Extract the hostname:port and username/password/token from base_url\n        sent when connect to the API.\n\n        In python 3.8 `urllib.parse.splituser` was deprecated warning devs to\n        use `urllib.parse.urlparse`.\n        \"\"\"\n        if (sys.version_info.major, sys.version_info.minor) >= (3, 8):\n            auth = None\n            results = urllib.parse.urlparse(base_url)\n            server = results.hostname\n            if results.port:\n                server = \"{}:{}\".format(server, results.port)\n\n            if results.username:\n                auth = results.username\n\n                if results.password:\n                    auth = \"{}:{}\".format(auth, results.password)\n\n        else:\n            auth, server = urllib.parse.splituser(\n                urllib.parse.urlsplit(base_url).netloc\n            )\n\n        return auth, server\n\n    # ========================================================================\n    # API Functions\n\n    @property\n    def server_info(self) -> Dict[str, Any]:\n        \"\"\"\n        Property containing server information.\n\n        >>> sg.server_info\n        {'full_version': [6, 3, 15, 0], 'version': [6, 3, 15], ...}\n\n        .. note::\n\n            Beyond ``full_version`` and ``version`` which differ by the inclusion of the bugfix number,\n            you should expect these values to be unsupported and for internal use only.\n\n        :returns: dict of server information from :class:`ServerCapabilities` object\n        :rtype: dict\n        \"\"\"\n        return self.server_caps.server_info\n\n    @property\n    def server_caps(self) -> ServerCapabilities:\n        \"\"\"\n        Property containing :class:`ServerCapabilities` object.\n\n        >>> sg.server_caps\n        <shotgun_api3.shotgun.ServerCapabilities object at 0x10120d350>\n\n        :returns: :class:`ServerCapabilities` object that describe the server the client is\n            connected to.\n        :rtype: :class:`ServerCapabilities` object\n        \"\"\"\n        if not self._server_caps or (self._server_caps.host != self.config.server):\n            self._server_caps = ServerCapabilities(self.config.server, self.info())\n        return self._server_caps\n\n    def connect(self) -> None:\n        \"\"\"\n        Connect client to the server if it is not already connected.\n\n        .. note:: The client will automatically connect to the server on demand. You only need to\n            call this function if you wish to confirm the client can connect.\n        \"\"\"\n        self._get_connection()\n        self.info()\n        return\n\n    def close(self) -> None:\n        \"\"\"\n        Close the current connection to the server.\n\n        If the client needs to connect again it will do so automatically.\n        \"\"\"\n        self._close_connection()\n        return\n\n    def info(self) -> Dict[str, Any]:\n        \"\"\"\n        Get API-related metadata from the Shotgun server.\n\n        >>> sg.info()\n        {'full_version': [8, 2, 1, 0], 'version': [8, 2, 1], 'user_authentication_method': 'default', ...}\n\n        ::\n\n            Token                       Value\n            --------                    ---------\n            full_version                An ordered array of the full Shotgun version.\n                                        [major, minor, patch, hotfix]\n            version                     An ordered array of the Shotgun version.\n                                        [major, minor, patch]\n            user_authentication_method  Indicates the authentication method used by Shotgun.\n                                        Will be one of the following values:\n                                            default: regular username/password.\n                                            ldap:    username/password from the company's LDAP.\n                                            saml2:   SSO used, over SAML2.\n\n        .. note::\n\n            Beyond the documented tokens, you should expect\n            the other values to be unsupported and for internal use only.\n\n        :returns: dict of the server metadata.\n        :rtype: dict\n        \"\"\"\n        return self._call_rpc(\"info\", None, include_auth_params=False)\n\n    def find_one(\n        self,\n        entity_type: str,\n        filters: Union[List, Tuple, Dict[str, Any]],\n        fields: Optional[List[str]] = None,\n        order: Optional[List[OrderItem]] = None,\n        filter_operator: Optional[str] = None,\n        retired_only: bool = False,\n        include_archived_projects: bool = True,\n        additional_filter_presets: Optional[List[Dict[str, Any]]] = None,\n    ) -> Optional[BaseEntity]:\n        \"\"\"\n        Shortcut for :meth:`~shotgun_api3.Shotgun.find` with ``limit=1`` so it returns a single\n        result.\n\n            >>> sg.find_one(\"Asset\", [[\"id\", \"is\", 32]], [\"id\", \"code\", \"sg_status_list\"])\n            {'code': 'Gopher', 'id': 32, 'sg_status_list': 'ip', 'type': 'Asset'}\n\n        :param str entity_type: Shotgun entity type as a string to find.\n        :param list filters: list of filters to apply to the query.\n\n            .. seealso:: :ref:`filter_syntax`\n\n        :param list fields: Optional list of fields to include in each entity record returned.\n            Defaults to ``[\"id\"]``.\n        :param list order: Optional list of fields to order the results by. List has the format::\n\n                [\n                    {'field_name':'foo', 'direction':'asc'},\n                    {'field_name':'bar', 'direction':'desc'}\n                ]\n\n            Defaults to sorting by ``id`` in ascending order.\n        :param str filter_operator: Operator to apply to the filters. Supported values are ``\"all\"``\n            and ``\"any\"``. These are just another way of defining if the query is an AND or OR\n            query. Defaults to ``\"all\"``.\n        :param bool retired_only: Optional boolean when ``True`` will return only entities that have\n            been retired. Defaults to ``False`` which returns only entities which have not been\n            retired. There is no option to return both retired and non-retired entities in the\n            same query.\n        :param bool include_archived_projects: Optional boolean flag to include entities whose projects\n            have been archived. Defaults to ``True``.\n        :param list additional_filter_presets: Optional list of presets to further filter the result\n            set, list has the form::\n\n                [{\n                    \"preset_name\": <preset_name>,\n                    <optional_param1>: <optional_value1>,\n                    ...\n                }]\n\n            Note that these filters are ANDed together and ANDed with the 'filter'\n            argument.\n\n            For details on supported presets and the format of this parameter see\n            :ref:`additional_filter_presets`\n        :returns: Dictionary representing a single matching entity with the requested fields,\n            and the defaults ``\"id\"`` and ``\"type\"`` which are always included.\n\n            .. seealso:: :ref:`entity-fields`\n\n        :rtype: dict\n        \"\"\"\n\n        results = self.find(\n            entity_type,\n            filters,\n            fields,\n            order,\n            filter_operator,\n            1,\n            retired_only,\n            include_archived_projects=include_archived_projects,\n            additional_filter_presets=additional_filter_presets,\n        )\n\n        if results:\n            return results[0]\n        return None\n\n    def find(\n        self,\n        entity_type: str,\n        filters: Union[List, Tuple, Dict[str, Any]],\n        fields: Optional[List[str]] = None,\n        order: Optional[List[OrderItem]] = None,\n        filter_operator: Optional[str] = None,\n        limit: int = 0,\n        retired_only: bool = False,\n        page: int = 0,\n        include_archived_projects: bool = True,\n        additional_filter_presets: Optional[List[Dict[str, Any]]] = None,\n    ) -> List[BaseEntity]:\n        \"\"\"\n        Find entities matching the given filters.\n\n            >>> # Find Character Assets in Sequence 100_FOO\n            >>> # -------------\n            >>> fields = ['id', 'code', 'sg_asset_type']\n            >>> sequence_id = 2 # Sequence \"100_FOO\"\n            >>> project_id = 4 # Demo Project\n            >>> filters = [\n            ...     ['project', 'is', {'type': 'Project', 'id': project_id}],\n            ...     ['sg_asset_type', 'is', 'Character'],\n            ...     ['sequences', 'is', {'type': 'Sequence', 'id': sequence_id}]\n            ... ]\n            >>> assets= sg.find(\"Asset\",filters,fields)\n            [{'code': 'Gopher', 'id': 32, 'sg_asset_type': 'Character', 'type': 'Asset'},\n             {'code': 'Cow', 'id': 33, 'sg_asset_type': 'Character', 'type': 'Asset'},\n             {'code': 'Bird_1', 'id': 35, 'sg_asset_type': 'Character', 'type': 'Asset'},\n             {'code': 'Bird_2', 'id': 36, 'sg_asset_type': 'Character', 'type': 'Asset'},\n             {'code': 'Bird_3', 'id': 37, 'sg_asset_type': 'Character', 'type': 'Asset'},\n             {'code': 'Raccoon', 'id': 45, 'sg_asset_type': 'Character', 'type': 'Asset'},\n             {'code': 'Wet Gopher', 'id': 149, 'sg_asset_type': 'Character', 'type': 'Asset'}]\n\n        You can drill through single entity links to filter on fields or display linked fields.\n        This is often called \"deep linking\" or using \"dot notation\".\n\n            .. seealso:: :ref:`filter_syntax`\n\n            >>> # Find Versions created by Tasks in the Animation Pipeline Step\n            >>> # -------------\n            >>> fields = ['id', 'code']\n            >>> pipeline_step_id = 2 # Animation Step ID\n            >>> project_id = 4 # Demo Project\n            >>> # you can drill through single-entity link fields\n            >>> filters = [\n            ...     ['project','is', {'type': 'Project','id': project_id}],\n            ...     ['sg_task.Task.step.Step.id', 'is', pipeline_step_id]\n            >>> ]\n            >>> sg.find(\"Version\", filters, fields)\n            [{'code': 'scene_010_anim_v001', 'id': 42, 'type': 'Version'},\n             {'code': 'scene_010_anim_v002', 'id': 134, 'type': 'Version'},\n             {'code': 'bird_v001', 'id': 137, 'type': 'Version'},\n             {'code': 'birdAltBlue_v002', 'id': 236, 'type': 'Version'}]\n\n        :param str entity_type: Shotgun entity type to find.\n        :param list filters: list of filters to apply to the query.\n\n            .. seealso:: :ref:`filter_syntax`, :ref:`combining-related-queries`\n\n        :param list fields: Optional list of fields to include in each entity record returned.\n            Defaults to ``[\"id\"]``.\n\n            .. seealso:: :ref:`combining-related-queries`\n\n        :param list order: Optional list of dictionaries defining how to order the results of the\n            query. Each dictionary contains the ``field_name`` to order by and  the ``direction``\n            to sort::\n\n                [\n                    {'field_name':'foo', 'direction':'asc'},\n                    {'field_name':'bar', 'direction':'desc'}\n                ]\n\n            Defaults to sorting by ``id`` in ascending order.\n        :param str filter_operator: Operator to apply to the filters. Supported values are ``\"all\"``\n            and ``\"any\"``. These are just another way of defining if the query is an AND or OR\n            query. Defaults to ``\"all\"``.\n        :param int limit: Optional limit to the number of entities to return. Defaults to ``0`` which\n            returns all entities that match.\n        :param int page: Optional page of results to return. Use this together with the ``limit``\n            parameter to control how your query results are paged. Defaults to ``0`` which returns\n            all entities that match.\n        :param bool retired_only: Optional boolean when ``True`` will return only entities that have\n            been retired. Defaults to ``False`` which returns only entities which have not been\n            retired. There is no option to return both retired and non-retired entities in the\n            same query.\n        :param bool include_archived_projects: Optional boolean flag to include entities whose projects\n            have been archived. Defaults to ``True``.\n        :param list additional_filter_presets: Optional list of presets to further filter the result\n            set, list has the form::\n\n                [{\n                    \"preset_name\": <preset_name>,\n                    <optional_param1>: <optional_value1>,\n                    ...\n                }]\n\n            Note that these filters are ANDed together and ANDed with the 'filter'\n            argument.\n\n            For details on supported presets and the format of this parameter see\n            :ref:`additional_filter_presets`\n        :returns: list of dictionaries representing each entity with the requested fields, and the\n            defaults ``\"id\"`` and ``\"type\"`` which are always included.\n\n            .. seealso:: :ref:`entity-fields`\n\n        :rtype: list\n        \"\"\"\n\n        if not isinstance(limit, int) or limit < 0:\n            raise ValueError(\"limit parameter must be a positive integer\")\n\n        if not isinstance(page, int) or page < 0:\n            raise ValueError(\"page parameter must be a positive integer\")\n\n        if isinstance(filters, (list, tuple)):\n            filters = _translate_filters(filters, filter_operator)\n        elif filter_operator:\n            # TODO: Not sure if this test is correct, replicated from prev api\n            raise ShotgunError(\n                \"Deprecated: Use of filter_operator for find() is not valid any more.\"\n                \" See the documentation on find()\"\n            )\n\n        if not include_archived_projects:\n            # This defaults to True on the server (no argument is sent)\n            # So we only need to check the server version if it is False\n            self.server_caps.ensure_include_archived_projects()\n\n        if additional_filter_presets:\n            self.server_caps.ensure_support_for_additional_filter_presets()\n\n        params = self._construct_read_parameters(\n            entity_type,\n            fields,\n            filters,\n            retired_only,\n            order,\n            include_archived_projects,\n            additional_filter_presets,\n        )\n\n        if self.server_caps.ensure_return_image_urls_support():\n            params[\"api_return_image_urls\"] = True\n\n        if self.server_caps.ensure_paging_info_without_counts_support():\n            paging_info_param = \"return_paging_info_without_counts\"\n        else:\n            paging_info_param = \"return_paging_info\"\n\n        params[paging_info_param] = False\n\n        if limit and limit <= self.config.records_per_page:\n            params[\"paging\"][\"entities_per_page\"] = limit\n            # If page isn't set and the limit doesn't require pagination,\n            # then trigger the faster code path.\n            if page == 0:\n                page = 1\n\n        # if page is specified, then only return the page of records requested\n        if page != 0:\n            params[\"paging\"][\"current_page\"] = page\n            records = self._call_rpc(\"read\", params).get(\"entities\", [])\n            return self._parse_records(records)\n\n        params[paging_info_param] = True\n        records = []\n\n        if self.server_caps.ensure_paging_info_without_counts_support():\n            has_next_page = True\n            while has_next_page:\n                result = self._call_rpc(\"read\", params)\n                records.extend(result.get(\"entities\"))\n\n                if limit and len(records) >= limit:\n                    records = records[:limit]\n                    break\n\n                has_next_page = result[\"paging_info\"][\"has_next_page\"]\n                params[\"paging\"][\"current_page\"] += 1\n        else:\n            result = self._call_rpc(\"read\", params)\n            while result.get(\"entities\"):\n                records.extend(result.get(\"entities\"))\n\n                if limit and len(records) >= limit:\n                    records = records[:limit]\n                    break\n                if len(records) == result[\"paging_info\"][\"entity_count\"]:\n                    break\n\n                params[\"paging\"][\"current_page\"] += 1\n                result = self._call_rpc(\"read\", params)\n\n        return self._parse_records(records)\n\n    def _construct_read_parameters(\n        self,\n        entity_type: str,\n        fields: Optional[List[str]],\n        filters: Dict[str, Any],\n        retired_only: bool,\n        order: Optional[List[Dict[str, Any]]],\n        include_archived_projects: bool,\n        additional_filter_presets: Optional[List[Dict[str, Any]]],\n    ) -> Dict[str, Any]:\n        params: Dict[str, Any] = {}\n        params[\"type\"] = entity_type\n        params[\"return_fields\"] = fields or [\"id\"]\n        params[\"filters\"] = filters\n        params[\"return_only\"] = (retired_only and \"retired\") or \"active\"\n        params[\"paging\"] = {\n            \"entities_per_page\": self.config.records_per_page,\n            \"current_page\": 1,\n        }\n\n        if additional_filter_presets:\n            params[\"additional_filter_presets\"] = additional_filter_presets\n\n        if include_archived_projects is False:\n            # Defaults to True on the server, so only pass it if it's False\n            params[\"include_archived_projects\"] = False\n\n        if order:\n            sort_list = []\n            for sort in order:\n                if \"column\" in sort:\n                    # TODO: warn about deprecation of 'column' param name\n                    sort[\"field_name\"] = sort[\"column\"]\n                sort.setdefault(\"direction\", \"asc\")\n                sort_list.append(\n                    {\"field_name\": sort[\"field_name\"], \"direction\": sort[\"direction\"]}\n                )\n            params[\"sorts\"] = sort_list\n        return params\n\n    def _add_project_param(\n        self, params: Dict[str, Any], project_entity\n    ) -> Dict[str, Any]:\n\n        if project_entity and self.server_caps.ensure_per_project_customization():\n            params[\"project\"] = project_entity\n\n        return params\n\n    def _translate_update_params(\n        self,\n        entity_type: str,\n        entity_id: int,\n        data: Dict,\n        multi_entity_update_modes: Optional[Dict],\n    ) -> Dict[str, Any]:\n        global SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION\n\n        def optimize_field(field_dict):\n            if SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION:\n                return field_dict\n            return {k: _optimize_filter_field(v) for k, v in field_dict.items()}\n\n        full_fields = self._dict_to_list(\n            data,\n            extra_data=self._dict_to_extra_data(\n                multi_entity_update_modes, \"multi_entity_update_mode\"\n            ),\n        )\n        return {\n            \"type\": entity_type,\n            \"id\": entity_id,\n            \"fields\": [optimize_field(field_dict) for field_dict in full_fields],\n        }\n\n    def summarize(\n        self,\n        entity_type: str,\n        filters: Union[List, Dict[str, Any]],\n        summary_fields: List[Dict[str, str]],\n        filter_operator: Optional[str] = None,\n        grouping: Optional[List[GroupingItem]] = None,\n        include_archived_projects: bool = True,\n    ) -> Dict[str, Any]:\n        \"\"\"\n        Summarize field data returned by a query.\n\n        This provides the same functionality as the summaries in the UI. You can specify one or\n        more fields to summarize, choose the summary type for each, and optionally group the\n        results which will return summary information for each group as well as the total for\n        the query.\n\n        **Example: Count all Assets for a Project**\n\n        >>> sg.summarize(entity_type='Asset',\n        ...              filters = [['project', 'is', {'type':'Project', 'id':4}]],\n        ...              summary_fields=[{'field':'id', 'type':'count'}])\n        {'groups': [], 'summaries': {'id': 15}}\n\n        ``summaries`` contains the total summary for the query. Each key is the field summarized\n        and the value is the result of the summary operation for the entire result set.\n\n        .. note::\n            You cannot perform more than one summary on a field at a time, but you can summarize\n            several different fields in the same call.\n\n        **Example: Count all Assets for a Project, grouped by sg_asset_type**\n\n        >>> sg.summarize(entity_type='Asset',\n        ...              filters=[['project', 'is', {'type': 'Project', 'id': 4}]],\n        ...              summary_fields=[{'field': 'id', 'type': 'count'}],\n        ...              grouping=[{'field': 'sg_asset_type', 'type': 'exact', 'direction': 'asc'}])\n        {'groups': [{'group_name': 'Character','group_value': 'Character', 'summaries': {'id': 3}},\n                    {'group_name': 'Environment','group_value': 'Environment', 'summaries': {'id': 3}},\n                    {'group_name': 'Matte Painting', 'group_value': 'Matte Painting', 'summaries': {'id': 1}},\n                    {'group_name': 'Prop', 'group_value': 'Prop', 'summaries': {'id': 4}},\n                    {'group_name': 'Vehicle', 'group_value': 'Vehicle', 'summaries': {'id': 4}}],\n         'summaries': {'id': 15}}\n\n        - ``summaries`` contains the total summary for the query.\n        - ``groups`` contains the summary for each group.\n\n            - ``group_name`` is the display name for the group.\n            - ``group_value`` is the actual value of the grouping value. This is often the same as\n              ``group_name`` but in the case when grouping by entity, the ``group_name`` may be\n              ``PuppyA`` and the group_value would be\n              ``{'type':'Asset','id':922,'name':'PuppyA'}``.\n            - ``summaries`` contains the summary calculation dict for each field requested.\n\n        **Example: Count all Tasks for a Sequence and find the latest due_date**\n\n        >>> sg.summarize(entity_type='Task',\n        ...              filters = [\n        ...                 ['entity.Shot.sg_sequence', 'is', {'type':'Sequence', 'id':2}],\n        ...                 ['sg_status_list', 'is_not', 'na']],\n        ...              summary_fields=[{'field':'id', 'type':'count'},\n        ...                              {'field':'due_date','type':'latest'}])\n        {'groups': [], 'summaries': {'due_date': '2013-07-05', 'id': 30}}\n\n        This shows that the there are 30 Tasks for Shots in the Sequence and the latest ``due_date``\n        of any Task is ``2013-07-05``.\n\n        **Example: Count all Tasks for a Sequence, find the latest due_date and group by Shot**\n\n        >>> sg.summarize(entity_type='Task',\n        ...              filters = [\n        ...                 ['entity.Shot.sg_sequence', 'is', {'type': 'Sequence', 'id': 2}],\n        ...                 ['sg_status_list', 'is_not', 'na']],\n        ...              summary_fields=[{'field': 'id', 'type': 'count'}, {'field': 'due_date', 'type': 'latest'}],\n        ...              grouping=[{'field': 'entity', 'type': 'exact', 'direction': 'asc'}]))\n        {'groups': [{'group_name': 'shot_010',\n                     'group_value': {'id': 2, 'name': 'shot_010', 'type': 'Shot', 'valid': 'valid'},\n                     'summaries': {'due_date': '2013-06-18', 'id': 10}},\n                    {'group_name': 'shot_020',\n                     'group_value': {'id': 3, 'name': 'shot_020', 'type': 'Shot', 'valid': 'valid'},\n                     'summaries': {'due_date': '2013-06-28', 'id': 10}},\n                    {'group_name': 'shot_030',\n                     'group_value': {'id': 4, 'name': 'shot_030', 'type': 'Shot', 'valid': 'valid'},\n                     'summaries': {'due_date': '2013-07-05', 'id': 10}}],\n         'summaries': {'due_date': '2013-07-05', 'id': 30}}\n\n        This shows that the there are 30 Tasks for Shots in the Sequence and the latest ``due_date``\n        of any Task is ``2013-07-05``. Because the summary is grouped by ``entity``, we can also\n        see the summaries for each Shot returned. Each Shot has 10 Tasks and the latest ``due_date``\n        for each Shot. The difference between ``group_name`` and ``group_value`` is highlighted in\n        this example as the name of the Shot is different from its value.\n\n        **Example: Count all Tasks for a Sequence, find the latest due_date, group by Shot and\n        Pipeline Step**\n\n        >>> sg.summarize(entity_type='Task',\n        ...                 filters = [\n        ...                    ['entity.Shot.sg_sequence', 'is', {'type': 'Sequence', 'id': 2}],\n        ...                    ['sg_status_list', 'is_not', 'na']],\n        ...                 summary_fields=[{'field': 'id', 'type': 'count'},\n        ...                                 {'field': 'due_date', 'type': 'latest'}],\n        ...                 grouping=[{'field': 'entity', 'type': 'exact', 'direction': 'asc'},\n        ...                           {'field': 'step', 'type': 'exact', 'direction': 'asc'}])\n        {'groups': [{'group_name': 'shot_010',\n                     'group_value': {'id': 2, 'name': 'shot_010', 'type': 'Shot', 'valid': 'valid'},\n                     'groups': [{'group_name': 'Client',\n                                 'group_value': {'id': 1, 'name': 'Client', 'type': 'Step', 'valid': 'valid'},\n                                 'summaries': {'due_date': '2013-05-04', 'id': 1}},\n                                {'group_name': 'Online',\n                                 'group_value': {'id': 2, 'name': 'Online', 'type': 'Step', 'valid': 'valid'},\n                                 'summaries': {'due_date': '2013-05-05', 'id': 1}},\n                                ...\n                                ... truncated for brevity\n                                ...\n                                {'group_name': 'Comp',\n                                 'group_value': {'id': 8, 'name': 'Comp', 'type': 'Step', 'valid': 'valid'},\n                                 'summaries': {'due_date': '2013-06-18', 'id': 1}}],\n                     'summaries': {'due_date': '2013-06-18', 'id': 10}},\n                    {'group_name': 'shot_020',\n                     'group_value': {'id': 3, 'name': 'shot_020', 'type': 'Shot', 'valid': 'valid'},\n                     'groups': [{'group_name': 'Client',\n                                 'group_value': {'id': 1, 'name': 'Client', 'type': 'Step', 'valid': 'valid'},\n                                 'summaries': {'due_date': '2013-05-15', 'id': 1}},\n                                {'group_name': 'Online',\n                                 'group_value': {'id': 2, 'name': 'Online', 'type': 'Step', 'valid': 'valid'},\n                                 'summaries': {'due_date': '2013-05-16', 'id': 1}},\n                                ...\n                                ... truncated for brevity\n                                ...\n                                {'group_name': 'Comp',\n                                 'group_value': {'id': 8, 'name': 'Comp', 'type': 'Step', 'valid': 'valid'},\n                                 'summaries': {'due_date': '2013-06-28', 'id': 1}}],\n                     'summaries': {'due_date': '2013-06-28', 'id': 10}},\n                    {'group_name': 'shot_030',\n                     'group_value': {'id': 4, 'name': 'shot_030', 'type': 'Shot', 'valid': 'valid'},\n                     'groups': [{'group_name': 'Client',\n                                 'group_value': {'id': 1, 'name': 'Client', 'type': 'Step', 'valid': 'valid'},\n                                 'summaries': {'due_date': '2013-05-20', 'id': 1}},\n                                {'group_name': 'Online',\n                                 'group_value': {'id': 2, 'name': 'Online', 'type': 'Step', 'valid': 'valid'},\n                                 'summaries': {'due_date': '2013-05-21', 'id': 1}},\n                                ...\n                                ... truncated for brevity\n                                ...\n                                {'group_name': 'Comp',\n                                 'group_value': {'id': 8, 'name': 'Comp', 'type': 'Step', 'valid': 'valid'},\n                                 'summaries': {'due_date': '2013-07-05', 'id': 1}}],\n                     'summaries': {'due_date': '2013-07-05', 'id': 10}}],\n        'summaries': {'due_date': '2013-07-05', 'id': 30}}\n\n        When grouping my more than one field, the grouping structure is repeated for each sub-group\n        and summary values are returned for each group on each level.\n\n        :param str entity_type: The entity type to summarize\n        :param list filters: A list of conditions used to filter the find query. Uses the same\n            syntax as :meth:`~shotgun_api3.Shotgun.find` method.\n        :param list summary_fields: A list of dictionaries with the following keys:\n\n            :field: The internal Shotgun field name you are summarizing.\n            :type: The type of summary you are performing on the field. Summary types can be any of\n                ``record_count``, ``count``, ``sum``, ``maximum``, ``minimum``, ``average``,\n                ``earliest``, ``latest``, ``percentage``, ``status_percentage``, ``status_list``,\n                ``checked``, ``unchecked`` depending on the type of field you're summarizing.\n\n        :param str filter_operator: Operator to apply to the filters. Supported values are ``\"all\"``\n            and ``\"any\"``. These are just another way of defining if the query is an AND or OR\n            query. Defaults to ``\"all\"``.\n        :param list grouping: Optional list of dicts with the following keys:\n\n                :field: a string indicating the internal Shotgun field name on ``entity_type`` to\n                    group results by.\n                :type: A string indicating the type of grouping to perform for each group.\n                    Valid types depend on the type of field you are grouping on and can be one of\n                    ``exact``, ``tens``, ``hundreds``, ``thousands``, ``tensofthousands``,\n                    ``hundredsofthousands``, ``millions``, ``day``, ``week``, ``month``,\n                    ``quarter``,``year``, ``clustered_date``, ``oneday``, ``fivedays``,\n                    ``entitytype``, ``firstletter``.\n                :direction: A string that sets the order to display the grouped results. Valid\n                    options are ``asc`` and  ``desc``. Defaults to ``asc``.\n\n        :returns: dictionary containing grouping and summaries keys.\n        :rtype: dict\n        \"\"\"\n\n        if not isinstance(grouping, list) and grouping is not None:\n            msg = \"summarize() 'grouping' parameter must be a list or None\"\n            raise ValueError(msg)\n\n        if isinstance(filters, (list, tuple)):\n            filters = _translate_filters(filters, filter_operator)\n\n        if not include_archived_projects:\n            # This defaults to True on the server (no argument is sent)\n            # So we only need to check the server version if it is False\n            self.server_caps.ensure_include_archived_projects()\n\n        params = {\"type\": entity_type, \"summaries\": summary_fields, \"filters\": filters}\n\n        if include_archived_projects is False:\n            # Defaults to True on the server, so only pass it if it's False\n            params[\"include_archived_projects\"] = False\n\n        if grouping is not None:\n            params[\"grouping\"] = grouping\n\n        records = self._call_rpc(\"summarize\", params)\n        return records\n\n    def create(\n        self,\n        entity_type: str,\n        data: Dict[str, Any],\n        return_fields: Optional[List[str]] = None,\n    ) -> Dict[str, Any]:\n        \"\"\"\n        Create a new entity of the specified ``entity_type``.\n\n            >>> data = {\n            ...     \"project\": {\"type\": \"Project\", \"id\": 161},\n            ...     \"sg_sequence\": {\"type\": \"Sequence\", \"id\": 109},\n            ...     \"code\": \"001_100\",\n            ...     'sg_status_list': \"ip\"\n            ... }\n            >>> sg.create('Shot', data)\n            {'code': '001_100',\n             'id': 2557,\n             'project': {'id': 161, 'name': 'Pied Piper', 'type': 'Project'},\n             'sg_sequence': {'id': 109, 'name': 'Sequence 001', 'type': 'Sequence'},\n             'sg_status_list': 'ip',\n             'type': 'Shot'}\n\n        :param str entity_type: Shotgun entity type to create.\n        :param dict data: Dictionary of fields and corresponding values to set on the new entity. If\n            ``image`` or ``filmstrip_image`` fields are provided, the file path will be uploaded\n            to the server automatically.\n        :param list return_fields: Optional list of additional field values to return from the new\n            entity. Defaults to ``id`` field.\n\n            .. seealso:: :ref:`combining-related-queries`\n\n        :returns: Shotgun entity dictionary containing the field/value pairs of all of the fields\n            set from the ``data`` parameter as well as the defaults ``type`` and ``id``. If any\n            additional fields were provided using the ``return_fields`` parameter, these would be\n            included as well.\n\n            .. seealso:: :ref:`entity-fields`\n\n        :rtype: dict\n        \"\"\"\n\n        data = data.copy()\n        if not return_fields:\n            return_fields = [\"id\"]\n\n        upload_image = None\n        if \"image\" in data:\n            upload_image = data.pop(\"image\")\n\n        upload_filmstrip_image = None\n        if \"filmstrip_image\" in data:\n            if not self.server_caps.version or self.server_caps.version < (3, 1, 0):\n                raise ShotgunError(\n                    \"Filmstrip thumbnail support requires server version 3.1 or \"\n                    \"higher, server is %s\" % (self.server_caps.version,)\n                )\n            upload_filmstrip_image = data.pop(\"filmstrip_image\")\n\n        params = {\n            \"type\": entity_type,\n            \"fields\": self._dict_to_list(data),\n            \"return_fields\": return_fields,\n        }\n\n        record = self._call_rpc(\"create\", params, first=True)\n        result = self._parse_records(record)[0]\n\n        if upload_image:\n            self.upload_thumbnail(entity_type, result[\"id\"], upload_image)\n            image = self.find_one(\n                entity_type, [[\"id\", \"is\", result.get(\"id\")]], fields=[\"image\"]\n            )\n            result[\"image\"] = image.get(\"image\")\n\n        if upload_filmstrip_image:\n            self.upload_filmstrip_thumbnail(\n                entity_type, result[\"id\"], upload_filmstrip_image\n            )\n            filmstrip = self.find_one(\n                entity_type,\n                [[\"id\", \"is\", result.get(\"id\")]],\n                fields=[\"filmstrip_image\"],\n            )\n            result[\"filmstrip_image\"] = filmstrip.get(\"filmstrip_image\")\n\n        return result\n\n    def update(\n        self,\n        entity_type: str,\n        entity_id: int,\n        data: Dict[str, Any],\n        multi_entity_update_modes: Optional[Dict[str, Any]] = None,\n    ) -> BaseEntity:\n        \"\"\"\n        Update the specified entity with the supplied data.\n\n        >>> shots = [\n        ...    {'type':'Shot', 'id':'40435'},\n        ...    {'type':'Shot', 'id':'40438'},\n        ...    {'type':'Shot', 'id':'40441'}]\n        >>> data = {\n        ...    'shots': shots_asset_is_in,\n        ...    'sg_status_list':'rev'}\n        >>> sg.update(\"Asset\", 55, data)\n        {'type': 'Shot',\n         'id': 55,\n         'sg_status_`list`': 'rev',\n         'shots': [{'id': 40435, 'name': '100_010', 'type': 'Shot', 'valid': 'valid'},\n                   {'id': 40438, 'name': '100_040', 'type': 'Shot', 'valid': 'valid'},\n                   {'id': 40441, 'name': '100_070', 'type': 'Shot', 'valid': 'valid'}]\n        }\n\n        :param str entity_type: Entity type to update.\n        :param id entity_id: id of the entity to update.\n        :param dict data: key/value pairs where key is the field name and value is the value to set\n            for that field. This method does not restrict the updating of fields hidden in the web\n            UI via the Project Tracking Settings panel.\n        :param dict multi_entity_update_modes: Optional dict indicating what update mode to use\n            when updating a multi-entity link field. The keys in the dict are the fields to set\n            the mode for, and the values from the dict are one of ``set``, ``add``, or ``remove``.\n            Defaults to ``set``.\n            ::\n\n                multi_entity_update_modes={\"shots\": \"add\", \"assets\": \"remove\"}\n\n        :returns: Dictionary of the fields updated, with the default keys `type` and `id` added as well.\n        :rtype: dict\n        \"\"\"\n\n        data = data.copy()\n        upload_image = None\n        if \"image\" in data and data[\"image\"] is not None:\n            upload_image = data.pop(\"image\")\n        upload_filmstrip_image = None\n        if \"filmstrip_image\" in data:\n            if not self.server_caps.version or self.server_caps.version < (3, 1, 0):\n                raise ShotgunError(\n                    \"Filmstrip thumbnail support requires server version 3.1 or \"\n                    \"higher, server is %s\" % (self.server_caps.version,)\n                )\n            upload_filmstrip_image = data.pop(\"filmstrip_image\")\n\n        if data:\n            params = self._translate_update_params(\n                entity_type, entity_id, data, multi_entity_update_modes\n            )\n            record = self._call_rpc(\"update\", params)\n            result = self._parse_records(record)[0]\n        else:\n            result = {\"id\": entity_id, \"type\": entity_type}\n\n        if upload_image:\n            self.upload_thumbnail(entity_type, entity_id, upload_image)\n            image = self.find_one(\n                entity_type, [[\"id\", \"is\", result.get(\"id\")]], fields=[\"image\"]\n            )\n            result[\"image\"] = image.get(\"image\")\n\n        if upload_filmstrip_image:\n            self.upload_filmstrip_thumbnail(\n                entity_type, result[\"id\"], upload_filmstrip_image\n            )\n            filmstrip = self.find_one(\n                entity_type,\n                [[\"id\", \"is\", result.get(\"id\")]],\n                fields=[\"filmstrip_image\"],\n            )\n            result[\"filmstrip_image\"] = filmstrip.get(\"filmstrip_image\")\n\n        return result\n\n    def delete(self, entity_type: str, entity_id: int) -> bool:\n        \"\"\"\n        Retire the specified entity.\n\n        Entities in Shotgun are not \"deleted\" destructively, they are instead, \"retired\". This\n        means they are placed in the trash where they are no longer accessible to users.\n\n        The entity can be brought back to life using :meth:`~shotgun_api3.Shotgun.revive`.\n\n            >>> sg.delete(\"Shot\", 2557)\n            True\n\n        :param str entity_type: Shotgun entity type to delete.\n        :param id entity_id: ``id`` of the entity to delete.\n        :returns: ``True`` if the entity was deleted, ``False`` otherwise (for example, if the\n            entity was already deleted).\n        :rtype: bool\n        :raises: :class:`Fault` if entity does not exist (deleted or not).\n        \"\"\"\n\n        params = {\"type\": entity_type, \"id\": entity_id}\n\n        return self._call_rpc(\"delete\", params)\n\n    def revive(self, entity_type: str, entity_id: int) -> bool:\n        \"\"\"\n        Revive an entity that has previously been deleted.\n\n        >>> sg.revive(\"Shot\", 860)\n        True\n\n        :param str entity_type: Shotgun entity type to revive.\n        :param int entity_id: id of the entity to revive.\n        :returns: ``True`` if the entity was revived, ``False`` otherwise (e.g. if the\n            entity is not currently retired).\n        :rtype: bool\n        \"\"\"\n\n        params = {\"type\": entity_type, \"id\": entity_id}\n\n        return self._call_rpc(\"revive\", params)\n\n    def batch(self, requests: List[Dict[str, Any]]) -> List[Dict[str, Any]]:\n        \"\"\"\n        Make a batch request of several :meth:`~shotgun_api3.Shotgun.create`,\n        :meth:`~shotgun_api3.Shotgun.update`, and :meth:`~shotgun_api3.Shotgun.delete` calls.\n\n        All requests are performed within a transaction, so either all will complete or none will.\n\n        Ex. Make a bunch of shots::\n\n            batch_data = []\n            for i in range(1,100):\n                data = {\n                    \"code\": \"shot_%04d\" % i,\n                    \"project\": project\n                }\n                batch_data.append({\"request_type\": \"create\", \"entity_type\": \"Shot\", \"data\": data})\n            sg.batch(batch_data)\n\n        Example output::\n\n             [{'code': 'shot_0001',\n               'type': 'Shot',\n               'id': 3624,\n               'project': {'id': 4, 'name': 'Demo Project', 'type': 'Project'}},\n              ...\n              ... and a bunch more ...\n              ...\n              {'code': 'shot_0099',\n               'type': 'Shot',\n               'id': 3722,\n               'project': {'id': 4, 'name': 'Demo Project', 'type': 'Project'}}]\n\n        Ex. All three types of requests in one batch::\n\n            batch_data = [\n              {\"request_type\": \"create\", \"entity_type\": \"Shot\", \"data\": {\"code\": \"New Shot 1\", \"project\": project}},\n              {\"request_type\": \"update\", \"entity_type\": \"Shot\", \"entity_id\": 3624, \"data\": {\"code\": \"Changed 1\"}},\n              {\"request_type\": \"delete\", \"entity_type\": \"Shot\", \"entity_id\": 3624}\n            ]\n            sg.batch(batch_data)\n\n        Example output::\n\n             [{'code': 'New Shot 1', 'type': 'Shot', 'id': 3723,\n               'project': {'id': 4, 'name': 'Demo Project', 'type': 'Project'}},\n              {'code': 'Changed 1', 'type': 'Shot', 'id': 3624},\n              True]\n\n        :param list requests: A list of dict's of the form which have a request_type key and also\n            specifies:\n\n            - create: ``entity_type``, data dict of fields to set\n            - update: ``entity_type``, ``entity_id``, data dict of fields to set,\n                      and optionally ``multi_entity_update_modes``\n            - delete: ``entity_type`` and entity_id\n        :returns: A list of values for each operation. Create and update requests return a dict of\n            the fields updated. Delete requests return ``True`` if the entity was deleted.\n        :rtype: list\n        \"\"\"\n\n        if not isinstance(requests, list):\n            raise ShotgunError(\n                \"batch() expects a list.  Instead was sent a %s\" % type(requests)\n            )\n\n        # If we have no requests, just return an empty list immediately.\n        # Nothing to process means nothing to get results of.\n        if len(requests) == 0:\n            return []\n\n        calls = []\n\n        def _required_keys(message, required_keys, data):\n            missing = set(required_keys) - set(data.keys())\n            if missing:\n                raise ShotgunError(\n                    \"%s missing required key: %s. \"\n                    \"Value was: %s.\" % (message, \", \".join(missing), data)\n                )\n\n        for req in requests:\n            _required_keys(\"Batched request\", [\"request_type\", \"entity_type\"], req)\n            request_params = {\n                \"request_type\": req[\"request_type\"],\n                \"type\": req[\"entity_type\"],\n            }\n\n            if req[\"request_type\"] == \"create\":\n                _required_keys(\"Batched create request\", [\"data\"], req)\n                request_params[\"fields\"] = self._dict_to_list(req[\"data\"])\n                request_params[\"return_fields\"] = req.get(\"return_fields\") or [\"id\"]\n            elif req[\"request_type\"] == \"update\":\n                _required_keys(\"Batched update request\", [\"entity_id\", \"data\"], req)\n                request_params[\"id\"] = req[\"entity_id\"]\n                request_params[\"fields\"] = self._dict_to_list(\n                    req[\"data\"],\n                    extra_data=self._dict_to_extra_data(\n                        req.get(\"multi_entity_update_modes\"), \"multi_entity_update_mode\"\n                    ),\n                )\n                if \"multi_entity_update_mode\" in req:\n                    request_params[\"multi_entity_update_mode\"] = req[\n                        \"multi_entity_update_mode\"\n                    ]\n            elif req[\"request_type\"] == \"delete\":\n                _required_keys(\"Batched delete request\", [\"entity_id\"], req)\n                request_params[\"id\"] = req[\"entity_id\"]\n            else:\n                raise ShotgunError(\n                    \"Invalid request_type '%s' for batch\" % (req[\"request_type\"])\n                )\n            calls.append(request_params)\n        records = self._call_rpc(\"batch\", calls)\n        return self._parse_records(records)\n\n    def work_schedule_read(\n        self,\n        start_date: str,\n        end_date: str,\n        project: Optional[Dict[str, Any]] = None,\n        user: Optional[Dict[str, Any]] = None,\n    ) -> Dict[str, Any]:\n        \"\"\"\n        Return the work day rules for a given date range.\n\n        .. versionadded:: 3.0.9\n            Requires Shotgun server v3.2.0+\n\n        This returns the defined WorkDayRules between the ``start_date`` and ``end_date`` inclusive\n        as a dict where the key is the date and the value is another dict describing the rule for\n        that date.\n\n        Rules are represented by a dict with the following keys:\n\n        :description: the description entered into the work day rule exception if applicable.\n        :reason: one of six options:\n\n            - STUDIO_WORK_WEEK: standard studio schedule applies\n            - STUDIO_EXCEPTION: studio-wide exception applies\n            - PROJECT_WORK_WEEK: standard project schedule applies\n            - PROJECT_EXCEPTION: project-specific exception applies\n            - USER_WORK_WEEK: standard user work week applies\n            - USER_EXCEPTION: user-specific exception applies\n\n        :working: boolean indicating whether it is a \"working\" day or not.\n\n        >>> sg.work_schedule_read(\"2015-12-21\", \"2015-12-25\")\n        {'2015-12-21': {'description': None,\n                        'reason': 'STUDIO_WORK_WEEK',\n                        'working': True},\n         '2015-12-22': {'description': None,\n                        'reason': 'STUDIO_WORK_WEEK',\n                        'working': True},\n         '2015-12-23': {'description': None,\n                        'reason': 'STUDIO_WORK_WEEK',\n                        'working': True},\n         '2015-12-24': {'description': 'Closed for Christmas Eve',\n                        'reason': 'STUDIO_EXCEPTION',\n                        'working': False},\n         '2015-12-25': {'description': 'Closed for Christmas',\n                        'reason': 'STUDIO_EXCEPTION',\n                        'working': False}}\n\n\n        :param str start_date: Start date of date range. ``YYYY-MM-DD``\n        :param str end_date: End date of date range. ``YYYY-MM-DD``\n        :param dict project: Optional Project entity to query `WorkDayRules` for.\n        :param dict user: Optional HumanUser entity to query WorkDayRules for.\n        :returns: Complex dict containing each date and the WorkDayRule defined for that date\n            between the ``start_date`` and ``end date`` inclusive. See above for details.\n        :rtype: dict\n        \"\"\"\n\n        if not self.server_caps.version or self.server_caps.version < (3, 2, 0):\n            raise ShotgunError(\n                \"Work schedule support requires server version 3.2 or \"\n                \"higher, server is %s\" % (self.server_caps.version,)\n            )\n\n        if not isinstance(start_date, str) or not isinstance(end_date, str):\n            raise ShotgunError(\n                \"The start_date and end_date arguments must be strings in YYYY-MM-DD format\"\n            )\n\n        params = dict(\n            start_date=start_date, end_date=end_date, project=project, user=user\n        )\n\n        return self._call_rpc(\"work_schedule_read\", params)\n\n    def work_schedule_update(\n        self,\n        date: str,\n        working: bool,\n        description: Optional[str] = None,\n        project: Optional[Dict[str, Any]] = None,\n        user: Optional[Dict[str, Any]] = None,\n        recalculate_field: Optional[str] = None,\n    ) -> Dict[str, Any]:\n        \"\"\"\n        Update the work schedule for a given date.\n\n        .. versionadded:: 3.0.9\n            Requires Shotgun server v3.2.0+\n\n        If neither ``project`` nor ``user`` are passed in, the studio work schedule will be updated.\n        ``project`` and ``user`` can only be used exclusively of each other.\n\n        >>> sg.work_schedule_update (\"2015-12-31\", working=False,\n        ...                          description=\"Studio closed for New Years Eve\", project=None,\n        ...                          user=None, recalculate_field=None)\n        {'date': '2015-12-31',\n         'description': \"Studio closed for New Years Eve\",\n         'project': None,\n         'user': None,\n         'working': False}\n\n        :param str date: Date of WorkDayRule to update. ``YYY-MM-DD``\n        :param bool working: Indicates whether the day is a working day or not.\n        :param str description: Optional reason for time off.\n        :param dict project: Optional Project entity to assign the rule to. Cannot be used with the\n            ``user`` param.\n        :param dict user: Optional HumanUser entity to assign the rule to. Cannot be used with the\n            ``project`` param.\n        :param str recalculate_field: Optional schedule field that will be recalculated on Tasks\n            when they are affected by a change in working schedule. Options are ``due_date`` or\n            ``duration``. Defaults to the value set in the Shotgun web application's Site\n            Preferences.\n        :returns: dict containing key/value pairs for each value of the work day rule updated.\n        :rtype: dict\n        \"\"\"\n\n        if not self.server_caps.version or self.server_caps.version < (3, 2, 0):\n            raise ShotgunError(\n                \"Work schedule support requires server version 3.2 or \"\n                \"higher, server is %s\" % (self.server_caps.version,)\n            )\n\n        if not isinstance(date, str):\n            raise ShotgunError(\"The date argument must be string in YYYY-MM-DD format\")\n\n        params = dict(\n            date=date,\n            working=working,\n            description=description,\n            project=project,\n            user=user,\n            recalculate_field=recalculate_field,\n        )\n\n        return self._call_rpc(\"work_schedule_update\", params)\n\n    def export_page(self, page_id, format, layout_name=None):\n        \"\"\"\n        Export the specified page to the given format.\n\n        This method allows you to export a page to CSV.\n\n        Respective layout or page should be marked as API Exportable in the Flow Production Tracking UI.\n\n        If ``layout_name`` is not passed in, the default layout name will be used.\n\n        For more information, see `documentation <https://help.autodesk.com/view/SGSUB/ENU/?guid=SG_Tutorials_tu_export_csv_html#enable-api-export-for-a-page>`_ .\n\n            >>> sg.export_page(12345, \"csv\", layout_name=\"My Layout\")\n            \"ID,Name,Status\\\\n1,Shot 001,ip\\\\n2,    Shot 002,rev\\\\n\"\n            >>> sg.export_page(12345, \"csv\")\n            \"ID,Name,Status\\\\n1,Shot 001,ip\\\\n2,Shot 002,rev\\\\n\"\n\n        :param int page_id: The ID of the page to export.\n        :param str format: The format to export the page to. Supported format is ``\"csv\"``.\n        :param str layout_name: Optional layout name. This should be the name of the layout seen in the Flow Production Tracking UI.\n        :returns: string containing data of the given page.\n        :rtype: string\n        \"\"\"\n\n        params = dict(format=format, page_id=page_id, layout_name=layout_name)\n\n        return self._call_rpc(\"export_page\", params)\n\n    def follow(self, user: Dict[str, Any], entity: Dict[str, Any]) -> Dict[str, Any]:\n        \"\"\"\n        Add the entity to the user's followed entities.\n\n        If the user is already following the entity, the method will succeed but nothing will be\n        changed on the server-side.\n\n            >>> sg.follow({\"type\": \"HumanUser\", \"id\": 42}, {\"type\": \"Shot\", \"id\": 2050})\n            {'followed': True, 'user': {'type': 'HumanUser', 'id': 42},\n             'entity': {'type': 'Shot', 'id': 2050}}\n\n        :param dict user: User entity that will follow the entity.\n        :param dict entity: Shotgun entity to be followed.\n        :returns: dict with ``\"followed\": True`` as well as key/values for the params that were\n            passed in.\n        :rtype: dict\n        \"\"\"\n\n        if not self.server_caps.version or self.server_caps.version < (5, 1, 22):\n            raise ShotgunError(\n                \"Follow support requires server version 5.2 or \"\n                \"higher, server is %s\" % (self.server_caps.version,)\n            )\n\n        params = dict(user=user, entity=entity)\n\n        return self._call_rpc(\"follow\", params)\n\n    def unfollow(self, user: Dict[str, Any], entity: Dict[str, Any]) -> Dict[str, Any]:\n        \"\"\"\n        Remove entity from the user's followed entities.\n\n        This does nothing if the user is not following the entity.\n\n        >>> sg.unfollow({\"type\": \"HumanUser\", \"id\": 42}, {\"type\": \"Shot\", \"id\": 2050})\n        {'entity': {'type': 'Shot', 'id': 2050}, 'user': {'type': 'HumanUser', 'id': 42},\n         'unfollowed': True}\n\n        :param dict user: User entity that will unfollow the entity.\n        :param dict entity: Entity to be unfollowed\n        :returns: dict with ``\"unfollowed\": True`` as well as key/values for the params that were\n            passed in.\n        :rtype: dict\n        \"\"\"\n\n        if not self.server_caps.version or self.server_caps.version < (5, 1, 22):\n            raise ShotgunError(\n                \"Follow support requires server version 5.2 or \"\n                \"higher, server is %s\" % (self.server_caps.version,)\n            )\n\n        params = dict(user=user, entity=entity)\n\n        return self._call_rpc(\"unfollow\", params)\n\n    def followers(self, entity: Dict[str, Any]) -> List[Dict[str, Any]]:\n        \"\"\"\n        Return all followers for an entity.\n\n            >>> sg.followers({\"type\": \"Shot\", \"id\": 2050})\n            [{'status': 'act', 'valid': 'valid', 'type': 'HumanUser', 'name': 'Richard Hendriks',\n              'id': 42},\n             {'status': 'act', 'valid': 'valid', 'type': 'HumanUser', 'name': 'Bertram Gilfoyle',\n              'id': 33},\n             {'status': 'act', 'valid': 'valid', 'type': 'HumanUser', 'name': 'Dinesh Chugtai',\n              'id': 57}]\n\n        :param dict entity: Entity to find followers of.\n        :returns: list of dicts representing each user following the entity\n        :rtype: list\n        :versionadded:\n        \"\"\"\n\n        if not self.server_caps.version or self.server_caps.version < (5, 1, 22):\n            raise ShotgunError(\n                \"Follow support requires server version 5.2 or \"\n                \"higher, server is %s\" % (self.server_caps.version,)\n            )\n\n        params = dict(entity=entity)\n\n        return self._call_rpc(\"followers\", params)\n\n    def following(\n        self,\n        user: Dict[str, Any],\n        project: Optional[Dict[str, Any]] = None,\n        entity_type: Optional[str] = None,\n    ) -> List[BaseEntity]:\n        \"\"\"\n        Return all entity instances a user is following.\n\n        Optionally, a project and/or entity_type can be supplied to restrict returned results.\n\n            >>> user = {\"type\": \"HumanUser\", \"id\": 1234}\n            >>> project = {\"type\": \"Project\", \"id\": 1234}\n            >>> entity_type = \"Task\"\n            >>> sg.following(user, project=project, entity_type=entity_type)\n            [{\"type\":\"Task\", \"id\":1},\n             {\"type\":\"Task\", \"id\":2},\n             {\"type\":\"Task\", \"id\":3}]\n\n        :param dict user: Find what this person is following.\n        :param dict project: Optional filter to only return results from a specific project.\n        :param str entity_type: Optional filter to only return results from one entity type.\n        :returns: list of dictionaries, each containing entity type & id's being followed.\n        :rtype: list\n        \"\"\"\n\n        self.server_caps.ensure_user_following_support()\n\n        params = {\"user\": user}\n        if project:\n            params[\"project\"] = project\n        if entity_type:\n            params[\"entity_type\"] = entity_type\n\n        return self._call_rpc(\"following\", params)\n\n    def schema_entity_read(\n        self, project_entity: Optional[BaseEntity] = None\n    ) -> Dict[str, Dict[str, Any]]:\n        \"\"\"\n        Return all active entity types, their display names, and their visibility.\n\n        If the project parameter is specified, the schema visibility for the given project is\n        being returned. If the project parameter is omitted or set to ``None``, a full listing is\n        returned where per-project entity type visibility settings are not considered.\n\n        >>> sg.schema_entity_read()\n        {'ActionMenuItem': {'name': {'editable': False, 'value': 'Action Menu Item'},\n                            'visible': {'editable': False, 'value': True}},\n         'ApiUser': {'name': {'editable': False, 'value': 'Script'},\n                     'visible': {'editable': False, 'value': True}},\n         'AppWelcomeUserConnection': {'name': {'editable': False,\n                                               'value': 'App Welcome User Connection'},\n                                      'visible': {'editable': False, 'value': True}},\n         'Asset': {'name': {'editable': False, 'value': 'Asset'},\n                   'visible': {'editable': False, 'value': True}},\n         'AssetAssetConnection': {'name': {'editable': False,\n                                           'value': 'Asset Asset Connection'},\n                                  'visible': {'editable': False, 'value': True}},\n         '...'\n        }\n\n        :param dict project_entity: Optional Project entity specifying which project to return\n            the listing for. If omitted or set to ``None``, per-project visibility settings are\n            not taken into consideration and the global list is returned. Example:\n            ``{'type': 'Project', 'id': 3}``\n        :returns: dict of Entity Type to dict containing the display name.\n        :rtype: dict\n\n        .. note::\n            The returned display names for this method will be localized when the ``localize`` Shotgun config property is set to ``True``. See :ref:`localization` for more information.\n        \"\"\"\n\n        params: Dict[str, Any] = {}\n\n        params = self._add_project_param(params, project_entity)\n\n        if params:\n            return self._call_rpc(\"schema_entity_read\", params)\n        else:\n            return self._call_rpc(\"schema_entity_read\", None)\n\n    def schema_read(\n        self, project_entity: Optional[BaseEntity] = None\n    ) -> Dict[str, Dict[str, Any]]:\n        \"\"\"\n        Get the schema for all fields on all entities.\n\n        .. note::\n            If ``project_entity`` is not specified, everything is reported as visible.\n\n        >>> sg.schema_read()\n        {'ActionMenuItem': {'created_at': {'data_type': {'editable': False, 'value': 'date_time'},\n                                           'description': {'editable': True,  'value': ''},\n                                           'editable': {'editable': False, 'value': False},\n                                           'entity_type': {'editable': False, 'value': 'ActionMenuItem'},\n                                           'mandatory': {'editable': False, 'value': False},\n                                           'name': {'editable': True, 'value': 'Date Created'},\n                                           'properties': {'default_value': {'editable': False, 'value': None},\n                                                          'summary_default': {'editable': True, 'value': 'none'}},\n                                           'unique': {'editable': False, 'value': False},\n                                           'visible': {'editable': False, 'value': True}},\n                            'created_by': {'data_type': {'editable': False,'value': 'entity'},\n                                           'description': {'editable': True,'value': ''},\n                                           'editable': {'editable': False,'value': False},\n                                           'entity_type': {'editable': False,'value': 'ActionMenuItem'},\n                                           'mandatory': {'editable': False,'value': False},\n                                           'name': {'editable': True,'value': 'Created by'},\n                                           'properties': {'default_value': {'editable': False,'value': None},\n                                                          'summary_default': {'editable': True,'value': 'none'},\n                                                          'valid_types': {'editable': True,'value':\n                                                                          ['HumanUser','ApiUser']}},\n                                           'unique': {'editable': False,'value': False},\n                                           'visible': {'editable': False,'value': True}},\n                            ...\n                            ...\n         ...\n         ...\n         'Version': {'client_approved': {'data_type': {'editable': False,'value': 'checkbox'},\n                                         'description': {'editable': True,'value': ''},\n                                         'editable': {'editable': False,'value': True},\n                                         'entity_type': {'editable': False,'value': 'Version'},\n                                         'mandatory': {'editable': False,'value': False},\n                                         'name': {'editable': True,'value': 'Client Approved'},\n                                         'properties': {'default_value': {'editable': False,'value': False},\n                                                        'summary_default': {'editable': False,'value': 'none'}},\n                                         'unique': {'editable': False,'value': False},\n                                         'visible': {'editable': False,'value': True}},\n                     ...\n                     ...\n         ...\n         ...\n        }\n\n        :param dict project_entity: Optional, Project entity specifying which project to return\n            the listing for. If omitted or set to ``None``, per-project visibility settings are\n            not taken into consideration and the global list is returned. Example:\n            ``{'type': 'Project', 'id': 3}``. Defaults to ``None``.\n        :returns: A nested dict object containing a key/value pair for all fields of all entity\n            types. Properties that are ``'editable': True``, can be updated using the\n            :meth:`~shotgun_api3.Shotgun.schema_field_update` method.\n        :rtype: dict\n\n        .. note::\n            The returned display names for this method will be localized when the ``localize`` Shotgun config property is set to ``True``. See :ref:`localization` for more information.\n        \"\"\"\n\n        params: Dict[str, Any] = {}\n\n        params = self._add_project_param(params, project_entity)\n\n        if params:\n            return self._call_rpc(\"schema_read\", params)\n        else:\n            return self._call_rpc(\"schema_read\", None)\n\n    def schema_field_read(\n        self,\n        entity_type: str,\n        field_name: Optional[str] = None,\n        project_entity: Optional[BaseEntity] = None,\n    ) -> Dict[str, Dict[str, Any]]:\n        \"\"\"\n        Get schema for all fields on the specified entity type or just the field name specified\n        if provided.\n\n        .. note::\n            Unlike how the results of a :meth:`~shotgun_api3.Shotgun.find` can be pumped into a\n            :meth:`~shotgun_api3.Shotgun.create` or :meth:`~shotgun_api3.Shotgun.update`, the\n            results of :meth:`~shotgun_api3.Shotgun.schema_field_read` are not compatible with\n            the format used for :meth:`~shotgun_api3.Shotgun.schema_field_create` or\n            :meth:`~shotgun_api3.Shotgun.schema_field_update`. If you need to pipe the results\n            from :meth:`~shotgun_api3.Shotgun.schema_field_read` into a\n            :meth:`~shotgun_api3.Shotgun.schema_field_create` or\n            :meth:`~shotgun_api3.Shotgun.schema_field_update`, you will need to reformat the\n            data in your script.\n\n        .. note::\n            If you don't specify a ``project_entity``, everything is reported as visible.\n\n        .. note::\n            The returned display names for this method will be localized when the ``localize`` Shotgun config property is set to ``True``. See :ref:`localization` for more information.\n\n        >>> sg.schema_field_read('Asset', 'shots')\n        {'shots': {'data_type': {'editable': False, 'value': 'multi_entity'},\n                   'description': {'editable': True, 'value': ''},\n                   'editable': {'editable': False, 'value': True},\n                   'entity_type': {'editable': False, 'value': 'Asset'},\n                   'mandatory': {'editable': False, 'value': False},\n                   'name': {'editable': True, 'value': 'Shots'},\n                   'properties': {'default_value': {'editable': False,\n                                                    'value': None},\n                                  'summary_default': {'editable': True,\n                                                      'value': 'none'},\n                                  'valid_types': {'editable': True,\n                                                  'value': ['Shot']}},\n                   'unique': {'editable': False, 'value': False},\n                   'visible': {'editable': False, 'value': True}}}\n\n        :param str entity_type: Entity type to get the schema for.\n        :param str field_name: Optional internal Shotgun name of the field to get the schema\n            definition for. If this parameter is excluded or set to ``None``, data structures of\n            all fields will be returned. Defaults to ``None``. Example: ``sg_temp_field``.\n        :param dict project_entity: Optional Project entity specifying which project to return\n            the listing for. If omitted or set to ``None``, per-project visibility settings are\n            not taken into consideration and the global list is returned. Example:\n            ``{'type': 'Project', 'id': 3}``\n        :returns: a nested dict object containing a key/value pair for the ``field_name`` specified\n            and its properties, or if no field_name is specified, for all the fields of the\n            ``entity_type``. Properties that are ``'editable': True``, can be updated using the\n            :meth:`~shotgun_api3.Shotgun.schema_field_update` method.\n        :rtype: dict\n        \"\"\"\n\n        params = {\n            \"type\": entity_type,\n        }\n\n        if field_name:\n            params[\"field_name\"] = field_name\n\n        params = self._add_project_param(params, project_entity)\n\n        return self._call_rpc(\"schema_field_read\", params)\n\n    def schema_field_create(\n        self,\n        entity_type: str,\n        data_type: str,\n        display_name: str,\n        properties: Optional[Dict[str, Any]] = None,\n    ) -> str:\n        \"\"\"\n        Create a field for the specified entity type.\n\n        .. note::\n            If the internal Shotgun field name computed from the provided ``display_name`` already\n            exists, the internal Shotgun field name will automatically be appended with ``_1`` in\n            order to create a unique name. The integer suffix will be incremented by 1 until a\n            unique name is found.\n\n        >>> properties = {\"summary_default\": \"count\", \"description\": \"Complexity breakdown of Asset\"}\n        >>> sg.schema_field_create(\"Asset\", \"text\", \"Complexity\", properties)\n        'sg_complexity'\n\n        :param str entity_type: Entity type to add the field to.\n        :param str data_type: Shotgun data type for the new field.\n        :param str display_name: Specifies the display name of the field you are creating. The\n            system name will be created from this display name and returned upon successful\n            creation.\n        :param dict properties: Dict of valid properties for the new field. Use this to specify\n            other field properties such as the 'description' or 'summary_default'.\n        :returns: The internal Shotgun name for the new field, this is different to the\n            ``display_name`` parameter passed in.\n        :rtype: str\n        \"\"\"\n\n        params = {\n            \"type\": entity_type,\n            \"data_type\": data_type,\n            \"properties\": [{\"property_name\": \"name\", \"value\": display_name}],\n        }\n        params[\"properties\"].extend(\n            self._dict_to_list(properties, key_name=\"property_name\", value_name=\"value\")\n        )\n\n        return self._call_rpc(\"schema_field_create\", params)\n\n    def schema_field_update(\n        self,\n        entity_type: str,\n        field_name: str,\n        properties: Dict[str, Any],\n        project_entity: Optional[BaseEntity] = None,\n    ) -> bool:\n        \"\"\"\n        Update the properties for the specified field on an entity.\n\n        .. note::\n            Although the property name may be the key in a nested dictionary, like\n            'summary_default', it is treated no differently than keys that are up\n            one level, like 'description'.\n\n        >>> properties = {\"name\": \"Test Number Field Renamed\", \"summary_default\": \"sum\",\n        ...               \"description\": \"this is only a test\"}\n        >>> sg.schema_field_update(\"Asset\", \"sg_test_number\", properties)\n        True\n\n        :param str entity_type: Entity type of field to update.\n        :param str field_name: Internal Shotgun name of the field to update.\n        :param dict properties: Dictionary with key/value pairs where the key is the property to be\n            updated and the value is the new value.\n        :param dict project_entity: Optional Project entity specifying which project to modify the\n            ``visible`` property for. If ``visible`` is present in ``properties`` and\n            ``project_entity`` is not set, an exception will be raised. Example:\n            ``{'type': 'Project', 'id': 3}``\n        :returns: ``True`` if the field was updated.\n\n        .. note::\n            The ``project_entity`` parameter can only affect the state of the ``visible`` property\n            and has no impact on other properties.\n\n        :rtype: bool\n        \"\"\"\n\n        params = {\n            \"type\": entity_type,\n            \"field_name\": field_name,\n            \"properties\": [\n                {\"property_name\": k, \"value\": v} for k, v in (properties or {}).items()\n            ],\n        }\n        params = self._add_project_param(params, project_entity)\n        return self._call_rpc(\"schema_field_update\", params)\n\n    def schema_field_delete(self, entity_type: str, field_name: str) -> bool:\n        \"\"\"\n        Delete the specified field from the entity type.\n\n        >>> sg.schema_field_delete(\"Asset\", \"sg_temp_field\")\n        True\n\n        :param str entity_type: Entity type to delete the field from.\n        :param str field_name: Internal Shotgun name of the field to delete.\n        :returns: ``True`` if the field was deleted.\n        :rtype: bool\n        \"\"\"\n\n        params = {\"type\": entity_type, \"field_name\": field_name}\n\n        return self._call_rpc(\"schema_field_delete\", params)\n\n    def add_user_agent(self, agent: str) -> None:\n        \"\"\"\n        Add agent to the user-agent header.\n\n        Appends agent to the user-agent string sent with every API request.\n\n        >>> sg.add_user_agent(\"my_tool 1.0\")\n\n        :param str agent: string to append to user-agent.\n        \"\"\"\n        self._user_agents.append(agent)\n\n    def reset_user_agent(self) -> None:\n        \"\"\"\n        Reset user agent to the default value.\n\n        Example default user-agent::\n\n            shotgun-json (3.0.17); Python 2.6 (Mac); ssl OpenSSL 1.0.2d 9 Jul 2015 (validate)\n\n        \"\"\"\n        ua_platform = \"Unknown\"\n        if self.client_caps.platform is not None:\n            ua_platform = self.client_caps.platform.capitalize()\n\n        # create ssl validation string based on settings\n        self._user_agents = [\n            \"shotgun-json (%s)\" % __version__,\n            \"Python %s (%s)\" % (self.client_caps.py_version, ua_platform),\n            \"ssl %s\" % (self.client_caps.ssl_version),\n        ]\n\n    def set_session_uuid(self, session_uuid: str) -> None:\n        \"\"\"\n        Set the browser session_uuid in the current Shotgun API instance.\n\n        When this is set, any events generated by the API will include the ``session_uuid`` value\n        on the corresponding EventLogEntries. If there is a current browser session open with\n        this ``session_uuid``, the browser will display updates for these events.\n\n        >>> sg.set_session_uuid(\"5a1d49b0-0c69-11e0-a24c-003048d17544\")\n\n        :param str session_uuid: The uuid of the browser session to be updated.\n        \"\"\"\n\n        self.config.session_uuid = session_uuid\n        return\n\n    def share_thumbnail(\n        self,\n        entities: List[Dict[str, Any]],\n        thumbnail_path: Optional[str] = None,\n        source_entity: Optional[BaseEntity] = None,\n        filmstrip_thumbnail: bool = False,\n        **kwargs: Any,\n    ) -> int:\n        \"\"\"\n        Associate a thumbnail with more than one Shotgun entity.\n\n        .. versionadded:: 3.0.9\n            Requires Shotgun server v4.0.0+\n\n        Share the thumbnail from between entities without requiring uploading the thumbnail file\n        multiple times. You can use this in two ways:\n\n        1) Upload an image to set as the thumbnail on multiple entities.\n        2) Update multiple entities to point to an existing entity's thumbnail.\n\n        .. note::\n            When sharing a filmstrip thumbnail, it is required to have a static thumbnail in\n            place before the filmstrip will be displayed in the Shotgun web UI.\n            If the :ref:`thumbnail is still processing and is using a placeholder\n            <interpreting_image_field_strings>`, this method will error.\n\n        Simple use case:\n\n        >>> thumb = '/data/show/ne2/100_110/anim/01.mlk-02b.jpg'\n        >>> e = [{'type': 'Version', 'id': 123}, {'type': 'Version', 'id': 456}]\n        >>> sg.share_thumbnail(entities=e, thumbnail_path=thumb)\n        4271\n\n        >>> e = [{'type': 'Version', 'id': 123}, {'type': 'Version', 'id': 456}]\n        >>> sg.share_thumbnail(entities=e, source_entity={'type':'Version', 'id': 789})\n        4271\n\n        :param list entities: The entities to update to point to the shared  thumbnail provided in\n            standard entity dict format::\n\n                [{'type': 'Version', 'id': 123},\n                 {'type': 'Version', 'id': 456}]\n        :param str thumbnail_path: The full path to the local thumbnail file to upload and share.\n            Required if ``source_entity`` is not provided.\n        :param dict source_entity: The entity whos thumbnail will be the source for sharing.\n            Required if ``source_entity`` is not provided.\n        :param bool filmstrip_thumbnail: ``True`` to share the filmstrip thumbnail. ``False`` to\n            share the static thumbnail. Defaults to ``False``.\n        :returns: ``id`` of the Attachment entity representing the source thumbnail that is shared.\n        :rtype: int\n        :raises: :class:`ShotgunError` if not supported by server version or improperly called,\n            or :class:`ShotgunThumbnailNotReady` if thumbnail is still pending.\n        \"\"\"\n        if not self.server_caps.version or self.server_caps.version < (4, 0, 0):\n            raise ShotgunError(\n                \"Thumbnail sharing support requires server \"\n                \"version 4.0 or higher, server is %s\" % (self.server_caps.version,)\n            )\n\n        if not isinstance(entities, list) or len(entities) == 0:\n            raise ShotgunError(\n                \"'entities' parameter must be a list of entity \"\n                \"hashes and may not be empty\"\n            )\n\n        for e in entities:\n            if not isinstance(e, dict) or \"id\" not in e or \"type\" not in e:\n                raise ShotgunError(\n                    \"'entities' parameter must be a list of \"\n                    \"entity hashes with at least 'type' and 'id' keys.\\nInvalid \"\n                    \"entity: %s\" % e\n                )\n\n        if (not thumbnail_path and not source_entity) or (\n            thumbnail_path and source_entity\n        ):\n            raise ShotgunError(\n                \"You must supply either thumbnail_path OR source_entity.\"\n            )\n\n        # upload thumbnail\n        if thumbnail_path:\n            source_entity = entities.pop(0)\n            if filmstrip_thumbnail:\n                thumb_id = self.upload_filmstrip_thumbnail(\n                    source_entity[\"type\"], source_entity[\"id\"], thumbnail_path, **kwargs\n                )\n            else:\n                thumb_id = self.upload_thumbnail(\n                    source_entity[\"type\"], source_entity[\"id\"], thumbnail_path, **kwargs\n                )\n        else:\n            if (\n                not isinstance(source_entity, dict)\n                or \"id\" not in source_entity\n                or \"type\" not in source_entity\n            ):\n                raise ShotgunError(\n                    \"'source_entity' parameter must be a dict \"\n                    \"with at least 'type' and 'id' keys.\\nGot: %s (%s)\"\n                    % (source_entity, type(source_entity))\n                )\n\n        # only 1 entity in list and we already uploaded the thumbnail to it\n        if len(entities) == 0:\n            return thumb_id\n\n        # update entities with source_entity thumbnail\n        entities_str = []\n        for e in entities:\n            entities_str.append(\"%s_%s\" % (e[\"type\"], e[\"id\"]))\n        # format for post request\n        if filmstrip_thumbnail:\n            filmstrip_thumbnail = 1\n        params = {\n            \"entities\": \",\".join(entities_str),\n            \"source_entity\": \"%s_%s\" % (source_entity[\"type\"], source_entity[\"id\"]),\n            \"filmstrip_thumbnail\": filmstrip_thumbnail,\n        }\n\n        url = urllib.parse.urlunparse(\n            (\n                self.config.scheme,\n                self.config.server,\n                \"/upload/share_thumbnail\",\n                None,\n                None,\n                None,\n            )\n        )\n\n        result = self._send_form(url, params)\n\n        if result.startswith(\"1:\"):\n            # clearing thumbnail returns no attachment_id\n            try:\n                attachment_id = int(result.split(\":\", 2)[1].split(\"\\n\", 1)[0])\n            except ValueError:\n                attachment_id = None\n        elif result.startswith(\"2\"):\n            raise ShotgunThumbnailNotReady(\"Unable to share thumbnail: %s\" % result)\n        else:\n            raise ShotgunError(\"Unable to share thumbnail: %s\" % result)\n\n        return attachment_id\n\n    def upload_thumbnail(\n        self, entity_type: str, entity_id: int, path: str, **kwargs: Any\n    ) -> int:\n        \"\"\"\n        Upload a file from a local path and assign it as the thumbnail for the specified entity.\n\n        .. note::\n            Images will automatically be re-sized on the server to generate a size-appropriate image\n            file. However, the original file is retained as well and is accessible when you click\n            on the thumbnail image in the web UI. If you are using a local install of Shotgun and\n            have not enabled S3, this can eat up disk space if you're uploading really large source\n            images for your thumbnails.\n\n        You can un-set (aka clear) a thumbnail on an entity using the\n        :meth:`~shotgun_api3.Shotgun.update` method and setting the **image** field to ``None``.\n        This will also unset the ``filmstrip_thumbnail`` field if it is set.\n\n        Supported image file types include ``.jpg` and ``.png`` (preferred) but will also accept.\n        ``.gif```, ``.tif``, ``.tiff``, ``.bmp``, ``.exr``, ``.dpx``, and ``.tga``.\n\n        This method wraps over :meth:`~shotgun_api3.Shotgun.upload`. Additional keyword arguments\n        passed to this method will be forwarded to the :meth:`~shotgun_api3.Shotgun.upload` method.\n\n        :param str entity_type: Entity type to set the thumbnail for.\n        :param int entity_id: Id of the entity to set the thumbnail for.\n        :param str path: Full path to the thumbnail file on disk.\n        :returns: Id of the new attachment\n        :rtype: int\n        \"\"\"\n        return self.upload(\n            entity_type, entity_id, path, field_name=\"thumb_image\", **kwargs\n        )\n\n    def upload_filmstrip_thumbnail(\n        self, entity_type: str, entity_id: int, path: str, **kwargs: Any\n    ) -> int:\n        \"\"\"\n        Upload filmstrip thumbnail to specified entity.\n\n        .. versionadded:: 3.0.9\n            Requires Shotgun server v3.1.0+\n\n        Uploads a file from a local directory and assigns it as the filmstrip thumbnail for the\n        specified entity. The image must be a horizontal strip of any number of frames that are\n        exactly 240 pixels wide. Therefore the whole strip must be an exact multiple of 240 pixels\n        in width. The height can be anything (and will depend on the aspect ratio of the frames).\n        Any image file type that works for thumbnails will work for filmstrip thumbnails.\n\n        Filmstrip thumbnails will only be visible in the Thumbnail field on an entity if a\n        regular thumbnail image is also uploaded to the entity. The standard thumbnail is\n        displayed by default as the poster frame. Then, on hover, the filmstrip thumbnail is\n        displayed and updated based on your horizontal cursor position for scrubbing. On mouseout,\n        the default thumbnail is displayed again as the poster frame.\n\n        The url for a filmstrip thumbnail on an entity is available by querying for the\n        ``filmstrip_image field``.\n\n        You can un-set (aka clear) a thumbnail on an entity using the\n        :meth:`~shotgun_api3.Shotgun.update` method and setting the **image** field to ``None``.\n        This will also unset the ``filmstrip_thumbnail`` field if it is set.\n\n        This method wraps over :meth:`~shotgun_api3.Shotgun.upload`. Additional keyword arguments\n        passed to this method will be forwarded to the :meth:`~shotgun_api3.Shotgun.upload` method.\n\n        >>> filmstrip_thumbnail = '/data/show/ne2/100_110/anim/01.mlk-02b_filmstrip.jpg'\n        >>> sg.upload_filmstrip_thumbnail(\"Version\", 27, filmstrip_thumbnail)\n        87\n\n        :param str entity_type: Entity type to set the filmstrip thumbnail for.\n        :param int entity_id: Id of the entity to set the filmstrip thumbnail for.\n        :param str path: Full path to the filmstrip thumbnail file on disk.\n        :returns: Id of the new Attachment entity created for the filmstrip thumbnail\n        :rtype: int\n        \"\"\"\n        if not self.server_caps.version or self.server_caps.version < (3, 1, 0):\n            raise ShotgunError(\n                \"Filmstrip thumbnail support requires server version 3.1 or \"\n                \"higher, server is %s\" % (self.server_caps.version,)\n            )\n\n        return self.upload(\n            entity_type, entity_id, path, field_name=\"filmstrip_thumb_image\", **kwargs\n        )\n\n    def upload(\n        self,\n        entity_type: str,\n        entity_id: int,\n        path: str,\n        field_name: Optional[str] = None,\n        display_name: Optional[str] = None,\n        tag_list: Optional[str] = None,\n    ) -> int:\n        \"\"\"\n        Upload a file to the specified entity.\n\n        Creates an Attachment entity for the file in Shotgun and links it to the specified entity.\n        You can optionally store the file in a field on the entity, change the display name, and\n        assign tags to the Attachment.\n\n        .. note::\n          Make sure to have retries for file uploads. Failures when uploading will occasionally happen.\n          When it does, immediately retrying to upload usually works\n\n        >>> mov_file = '/data/show/ne2/100_110/anim/01.mlk-02b.mov'\n        >>> sg.upload(\"Shot\", 423, mov_file, field_name=\"sg_latest_quicktime\",\n        ...           display_name=\"Latest QT\")\n        72\n\n        :param str entity_type: Entity type to link the upload to.\n        :param int entity_id: Id of the entity to link the upload to.\n        :param str path: Full path to an existing non-empty file on disk to upload.\n        :param str field_name: The internal Shotgun field name on the entity to store the file in.\n            This field must be a File/Link field type.\n        :param str display_name: The display name to use for the file. Defaults to the file name.\n        :param str tag_list: comma-separated string of tags to assign to the file.\n        :returns: Id of the Attachment entity that was created for the image.\n        :rtype: int\n        :raises: :class:`ShotgunError` on upload failure.\n        \"\"\"\n        # Basic validations of the file to upload.\n        path = os.path.abspath(os.path.expanduser(path or \"\"))\n\n        # We need to check for string encodings that we aren't going to be able\n        # to support later in the upload process. If the given path wasn't already\n        # unicode, we will try to decode it as utf-8, and if that fails then we\n        # have to raise a sane exception. This will always work for ascii and utf-8\n        # encoded strings, but will fail on some others if the string includes non\n        # ascii characters.\n        if not isinstance(path, str):\n            try:\n                path = path.decode(\"utf-8\")\n            except UnicodeDecodeError:\n                raise ShotgunError(\n                    \"Could not upload the given file path. It is encoded as \"\n                    \"something other than utf-8 or ascii. To upload this file, \"\n                    \"it can be string encoded as utf-8, or given as unicode: %s\" % path\n                )\n\n        if not os.path.isfile(path):\n            raise ShotgunError(\"Path must be a valid file, got '%s'\" % path)\n        if os.path.getsize(path) == 0:\n            raise ShotgunError(\"Path cannot be an empty file: '%s'\" % path)\n\n        is_thumbnail = field_name in [\n            \"thumb_image\",\n            \"filmstrip_thumb_image\",\n            \"image\",\n            \"filmstrip_image\",\n        ]\n\n        # Supported types can be directly uploaded to Cloud storage\n        if self._requires_direct_s3_upload(entity_type, field_name):\n            return self._upload_to_storage(\n                entity_type,\n                entity_id,\n                path,\n                field_name,\n                display_name,\n                tag_list,\n                is_thumbnail,\n            )\n        else:\n            return self._upload_to_sg(\n                entity_type,\n                entity_id,\n                path,\n                field_name,\n                display_name,\n                tag_list,\n                is_thumbnail,\n            )\n\n    def _upload_to_storage(\n        self,\n        entity_type: str,\n        entity_id: int,\n        path: str,\n        field_name: Optional[str],\n        display_name: Optional[str],\n        tag_list: Optional[str],\n        is_thumbnail: bool,\n    ) -> int:\n        \"\"\"\n        Internal function to upload a file to the Cloud storage and link it to the specified entity.\n\n        :param str entity_type: Entity type to link the upload to.\n        :param int entity_id: Id of the entity to link the upload to.\n        :param str path: Full path to an existing non-empty file on disk to upload.\n        :param str field_name: The internal Shotgun field name on the entity to store the file in.\n            This field must be a File/Link field type.\n        :param str display_name: The display name to use for the file. Defaults to the file name.\n        :param str tag_list: comma-separated string of tags to assign to the file.\n        :param bool is_thumbnail: indicates if the attachment is a thumbnail.\n        :returns: Id of the Attachment entity that was created for the image.\n        :rtype: int\n        \"\"\"\n\n        filename = os.path.basename(path)\n\n        # Step 1: get the upload url\n\n        is_multipart_upload = os.path.getsize(path) > self._MULTIPART_UPLOAD_CHUNK_SIZE\n\n        upload_info = self._get_attachment_upload_info(\n            is_thumbnail, filename, is_multipart_upload\n        )\n\n        # Step 2: upload the file\n        # We upload large files in multiple parts because it is more robust\n        # (and required when using S3 storage)\n        if is_multipart_upload:\n            self._multipart_upload_file_to_storage(path, upload_info)\n        else:\n            self._upload_file_to_storage(path, upload_info[\"upload_url\"])\n\n        # Step 3: create the attachment\n\n        url = urllib.parse.urlunparse(\n            (\n                self.config.scheme,\n                self.config.server,\n                \"/upload/api_link_file\",\n                None,\n                None,\n                None,\n            )\n        )\n\n        params = {\n            \"entity_type\": entity_type,\n            \"entity_id\": entity_id,\n            \"upload_link_info\": upload_info[\"upload_info\"],\n        }\n\n        params.update(self._auth_params())\n\n        if is_thumbnail:\n            if field_name == \"filmstrip_thumb_image\" or field_name == \"filmstrip_image\":\n                params[\"filmstrip\"] = True\n        else:\n            if display_name is None:\n                display_name = filename\n            # we allow linking to nothing for generic reference use cases\n            if field_name is not None:\n                params[\"field_name\"] = field_name\n            params[\"display_name\"] = display_name\n            # None gets converted to a string and added as a tag...\n            if tag_list:\n                params[\"tag_list\"] = tag_list\n\n        result = self._send_form(url, params)\n        if not result.startswith(\"1\"):\n            raise ShotgunError(\n                \"Could not upload file successfully, but \"\n                \"not sure why.\\nPath: %s\\nUrl: %s\\nError: %s\" % (path, url, result)\n            )\n\n        LOG.debug(\"Attachment linked to content on Cloud storage\")\n\n        attachment_id = int(result.split(\":\", 2)[1].split(\"\\n\", 1)[0])\n        return attachment_id\n\n    def _upload_to_sg(\n        self,\n        entity_type: str,\n        entity_id: int,\n        path: str,\n        field_name: Optional[str],\n        display_name: Optional[str],\n        tag_list: Optional[str],\n        is_thumbnail: bool,\n    ) -> int:\n        \"\"\"\n        Internal function to upload a file to Shotgun and link it to the specified entity.\n\n        :param str entity_type: Entity type to link the upload to.\n        :param int entity_id: Id of the entity to link the upload to.\n        :param str path: Full path to an existing non-empty file on disk to upload.\n        :param str field_name: The internal Shotgun field name on the entity to store the file in.\n            This field must be a File/Link field type.\n        :param str display_name: The display name to use for the file. Defaults to the file name.\n        :param str tag_list: comma-separated string of tags to assign to the file.\n        :param bool is_thumbnail: indicates if the attachment is a thumbnail.\n\n        :returns: Id of the Attachment entity that was created for the image.\n        :rtype: int\n        \"\"\"\n\n        params = {\n            \"entity_type\": entity_type,\n            \"entity_id\": entity_id,\n        }\n\n        params.update(self._auth_params())\n\n        if is_thumbnail:\n            url = urllib.parse.urlunparse(\n                (\n                    self.config.scheme,\n                    self.config.server,\n                    \"/upload/publish_thumbnail\",\n                    None,\n                    None,\n                    None,\n                )\n            )\n            params[\"thumb_image\"] = open(path, \"rb\")\n            if field_name == \"filmstrip_thumb_image\" or field_name == \"filmstrip_image\":\n                params[\"filmstrip\"] = True\n        else:\n            url = urllib.parse.urlunparse(\n                (\n                    self.config.scheme,\n                    self.config.server,\n                    \"/upload/upload_file\",\n                    None,\n                    None,\n                    None,\n                )\n            )\n            if display_name is None:\n                display_name = os.path.basename(path)\n            # we allow linking to nothing for generic reference use cases\n            if field_name is not None:\n                params[\"field_name\"] = field_name\n            params[\"display_name\"] = display_name\n            # None gets converted to a string and added as a tag...\n            if tag_list:\n                params[\"tag_list\"] = tag_list\n\n            params[\"file\"] = open(path, \"rb\")\n\n        result = self._send_form(url, params)\n\n        if not result.startswith(\"1\"):\n            raise ShotgunError(\n                \"Could not upload file successfully, but \"\n                \"not sure why.\\nPath: %s\\nUrl: %s\\nError: %s\" % (path, url, result)\n            )\n\n        attachment_id = int(result.split(\":\", 2)[1].split(\"\\n\", 1)[0])\n        return attachment_id\n\n    def _get_attachment_upload_info(\n        self, is_thumbnail: bool, filename: str, is_multipart_upload: bool\n    ) -> Dict[str, Any]:\n        \"\"\"\n        Internal function to get the information needed to upload a file to Cloud storage.\n\n        :param bool is_thumbnail: indicates if the attachment is a thumbnail.\n        :param str filename: name of the file that will be uploaded.\n        :param bool is_multipart_upload: Indicates if we want multi-part upload information back.\n\n        :returns: dictionary containing upload details from the server.\n            These details are used throughout the upload process.\n        :rtype: dict\n        \"\"\"\n\n        if is_thumbnail:\n            upload_type = \"Thumbnail\"\n        else:\n            upload_type = \"Attachment\"\n\n        params = {\"upload_type\": upload_type, \"filename\": filename}\n\n        params[\"multipart_upload\"] = is_multipart_upload\n\n        upload_url = \"/upload/api_get_upload_link_info\"\n        url = urllib.parse.urlunparse(\n            (self.config.scheme, self.config.server, upload_url, None, None, None)\n        )\n\n        upload_info = self._send_form(url, params)\n        if not upload_info.startswith(\"1\"):\n            raise ShotgunError(\n                \"Could not get upload_url but \"\n                \"not sure why.\\nPath: %s\\nUrl: %s\\nError: %s\"\n                % (filename, url, upload_info)\n            )\n\n        LOG.debug(\"Completed rpc call to %s\" % (upload_url))\n\n        upload_info_parts = upload_info.split(\"\\n\")\n\n        return {\n            \"upload_url\": upload_info_parts[1],\n            \"timestamp\": upload_info_parts[2],\n            \"upload_type\": upload_info_parts[3],\n            \"upload_id\": upload_info_parts[4],\n            \"upload_info\": upload_info,\n        }\n\n    def download_attachment(\n        self,\n        attachment: Union[Dict[str, Any], bool] = False,\n        file_path: Optional[str] = None,\n        attachment_id: Optional[int] = None,\n    ) -> Union[str, bytes, None]:\n        \"\"\"\n        Download the file associated with a Shotgun Attachment.\n\n            >>> version = sg.find_one(\"Version\", [[\"id\", \"is\", 7115]], [\"sg_uploaded_movie\"])\n            >>> local_file_path = \"/var/tmp/%s\" % version[\"sg_uploaded_movie\"][\"name\"]\n            >>> sg.download_attachment(version[\"sg_uploaded_movie\"], file_path=local_file_path)\n            /var/tmp/100b_scene_output_v032.mov\n\n        .. warning::\n\n            On older (< v5.1.0) Shotgun versions, non-downloadable files\n            on Shotgun don't raise exceptions, they cause a server error which\n            returns a 200 with the page content.\n\n        :param dict attachment: Usually a dictionary representing an Attachment entity.\n            The dictionary should have a ``url`` key that specifies the download url.\n            Optionally, the dictionary can be a standard entity hash format with ``id`` and\n            ``type`` keys as long as ``\"type\"==\"Attachment\"``. This is only supported for\n            backwards compatibility (#22150).\n\n            If an int value is passed in, the Attachment entity with the matching id will\n            be downloaded from the Shotgun server.\n        :param str file_path: Optional file path to write the data directly to local disk. This\n            avoids loading all of the data in memory and saves the file locally at the given path.\n        :param id attachment_id: (deprecated) Optional ``id`` of the Attachment entity in Shotgun to\n            download.\n\n            .. note:\n                This parameter exists only for backwards compatibility for scripts specifying\n                the parameter with keywords.\n        :returns: If ``file_path`` is provided, returns the path to the file on disk.  If\n            ``file_path`` is ``None``, returns the actual data of the file, as bytes.\n        :rtype: str | bytes\n        \"\"\"\n        # backwards compatibility when passed via keyword argument\n        if attachment is False:\n            if type(attachment_id) == int:\n                attachment = attachment_id\n            else:\n                raise TypeError(\n                    \"Missing parameter 'attachment'. Expected a \"\n                    \"dict, int, NoneType value or\"\n                    \"an int for parameter attachment_id\"\n                )\n        # write to disk\n        if file_path:\n            try:\n                fp = open(file_path, \"wb\")\n            except IOError as e:\n                raise IOError(\n                    \"Unable to write Attachment to disk using \" \"file_path. %s\" % e\n                )\n\n        url = self.get_attachment_download_url(attachment)\n        if url is None:\n            return None\n\n        cookie_handler = None\n        if self.config.server in url:\n            # We only need to set the auth cookie for downloads from Shotgun server\n            cookie_handler = self.get_auth_cookie_handler()\n\n        opener = self._build_opener(cookie_handler)\n        try:\n            request = urllib.request.Request(url)\n            request.add_header(\"user-agent\", \"; \".join(self._user_agents))\n            req = opener.open(request)\n            if file_path:\n                shutil.copyfileobj(req, fp)\n            else:\n                attachment = req.read()\n        # 400 [sg] Attachment id doesn't exist or is a local file\n        # 403 [s3] link is invalid\n        except urllib.error.URLError as e:\n            if file_path:\n                fp.close()\n            err = \"Failed to open %s\\n%s\" % (url, e)\n            if hasattr(e, \"code\"):\n                if e.code == 400:\n                    err += \"\\nAttachment may not exist or is a local file?\"\n                elif e.code == 403:\n                    # Only parse the body if it is an Amazon S3 url.\n                    if (\n                        url.find(\"s3.amazonaws.com\") != -1\n                        and e.headers[\"content-type\"] == \"application/xml\"\n                    ):\n                        body = [\n                            line.decode(\"utf-8\") if isinstance(line, bytes) else line\n                            for line in e.readlines()\n                        ]\n\n                        if body:\n                            try:\n                                root = xml.etree.ElementTree.fromstring(\"\".join(body))\n                                message_elem = root.find(\".//Message\")\n                                if message_elem is not None and message_elem.text:\n                                    err = f\"{err} - {message_elem.text}\"\n                            except xml.etree.ElementTree.ParseError:\n                                err = f\"{err}\\n{''.join(body)}\\n\"\n                elif e.code == 409 or e.code == 410:\n                    # we may be dealing with a file that is pending/failed a malware scan, e.g:\n                    # 409: This file is undergoing a malware scan, please try again in a few minutes\n                    # 410: File scanning has detected malware and the file has been quarantined\n                    lines = e.readlines()\n                    if lines:\n                        err += \"\\n%s\\n\" % \"\".join(lines)\n            raise ShotgunFileDownloadError(err)\n        else:\n            if file_path:\n                if not fp.closed:\n                    fp.close()\n                return file_path\n            else:\n                return attachment\n\n    def get_auth_cookie_handler(self) -> urllib.request.HTTPCookieProcessor:\n        \"\"\"\n        Return an urllib cookie handler containing a cookie for FPTR\n        authentication.\n\n        Looks up session token and sets that in a cookie in the :mod:`urllib2`\n        handler.\n        This is used internally for downloading attachments from FPTR.\n        \"\"\"\n        sid = self.get_session_token()\n        cj = http.cookiejar.LWPCookieJar()\n        c = http.cookiejar.Cookie(\n            \"0\",\n            \"_session_id\",\n            sid,\n            None,\n            False,\n            self.config.server,\n            False,\n            False,\n            \"/\",\n            True,\n            False,\n            None,\n            True,\n            None,\n            None,\n            {},\n        )\n        cj.set_cookie(c)\n        return urllib.request.HTTPCookieProcessor(cj)\n\n    def get_attachment_download_url(\n        self, attachment: Optional[Union[int, dict[str, Any]]]\n    ) -> str:\n        \"\"\"\n        Return the URL for downloading provided Attachment.\n\n        :param mixed attachment: Usually a dict representing An Attachment entity in Shotgun to\n            return the download url for. If the ``url`` key is present, it will be used as-is for\n            the download url. If the ``url`` key is not present, a url will be constructed pointing\n            at the current Shotgun server for downloading the Attachment entity using the ``id``.\n\n            If ``None`` is passed in, it is silently ignored in order to avoid raising an error when\n            results from a :meth:`~shotgun_api3.Shotgun.find` are passed off to\n            :meth:`~shotgun_api3.Shotgun.download_attachment`\n\n        .. note::\n            Support for passing in an int representing the Attachment ``id`` is deprecated\n\n        :returns: the download URL for the Attachment or ``None`` if ``None`` was passed to\n            ``attachment`` parameter.\n        :rtype: str\n        \"\"\"\n        # TODO: Support for a standard entity hash should be removed: #22150\n        attachment_id = None\n        if isinstance(attachment, int):\n            attachment_id = attachment\n        elif isinstance(attachment, dict):\n            try:\n                url = attachment[\"url\"]\n            except KeyError:\n                if (\n                    \"id\" in attachment\n                    and \"type\" in attachment\n                    and attachment[\"type\"] == \"Attachment\"\n                ):\n                    attachment_id = attachment[\"id\"]\n                else:\n                    raise ValueError(\"Missing 'url' key in Attachment dict\")\n        elif attachment is None:\n            url = None\n        else:\n            raise TypeError(\n                \"Unable to determine download url. Expected \"\n                \"dict, int, or NoneType. Instead got %s\" % type(attachment)\n            )\n\n        if attachment_id:\n            url = urllib.parse.urlunparse(\n                (\n                    self.config.scheme,\n                    self.config.server,\n                    \"/file_serve/attachment/%s\"\n                    % urllib.parse.quote(str(attachment_id)),\n                    None,\n                    None,\n                    None,\n                )\n            )\n        return url\n\n    def authenticate_human_user(\n        self, user_login: str, user_password: str, auth_token: Optional[str] = None\n    ) -> Union[Dict[str, Any], None]:\n        \"\"\"\n        Authenticate Shotgun HumanUser.\n\n        Authenticates a user given the login, password, and optionally, one-time auth token (when\n        two-factor authentication is required). The user must be a ``HumanUser`` entity and the\n        account must be active.\n\n        >>> sg.authenticate_human_user(\"rhendriks\", \"c0mPre$Hi0n\", None)\n        {\"type\": \"HumanUser\", \"id\": 123, \"name\": \"Richard Hendriks\"}\n\n        :param str user_login: Login name of Shotgun HumanUser\n        :param str user_password: Password for Shotgun HumanUser\n        :param str auth_token: One-time token required to authenticate Shotgun HumanUser\n            when two-factor authentication is turned on.\n        :returns: Standard Shotgun dictionary representing the HumanUser if authentication\n            succeeded. ``None`` if authentication failed for any reason.\n        :rtype: dict\n        \"\"\"\n        if not user_login:\n            raise ValueError(\"Please supply a username to authenticate.\")\n\n        if not user_password:\n            raise ValueError(\"Please supply a password for the user.\")\n\n        # Override permissions on Config obj\n        original_login = self.config.user_login\n        original_password = self.config.user_password\n        original_auth_token = self.config.auth_token\n\n        self.config.user_login = user_login\n        self.config.user_password = user_password\n        self.config.auth_token = auth_token\n\n        try:\n            return self.find_one(\n                \"HumanUser\",\n                [[\"sg_status_list\", \"is\", \"act\"], [\"login\", \"is\", user_login]],\n                [\"id\", \"login\"],\n                \"\",\n                \"all\",\n            )\n        finally:\n            self.config.user_login = original_login\n            self.config.user_password = original_password\n            self.config.auth_token = original_auth_token\n\n    def update_project_last_accessed(\n        self, project: Dict[str, Any], user: Optional[Dict[str, Any]] = None\n    ) -> None:\n        \"\"\"\n        Update a Project's ``last_accessed_by_current_user`` field to the current timestamp.\n\n        This helps keep track of the recent Projects each user has worked on and enables scripts\n        and apps to use this information to display \"Recent Projects\" for users as a convenience.\n\n        .. versionadded::\n            Requires Shotgun v5.3.20+\n\n        >>> sg.update_project_last_accessed({\"type\": \"Project\", \"id\": 66},\n        ...                                 {\"type\": \"HumanUser\", \"id\": 43})\n\n        :param dict project: Standard Project entity dictionary\n        :param dict user: Standard user entity dictionary. This is optional if the current API\n            instance is using user-based authenitcation, or has specified ``sudo_as_login``. In\n            these cases, if ``user`` is not provided, the ``sudo_as_login`` value or ``login``\n            value from the current instance will be used instead.\n        \"\"\"\n        if self.server_caps.version and self.server_caps.version < (5, 3, 20):\n            raise ShotgunError(\n                \"update_project_last_accessed requires server version 5.3.20 or \"\n                \"higher, server is %s\" % (self.server_caps.version,)\n            )\n\n        if not user:\n            # Try to use sudo as user if present\n            if self.config.sudo_as_login:\n                user = self.find_one(\n                    \"HumanUser\", [[\"login\", \"is\", self.config.sudo_as_login]]\n                )\n            # Try to use login if present\n            if self.config.user_login:\n                user = self.find_one(\n                    \"HumanUser\", [[\"login\", \"is\", self.config.user_login]]\n                )\n\n        params = {\n            \"project_id\": project[\"id\"],\n        }\n        if user:\n            params[\"user_id\"] = user[\"id\"]\n\n        record = self._call_rpc(\"update_project_last_accessed_by_current_user\", params)\n        self._parse_records(record)[0]\n\n    def note_thread_read(\n        self, note_id: int, entity_fields: Optional[Dict[str, Any]] = None\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Return the full conversation for a given note, including Replies and Attachments.\n\n        Returns a complex data structure on the following form::\n\n            [{'content': 'Please add more awesomeness to the color grading.',\n              'created_at': '2015-07-14 21:33:28 UTC',\n              'created_by': {'id': 38,\n                             'name': 'John Pink',\n                             'status': 'act',\n                             'type': 'HumanUser',\n                             'valid': 'valid'},\n              'id': 6013,\n              'type': 'Note'},\n             {'created_at': '2015-07-14 21:33:32 UTC',\n              'created_by': {'id': 38,\n                             'name': 'John Pink',\n                             'status': 'act',\n                             'type': 'HumanUser',\n                             'valid': 'valid'},\n              'id': 159,\n              'type': 'Attachment'},\n             {'content': 'More awesomeness added',\n              'created_at': '2015-07-14 21:54:51 UTC',\n              'id': 5,\n              'type': 'Reply',\n              'user': {'id': 38,\n                       'name': 'David Blue',\n                       'status': 'act',\n                       'type': 'HumanUser',\n                       'valid': 'valid'}}]\n\n        The list is returned in descending chronological order.\n\n        If you wish to include additional fields beyond the ones that are\n        returned by default, you can specify these in an entity_fields\n        dictionary. This dictionary should be keyed by entity type and each\n        key should contain a list of fields to retrieve, for example::\n\n            { \"Note\":       [\"created_by.HumanUser.image\",\n                             \"addressings_to\",\n                             \"playlist\",\n                             \"user\" ],\n              \"Reply\":      [\"content\"],\n              \"Attachment\": [\"filmstrip_image\",\n                            \"local_storage\",\n                            \"this_file\",\n                            \"image\"]\n            }\n\n        :param int note_id: The id for the note to be retrieved\n        :param dict entity_fields: Additional fields to retrieve as part of the request.\n            See above for details.\n        :returns: A list of dictionaries. See above for example.\n        :rtype: list\n        \"\"\"\n\n        if self.server_caps.version and self.server_caps.version < (6, 2, 0):\n            raise ShotgunError(\n                \"note_thread requires server version 6.2.0 or \"\n                \"higher, server is %s\" % (self.server_caps.version,)\n            )\n\n        entity_fields = entity_fields or {}\n\n        if not isinstance(entity_fields, dict):\n            raise ValueError(\"entity_fields parameter must be a dictionary\")\n\n        params = {\"note_id\": note_id, \"entity_fields\": entity_fields}\n\n        record = self._call_rpc(\"note_thread_contents\", params)\n        result = self._parse_records(record)\n        return result\n\n    def text_search(\n        self,\n        text: str,\n        entity_types: Dict[str, Any],\n        project_ids: Optional[List] = None,\n        limit: Optional[int] = None,\n    ) -> Dict[str, Any]:\n        \"\"\"\n        Search across the specified entity types for the given text.\n\n        This method can be used to implement auto completion or a Shotgun global search. The method\n        requires a text input phrase that is at least three characters long, or an exception will\n        be raised.\n\n        Several ways to limit the results of the query are available:\n\n        - Using the ``project_ids`` parameter, you can provide a list of Project ids to search\n          across. Leaving this at its default value of ``None`` will search across all Shotgun data.\n\n        - You need to define which subset of entity types to search using the ``entity_types``\n          parameter. Each of these entity types can be associated with a filter query to further\n          reduce the list of matches. The filter list is using the standard filter syntax used by\n          for example the :meth:`~shotgun_api3.Shotgun.find` method.\n\n        **Example: Constrain the search to all Tasks but Character Assets only**\n\n        >>> entity_types = {\n        ...     \"Asset\": [[\"sg_asset_type\", \"is\", \"Character\"]],\n        ...     \"Task\": []\n        ... }\n        >>> sg.text_search(\"bunny\", entity_types)\n        {'matches': [{'id': 734,\n                      'type': 'Asset',\n                      'name': 'Bunny',\n                      'project_id': 65,\n                      'image': 'https://...',\n                      'links': ['', ''],\n                      'status': 'fin'},\n                      ...\n                      {'id': 558,\n                       'type': 'Task'\n                       'name': 'FX',\n                       'project_id': 65,\n                       'image': 'https://...',\n                       'links': ['Shot', 'bunny_010_0010'],\n                       'status': 'fin'}],\n            'terms': ['bunny']}\n\n        The links field will contain information about any linked entity. This is useful when, for\n        example, presenting Tasks and you want to display what Shot or Asset the Task is associated\n        with.\n\n        :param str text: Text to search for. This must be at least three characters long, or an\n            exception will be raised.\n        :param dict entity_types: Dictionary to specify which entity types to search across. See\n            above for usage examples.\n        :param list project_ids: List of Projects to search. By default, all projects will be\n            searched.\n        :param int limit: Specify the maximum number of matches to return.\n        :returns: A complex dictionary structure, see above for example.\n        :rtype: dict\n        \"\"\"\n        if self.server_caps.version and self.server_caps.version < (6, 2, 0):\n            raise ShotgunError(\n                \"auto_complete requires server version 6.2.0 or \"\n                \"higher, server is %s\" % (self.server_caps.version,)\n            )\n\n        # convert entity_types structure into the form\n        # that the API endpoint expects\n        if not isinstance(entity_types, dict):\n            raise ValueError(\"entity_types parameter must be a dictionary\")\n\n        api_entity_types = {}\n        for entity_type, filter_list in entity_types.items():\n\n            if isinstance(filter_list, (list, tuple)):\n                resolved_filters = _translate_filters(filter_list, filter_operator=None)\n                api_entity_types[entity_type] = resolved_filters\n            else:\n                raise ValueError(\n                    \"value of entity_types['%s'] must \"\n                    \"be a list or tuple.\" % entity_type\n                )\n\n        project_ids = project_ids or []\n\n        params = {\n            \"text\": text,\n            \"entity_types\": api_entity_types,\n            \"project_ids\": project_ids,\n            \"max_results\": limit,\n        }\n\n        record = self._call_rpc(\"query_display_name_cache\", params)\n        result = self._parse_records(record)[0]\n        return result\n\n    def activity_stream_read(\n        self,\n        entity_type: str,\n        entity_id: int,\n        entity_fields: Optional[Dict[str, Any]] = None,\n        min_id: Optional[int] = None,\n        max_id: Optional[int] = None,\n        limit: Optional[int] = None,\n    ) -> Dict[str, Any]:\n        \"\"\"\n        Retrieve activity stream data from Shotgun.\n\n        This data corresponds to the data that is displayed in the\n        Activity tab for an entity in the Shotgun Web UI.\n\n        A complex data structure on the following form will be\n        returned from Shotgun::\n\n            {'earliest_update_id': 50,\n             'entity_id': 65,\n             'entity_type': 'Project',\n             'latest_update_id': 79,\n             'updates': [{'created_at': '2015-07-15 11:06:55 UTC',\n                          'created_by': {'id': 38,\n                                         'image': '6641',\n                                         'name': 'John Smith',\n                                         'status': 'act',\n                                         'type': 'HumanUser'},\n                          'id': 79,\n                          'meta': {'entity_id': 6004,\n                                   'entity_type': 'Version',\n                                   'type': 'new_entity'},\n                          'primary_entity': {'id': 6004,\n                                             'name': 'Review_turntable_v2',\n                                             'status': 'rev',\n                                             'type': 'Version'},\n                          'read': False,\n                          'update_type': 'create'},\n                         {...},\n                        ]\n            }\n\n        The main payload of the return data can be found inside the 'updates'\n        key, containing a list of dictionaries. This list is always returned\n        in descending date order. Each item may contain different fields\n        depending on their update type. The primary_entity key represents the\n        main Shotgun entity that is associated with the update. By default,\n        this entity is returned with a set of standard fields. By using the\n        entity_fields parameter, you can extend the returned data to include\n        additional fields. If for example you wanted to return the asset type\n        for all assets and the linked sequence for all Shots, pass the\n        following entity_fields::\n\n            {\"Shot\": [\"sg_sequence\"], \"Asset\": [\"sg_asset_type\"]}\n\n        Deep queries can be used in this syntax if you want to\n        traverse into connected data.\n\n        :param str entity_type: Entity type to retrieve activity stream for\n        :param int entity_id: Entity id to retrieve activity stream for\n        :param list entity_fields: List of additional fields to include.\n                              See above for details\n        :param int max_id: Do not retrieve ids greater than this id.\n                       This is useful when implementing paging.\n        :param int min_id: Do not retrieve ids lesser than this id.\n                       This is useful when implementing caching of\n                       the event stream data and you want to\n                       \"top up\" an existing cache.\n        :param int limit: Limit the number of returned records. If not specified,\n                      the system default will be used.\n        :returns: A complex activity stream data structure. See above for details.\n        :rtype: dict\n        \"\"\"\n        if self.server_caps.version and self.server_caps.version < (6, 2, 0):\n            raise ShotgunError(\n                \"activity_stream requires server version 6.2.0 or \"\n                \"higher, server is %s\" % (self.server_caps.version,)\n            )\n\n        # set up parameters to send to server.\n        entity_fields = entity_fields or {}\n\n        if not isinstance(entity_fields, dict):\n            raise ValueError(\"entity_fields parameter must be a dictionary\")\n\n        params = {\n            \"type\": entity_type,\n            \"id\": entity_id,\n            \"max_id\": max_id,\n            \"min_id\": min_id,\n            \"limit\": limit,\n            \"entity_fields\": entity_fields,\n        }\n\n        record = self._call_rpc(\"activity_stream\", params)\n        result = self._parse_records(record)[0]\n        return result\n\n    def nav_expand(self, path: str, seed_entity_field=None, entity_fields=None):\n        \"\"\"\n        Expand the navigation hierarchy for the supplied path.\n\n        .. warning::\n\n            This is an experimental method that is not officially part of the\n            python-api. Usage of this method is discouraged. This method's name,\n            arguments, and argument types may change at any point.\n\n        \"\"\"\n        return self._call_rpc(\n            \"nav_expand\",\n            {\n                \"path\": path,\n                \"seed_entity_field\": seed_entity_field,\n                \"entity_fields\": entity_fields,\n            },\n        )\n\n    def nav_search_string(\n        self, root_path: str, search_string: str, seed_entity_field=None\n    ):\n        \"\"\"\n        Search function adapted to work with the navigation hierarchy.\n\n        .. warning::\n\n            This is an experimental method that is not officially part of the\n            python-api. Usage of this method is discouraged. This method's name,\n            arguments, and argument types may change at any point.\n        \"\"\"\n        return self._call_rpc(\n            \"nav_search\",\n            {\n                \"root_path\": root_path,\n                \"seed_entity_field\": seed_entity_field,\n                \"search_criteria\": {\"search_string\": search_string},\n            },\n        )\n\n    def nav_search_entity(\n        self,\n        root_path: str,\n        entity: Dict[str, Any],\n        seed_entity_field: Optional[Dict[str, Any]] = None,\n    ):\n        \"\"\"\n        Search function adapted to work with the navigation hierarchy.\n\n        .. warning::\n\n            This is an experimental method that is not officially part of the\n            python-api. Usage of this method is discouraged. This method's name,\n            arguments, and argument types may change at any point.\n\n        \"\"\"\n        return self._call_rpc(\n            \"nav_search\",\n            {\n                \"root_path\": root_path,\n                \"seed_entity_field\": seed_entity_field,\n                \"search_criteria\": {\"entity\": entity},\n            },\n        )\n\n    def get_session_token(self) -> str:\n        \"\"\"\n        Get the session token associated with the current session.\n\n        If a session token has already been established, this is returned, otherwise a new one is\n        generated on the server and returned.\n\n        >>> sg.get_session_token()\n        dd638be7d07c39fa73d935a775558a50\n\n        :returns: String containing a session token.\n        :rtype: str\n        \"\"\"\n        if self.config.session_token:\n            return self.config.session_token\n\n        rv = self._call_rpc(\"get_session_token\", None)\n        session_token = (rv or {}).get(\"session_id\")\n        if not session_token:\n            raise RuntimeError(\"Could not extract session_id from %s\", rv)\n        self.config.session_token = session_token\n\n        return session_token\n\n    def preferences_read(self, prefs: Optional[List] = None) -> Dict[str, Any]:\n        \"\"\"\n        Get a subset of the site preferences.\n\n        >>> sg.preferences_read()\n        {\n            \"pref_name\": \"pref value\"\n        }\n\n        :param list prefs: An optional list of preference names to return.\n        :returns: Dictionary of preferences and their values.\n        :rtype: dict\n        \"\"\"\n        if self.server_caps.version and self.server_caps.version < (7, 10, 0):\n            raise ShotgunError(\n                \"preferences_read requires server version 7.10.0 or \"\n                \"higher, server is %s\" % (self.server_caps.version,)\n            )\n\n        prefs = prefs or []\n\n        return self._call_rpc(\"preferences_read\", {\"prefs\": prefs})\n\n    def user_subscriptions_read(self) -> List:\n        \"\"\"\n        Get the list of user subscriptions.\n\n        :returns: A list of user subscriptions where each subscription is a\n            dictionary containing the ``humanUserId`` and ``subscription``\n            fields.\n        :rtype: list\n        \"\"\"\n\n        return self._call_rpc(\"user_subscriptions_read\", None)\n\n    def user_subscriptions_create(\n        self, users: List[Dict[str, Union[str, List[str], None]]]\n    ) -> bool:\n        \"\"\"\n        Assign subscriptions to users.\n\n        :param list users: list of user subscriptions to assign.\n            Each subscription must be a dictionary with the ``humanUserId`` and\n            ``subscription`` fields.\n            The ``subscription`` is either ``None``, a single string, or an\n            array of strings with subscription information.\n\n        :returns: ``True`` if the request succedeed, ``False`` if otherwise.\n        :rtype: bool\n        \"\"\"\n\n        response = self._call_rpc(\"user_subscriptions_create\", {\"users\": users})\n\n        if not isinstance(response, dict):\n            return False\n\n        return response.get(\"status\") == \"success\"\n\n    def _build_opener(self, handler) -> urllib.request.OpenerDirector:\n        \"\"\"\n        Build urllib2 opener with appropriate proxy handler.\n        \"\"\"\n        handlers = []\n        if self.__ca_certs:\n            handlers.append(\n                urllib.request.HTTPSHandler(\n                    context=ssl.create_default_context(\n                        cafile=self.__ca_certs,\n                    ),\n                ),\n            )\n\n        if self.config.proxy_handler:\n            handlers.append(self.config.proxy_handler)\n\n        if handler is not None:\n            handlers.append(handler)\n        return urllib.request.build_opener(*handlers)\n\n    @classmethod\n    def _get_certs_file(cls, ca_certs):\n        \"\"\"\n        The following method tells the API where to look for\n        certificate authorities certificates (we will be referring to these\n        as CAC from now on). Here's how the Python API interacts with those.\n\n        Auth and CRUD operations\n        ========================\n        These operations are executed with httplib2. httplib2 ships with a\n        list of CACs instead of asking Python's ssl module for them.\n\n        Upload/Downloads\n        ================\n        These operations are executed using urllib2. urllib2 asks a Python\n        module called `ssl` for CACs. We have bundled certifi with the API\n        so that we can be sure the certs are correct at the time of the API\n        release. This does however mean when the certs change we must update\n        the API to contain the latest certifi.\n        This approach is preferable to not using certifi since, on Windows,\n        ssl searches for CACs in the Windows Certificate Store, on\n        Linux/macOS, it asks the OpenSSL library linked with Python for CACs.\n        Depending on how Python was compiled for a given DCC, Python may be\n        linked against the OpenSSL from the OS or a copy of OpenSSL distributed\n        with the DCC. This impacts which versions of the certificates are\n        available to Python, as an OS level OpenSSL will be aware of system\n        wide certificates that have been added, while an OpenSSL that comes\n        with a DCC is likely bundling a list of certificates that get update\n        with each release and may not contain system wide certificates.\n\n        Using custom CACs\n        =================\n        When a user requires a non-standard CAC, the SHOTGUN_API_CACERTS\n        environment variable allows to provide an alternate location for\n        the CACs.\n\n        :param ca_certs: A default cert can be provided\n        :return: The cert file path to use.\n        \"\"\"\n        if ca_certs is not None:\n            # certs were provided up front so use these\n            return ca_certs\n        elif \"SHOTGUN_API_CACERTS\" in os.environ:\n            return os.environ.get(\"SHOTGUN_API_CACERTS\")\n        else:\n            # No certs have been specifically provided fallback to using the\n            # certs shipped with this API.\n            # We bundle certifi with this API so that we have a higher chance\n            # of using an uptodate certificate, rather than relying\n            # on the certs that are bundled with Python or the OS in some cases.\n            # However we can't use certifi.where() since that searches for the\n            # cacert.pem file using the sys.path and this means that if another\n            # copy of certifi can be found first, then it won't use ours.\n            # So we manually generate the path to the cert, but still use certifi\n            # to make it easier for updating the bundled cert with the API.\n            cur_dir = os.path.dirname(os.path.abspath(__file__))\n            # Now add the rest of the path to the cert file.\n            cert_file = os.path.join(cur_dir, \"lib\", \"certifi\", \"cacert.pem\")\n            return cert_file\n\n    # Deprecated methods from old wrapper\n    def schema(self, entity_type):\n        \"\"\"\n        .. deprecated:: 3.0.0\n           Use :meth:`~shotgun_api3.Shotgun.schema_field_read` instead.\n        \"\"\"\n        raise ShotgunError(\n            \"Deprecated: use schema_field_read('%s') instead\" % entity_type\n        )\n\n    def entity_types(self):\n        \"\"\"\n        .. deprecated:: 3.0.0\n           Use :meth:`~shotgun_api3.Shotgun.schema_entity_read` instead.\n        \"\"\"\n        raise ShotgunError(\"Deprecated: use schema_entity_read() instead\")\n\n    # ========================================================================\n    # RPC Functions\n\n    def _call_rpc(\n        self,\n        method: str,\n        params: Any,\n        include_auth_params: bool = True,\n        first: bool = False,\n    ) -> Any:\n        \"\"\"\n        Call the specified method on the Shotgun Server sending the supplied payload.\n        \"\"\"\n\n        LOG.debug(\"Starting rpc call to %s with params %s\" % (method, params))\n\n        params = self._transform_outbound(params)\n        payload = self._build_payload(\n            method, params, include_auth_params=include_auth_params\n        )\n        encoded_payload = self._encode_payload(payload)\n\n        req_headers = {\n            \"content-type\": \"application/json; charset=utf-8\",\n            \"connection\": \"keep-alive\",\n        }\n\n        if self.config.localized is True:\n            req_headers[\"locale\"] = \"auto\"\n\n        attempt = 1\n        while attempt <= self.MAX_ATTEMPTS:\n            http_status, resp_headers, body = self._make_call(\n                \"POST\",\n                self.config.api_path,\n                encoded_payload,\n                req_headers,\n            )\n\n            LOG.debug(\"Completed rpc call to %s\" % (method))\n\n            try:\n                self._parse_http_status(http_status)\n            except ProtocolError as e:\n                e.headers = resp_headers\n\n                # We've seen some rare instances of PTR returning 502 for issues that\n                # appear to be caused by something internal to PTR. We're going to\n                # allow for limited retries for those specifically.\n                if attempt != self.MAX_ATTEMPTS and e.errcode in [502, 504]:\n                    LOG.debug(\"Got a 502 or 504 response. Waiting and retrying...\")\n                    time.sleep(float(attempt) * self.BACKOFF)\n                    attempt += 1\n                    continue\n                elif e.errcode == 403:\n                    # 403 is returned with custom error page when api access is blocked\n                    e.errmsg += \": %s\" % body\n                raise\n            else:\n                break\n\n        response = self._decode_response(resp_headers, body)\n        self._response_errors(response)\n        response = self._transform_inbound(response)\n\n        if not isinstance(response, dict) or \"results\" not in response:\n            return response\n\n        results = response.get(\"results\")\n        if first and isinstance(results, list):\n            return results[0]\n        return results\n\n    def _auth_params(self) -> Dict[str, Any]:\n        \"\"\"\n        Return a dictionary of the authentication parameters being used.\n        \"\"\"\n        # Used to authenticate HumanUser credentials\n        if self.config.user_login and self.config.user_password:\n            auth_params = {\n                \"user_login\": str(self.config.user_login),\n                \"user_password\": str(self.config.user_password),\n            }\n            if self.config.auth_token:\n                auth_params[\"auth_token\"] = str(self.config.auth_token)\n\n        # Use script name instead\n        elif self.config.script_name and self.config.api_key:\n            auth_params = {\n                \"script_name\": str(self.config.script_name),\n                \"script_key\": str(self.config.api_key),\n            }\n\n        # Authenticate using session_id\n        elif self.config.session_token:\n            if self.server_caps.version and self.server_caps.version < (5, 3, 0):\n                raise ShotgunError(\n                    \"Session token based authentication requires server version \"\n                    \"5.3.0 or higher, server is %s\" % (self.server_caps.version,)\n                )\n\n            auth_params = {\"session_token\": str(self.config.session_token)}\n\n            # Request server side to raise exception for expired sessions.\n            # This was added in as part of Shotgun 5.4.4\n            if self.server_caps.version and self.server_caps.version > (5, 4, 3):\n                auth_params[\"reject_if_expired\"] = True\n\n        else:\n            raise ValueError(\"invalid auth params\")\n\n        if self.config.session_uuid:\n            auth_params[\"session_uuid\"] = self.config.session_uuid\n\n        # Make sure sudo_as_login is supported by server version\n        if self.config.sudo_as_login:\n            if self.server_caps.version and self.server_caps.version < (5, 3, 12):\n                raise ShotgunError(\n                    \"Option 'sudo_as_login' requires server version 5.3.12 or \"\n                    \"higher, server is %s\" % (self.server_caps.version,)\n                )\n            auth_params[\"sudo_as_login\"] = self.config.sudo_as_login\n\n        if self.config.extra_auth_params:\n            auth_params.update(self.config.extra_auth_params)\n\n        return auth_params\n\n    def _sanitize_auth_params(self, params: Dict[str, Any]) -> Dict[str, Any]:\n        \"\"\"\n        Given an authentication parameter dictionary, sanitize any sensitive\n        information and return the sanitized dict copy.\n        \"\"\"\n        sanitized_params = copy.copy(params)\n        for k in [\"user_password\", \"script_key\", \"session_token\"]:\n            if k in sanitized_params:\n                sanitized_params[k] = \"********\"\n        return sanitized_params\n\n    def _build_payload(\n        self, method: str, params, include_auth_params: bool = True\n    ) -> Dict[str, Any]:\n        \"\"\"\n        Build the payload to be send to the rpc endpoint.\n        \"\"\"\n        if not method:\n            raise ValueError(\"method is empty\")\n\n        call_params = []\n\n        if include_auth_params:\n            auth_params = self._auth_params()\n            call_params.append(auth_params)\n\n        if params:\n            call_params.append(params)\n\n        return {\"method_name\": method, \"params\": call_params}\n\n    def _encode_payload(self, payload) -> bytes:\n        \"\"\"\n        Encode the payload to a string to be passed to the rpc endpoint.\n\n        The payload is json encoded as a unicode string if the content\n        requires it. The unicode string is then encoded as 'utf-8' as it must\n        be in a single byte encoding to go over the wire.\n        \"\"\"\n\n        return json.dumps(payload, ensure_ascii=False).encode(\"utf-8\")\n\n    def _make_call(\n        self, verb: str, path: str, body, headers: Optional[Dict[str, Any]]\n    ) -> Tuple[Tuple[int, str], Dict[str, Any], str]:\n        \"\"\"\n        Make an HTTP call to the server.\n\n        Handles retry and failure.\n        \"\"\"\n\n        attempt = 0\n        req_headers = {}\n        req_headers[\"user-agent\"] = \"; \".join(self._user_agents)\n        if self.config.authorization:\n            req_headers[\"Authorization\"] = self.config.authorization\n\n        req_headers.update(headers or {})\n        body = body or None\n\n        max_rpc_attempts = self.config.max_rpc_attempts\n        rpc_attempt_interval = self.config.rpc_attempt_interval / 1000.0\n\n        while attempt < max_rpc_attempts:\n            attempt += 1\n            try:\n                return self._http_request(verb, path, body, req_headers)\n            except ssl.SSLEOFError as e:\n                # SG-34910 - EOF occurred in violation of protocol (_ssl.c:2426)\n                # This issue seems to be related to proxy and keep alive.\n                # It looks like, sometimes, the proxy drops the connection on\n                # the TCP/TLS level despites the keep-alive. So we need to close\n                # the connection and make a new attempt.\n                LOG.debug(\"SSLEOFError: {}\".format(e))\n                self._close_connection()\n                if attempt == max_rpc_attempts:\n                    LOG.debug(\"Request failed.  Giving up after %d attempts.\" % attempt)\n                    raise\n            except (ssl.SSLError, ssl.CertificateError) as e:\n                self._close_connection()\n                if attempt == max_rpc_attempts:\n                    LOG.debug(\"Request failed.  Giving up after %d attempts.\" % attempt)\n                    raise\n            except Exception as e:\n                self._close_connection()\n                LOG.debug(f\"Request failed.  Reason: {e}\", exc_info=True)\n                raise\n\n            LOG.debug(\n                \"Request failed, attempt %d of %d.  Retrying in %.2f seconds...\"\n                % (attempt, max_rpc_attempts, rpc_attempt_interval)\n            )\n            time.sleep(rpc_attempt_interval)\n\n    def _http_request(\n        self, verb: str, path: str, body, headers: Dict[str, Any]\n    ) -> Tuple[Tuple[int, str], Dict[str, Any], str]:\n        \"\"\"\n        Make the actual HTTP request.\n        \"\"\"\n        url = urllib.parse.urlunparse(\n            (self.config.scheme, self.config.server, path, None, None, None)\n        )\n        LOG.debug(\"Request is %s:%s\" % (verb, url))\n        LOG.debug(\"Request headers are %s\" % headers)\n        LOG.debug(\"Request body is %s\" % body)\n\n        conn = self._get_connection()\n        resp, content = conn.request(url, method=verb, body=body, headers=headers)\n        # http response code is handled else where\n        http_status = (resp.status, resp.reason)\n        resp_headers = dict((k.lower(), v) for k, v in resp.items())\n        resp_body = content\n\n        LOG.debug(\"Response status is %s %s\" % http_status)\n        LOG.debug(\"Response headers are %s\" % resp_headers)\n        LOG.debug(\"Response body is %s\" % resp_body)\n\n        return (http_status, resp_headers, resp_body)\n\n    def _make_upload_request(\n        self, request, opener: \"urllib.request.OpenerDirector\"\n    ) -> \"urllib.request._UrlopenRet\":\n        \"\"\"\n        Open the given request object, return the\n        response, raises URLError on protocol errors.\n        \"\"\"\n        try:\n            result = opener.open(request)\n\n        except urllib.error.HTTPError:\n            raise\n        return result\n\n    def _parse_http_status(self, status: Tuple) -> None:\n        \"\"\"\n        Parse the status returned from the http request.\n\n        :param tuple status: Tuple of (code, reason).\n        :raises: RuntimeError if the http status is non success.\n        \"\"\"\n        error_code = status[0]\n        errmsg = status[1]\n\n        if status[0] >= 300:\n            headers = \"HTTP error from server\"\n            if status[0] == 503:\n                errmsg = \"Flow Production Tracking is currently down for maintenance or too busy to reply. Please try again later.\"\n            raise ProtocolError(self.config.server, error_code, errmsg, headers)\n\n        return\n\n    def _decode_response(\n        self, headers: Dict[str, Any], body: str\n    ) -> Union[str, Dict[str, Any]]:\n        \"\"\"\n        Decode the response from the server from the wire format to\n        a python data structure.\n\n        :param dict headers: Headers from the server.\n        :param str body: Raw response body from the server.\n        :returns: If the content-type starts with application/json or\n            text/javascript the body is json decoded. Otherwise the raw body is\n            returned.\n        :rtype: str\n        \"\"\"\n        if not body:\n            return body\n\n        ct = (headers.get(\"content-type\") or \"application/json\").lower()\n\n        if ct.startswith(\"application/json\") or ct.startswith(\"text/javascript\"):\n            return self._json_loads(body)\n        return body\n\n    def _json_loads(self, body: str) -> Any:\n        return json.loads(body)\n\n    def _response_errors(self, sg_response):\n        \"\"\"\n        Raise any API errors specified in the response.\n\n        :raises ShotgunError: If the server response contains an exception.\n        \"\"\"\n\n        # error code for authentication related problems\n        ERR_AUTH = 102\n        # error code when 2FA authentication is required but no 2FA token provided.\n        ERR_2FA = 106\n        # error code when SSO is activated on the site, preventing the use of username/password for authentication.\n        ERR_SSO = 108\n        # error code when Oxygen is activated on the site, preventing the use of username/password for authentication.\n        ERR_OXYG = 110\n\n        if isinstance(sg_response, dict) and sg_response.get(\"exception\"):\n            if sg_response.get(\"error_code\") == ERR_AUTH:\n                raise AuthenticationFault(\n                    sg_response.get(\"message\", \"Unknown Authentication Error\")\n                )\n            elif sg_response.get(\"error_code\") == ERR_2FA:\n                raise MissingTwoFactorAuthenticationFault(\n                    sg_response.get(\"message\", \"Unknown 2FA Authentication Error\")\n                )\n            elif sg_response.get(\"error_code\") == ERR_SSO:\n                raise UserCredentialsNotAllowedForSSOAuthenticationFault(\n                    sg_response.get(\n                        \"message\",\n                        \"Authentication using username/password is not \"\n                        \"allowed for an SSO-enabled Flow Production Tracking site\",\n                    )\n                )\n            elif sg_response.get(\"error_code\") == ERR_OXYG:\n                raise UserCredentialsNotAllowedForOxygenAuthenticationFault(\n                    sg_response.get(\n                        \"message\",\n                        \"Authentication using username/password is not \"\n                        \"allowed for an Autodesk Identity enabled Flow Production Tracking site\",\n                    )\n                )\n            else:\n                # raise general Fault\n                raise Fault(sg_response.get(\"message\", \"Unknown Error\"))\n        return\n\n    def _visit_data(self, data: T, visitor) -> T:\n        \"\"\"\n        Walk the data (simple python types) and call the visitor.\n        \"\"\"\n\n        if not data:\n            return data\n\n        recursive = self._visit_data\n        if isinstance(data, list):\n            return [recursive(i, visitor) for i in data]  # type: ignore[return-value]\n\n        if isinstance(data, tuple):\n            return tuple(recursive(i, visitor) for i in data)  # type: ignore[return-value]\n\n        if isinstance(data, dict):\n            return dict((k, recursive(v, visitor)) for k, v in data.items())  # type: ignore[return-value]\n\n        return visitor(data)\n\n    def _transform_outbound(self, data: T) -> T:\n        \"\"\"\n        Transform data types or values before they are sent by the client.\n\n        - changes timezones\n        - converts dates and times to strings\n        \"\"\"\n\n        if self.config.convert_datetimes_to_utc:\n\n            def _change_tz(value):\n                if value.tzinfo is None:\n                    value = value.replace(tzinfo=SG_TIMEZONE.local)\n                return value.astimezone(SG_TIMEZONE.utc)\n\n        else:\n            _change_tz = None\n\n        local_now = datetime.datetime.now()\n\n        def _outbound_visitor(value):\n\n            if isinstance(value, datetime.datetime):\n                if _change_tz:\n                    value = _change_tz(value)\n\n                return value.strftime(\"%Y-%m-%dT%H:%M:%SZ\")\n\n            if isinstance(value, datetime.date):\n                # existing code did not tz transform dates.\n                return value.strftime(\"%Y-%m-%d\")\n\n            if isinstance(value, datetime.time):\n                value = local_now.replace(\n                    hour=value.hour,\n                    minute=value.minute,\n                    second=value.second,\n                    microsecond=value.microsecond,\n                )\n                if _change_tz:\n                    value = _change_tz(value)\n                return value.strftime(\"%Y-%m-%dT%H:%M:%SZ\")\n\n            return value\n\n        return self._visit_data(data, _outbound_visitor)\n\n    def _transform_inbound(self, data: T) -> T:\n        \"\"\"\n        Transforms data types or values after they are received from the server.\n        \"\"\"\n        # NOTE: The time zone is removed from the time after it is transformed\n        # to the local time, otherwise it will fail to compare to datetimes\n        # that do not have a time zone.\n        if self.config.convert_datetimes_to_utc:\n\n            def _change_tz(x):\n                return x.replace(tzinfo=SG_TIMEZONE.utc).astimezone(SG_TIMEZONE.local)\n\n        else:\n            _change_tz = None\n\n        def _inbound_visitor(value):\n            if isinstance(value, str):\n                if len(value) == 20 and self._DATE_TIME_PATTERN.match(value):\n                    try:\n                        value = datetime.datetime.strptime(value, \"%Y-%m-%dT%H:%M:%SZ\")\n                    except ValueError:\n                        return value\n                    if _change_tz:\n                        return _change_tz(value)\n                    return value\n\n            return value\n\n        return self._visit_data(data, _inbound_visitor)\n\n    # ========================================================================\n    # Connection Functions\n\n    def _get_connection(self) -> Http:\n        \"\"\"\n        Return the current connection or creates a new connection to the current server.\n        \"\"\"\n        if self._connection is not None:\n            return self._connection\n\n        if self.config.proxy_server:\n            pi = ProxyInfo(\n                socks.PROXY_TYPE_HTTP,\n                self.config.proxy_server,\n                self.config.proxy_port,\n                proxy_user=self.config.proxy_user,\n                proxy_pass=self.config.proxy_pass,\n            )\n            self._connection = Http(\n                timeout=self.config.timeout_secs,\n                ca_certs=self.__ca_certs,\n                proxy_info=pi,\n            )\n        else:\n            self._connection = Http(\n                timeout=self.config.timeout_secs,\n                ca_certs=self.__ca_certs,\n                proxy_info=None,\n            )\n\n        return self._connection\n\n    def _close_connection(self) -> None:\n        \"\"\"\n        Close the current connection.\n        \"\"\"\n        if self._connection is None:\n            return\n\n        for conn in self._connection.connections.values():\n            try:\n                conn.close()\n            except Exception:\n                pass\n        self._connection.connections.clear()\n        self._connection = None\n        return\n\n    # ========================================================================\n    # Utility\n\n    def _parse_records(self, records: List) -> List:\n        \"\"\"\n        Parse 'records' returned from the api to do local modifications:\n\n        - Insert thumbnail urls\n        - Insert local file paths.\n        - Revert &lt; html entities that may be the result of input sanitization\n          mechanisms back to a litteral < character.\n\n        :param records: List of records (dicts) to process or a single record.\n\n        :returns: A list of the records processed.\n        \"\"\"\n\n        if not records:\n            return []\n\n        if not isinstance(records, (list, tuple)):\n            records = [\n                records,\n            ]\n\n        for rec in records:\n            # skip results that aren't entity dictionaries\n            if not isinstance(rec, dict):\n                continue\n\n            # iterate over each item and check each field for possible injection\n            for k, v in rec.items():\n                if not v:\n                    continue\n\n                # Check for html entities in strings\n                if isinstance(v, str):\n                    rec[k] = rec[k].replace(\"&lt;\", \"<\")\n\n                # check for thumbnail for older version (<3.3.0) of shotgun\n                if (\n                    k == \"image\"\n                    and self.server_caps.version\n                    and self.server_caps.version < (3, 3, 0)\n                ):\n                    rec[\"image\"] = self._build_thumb_url(rec[\"type\"], rec[\"id\"])\n                    continue\n\n                if (\n                    isinstance(v, dict)\n                    and v.get(\"link_type\") == \"local\"\n                    and self.client_caps.local_path_field in v\n                ):\n                    local_path = v[self.client_caps.local_path_field]\n                    v[\"local_path\"] = local_path\n                    v[\"url\"] = \"file://%s\" % (local_path or \"\",)\n\n        return records\n\n    def _build_thumb_url(self, entity_type: str, entity_id: int) -> str:\n        \"\"\"\n        Return the URL for the thumbnail of an entity given the entity type and the entity id.\n\n        Note: This makes a call to the server for every thumbnail.\n\n        :param entity_type: Entity type the id is for.\n        :param entity_id: id of the entity to get the thumbnail for.\n        :returns: Fully qualified url to the thumbnail.\n        \"\"\"\n        # Example response from the end point\n        # curl \"https://foo.com/upload/get_thumbnail_url?entity_type=Version&entity_id=1\"\n        # 1\n        # /files/0000/0000/0012/232/shot_thumb.jpg.jpg\n        entity_info = {\n            \"e_type\": urllib.parse.quote(entity_type),\n            \"e_id\": urllib.parse.quote(str(entity_id)),\n        }\n        url = (\n            \"/upload/get_thumbnail_url?\"\n            + \"entity_type=%(e_type)s&entity_id=%(e_id)s\" % entity_info\n        )\n\n        body = self._make_call(\"GET\", url, None, None)[2]\n\n        code, thumb_url = body.splitlines()\n        code = int(code)\n\n        # code of 0 means error, second line is the error code\n        if code == 0:\n            raise ShotgunError(thumb_url)\n\n        if code == 1:\n            return urllib.parse.urlunparse(\n                (\n                    self.config.scheme,\n                    self.config.server,\n                    thumb_url.strip(),\n                    None,\n                    None,\n                    None,\n                )\n            )\n\n        # Comments in prev version said we can get this sometimes.\n        raise RuntimeError(\"Unknown code %s %s\" % (code, thumb_url))\n\n    def _dict_to_list(\n        self,\n        d: Optional[Dict[str, Any]],\n        key_name: str = \"field_name\",\n        value_name: str = \"value\",\n        extra_data=None,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Utility function to convert a dict into a list dicts using the key_name and value_name keys.\n\n        e.g. d {'foo' : 'bar'} changed to [{'field_name':'foo', 'value':'bar'}]\n\n        Any dictionary passed in via extra_data will be merged into the resulting dictionary.\n        e.g. d as above and extra_data of {'foo': {'thing1': 'value1'}} changes into\n        [{'field_name': 'foo', 'value': 'bar', 'thing1': 'value1'}]\n        \"\"\"\n        ret = []\n        for k, v in (d or {}).items():\n            d = {key_name: k, value_name: v}\n            d.update((extra_data or {}).get(k, {}))\n            ret.append(d)\n        return ret\n\n    def _dict_to_extra_data(\n        self, d: Optional[Dict[str, Any]], key_name=\"value\"\n    ) -> Dict[str, Any]:\n        \"\"\"\n        Utility function to convert a dict into a dict compatible with the extra_data arg\n        of _dict_to_list.\n\n        e.g. d {'foo' : 'bar'} changed to {'foo': {\"value\": 'bar'}]\n        \"\"\"\n        return dict([(k, {key_name: v}) for (k, v) in (d or {}).items()])\n\n    def _upload_file_to_storage(self, path: str, storage_url: str) -> None:\n        \"\"\"\n        Internal function to upload an entire file to the Cloud storage.\n\n        :param str path: Full path to an existing non-empty file on disk to upload.\n        :param str storage_url: Target URL for the uploaded file.\n        \"\"\"\n        filename = os.path.basename(path)\n\n        fd = open(path, \"rb\")\n        try:\n            content_type = mimetypes.guess_type(filename)[0]\n            content_type = content_type or \"application/octet-stream\"\n            file_size = os.fstat(fd.fileno())[stat.ST_SIZE]\n            self._upload_data_to_storage(fd, content_type, file_size, storage_url)\n        finally:\n            fd.close()\n\n        LOG.debug(\"File uploaded to Cloud storage: %s\", filename)\n\n    def _multipart_upload_file_to_storage(\n        self, path: str, upload_info: Dict[str, Any]\n    ) -> None:\n        \"\"\"\n        Internal function to upload a file to the Cloud storage in multiple parts.\n\n        :param str path: Full path to an existing non-empty file on disk to upload.\n        :param dict upload_info: Contains details received from the server, about the upload.\n        \"\"\"\n\n        fd = open(path, \"rb\")\n        try:\n            content_type = mimetypes.guess_type(path)[0]\n            content_type = content_type or \"application/octet-stream\"\n            file_size = os.fstat(fd.fileno())[stat.ST_SIZE]\n            filename = os.path.basename(path)\n\n            etags = []\n            part_number = 1\n            bytes_read = 0\n            chunk_size = self._MULTIPART_UPLOAD_CHUNK_SIZE\n            while bytes_read < file_size:\n                data = fd.read(chunk_size)\n                data_size = len(data)\n                # keep data as a stream so that we don't need to worry how it was\n                # encoded.\n                data = io.BytesIO(data)\n                bytes_read += data_size\n                part_url = self._get_upload_part_link(\n                    upload_info, filename, part_number\n                )\n                etags.append(\n                    self._upload_data_to_storage(\n                        data, content_type, data_size, part_url\n                    )\n                )\n                part_number += 1\n\n            self._complete_multipart_upload(upload_info, filename, etags)\n        finally:\n            fd.close()\n\n        LOG.debug(\"File uploaded in multiple parts to Cloud storage: %s\", path)\n\n    def _get_upload_part_link(\n        self, upload_info: Dict[str, Any], filename: str, part_number: int\n    ) -> str:\n        \"\"\"\n        Internal function to get the url to upload the next part of a file to the\n        Cloud storage, in a multi-part upload process.\n\n        :param dict upload_info: Contains details received from the server, about the upload.\n        :param str filename: Name of the file for which we want the link.\n        :param int part_number: Part number for the link.\n        :returns: upload url.\n        :rtype: str\n        \"\"\"\n        params = {\n            \"upload_type\": upload_info[\"upload_type\"],\n            \"filename\": filename,\n            \"timestamp\": upload_info[\"timestamp\"],\n            \"upload_id\": upload_info[\"upload_id\"],\n            \"part_number\": part_number,\n        }\n\n        url = urllib.parse.urlunparse(\n            (\n                self.config.scheme,\n                self.config.server,\n                \"/upload/api_get_upload_link_for_part\",\n                None,\n                None,\n                None,\n            )\n        )\n        result = self._send_form(url, params)\n\n        # Response is of the form: 1\\n<url> (for success) or 0\\n (for failure).\n        # In case of success, we know we the second line of the response contains the\n        # requested URL.\n        if not result.startswith(\"1\"):\n            raise ShotgunError(\"Unable get upload part link: %s\" % result)\n\n        LOG.debug(\"Got next upload link from server for multipart upload.\")\n        return result.split(\"\\n\", 2)[1]\n\n    def _upload_data_to_storage(\n        self, data: BinaryIO, content_type: str, size: int, storage_url: str\n    ) -> str:\n        \"\"\"\n        Internal function to upload data to Cloud storage.\n\n        :param stream data: Contains details received from the server, about the upload.\n        :param str content_type: Content type of the data stream.\n        :param int size: Number of bytes in the data stream.\n        :param str storage_url: Target URL for the uploaded file.\n        :returns: upload url.\n        :rtype: str\n        \"\"\"\n\n        attempt = 1\n        while attempt <= self.MAX_ATTEMPTS:\n            try:\n                opener = self._build_opener(urllib.request.HTTPHandler)\n\n                request = urllib.request.Request(storage_url, data=data)\n                request.add_header(\"Content-Type\", content_type)\n                request.add_header(\"Content-Length\", size)\n                request.get_method = lambda: \"PUT\"\n                result = self._make_upload_request(request, opener)\n\n                LOG.debug(\"Completed request to %s\" % request.get_method())\n\n            except urllib.error.HTTPError as e:\n                if attempt != self.MAX_ATTEMPTS and e.code in [500, 503]:\n                    LOG.debug(\"Got a %s response. Waiting and retrying...\" % e.code)\n                    time.sleep(float(attempt) * self.BACKOFF)\n                    attempt += 1\n                    continue\n                elif e.code in [500, 503]:\n                    raise ShotgunError(\n                        \"Got a %s response when uploading to %s: %s\"\n                        % (e.code, storage_url, e)\n                    )\n                else:\n                    raise ShotgunError(\n                        \"Unanticipated error occurred uploading to %s: %s\"\n                        % (storage_url, e)\n                    )\n            except urllib.error.URLError as e:\n                LOG.debug(\"Got a '%s' response. Waiting and retrying...\" % e)\n                time.sleep(float(attempt) * self.BACKOFF)\n                attempt += 1\n                continue\n            else:\n                break\n        else:\n            raise ShotgunError(\"Max attempts limit reached.\")\n\n        etag = result.info()[\"Etag\"]\n        LOG.debug(\"Part upload completed successfully.\")\n        return etag\n\n    def _complete_multipart_upload(\n        self, upload_info: Dict[str, Any], filename: str, etags: Iterable[str]\n    ) -> None:\n        \"\"\"\n        Internal function to complete a multi-part upload to the Cloud storage.\n\n        :param dict upload_info: Contains details received from the server, about the upload.\n        :param str filename: Name of the file for which we want to complete the upload.\n        :param tuple etags: Contains the etag of each uploaded file part.\n        \"\"\"\n\n        params = {\n            \"upload_type\": upload_info[\"upload_type\"],\n            \"filename\": filename,\n            \"timestamp\": upload_info[\"timestamp\"],\n            \"upload_id\": upload_info[\"upload_id\"],\n            \"etags\": \",\".join(etags),\n        }\n\n        url = urllib.parse.urlunparse(\n            (\n                self.config.scheme,\n                self.config.server,\n                \"/upload/api_complete_multipart_upload\",\n                None,\n                None,\n                None,\n            )\n        )\n        result = self._send_form(url, params)\n\n        # Response is of the form: 1\\n or 0\\n to indicate success or failure of the call.\n        if not result.startswith(\"1\"):\n            raise ShotgunError(\"Unable get upload part link: %s\" % result)\n\n    def _requires_direct_s3_upload(\n        self, entity_type: str, field_name: Optional[str]\n    ) -> bool:\n        \"\"\"\n        Internal function that determines if an entity_type + field_name combination\n        should be uploaded to cloud storage.\n\n        The info endpoint should return `s3_enabled_upload_types` which contains an object like the following:\n            {\n                'Version': ['sg_uploaded_movie'],\n                'Attachment': '*',\n                '*': ['this_file']\n            }\n\n        :param str entity_type: The entity type of the file being uploaded.\n        :param str field_name: The matching field name for the file being uploaded.\n\n        :returns: Whether the field + entity type combination should be uploaded to cloud storage.\n        :rtype: bool\n        \"\"\"\n        supported_s3_types = self.server_info.get(\"s3_enabled_upload_types\") or {}\n        supported_fields = supported_s3_types.get(entity_type) or []\n        supported_star_fields = supported_s3_types.get(\"*\") or []\n        # If direct uploads are enabled\n        if self.server_info.get(\"s3_direct_uploads_enabled\", False):\n            # If field_name is part of a supported entity_type\n            if field_name in supported_fields or field_name in supported_star_fields:\n                return True\n            # If supported_fields is a string or a list with *\n            if isinstance(supported_fields, list) and \"*\" in supported_fields:\n                return True\n            elif supported_fields == \"*\":\n                return True\n            # If supported_star_fields is a list containing * or * as a string\n            if isinstance(supported_star_fields, list) and \"*\" in supported_star_fields:\n                return True\n            elif supported_star_fields == \"*\":\n                return True\n            # Support direct upload for old versions of shotgun\n            return entity_type == \"Version\" and field_name == \"sg_uploaded_movie\"\n        else:\n            return False\n\n    def _send_form(self, url: str, params: Dict[str, Any]) -> str:\n        \"\"\"\n        Utility function to send a Form to Shotgun and process any HTTP errors that\n        could occur.\n\n        :param url: endpoint where the form is sent.\n        :param params: form data\n        :returns: result from the server.\n        \"\"\"\n\n        params.update(self._auth_params())\n\n        attempt = 1\n        while attempt <= self.MAX_ATTEMPTS:\n            # Perform the request\n            try:\n                opener = self._build_opener(FormPostHandler)\n                resp = opener.open(url, params)\n                result = resp.read()\n                # response headers are in str(resp.info()).splitlines()\n            except urllib.error.URLError as e:\n                LOG.debug(\"Got a %s response. Waiting and retrying...\" % e)\n                time.sleep(float(attempt) * self.BACKOFF)\n                attempt += 1\n                continue\n            except urllib.error.HTTPError as e:\n                if e.code == 500:\n                    raise ShotgunError(\n                        \"Server encountered an internal error. \"\n                        \"\\n%s\\n(%s)\\n%s\\n\\n\"\n                        % (url, self._sanitize_auth_params(params), e)\n                    )\n                else:\n                    raise ShotgunError(\"Unanticipated error occurred %s\" % (e))\n\n            if isinstance(result, bytes):\n                result = result.decode(\"utf-8\")\n\n            return result\n        else:\n            raise ShotgunError(\"Max attempts limit reached.\")\n\n\n# Helpers from the previous API, left as is.\n# Based on http://code.activestate.com/recipes/146306/\nclass FormPostHandler(urllib.request.BaseHandler):\n    \"\"\"\n    Handler for multipart form data\n    \"\"\"\n\n    handler_order = urllib.request.HTTPHandler.handler_order - 10  # needs to run first\n\n    def http_request(self, request):\n        data = request.data\n        if data is not None and not isinstance(data, str):\n            files = []\n            params = []\n            for key, value in data.items():\n                if isinstance(value, io.IOBase):\n                    files.append((key, value))\n                else:\n                    params.append((key, value))\n            if not files:\n                data = urllib.parse.urlencode(params, True).encode(\"utf-8\")\n                # sequencing on\n            else:\n                boundary, data = self.encode(params, files)\n                content_type = \"multipart/form-data; boundary=%s\" % boundary\n                request.add_unredirected_header(\"Content-Type\", content_type)\n            request.data = data\n\n        return request\n\n    def encode(self, params, files, boundary=None, buffer=None):\n        if boundary is None:\n            # Per https://stackoverflow.com/a/27174474\n            # use a random string as the boundary if none was provided --\n            # use uuid since mimetools no longer exists in Python 3.\n            # We'll do this across both python 2/3 rather than add more branching.\n            boundary = uuid.uuid4()\n        if buffer is None:\n            buffer = io.BytesIO()\n        for key, value in params:\n            if isinstance(key, bytes):\n                key = key.decode(\"utf-8\")\n\n            if isinstance(value, bytes):\n                value = value.decode(\"utf-8\")\n            elif not isinstance(value, str):\n                # If value is not a string (e.g. int) cast to text\n                value = str(value)\n\n            buffer.write(f\"--{boundary}\\r\\n\".encode(\"utf-8\"))\n            buffer.write(\n                f'Content-Disposition: form-data; name=\"{key}\"'.encode(\"utf-8\")\n            )\n            buffer.write(f\"\\r\\n\\r\\n{value}\\r\\n\".encode(\"utf-8\"))\n        for key, fd in files:\n            # On Windows, it's possible that we were forced to open a file\n            # with non-ascii characters as unicode. In that case, we need to\n            # encode it as a utf-8 string to remove unicode from the equation.\n            # If we don't, the mix of unicode and strings going into the\n            # buffer can cause UnicodeEncodeErrors to be raised.\n            filename = (\n                fd.name.decode(\"utf-8\") if isinstance(fd.name, bytes) else fd.name\n            )\n            filename = filename.split(\"/\")[-1]\n            if isinstance(key, bytes):\n                key = key.decode(\"utf-8\")\n\n            content_type = mimetypes.guess_type(filename)[0]\n            content_type = content_type or \"application/octet-stream\"\n            file_size = os.fstat(fd.fileno())[stat.ST_SIZE]\n            buffer.write(f\"--{boundary}\\r\\n\".encode(\"utf-8\"))\n            c_dis = 'Content-Disposition: form-data; name=\"%s\"; filename=\"%s\"%s'\n            content_disposition = c_dis % (key, filename, \"\\r\\n\")\n            buffer.write(content_disposition.encode(\"utf-8\"))\n            buffer.write(f\"Content-Type: {content_type}\\r\\n\".encode(\"utf-8\"))\n            buffer.write(f\"Content-Length: {file_size}\\r\\n\".encode(\"utf-8\"))\n\n            buffer.write(b\"\\r\\n\")\n            fd.seek(0)\n            shutil.copyfileobj(fd, buffer)\n            buffer.write(b\"\\r\\n\")\n        buffer.write(f\"--{boundary}--\\r\\n\\r\\n\".encode(\"utf-8\"))\n        buffer = buffer.getvalue()\n        return boundary, buffer\n\n    def https_request(self, request):\n        return self.http_request(request)\n\n\ndef _translate_filters(filters: Union[List, Tuple], filter_operator) -> Dict[str, Any]:\n    \"\"\"\n    Translate filters params into data structure expected by rpc call.\n    \"\"\"\n    wrapped_filters = {\"filter_operator\": filter_operator or \"all\", \"filters\": filters}\n\n    return _translate_filters_dict(wrapped_filters)\n\n\ndef _translate_filters_dict(sg_filter: Dict[str, Any]) -> Dict[str, Any]:\n    new_filters = {}\n    filter_operator = sg_filter.get(\"filter_operator\")\n\n    if filter_operator == \"all\" or filter_operator == \"and\":\n        new_filters[\"logical_operator\"] = \"and\"\n    elif filter_operator == \"any\" or filter_operator == \"or\":\n        new_filters[\"logical_operator\"] = \"or\"\n    else:\n        raise ShotgunError(\"Invalid filter_operator %s\" % filter_operator)\n\n    if not isinstance(sg_filter[\"filters\"], (list, tuple)):\n        raise ShotgunError(\n            \"Invalid filters, expected a list or a tuple, got %s\" % sg_filter[\"filters\"]\n        )\n\n    new_filters[\"conditions\"] = _translate_filters_list(sg_filter[\"filters\"])\n\n    return new_filters\n\n\ndef _translate_filters_list(filters):\n    conditions = []\n\n    for sg_filter in filters:\n        if isinstance(sg_filter, (list, tuple)):\n            conditions.append(_translate_filters_simple(sg_filter))\n        elif isinstance(sg_filter, dict):\n            conditions.append(_translate_filters_dict(sg_filter))\n        else:\n            raise ShotgunError(\n                \"Invalid filters, expected a list, tuple or dict, got %s\" % sg_filter\n            )\n\n    return conditions\n\n\ndef _translate_filters_simple(sg_filter):\n    condition = {\"path\": sg_filter[0], \"relation\": sg_filter[1]}\n\n    values = sg_filter[2:]\n    if len(values) == 1 and isinstance(values[0], (list, tuple)):\n        values = values[0]\n\n    # Payload optimization: Do not send a full object\n    # just send the `type` and `id` when combining related queries\n    global SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION\n    if (\n        not SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION\n        and condition[\"path\"] != \"id\"\n        and condition[\"relation\"] in [\"is\", \"is_not\", \"in\", \"not_in\"]\n        and isinstance(values[0], dict)\n    ):\n        values = [_optimize_filter_field(v) for v in values]\n\n    condition[\"values\"] = values\n\n    return condition\n\n\ndef _version_str(version) -> str:\n    \"\"\"\n    Convert a tuple of int's to a '.' separated str.\n    \"\"\"\n    return \".\".join(map(str, version))\n\n\ndef _optimize_filter_field(\n    field_value: Union[Dict[str, Any], List], recursive: bool = True\n) -> Union[Dict, List]:\n    \"\"\"\n    For an FPT entity, returns a new dictionary with only the type,\n    id, and other allowed keys.\n    If case of any processing error, the original dictionary is returned.\n\n    At least `type` and `id` keys are required to do the optimization\n    \"\"\"\n    allowed_keys = {\n        \"id\",\n        \"type\",\n        \"url\",\n        \"name\",\n        \"content_type\",\n        \"local_path\",\n        \"storage\",\n        \"relative_path\",\n    }\n    if isinstance(field_value, dict) and \"id\" in field_value and \"type\" in field_value:\n        return {key: field_value[key] for key in allowed_keys if key in field_value}\n\n    elif recursive and isinstance(field_value, list):\n        return [_optimize_filter_field(fv, recursive=False) for fv in field_value]\n\n    return field_value\n"
  },
  {
    "path": "software_credits",
    "content": "The Flow Production Tracking Python API uses the following software.\nThanks to their creators, license information below.\n\n============================== PYTHON ==============================\n\nCopyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,\n2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Python Software Foundation.  All\nrights reserved.\n\nCopyright (c) 2000 BeOpen.com.\nAll rights reserved.\n\nCopyright (c) 1995-2001 Corporation for National Research Initiatives.\nAll rights reserved.\n\nCopyright (c) 1991-1995 Stichting Mathematisch Centrum.\nAll rights reserved.\n\n1. This LICENSE AGREEMENT is between the Python Software Foundation (&quot;PSF&quot;), and\n    the Individual or Organization (&quot;Licensee&quot;) accessing and otherwise using Python\n    2.7.17 software in source or binary form and its associated documentation.\n\n2. Subject to the terms and conditions of this License Agreement, PSF hereby\n    grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,\n    analyze, test, perform and/or display publicly, prepare derivative works,\n    distribute, and otherwise use Python 2.7.17 alone or in any derivative\n    version, provided, however, that PSF's License Agreement and PSF's notice of\n    copyright, i.e., &quot;Copyright &copy; 2001-2020 Python Software Foundation; All Rights\n    Reserved&quot; are retained in Python 2.7.17 alone or in any derivative version\n    prepared by Licensee.\n\n3. In the event Licensee prepares a derivative work that is based on or\n    incorporates Python 2.7.17 or any part thereof, and wants to make the\n    derivative work available to others as provided herein, then Licensee hereby\n    agrees to include in any such work a brief summary of the changes made to Python\n    2.7.17.\n\n4. PSF is making Python 2.7.17 available to Licensee on an &quot;AS IS&quot; basis.\n    PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF\n    EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR\n    WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE\n    USE OF PYTHON 2.7.17 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.\n\n5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 2.7.17\n    FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF\n    MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.7.17, OR ANY DERIVATIVE\n    THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.\n\n6. This License Agreement will automatically terminate upon a material breach of\n    its terms and conditions.\n\n7. Nothing in this License Agreement shall be deemed to create any relationship\n    of agency, partnership, or joint venture between PSF and Licensee. This License\n    Agreement does not grant permission to use PSF trademarks or trade name in a\n    trademark sense to endorse or promote products or services of Licensee, or any\n    third party.\n\n8. By copying, installing or otherwise using Python 2.7.17, Licensee agrees\n    to be bound by the terms and conditions of this License Agreement.\n\n\n============================== Certifi ==============================\n\nCopyright © 2024 Contributors\nThis Autodesk software contains the unmodified python-certifi 2024.07.04\npackage. The use and distribution terms for this software are covered by the\nMozilla Public License 2.0 (https://www.mozilla.org/en-US/MPL/2.0/ ). By using\nthis software in any fashion, you are agreeing to be bound by the terms of this\nlicense. The source code for python-certifi is available from\nhttps://github.com/certifi/python-certifi/releases/tag/2024.07.04\n\n\n============================== Httplib2 ==============================\nHttplib2 Software License\n\nCopyright (c) 2006 by Joe Gregorio\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without restriction,\nincluding without limitation the rights to use, copy, modify, merge,\npublish, distribute, sublicense, and/or sell copies of the Software,\nand to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\nBE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\nACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n============================== pyparsing ==============================\n\nCopyright (c) 2003-2019  Paul T. McGuire\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n============================== SIX ==============================\n\nCopyright (c) 2010-2020 Benjamin Peterson\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "tests/__init__.py",
    "content": ""
  },
  {
    "path": "tests/base.py",
    "content": "\"\"\"Base class for Flow Production Tracking API tests.\"\"\"\n\nimport configparser\nimport contextlib\nimport json\nimport os\nimport random\nimport re\nimport time\nimport unittest\nimport unittest.mock\nimport urllib.error\n\nimport shotgun_api3 as api\nfrom shotgun_api3.shotgun import ServerCapabilities\n\nTHUMBNAIL_MAX_ATTEMPTS = 30\nTHUMBNAIL_RETRY_INTERVAL = 10\nTRANSIENT_IMAGE_PATH = \"images/status/transient\"\n\n\nclass TestBase(unittest.TestCase):\n    \"\"\"Base class for tests.\n\n    Sets up mocking and database test data.\"\"\"\n\n    human_user = None\n    project = None\n    shot = None\n    asset = None\n    version = None\n    note = None\n    playlist = None\n    task = None\n    human_password = None\n    server_url = None\n    server_address = None\n    session_token = None\n\n    def __init__(self, *args, **kws):\n        unittest.TestCase.__init__(self, *args, **kws)\n        self.connect = False\n\n    @classmethod\n    def setUpClass(cls):\n        \"\"\"\n        Loads the configuration file from disk.\n        \"\"\"\n        # Since the file is read and never modified, we will only read\n        # it once in memory and be done.\n        cls.config = SgTestConfig()\n        cur_folder = os.path.dirname(os.path.abspath(__file__))\n        config_path = os.path.join(cur_folder, \"config\")\n        cls.config.read_config(config_path)\n        if cls.config.jenkins:\n            cls.auth_args = dict(\n                login=cls.config.human_login, password=cls.config.human_password\n            )\n        else:\n            cls.auth_args = dict(\n                script_name=cls.config.script_name, api_key=cls.config.api_key\n            )\n\n    def setUp(self, auth_mode=\"ApiUser\"):\n        # When running the tests from a pull request from a client, the Shotgun\n        # site URL won't be set, so do not attempt to run the test.\n        if not self.config.server_url:\n            self.skipTest(\"Shotgun site URL is not set. Skipping this test.\")\n\n        self.human_login = self.config.human_login\n        self.human_password = self.config.human_password\n        self.server_url = self.config.server_url\n        self.script_name = self.config.script_name\n        self.api_key = self.config.api_key\n        self.http_proxy = self.config.http_proxy\n        self.session_uuid = self.config.session_uuid\n\n        if auth_mode == \"ApiUser\":\n            self.sg = api.Shotgun(\n                self.config.server_url,\n                self.config.script_name,\n                self.config.api_key,\n                http_proxy=self.config.http_proxy,\n                connect=self.connect,\n            )\n        elif auth_mode == \"HumanUser\":\n            self.sg = api.Shotgun(\n                self.config.server_url,\n                login=self.human_login,\n                password=self.human_password,\n                http_proxy=self.config.http_proxy,\n                connect=self.connect,\n            )\n        elif auth_mode == \"SessionToken\":\n            # first make an instance based on script key/name so\n            # we can generate a session token\n            sg = api.Shotgun(\n                self.config.server_url,\n                http_proxy=self.config.http_proxy,\n                **self.auth_args,\n            )\n            self.session_token = sg.get_session_token()\n            # now log in using session token\n            self.sg = api.Shotgun(\n                self.config.server_url,\n                session_token=self.session_token,\n                http_proxy=self.config.http_proxy,\n                connect=self.connect,\n            )\n        else:\n            raise ValueError(\"Unknown value for auth_mode: %s\" % auth_mode)\n\n        if self.config.session_uuid:\n            self.sg.set_session_uuid(self.config.session_uuid)\n\n    def tearDown(self):\n        self.sg = None\n\n\nclass MockTestBase(TestBase):\n    \"\"\"Test base for tests mocking server interactions.\"\"\"\n\n    def setUp(self):\n        super().setUp()\n        # TODO see if there is another way to stop sg connecting\n        self._setup_mock()\n        self._setup_mock_data()\n\n    def _setup_mock(self, s3_status_code_error=503):\n        \"\"\"Setup mocking on the ShotgunClient to stop it calling a live server\"\"\"\n        # Replace the function used to make the final call to the server\n        # eaiser than mocking the http connection + response\n        self.sg._http_request = unittest.mock.Mock(\n            spec=api.Shotgun._http_request, return_value=((200, \"OK\"), {}, None)\n        )\n        # Replace the function used to make the final call to the S3 server, and simulate\n        # the exception HTTPError raised with 503 status errors\n        self.sg._make_upload_request = unittest.mock.Mock(\n            spec=api.Shotgun._make_upload_request,\n            side_effect=urllib.error.HTTPError(\n                \"url\",\n                s3_status_code_error,\n                \"The server is currently down or to busy to reply.\"\n                \"Please try again later.\",\n                {},\n                None,\n            ),\n        )\n        # also replace the function that is called to get the http connection\n        # to avoid calling the server. OK to return a mock as we will not use\n        # it\n        self.mock_conn = unittest.mock.Mock(spec=api.lib.httplib2.Http)\n        # The Http objects connection property is a dict of connections\n        # it is holding\n        self.mock_conn.connections = dict()\n        self.sg._connection = self.mock_conn\n        self.sg._get_connection = unittest.mock.Mock(return_value=self.mock_conn)\n\n        # create the server caps directly to say we have the correct version\n        self.sg._server_caps = ServerCapabilities(\n            self.sg.config.server, {\"version\": [2, 4, 0]}\n        )\n        # prevent waiting for backoff\n        self.sg.BACKOFF = 0\n\n    def _mock_http(self, data, headers=None, status=None):\n        \"\"\"Setup a mock response from the PTR server.\n\n        Only has an affect if the server has been mocked.\n        \"\"\"\n        # test for a mock object rather than config.mock as some tests\n        # force the mock to be created\n        if not isinstance(self.sg._http_request, unittest.mock.Mock):\n            return\n\n        if not isinstance(data, str):\n            data = json.dumps(\n                data,\n                ensure_ascii=False,\n            )\n\n        resp_headers = {\n            \"cache-control\": \"no-cache\",\n            \"connection\": \"close\",\n            \"content-length\": (data and str(len(data))) or 0,\n            \"content-type\": \"application/json; charset=utf-8\",\n            \"date\": \"Wed, 13 Apr 2011 04:18:58 GMT\",\n            \"server\": \"Apache/2.2.3 (CentOS)\",\n            \"status\": \"200 OK\",\n        }\n        if headers:\n            resp_headers.update(headers)\n\n        if not status:\n            status = (200, \"OK\")\n        # create a new mock to reset call list etc.\n        self._setup_mock()\n        self.sg._http_request.return_value = (status, resp_headers, data)\n\n    def _assert_http_method(self, method, params, check_auth=True):\n        \"\"\"Asserts _http_request is called with the method and params.\"\"\"\n        args, _ = self.sg._http_request.call_args\n        arg_body = args[2]\n        assert isinstance(arg_body, bytes)\n        arg_body = json.loads(arg_body)\n\n        arg_params = arg_body.get(\"params\")\n\n        self.assertEqual(method, arg_body[\"method_name\"])\n        if check_auth:\n            auth = arg_params[0]\n            self.assertEqual(self.script_name, auth[\"script_name\"])\n            self.assertEqual(self.api_key, auth[\"script_key\"])\n\n        if params:\n            rpc_args = arg_params[len(arg_params) - 1]\n            self.assertEqual(params, rpc_args)\n\n    def _setup_mock_data(self):\n        self.human_user = {\n            \"id\": 1,\n            \"login\": self.config.human_login,\n            \"type\": \"HumanUser\",\n        }\n        self.project = {\"id\": 2, \"name\": self.config.project_name, \"type\": \"Project\"}\n        self.shot = {\"id\": 3, \"code\": self.config.shot_code, \"type\": \"Shot\"}\n        self.asset = {\"id\": 4, \"code\": self.config.asset_code, \"type\": \"Asset\"}\n        self.version = {\"id\": 5, \"code\": self.config.version_code, \"type\": \"Version\"}\n        self.playlist = {\"id\": 7, \"code\": self.config.playlist_code, \"type\": \"Playlist\"}\n\n\nclass LiveTestBase(TestBase):\n    \"\"\"Test base for tests relying on connection to server.\"\"\"\n\n    def setUp(self, auth_mode=None):\n        if not auth_mode:\n            auth_mode = \"HumanUser\" if self.config.jenkins else \"ApiUser\"\n        super().setUp(auth_mode)\n        if (\n            self.sg.server_caps.version\n            and self.sg.server_caps.version >= (3, 3, 0)\n            and (\n                self.sg.server_caps.host.startswith(\"0.0.0.0\")\n                or self.sg.server_caps.host.startswith(\"127.0.0.1\")\n            )\n        ):\n            self.server_address = re.sub(\n                \"^0.0.0.0|127.0.0.1\", \"localhost\", self.sg.server_caps.host\n            )\n        else:\n            self.server_address = self.sg.server_caps.host\n\n    @classmethod\n    def setUpClass(cls):\n        \"\"\"\n        Sets up common and recurring operations for all tests.\n        \"\"\"\n        # The code below simply retrieves entities from Shotgun, or creates\n        # them the very first time the test suite is run againt the site.\n        # As such, since the operation is read-only, there's no sense\n        # reloading stuff from Shotgun over and over again during each test.\n        # As such, we are using setUpClass to load them once during the\n        # entire duration of the tests.\n        super(LiveTestBase, cls).setUpClass()\n\n        # When running the tests from a pull request from a client, the Shotgun\n        # site URL won't be set, so do not attempt to connect to Shotgun.\n        if cls.config.server_url:\n            sg = api.Shotgun(\n                cls.config.server_url,\n                **cls.auth_args,\n            )\n            cls.sg_version = tuple(sg.info()[\"version\"][:3])\n            cls._setup_db(cls.config, sg)\n\n    @classmethod\n    def _setup_db(cls, config, sg):\n        data = {\"name\": cls.config.project_name}\n        cls.project = _find_or_create_entity(sg, \"Project\", data)\n\n        data = {\n            \"name\": cls.config.human_name,\n            \"login\": cls.config.human_login,\n            \"password_proxy\": cls.config.human_password,\n        }\n        if cls.sg_version >= (3, 0, 0):\n            data[\"locked_until\"] = None\n\n        cls.human_user = _find_or_create_entity(sg, \"HumanUser\", data)\n\n        data = {\"code\": cls.config.asset_code, \"project\": cls.project}\n        keys = [\"code\"]\n        cls.asset = _find_or_create_entity(sg, \"Asset\", data, keys)\n\n        data = {\n            \"project\": cls.project,\n            \"code\": cls.config.version_code,\n            \"entity\": cls.asset,\n            \"user\": cls.human_user,\n            \"sg_frames_aspect_ratio\": 13.3,\n            \"frame_count\": 33,\n        }\n        keys = [\"code\", \"project\"]\n        cls.version = _find_or_create_entity(sg, \"Version\", data, keys)\n\n        keys = [\"code\", \"project\"]\n        data = {\"code\": cls.config.shot_code, \"project\": cls.project}\n        cls.shot = _find_or_create_entity(sg, \"Shot\", data, keys)\n\n        keys = [\"project\", \"user\"]\n        data = {\"project\": cls.project, \"user\": cls.human_user, \"content\": \"anything\"}\n        cls.note = _find_or_create_entity(sg, \"Note\", data, keys)\n\n        keys = [\"code\", \"project\"]\n        data = {\"project\": cls.project, \"code\": cls.config.playlist_code}\n        cls.playlist = _find_or_create_entity(sg, \"Playlist\", data, keys)\n\n        keys = [\"code\", \"entity_type\"]\n        data = {\"code\": \"wrapper test step\", \"entity_type\": \"Shot\"}\n        cls.step = _find_or_create_entity(sg, \"Step\", data, keys)\n\n        keys = [\"project\", \"entity\", \"content\"]\n        data = {\n            \"project\": cls.project,\n            \"entity\": cls.asset,\n            \"content\": cls.config.task_content,\n            \"color\": \"Black\",\n            \"due_date\": \"1968-10-13\",\n            \"task_assignees\": [cls.human_user],\n            \"sg_status_list\": \"ip\",\n        }\n        cls.task = _find_or_create_entity(sg, \"Task\", data, keys)\n\n        keys = [\"code\"]\n        data = {\n            \"code\": \"api wrapper test storage\",\n            \"mac_path\": \"nowhere\",\n            \"windows_path\": \"nowhere\",\n            \"linux_path\": \"nowhere\",\n        }\n        cls.local_storage = _find_or_create_entity(sg, \"LocalStorage\", data, keys)\n\n    @contextlib.contextmanager\n    def gen_entity(self, entity_type, **kwargs):\n        # Helper creator\n        if entity_type == \"HumanUser\":\n            if \"login\" not in kwargs:\n                kwargs[\"login\"] = \"test-python-api-{rnd}\"\n\n            if \"sg_status_list\" not in kwargs:\n                kwargs[\"sg_status_list\"] = \"dis\"\n\n            if \"password_proxy\" not in kwargs:\n                kwargs[\"password_proxy\"] = self.config.human_password\n\n        item_rnd = random.randrange(100, 999)\n        for k in kwargs:\n            if isinstance(kwargs[k], str):\n                kwargs[k] = kwargs[k].format(rnd=item_rnd)\n\n        entity = self.sg.create(entity_type, kwargs, return_fields=list(kwargs.keys()))\n        try:\n            yield entity\n        finally:\n            rv = self.sg.delete(entity_type, entity[\"id\"])\n            assert rv == True\n\n    def find_one_await_thumbnail(\n        self,\n        entity_type,\n        filters,\n        fields=[\"image\"],\n        thumbnail_field_name=\"image\",\n        **kwargs\n    ):\n        attempts = 0\n        while attempts < THUMBNAIL_MAX_ATTEMPTS:\n            result = self.sg.find_one(entity_type, filters, fields=fields, **kwargs)\n            if TRANSIENT_IMAGE_PATH in result.get(thumbnail_field_name, \"\"):\n                return result\n\n            time.sleep(THUMBNAIL_RETRY_INTERVAL)\n            attempts += 1\n        else:\n            if self.config.jenkins:\n                self.skipTest(\"Jenkins test timed out waiting for thumbnail\")\n\n\nclass HumanUserAuthLiveTestBase(LiveTestBase):\n    \"\"\"\n    Test base for relying on a Shotgun connection authenticate through the\n    configured login/password pair.\n    \"\"\"\n\n    def setUp(self):\n        super().setUp(\"HumanUser\")\n\n\nclass SessionTokenAuthLiveTestBase(LiveTestBase):\n    \"\"\"\n    Test base for relying on a Shotgun connection authenticate through the\n    configured session_token parameter.\n    \"\"\"\n\n    def setUp(self):\n        super().setUp(\"SessionToken\")\n\n\nclass SgTestConfig(object):\n    \"\"\"Reads test config and holds values\"\"\"\n\n    def __init__(self):\n        for key in self.config_keys():\n            # Look for any environment variables that match our test\n            # configuration naming of \"SG_{KEY}\". Default is None.\n            value = os.environ.get(\"SG_%s\" % (str(key).upper()))\n            if key in [\"mock\"]:\n                value = (value is None) or (str(value).lower() in [\"true\", \"1\"])\n            setattr(self, key, value)\n\n    def config_keys(self):\n        return [\n            \"api_key\",\n            \"asset_code\",\n            \"http_proxy\",\n            \"human_login\",\n            \"human_name\",\n            \"human_password\",\n            \"mock\",\n            \"project_name\",\n            \"script_name\",\n            \"server_url\",\n            \"session_uuid\",\n            \"shot_code\",\n            \"task_content\",\n            \"version_code\",\n            \"playlist_code\",\n            \"jenkins\",\n        ]\n\n    def read_config(self, config_path):\n        config_parser = configparser.ConfigParser()\n        config_parser.read(config_path)\n        for section in config_parser.sections():\n            for option in config_parser.options(section):\n                # We only care about the configuration file if an environment\n                # variable has not already been set\n                if not getattr(self, option, None):\n                    value = config_parser.get(section, option)\n                    setattr(self, option, value)\n\n\ndef _find_or_create_entity(sg, entity_type, data, identifyiers=None):\n    \"\"\"Finds or creates entities.\n    @params:\n        sg           - shogun_json.Shotgun instance\n        entity_type  - entity type\n        data         - dictionary of data for the entity\n        identifyiers -list of subset of keys from data which should be used to\n                      uniquely identity the entity\n    @returns dicitonary of the entity values\n    \"\"\"\n    identifyiers = identifyiers or [\"name\"]\n    fields = list(data.keys())\n    filters = [[key, \"is\", data[key]] for key in identifyiers]\n    entity = sg.find_one(entity_type, filters, fields=fields)\n    entity = entity or sg.create(entity_type, data, return_fields=fields)\n    assert entity\n    return entity\n"
  },
  {
    "path": "tests/empty.txt",
    "content": ""
  },
  {
    "path": "tests/example_config",
    "content": "# Copyright (c) 2019 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\n\n# Example server and login information to use for tests which require a live server.\n# This file should be renamed to config and the appropriate values should be added.\n\n[SERVER_INFO]\n\n# Full url to the Flow Production Tracking server\n# e.g. https://my-site.shotgrid.autodesk.com\n# be careful to not end server_url with a \"/\", or some tests may fail\nserver_url     : http://0.0.0.0:3000\n# script name as key as listed in admin panel for your server\nscript_name    : test script name\napi_key        : test script api key\nhttp_proxy     :\nsession_uuid   :\n\n[TEST_DATA]\nproject_name   : PTR unittest project\n\nhuman_name     : Sg unittest human\nhuman_login    : sgunittesthuman\nhuman_password : human password\n\nasset_code     : Sg unittest asset\nversion_code   : Sg unittest version\nshot_code      : Sg unittest shot\ntask_content   : Sg unittest task\nplaylist_code  : Sg unittest playlist\n"
  },
  {
    "path": "tests/mockgun/schema.pickle",
    "content": "(dp0\nS'Playlist'\np1\n(dp2\nS'open_notes_count'\np3\n(dp4\nS'mandatory'\np5\n(dp6\nS'editable'\np7\nI00\nsS'value'\np8\nI00\nssS'name'\np9\n(dp10\nS'editable'\np11\nI01\nsS'value'\np12\nS'Open Notes Count'\np13\nssS'data_type'\np14\n(dp15\nS'editable'\np16\nI00\nsS'value'\np17\nS'text'\np18\nssS'entity_type'\np19\n(dp20\nS'editable'\np21\nI00\nsS'value'\np22\nS'Playlist'\np23\nssS'editable'\np24\n(dp25\nS'editable'\np26\nI00\nsS'value'\np27\nI00\nssS'unique'\np28\n(dp29\nS'editable'\np30\nI00\nsS'value'\np31\nI00\nssS'properties'\np32\n(dp33\nS'default_value'\np34\n(dp35\nS'editable'\np36\nI00\nsS'value'\np37\nNssS'summary_default'\np38\n(dp39\nS'editable'\np40\nI01\nsS'value'\np41\nS'none'\np42\nsssS'description'\np43\n(dp44\nS'editable'\np45\nI01\nsS'value'\np46\nS''\np47\nsssS'code'\np48\n(dp49\nS'mandatory'\np50\n(dp51\nS'editable'\np52\nI00\nsS'value'\np53\nI01\nssS'name'\np54\n(dp55\nS'editable'\np56\nI01\nsS'value'\np57\nS'Playlist Name'\np58\nssS'data_type'\np59\n(dp60\nS'editable'\np61\nI00\nsS'value'\np62\nS'text'\np63\nssS'entity_type'\np64\n(dp65\nS'editable'\np66\nI00\nsS'value'\np67\nS'Playlist'\np68\nssS'editable'\np69\n(dp70\nS'editable'\np71\nI00\nsS'value'\np72\nI01\nssS'unique'\np73\n(dp74\nS'editable'\np75\nI00\nsS'value'\np76\nI00\nssS'properties'\np77\n(dp78\nS'default_value'\np79\n(dp80\nS'editable'\np81\nI00\nsS'value'\np82\nNssS'summary_default'\np83\n(dp84\nS'editable'\np85\nI01\nsS'value'\np86\nS'none'\np87\nsssS'description'\np88\n(dp89\nS'editable'\np90\nI01\nsS'value'\np91\ng47\nsssS'open_notes'\np92\n(dp93\nS'mandatory'\np94\n(dp95\nS'editable'\np96\nI00\nsS'value'\np97\nI00\nssS'name'\np98\n(dp99\nS'editable'\np100\nI01\nsS'value'\np101\nS'Open Notes'\np102\nssS'data_type'\np103\n(dp104\nS'editable'\np105\nI00\nsS'value'\np106\nS'multi_entity'\np107\nssS'entity_type'\np108\n(dp109\nS'editable'\np110\nI00\nsS'value'\np111\nS'Playlist'\np112\nssS'editable'\np113\n(dp114\nS'editable'\np115\nI00\nsS'value'\np116\nI00\nssS'unique'\np117\n(dp118\nS'editable'\np119\nI00\nsS'value'\np120\nI00\nssS'properties'\np121\n(dp122\nS'default_value'\np123\n(dp124\nS'editable'\np125\nI00\nsS'value'\np126\nNssS'summary_default'\np127\n(dp128\nS'editable'\np129\nI01\nsS'value'\np130\nS'none'\np131\nssS'valid_types'\np132\n(dp133\nS'editable'\np134\nI01\nsS'value'\np135\n(lp136\nS'Note'\np137\nasssS'description'\np138\n(dp139\nS'editable'\np140\nI01\nsS'value'\np141\ng47\nsssS'description'\np142\n(dp143\nS'mandatory'\np144\n(dp145\nS'editable'\np146\nI00\nsS'value'\np147\nI00\nssS'name'\np148\n(dp149\nS'editable'\np150\nI01\nsS'value'\np151\nS'Description'\np152\nssS'data_type'\np153\n(dp154\nS'editable'\np155\nI00\nsS'value'\np156\nS'text'\np157\nssS'entity_type'\np158\n(dp159\nS'editable'\np160\nI00\nsS'value'\np161\nS'Playlist'\np162\nssS'editable'\np163\n(dp164\nS'editable'\np165\nI00\nsS'value'\np166\nI01\nssS'unique'\np167\n(dp168\nS'editable'\np169\nI00\nsS'value'\np170\nI00\nssS'properties'\np171\n(dp172\nS'default_value'\np173\n(dp174\nS'editable'\np175\nI00\nsS'value'\np176\nNssS'summary_default'\np177\n(dp178\nS'editable'\np179\nI01\nsS'value'\np180\nS'none'\np181\nsssS'description'\np182\n(dp183\nS'editable'\np184\nI01\nsS'value'\np185\ng47\nsssS'versions'\np186\n(dp187\nS'mandatory'\np188\n(dp189\nS'editable'\np190\nI00\nsS'value'\np191\nI00\nssS'name'\np192\n(dp193\nS'editable'\np194\nI01\nsS'value'\np195\nS'Versions'\np196\nssS'data_type'\np197\n(dp198\nS'editable'\np199\nI00\nsS'value'\np200\nS'multi_entity'\np201\nssS'entity_type'\np202\n(dp203\nS'editable'\np204\nI00\nsS'value'\np205\nS'Playlist'\np206\nssS'editable'\np207\n(dp208\nS'editable'\np209\nI00\nsS'value'\np210\nI01\nssS'unique'\np211\n(dp212\nS'editable'\np213\nI00\nsS'value'\np214\nI00\nssS'properties'\np215\n(dp216\nS'default_value'\np217\n(dp218\nS'editable'\np219\nI00\nsS'value'\np220\nNssS'summary_default'\np221\n(dp222\nS'editable'\np223\nI01\nsS'value'\np224\nS'none'\np225\nssS'valid_types'\np226\n(dp227\nS'editable'\np228\nI01\nsS'value'\np229\n(lp230\nS'Version'\np231\nasssS'description'\np232\n(dp233\nS'editable'\np234\nI01\nsS'value'\np235\ng47\nsssS'notes'\np236\n(dp237\nS'mandatory'\np238\n(dp239\nS'editable'\np240\nI00\nsS'value'\np241\nI00\nssS'name'\np242\n(dp243\nS'editable'\np244\nI01\nsS'value'\np245\nS'Notes'\np246\nssS'data_type'\np247\n(dp248\nS'editable'\np249\nI00\nsS'value'\np250\nS'multi_entity'\np251\nssS'entity_type'\np252\n(dp253\nS'editable'\np254\nI00\nsS'value'\np255\nS'Playlist'\np256\nssS'editable'\np257\n(dp258\nS'editable'\np259\nI00\nsS'value'\np260\nI01\nssS'unique'\np261\n(dp262\nS'editable'\np263\nI00\nsS'value'\np264\nI00\nssS'properties'\np265\n(dp266\nS'default_value'\np267\n(dp268\nS'editable'\np269\nI00\nsS'value'\np270\nNssS'summary_default'\np271\n(dp272\nS'editable'\np273\nI01\nsS'value'\np274\nS'none'\np275\nssS'valid_types'\np276\n(dp277\nS'editable'\np278\nI01\nsS'value'\np279\n(lp280\nS'Note'\np281\nasssS'description'\np282\n(dp283\nS'editable'\np284\nI01\nsS'value'\np285\ng47\nsssS'media_center_viewed_by_current_user_at'\np286\n(dp287\nS'mandatory'\np288\n(dp289\nS'editable'\np290\nI00\nsS'value'\np291\nI00\nssS'name'\np292\n(dp293\nS'editable'\np294\nI01\nsS'value'\np295\nS'Media Center Date Viewed'\np296\nssS'data_type'\np297\n(dp298\nS'editable'\np299\nI00\nsS'value'\np300\nS'date_time'\np301\nssS'entity_type'\np302\n(dp303\nS'editable'\np304\nI00\nsS'value'\np305\nS'Playlist'\np306\nssS'editable'\np307\n(dp308\nS'editable'\np309\nI00\nsS'value'\np310\nI00\nssS'unique'\np311\n(dp312\nS'editable'\np313\nI00\nsS'value'\np314\nI00\nssS'properties'\np315\n(dp316\nS'default_value'\np317\n(dp318\nS'editable'\np319\nI00\nsS'value'\np320\nNssS'summary_default'\np321\n(dp322\nS'editable'\np323\nI00\nsS'value'\np324\nS'none'\np325\nsssS'description'\np326\n(dp327\nS'editable'\np328\nI01\nsS'value'\np329\ng47\nsssS'sg_status'\np330\n(dp331\nS'mandatory'\np332\n(dp333\nS'editable'\np334\nI00\nsS'value'\np335\nI00\nssS'name'\np336\n(dp337\nS'editable'\np338\nI01\nsS'value'\np339\nS'Status'\np340\nssS'data_type'\np341\n(dp342\nS'editable'\np343\nI00\nsS'value'\np344\nS'status_list'\np345\nssS'entity_type'\np346\n(dp347\nS'editable'\np348\nI00\nsS'value'\np349\nS'Playlist'\np350\nssS'editable'\np351\n(dp352\nS'editable'\np353\nI00\nsS'value'\np354\nI01\nssS'unique'\np355\n(dp356\nS'editable'\np357\nI00\nsS'value'\np358\nI00\nssS'properties'\np359\n(dp360\nS'default_value'\np361\n(dp362\nS'editable'\np363\nI01\nsS'value'\np364\nS'opn'\np365\nssS'valid_values'\np366\n(dp367\nS'editable'\np368\nI01\nsS'value'\np369\n(lp370\nS'clsd'\np371\naS'ip'\np372\naS'opn'\np373\nassS'summary_default'\np374\n(dp375\nS'editable'\np376\nI01\nsS'value'\np377\nS'none'\np378\nsssS'description'\np379\n(dp380\nS'editable'\np381\nI01\nsS'value'\np382\ng47\nsssS'updated_at'\np383\n(dp384\nS'mandatory'\np385\n(dp386\nS'editable'\np387\nI00\nsS'value'\np388\nI00\nssS'name'\np389\n(dp390\nS'editable'\np391\nI01\nsS'value'\np392\nS'Date Updated'\np393\nssS'data_type'\np394\n(dp395\nS'editable'\np396\nI00\nsS'value'\np397\nS'date_time'\np398\nssS'entity_type'\np399\n(dp400\nS'editable'\np401\nI00\nsS'value'\np402\nS'Playlist'\np403\nssS'editable'\np404\n(dp405\nS'editable'\np406\nI00\nsS'value'\np407\nI00\nssS'unique'\np408\n(dp409\nS'editable'\np410\nI00\nsS'value'\np411\nI00\nssS'properties'\np412\n(dp413\nS'default_value'\np414\n(dp415\nS'editable'\np416\nI00\nsS'value'\np417\nNssS'summary_default'\np418\n(dp419\nS'editable'\np420\nI01\nsS'value'\np421\nS'none'\np422\nsssS'description'\np423\n(dp424\nS'editable'\np425\nI01\nsS'value'\np426\ng47\nsssS'created_by'\np427\n(dp428\nS'mandatory'\np429\n(dp430\nS'editable'\np431\nI00\nsS'value'\np432\nI00\nssS'name'\np433\n(dp434\nS'editable'\np435\nI01\nsS'value'\np436\nS'Created by'\np437\nssS'data_type'\np438\n(dp439\nS'editable'\np440\nI00\nsS'value'\np441\nS'entity'\np442\nssS'entity_type'\np443\n(dp444\nS'editable'\np445\nI00\nsS'value'\np446\nS'Playlist'\np447\nssS'editable'\np448\n(dp449\nS'editable'\np450\nI00\nsS'value'\np451\nI00\nssS'unique'\np452\n(dp453\nS'editable'\np454\nI00\nsS'value'\np455\nI00\nssS'properties'\np456\n(dp457\nS'default_value'\np458\n(dp459\nS'editable'\np460\nI00\nsS'value'\np461\nNssS'summary_default'\np462\n(dp463\nS'editable'\np464\nI01\nsS'value'\np465\nS'none'\np466\nssS'valid_types'\np467\n(dp468\nS'editable'\np469\nI01\nsS'value'\np470\n(lp471\nS'HumanUser'\np472\naS'ApiUser'\np473\nasssS'description'\np474\n(dp475\nS'editable'\np476\nI01\nsS'value'\np477\ng47\nsssS'id'\np478\n(dp479\nS'mandatory'\np480\n(dp481\nS'editable'\np482\nI00\nsS'value'\np483\nI00\nssS'name'\np484\n(dp485\nS'editable'\np486\nI01\nsS'value'\np487\nS'Id'\np488\nssS'data_type'\np489\n(dp490\nS'editable'\np491\nI00\nsS'value'\np492\nS'number'\np493\nssS'entity_type'\np494\n(dp495\nS'editable'\np496\nI00\nsS'value'\np497\nS'Playlist'\np498\nssS'editable'\np499\n(dp500\nS'editable'\np501\nI00\nsS'value'\np502\nI00\nssS'unique'\np503\n(dp504\nS'editable'\np505\nI00\nsS'value'\np506\nI00\nssS'properties'\np507\n(dp508\nS'default_value'\np509\n(dp510\nS'editable'\np511\nI00\nsS'value'\np512\nNssS'summary_default'\np513\n(dp514\nS'editable'\np515\nI01\nsS'value'\np516\nS'none'\np517\nsssS'description'\np518\n(dp519\nS'editable'\np520\nI01\nsS'value'\np521\ng47\nsssS'project'\np522\n(dp523\nS'mandatory'\np524\n(dp525\nS'editable'\np526\nI00\nsS'value'\np527\nI00\nssS'name'\np528\n(dp529\nS'editable'\np530\nI01\nsS'value'\np531\nS'Project'\np532\nssS'data_type'\np533\n(dp534\nS'editable'\np535\nI00\nsS'value'\np536\nS'entity'\np537\nssS'entity_type'\np538\n(dp539\nS'editable'\np540\nI00\nsS'value'\np541\nS'Playlist'\np542\nssS'editable'\np543\n(dp544\nS'editable'\np545\nI00\nsS'value'\np546\nI01\nssS'unique'\np547\n(dp548\nS'editable'\np549\nI00\nsS'value'\np550\nI00\nssS'properties'\np551\n(dp552\nS'default_value'\np553\n(dp554\nS'editable'\np555\nI00\nsS'value'\np556\nNssS'summary_default'\np557\n(dp558\nS'editable'\np559\nI01\nsS'value'\np560\nS'none'\np561\nssS'valid_types'\np562\n(dp563\nS'editable'\np564\nI01\nsS'value'\np565\n(lp566\nS'Project'\np567\nasssS'description'\np568\n(dp569\nS'editable'\np570\nI01\nsS'value'\np571\ng47\nsssS'filmstrip_image'\np572\n(dp573\nS'mandatory'\np574\n(dp575\nS'editable'\np576\nI00\nsS'value'\np577\nI00\nssS'name'\np578\n(dp579\nS'editable'\np580\nI01\nsS'value'\np581\nS'Filmstrip Thumbnail'\np582\nssS'data_type'\np583\n(dp584\nS'editable'\np585\nI00\nsS'value'\np586\nS'image'\np587\nssS'entity_type'\np588\n(dp589\nS'editable'\np590\nI00\nsS'value'\np591\nS'Playlist'\np592\nssS'editable'\np593\n(dp594\nS'editable'\np595\nI00\nsS'value'\np596\nI01\nssS'unique'\np597\n(dp598\nS'editable'\np599\nI00\nsS'value'\np600\nI00\nssS'properties'\np601\n(dp602\nS'default_value'\np603\n(dp604\nS'editable'\np605\nI00\nsS'value'\np606\nNssS'summary_default'\np607\n(dp608\nS'editable'\np609\nI01\nsS'value'\np610\nS'none'\np611\nsssS'description'\np612\n(dp613\nS'editable'\np614\nI01\nsS'value'\np615\ng47\nsssS'sg_date_and_time'\np616\n(dp617\nS'mandatory'\np618\n(dp619\nS'editable'\np620\nI00\nsS'value'\np621\nI00\nssS'name'\np622\n(dp623\nS'editable'\np624\nI01\nsS'value'\np625\nS'Date and Time'\np626\nssS'data_type'\np627\n(dp628\nS'editable'\np629\nI00\nsS'value'\np630\nS'date_time'\np631\nssS'entity_type'\np632\n(dp633\nS'editable'\np634\nI00\nsS'value'\np635\nS'Playlist'\np636\nssS'editable'\np637\n(dp638\nS'editable'\np639\nI00\nsS'value'\np640\nI01\nssS'unique'\np641\n(dp642\nS'editable'\np643\nI00\nsS'value'\np644\nI00\nssS'properties'\np645\n(dp646\nS'default_value'\np647\n(dp648\nS'editable'\np649\nI00\nsS'value'\np650\nNssS'summary_default'\np651\n(dp652\nS'editable'\np653\nI01\nsS'value'\np654\nS'none'\np655\nsssS'description'\np656\n(dp657\nS'editable'\np658\nI01\nsS'value'\np659\ng47\nsssS'image'\np660\n(dp661\nS'mandatory'\np662\n(dp663\nS'editable'\np664\nI00\nsS'value'\np665\nI00\nssS'name'\np666\n(dp667\nS'editable'\np668\nI01\nsS'value'\np669\nS'Thumbnail'\np670\nssS'data_type'\np671\n(dp672\nS'editable'\np673\nI00\nsS'value'\np674\nS'image'\np675\nssS'entity_type'\np676\n(dp677\nS'editable'\np678\nI00\nsS'value'\np679\nS'Playlist'\np680\nssS'editable'\np681\n(dp682\nS'editable'\np683\nI00\nsS'value'\np684\nI01\nssS'unique'\np685\n(dp686\nS'editable'\np687\nI00\nsS'value'\np688\nI00\nssS'properties'\np689\n(dp690\nS'default_value'\np691\n(dp692\nS'editable'\np693\nI00\nsS'value'\np694\nNssS'summary_default'\np695\n(dp696\nS'editable'\np697\nI01\nsS'value'\np698\nS'none'\np699\nsssS'description'\np700\n(dp701\nS'editable'\np702\nI01\nsS'value'\np703\ng47\nsssS'current_user_favorite'\np704\n(dp705\nS'mandatory'\np706\n(dp707\nS'editable'\np708\nI00\nsS'value'\np709\nI00\nssS'name'\np710\n(dp711\nS'editable'\np712\nI01\nsS'value'\np713\nS'Favorite'\np714\nssS'data_type'\np715\n(dp716\nS'editable'\np717\nI00\nsS'value'\np718\nS'checkbox'\np719\nssS'entity_type'\np720\n(dp721\nS'editable'\np722\nI00\nsS'value'\np723\nS'Playlist'\np724\nssS'editable'\np725\n(dp726\nS'editable'\np727\nI00\nsS'value'\np728\nI01\nssS'unique'\np729\n(dp730\nS'editable'\np731\nI00\nsS'value'\np732\nI00\nssS'properties'\np733\n(dp734\nS'default_value'\np735\n(dp736\nS'editable'\np737\nI00\nsS'value'\np738\nNssS'summary_default'\np739\n(dp740\nS'editable'\np741\nI01\nsS'value'\np742\nS'none'\np743\nsssS'description'\np744\n(dp745\nS'editable'\np746\nI01\nsS'value'\np747\ng47\nsssS'cached_display_name'\np748\n(dp749\nS'mandatory'\np750\n(dp751\nS'editable'\np752\nI00\nsS'value'\np753\nI00\nssS'name'\np754\n(dp755\nS'editable'\np756\nI01\nsS'value'\np757\nS'Cached Display Name'\np758\nssS'data_type'\np759\n(dp760\nS'editable'\np761\nI00\nsS'value'\np762\nS'text'\np763\nssS'entity_type'\np764\n(dp765\nS'editable'\np766\nI00\nsS'value'\np767\nS'Playlist'\np768\nssS'editable'\np769\n(dp770\nS'editable'\np771\nI00\nsS'value'\np772\nI01\nssS'unique'\np773\n(dp774\nS'editable'\np775\nI00\nsS'value'\np776\nI00\nssS'properties'\np777\n(dp778\nS'default_value'\np779\n(dp780\nS'editable'\np781\nI00\nsS'value'\np782\nNssS'summary_default'\np783\n(dp784\nS'editable'\np785\nI00\nsS'value'\np786\nS'none'\np787\nsssS'description'\np788\n(dp789\nS'editable'\np790\nI01\nsS'value'\np791\ng47\nsssS'tag_list'\np792\n(dp793\nS'mandatory'\np794\n(dp795\nS'editable'\np796\nI00\nsS'value'\np797\nI00\nssS'name'\np798\n(dp799\nS'editable'\np800\nI01\nsS'value'\np801\nS'Tags'\np802\nssS'data_type'\np803\n(dp804\nS'editable'\np805\nI00\nsS'value'\np806\nS'tag_list'\np807\nssS'entity_type'\np808\n(dp809\nS'editable'\np810\nI00\nsS'value'\np811\nS'Playlist'\np812\nssS'editable'\np813\n(dp814\nS'editable'\np815\nI00\nsS'value'\np816\nI01\nssS'unique'\np817\n(dp818\nS'editable'\np819\nI00\nsS'value'\np820\nI00\nssS'properties'\np821\n(dp822\nS'default_value'\np823\n(dp824\nS'editable'\np825\nI00\nsS'value'\np826\nNssS'summary_default'\np827\n(dp828\nS'editable'\np829\nI01\nsS'value'\np830\nS'none'\np831\nssS'valid_types'\np832\n(dp833\nS'editable'\np834\nI01\nsS'value'\np835\n(lp836\nS'Tag'\np837\nasssS'description'\np838\n(dp839\nS'editable'\np840\nI01\nsS'value'\np841\ng47\nsssS'media_center_viewed_by_current_user'\np842\n(dp843\nS'mandatory'\np844\n(dp845\nS'editable'\np846\nI00\nsS'value'\np847\nI00\nssS'name'\np848\n(dp849\nS'editable'\np850\nI01\nsS'value'\np851\nS'Media Center Viewed/Unviewed'\np852\nssS'data_type'\np853\n(dp854\nS'editable'\np855\nI00\nsS'value'\np856\nS'list'\np857\nssS'entity_type'\np858\n(dp859\nS'editable'\np860\nI00\nsS'value'\np861\nS'Playlist'\np862\nssS'editable'\np863\n(dp864\nS'editable'\np865\nI00\nsS'value'\np866\nI01\nssS'unique'\np867\n(dp868\nS'editable'\np869\nI00\nsS'value'\np870\nI00\nssS'properties'\np871\n(dp872\nS'default_value'\np873\n(dp874\nS'editable'\np875\nI00\nsS'value'\np876\nNssS'valid_values'\np877\n(dp878\nS'editable'\np879\nI00\nsS'value'\np880\n(lp881\nS'read'\np882\naS'unread'\np883\nassS'summary_default'\np884\n(dp885\nS'editable'\np886\nI00\nsS'value'\np887\nS'none'\np888\nsssS'description'\np889\n(dp890\nS'editable'\np891\nI01\nsS'value'\np892\ng47\nsssS'created_at'\np893\n(dp894\nS'mandatory'\np895\n(dp896\nS'editable'\np897\nI00\nsS'value'\np898\nI00\nssS'name'\np899\n(dp900\nS'editable'\np901\nI01\nsS'value'\np902\nS'Date Created'\np903\nssS'data_type'\np904\n(dp905\nS'editable'\np906\nI00\nsS'value'\np907\nS'date_time'\np908\nssS'entity_type'\np909\n(dp910\nS'editable'\np911\nI00\nsS'value'\np912\nS'Playlist'\np913\nssS'editable'\np914\n(dp915\nS'editable'\np916\nI00\nsS'value'\np917\nI00\nssS'unique'\np918\n(dp919\nS'editable'\np920\nI00\nsS'value'\np921\nI00\nssS'properties'\np922\n(dp923\nS'default_value'\np924\n(dp925\nS'editable'\np926\nI00\nsS'value'\np927\nNssS'summary_default'\np928\n(dp929\nS'editable'\np930\nI01\nsS'value'\np931\nS'none'\np932\nsssS'description'\np933\n(dp934\nS'editable'\np935\nI01\nsS'value'\np936\ng47\nsssS'updated_by'\np937\n(dp938\nS'mandatory'\np939\n(dp940\nS'editable'\np941\nI00\nsS'value'\np942\nI00\nssS'name'\np943\n(dp944\nS'editable'\np945\nI01\nsS'value'\np946\nS'Updated by'\np947\nssS'data_type'\np948\n(dp949\nS'editable'\np950\nI00\nsS'value'\np951\nS'entity'\np952\nssS'entity_type'\np953\n(dp954\nS'editable'\np955\nI00\nsS'value'\np956\nS'Playlist'\np957\nssS'editable'\np958\n(dp959\nS'editable'\np960\nI00\nsS'value'\np961\nI00\nssS'unique'\np962\n(dp963\nS'editable'\np964\nI00\nsS'value'\np965\nI00\nssS'properties'\np966\n(dp967\nS'default_value'\np968\n(dp969\nS'editable'\np970\nI00\nsS'value'\np971\nNssS'summary_default'\np972\n(dp973\nS'editable'\np974\nI01\nsS'value'\np975\nS'none'\np976\nssS'valid_types'\np977\n(dp978\nS'editable'\np979\nI01\nsS'value'\np980\n(lp981\nS'HumanUser'\np982\naS'ApiUser'\np983\nasssS'description'\np984\n(dp985\nS'editable'\np986\nI01\nsS'value'\np987\ng47\nssssS'AppWelcomeUserConnection'\np988\n(dp989\nS'cached_display_name'\np990\n(dp991\nS'mandatory'\np992\n(dp993\nS'editable'\np994\nI00\nsS'value'\np995\nI00\nssS'name'\np996\n(dp997\nS'editable'\np998\nI01\nsS'value'\np999\nS'Cached Display Name'\np1000\nssS'data_type'\np1001\n(dp1002\nS'editable'\np1003\nI00\nsS'value'\np1004\nS'text'\np1005\nssS'entity_type'\np1006\n(dp1007\nS'editable'\np1008\nI00\nsS'value'\np1009\nS'AppWelcomeUserConnection'\np1010\nssS'editable'\np1011\n(dp1012\nS'editable'\np1013\nI00\nsS'value'\np1014\nI01\nssS'unique'\np1015\n(dp1016\nS'editable'\np1017\nI00\nsS'value'\np1018\nI00\nssS'properties'\np1019\n(dp1020\nS'default_value'\np1021\n(dp1022\nS'editable'\np1023\nI00\nsS'value'\np1024\nNssS'summary_default'\np1025\n(dp1026\nS'editable'\np1027\nI00\nsS'value'\np1028\nS'none'\np1029\nsssS'description'\np1030\n(dp1031\nS'editable'\np1032\nI01\nsS'value'\np1033\ng47\nsssS'app_welcome'\np1034\n(dp1035\nS'mandatory'\np1036\n(dp1037\nS'editable'\np1038\nI00\nsS'value'\np1039\nI00\nssS'name'\np1040\n(dp1041\nS'editable'\np1042\nI01\nsS'value'\np1043\nS'App Welcome'\np1044\nssS'data_type'\np1045\n(dp1046\nS'editable'\np1047\nI00\nsS'value'\np1048\nS'entity'\np1049\nssS'entity_type'\np1050\n(dp1051\nS'editable'\np1052\nI00\nsS'value'\np1053\nS'AppWelcomeUserConnection'\np1054\nssS'editable'\np1055\n(dp1056\nS'editable'\np1057\nI00\nsS'value'\np1058\nI01\nssS'unique'\np1059\n(dp1060\nS'editable'\np1061\nI00\nsS'value'\np1062\nI00\nssS'properties'\np1063\n(dp1064\nS'default_value'\np1065\n(dp1066\nS'editable'\np1067\nI00\nsS'value'\np1068\nNssS'summary_default'\np1069\n(dp1070\nS'editable'\np1071\nI00\nsS'value'\np1072\nS'none'\np1073\nssS'valid_types'\np1074\n(dp1075\nS'editable'\np1076\nI00\nsS'value'\np1077\n(lp1078\nS'AppWelcome'\np1079\nasssS'description'\np1080\n(dp1081\nS'editable'\np1082\nI01\nsS'value'\np1083\ng47\nsssS'id'\np1084\n(dp1085\nS'mandatory'\np1086\n(dp1087\nS'editable'\np1088\nI00\nsS'value'\np1089\nI00\nssS'name'\np1090\n(dp1091\nS'editable'\np1092\nI01\nsS'value'\np1093\nS'Id'\np1094\nssS'data_type'\np1095\n(dp1096\nS'editable'\np1097\nI00\nsS'value'\np1098\nS'number'\np1099\nssS'entity_type'\np1100\n(dp1101\nS'editable'\np1102\nI00\nsS'value'\np1103\nS'AppWelcomeUserConnection'\np1104\nssS'editable'\np1105\n(dp1106\nS'editable'\np1107\nI00\nsS'value'\np1108\nI00\nssS'unique'\np1109\n(dp1110\nS'editable'\np1111\nI00\nsS'value'\np1112\nI00\nssS'properties'\np1113\n(dp1114\nS'default_value'\np1115\n(dp1116\nS'editable'\np1117\nI00\nsS'value'\np1118\nNssS'summary_default'\np1119\n(dp1120\nS'editable'\np1121\nI00\nsS'value'\np1122\nS'none'\np1123\nsssS'description'\np1124\n(dp1125\nS'editable'\np1126\nI01\nsS'value'\np1127\ng47\nsssS'user'\np1128\n(dp1129\nS'mandatory'\np1130\n(dp1131\nS'editable'\np1132\nI00\nsS'value'\np1133\nI00\nssS'name'\np1134\n(dp1135\nS'editable'\np1136\nI01\nsS'value'\np1137\nS'User'\np1138\nssS'data_type'\np1139\n(dp1140\nS'editable'\np1141\nI00\nsS'value'\np1142\nS'entity'\np1143\nssS'entity_type'\np1144\n(dp1145\nS'editable'\np1146\nI00\nsS'value'\np1147\nS'AppWelcomeUserConnection'\np1148\nssS'editable'\np1149\n(dp1150\nS'editable'\np1151\nI00\nsS'value'\np1152\nI01\nssS'unique'\np1153\n(dp1154\nS'editable'\np1155\nI00\nsS'value'\np1156\nI00\nssS'properties'\np1157\n(dp1158\nS'default_value'\np1159\n(dp1160\nS'editable'\np1161\nI00\nsS'value'\np1162\nNssS'summary_default'\np1163\n(dp1164\nS'editable'\np1165\nI00\nsS'value'\np1166\nS'none'\np1167\nssS'valid_types'\np1168\n(dp1169\nS'editable'\np1170\nI00\nsS'value'\np1171\n(lp1172\nS'HumanUser'\np1173\nasssS'description'\np1174\n(dp1175\nS'editable'\np1176\nI01\nsS'value'\np1177\ng47\nssssS'Group'\np1178\n(dp1179\nS'open_notes_count'\np1180\n(dp1181\nS'mandatory'\np1182\n(dp1183\nS'editable'\np1184\nI00\nsS'value'\np1185\nI00\nssS'name'\np1186\n(dp1187\nS'editable'\np1188\nI01\nsS'value'\np1189\nS'Open Notes Count'\np1190\nssS'data_type'\np1191\n(dp1192\nS'editable'\np1193\nI00\nsS'value'\np1194\nS'text'\np1195\nssS'entity_type'\np1196\n(dp1197\nS'editable'\np1198\nI00\nsS'value'\np1199\nS'Group'\np1200\nssS'editable'\np1201\n(dp1202\nS'editable'\np1203\nI00\nsS'value'\np1204\nI00\nssS'unique'\np1205\n(dp1206\nS'editable'\np1207\nI00\nsS'value'\np1208\nI00\nssS'properties'\np1209\n(dp1210\nS'default_value'\np1211\n(dp1212\nS'editable'\np1213\nI00\nsS'value'\np1214\nNssS'summary_default'\np1215\n(dp1216\nS'editable'\np1217\nI01\nsS'value'\np1218\nS'none'\np1219\nsssS'description'\np1220\n(dp1221\nS'editable'\np1222\nI01\nsS'value'\np1223\ng47\nsssS'code'\np1224\n(dp1225\nS'mandatory'\np1226\n(dp1227\nS'editable'\np1228\nI00\nsS'value'\np1229\nI01\nssS'name'\np1230\n(dp1231\nS'editable'\np1232\nI01\nsS'value'\np1233\nS'Group Name'\np1234\nssS'data_type'\np1235\n(dp1236\nS'editable'\np1237\nI00\nsS'value'\np1238\nS'text'\np1239\nssS'entity_type'\np1240\n(dp1241\nS'editable'\np1242\nI00\nsS'value'\np1243\nS'Group'\np1244\nssS'editable'\np1245\n(dp1246\nS'editable'\np1247\nI00\nsS'value'\np1248\nI01\nssS'unique'\np1249\n(dp1250\nS'editable'\np1251\nI00\nsS'value'\np1252\nI00\nssS'properties'\np1253\n(dp1254\nS'default_value'\np1255\n(dp1256\nS'editable'\np1257\nI00\nsS'value'\np1258\nNssS'summary_default'\np1259\n(dp1260\nS'editable'\np1261\nI01\nsS'value'\np1262\nS'none'\np1263\nsssS'description'\np1264\n(dp1265\nS'editable'\np1266\nI01\nsS'value'\np1267\ng47\nsssS'open_notes'\np1268\n(dp1269\nS'mandatory'\np1270\n(dp1271\nS'editable'\np1272\nI00\nsS'value'\np1273\nI00\nssS'name'\np1274\n(dp1275\nS'editable'\np1276\nI01\nsS'value'\np1277\nS'Open Notes'\np1278\nssS'data_type'\np1279\n(dp1280\nS'editable'\np1281\nI00\nsS'value'\np1282\nS'multi_entity'\np1283\nssS'entity_type'\np1284\n(dp1285\nS'editable'\np1286\nI00\nsS'value'\np1287\nS'Group'\np1288\nssS'editable'\np1289\n(dp1290\nS'editable'\np1291\nI00\nsS'value'\np1292\nI00\nssS'unique'\np1293\n(dp1294\nS'editable'\np1295\nI00\nsS'value'\np1296\nI00\nssS'properties'\np1297\n(dp1298\nS'default_value'\np1299\n(dp1300\nS'editable'\np1301\nI00\nsS'value'\np1302\nNssS'summary_default'\np1303\n(dp1304\nS'editable'\np1305\nI01\nsS'value'\np1306\nS'none'\np1307\nssS'valid_types'\np1308\n(dp1309\nS'editable'\np1310\nI01\nsS'value'\np1311\n(lp1312\nS'Note'\np1313\nasssS'description'\np1314\n(dp1315\nS'editable'\np1316\nI01\nsS'value'\np1317\ng47\nsssS'users'\np1318\n(dp1319\nS'mandatory'\np1320\n(dp1321\nS'editable'\np1322\nI00\nsS'value'\np1323\nI00\nssS'name'\np1324\n(dp1325\nS'editable'\np1326\nI01\nsS'value'\np1327\nS'Users'\np1328\nssS'data_type'\np1329\n(dp1330\nS'editable'\np1331\nI00\nsS'value'\np1332\nS'multi_entity'\np1333\nssS'entity_type'\np1334\n(dp1335\nS'editable'\np1336\nI00\nsS'value'\np1337\nS'Group'\np1338\nssS'editable'\np1339\n(dp1340\nS'editable'\np1341\nI00\nsS'value'\np1342\nI01\nssS'unique'\np1343\n(dp1344\nS'editable'\np1345\nI00\nsS'value'\np1346\nI00\nssS'properties'\np1347\n(dp1348\nS'default_value'\np1349\n(dp1350\nS'editable'\np1351\nI00\nsS'value'\np1352\nNssS'summary_default'\np1353\n(dp1354\nS'editable'\np1355\nI01\nsS'value'\np1356\nS'none'\np1357\nssS'valid_types'\np1358\n(dp1359\nS'editable'\np1360\nI01\nsS'value'\np1361\n(lp1362\nS'HumanUser'\np1363\nasssS'description'\np1364\n(dp1365\nS'editable'\np1366\nI01\nsS'value'\np1367\ng47\nsssS'created_at'\np1368\n(dp1369\nS'mandatory'\np1370\n(dp1371\nS'editable'\np1372\nI00\nsS'value'\np1373\nI00\nssS'name'\np1374\n(dp1375\nS'editable'\np1376\nI01\nsS'value'\np1377\nS'Date Created'\np1378\nssS'data_type'\np1379\n(dp1380\nS'editable'\np1381\nI00\nsS'value'\np1382\nS'date_time'\np1383\nssS'entity_type'\np1384\n(dp1385\nS'editable'\np1386\nI00\nsS'value'\np1387\nS'Group'\np1388\nssS'editable'\np1389\n(dp1390\nS'editable'\np1391\nI00\nsS'value'\np1392\nI00\nssS'unique'\np1393\n(dp1394\nS'editable'\np1395\nI00\nsS'value'\np1396\nI00\nssS'properties'\np1397\n(dp1398\nS'default_value'\np1399\n(dp1400\nS'editable'\np1401\nI00\nsS'value'\np1402\nNssS'summary_default'\np1403\n(dp1404\nS'editable'\np1405\nI01\nsS'value'\np1406\nS'none'\np1407\nsssS'description'\np1408\n(dp1409\nS'editable'\np1410\nI01\nsS'value'\np1411\ng47\nsssS'updated_at'\np1412\n(dp1413\nS'mandatory'\np1414\n(dp1415\nS'editable'\np1416\nI00\nsS'value'\np1417\nI00\nssS'name'\np1418\n(dp1419\nS'editable'\np1420\nI01\nsS'value'\np1421\nS'Date Updated'\np1422\nssS'data_type'\np1423\n(dp1424\nS'editable'\np1425\nI00\nsS'value'\np1426\nS'date_time'\np1427\nssS'entity_type'\np1428\n(dp1429\nS'editable'\np1430\nI00\nsS'value'\np1431\nS'Group'\np1432\nssS'editable'\np1433\n(dp1434\nS'editable'\np1435\nI00\nsS'value'\np1436\nI00\nssS'unique'\np1437\n(dp1438\nS'editable'\np1439\nI00\nsS'value'\np1440\nI00\nssS'properties'\np1441\n(dp1442\nS'default_value'\np1443\n(dp1444\nS'editable'\np1445\nI00\nsS'value'\np1446\nNssS'summary_default'\np1447\n(dp1448\nS'editable'\np1449\nI01\nsS'value'\np1450\nS'none'\np1451\nsssS'description'\np1452\n(dp1453\nS'editable'\np1454\nI01\nsS'value'\np1455\ng47\nsssS'created_by'\np1456\n(dp1457\nS'mandatory'\np1458\n(dp1459\nS'editable'\np1460\nI00\nsS'value'\np1461\nI00\nssS'name'\np1462\n(dp1463\nS'editable'\np1464\nI01\nsS'value'\np1465\nS'Created by'\np1466\nssS'data_type'\np1467\n(dp1468\nS'editable'\np1469\nI00\nsS'value'\np1470\nS'entity'\np1471\nssS'entity_type'\np1472\n(dp1473\nS'editable'\np1474\nI00\nsS'value'\np1475\nS'Group'\np1476\nssS'editable'\np1477\n(dp1478\nS'editable'\np1479\nI00\nsS'value'\np1480\nI00\nssS'unique'\np1481\n(dp1482\nS'editable'\np1483\nI00\nsS'value'\np1484\nI00\nssS'properties'\np1485\n(dp1486\nS'default_value'\np1487\n(dp1488\nS'editable'\np1489\nI00\nsS'value'\np1490\nNssS'summary_default'\np1491\n(dp1492\nS'editable'\np1493\nI01\nsS'value'\np1494\nS'none'\np1495\nssS'valid_types'\np1496\n(dp1497\nS'editable'\np1498\nI01\nsS'value'\np1499\n(lp1500\nS'HumanUser'\np1501\naS'ApiUser'\np1502\nasssS'description'\np1503\n(dp1504\nS'editable'\np1505\nI01\nsS'value'\np1506\ng47\nsssS'id'\np1507\n(dp1508\nS'mandatory'\np1509\n(dp1510\nS'editable'\np1511\nI00\nsS'value'\np1512\nI00\nssS'name'\np1513\n(dp1514\nS'editable'\np1515\nI01\nsS'value'\np1516\nS'Id'\np1517\nssS'data_type'\np1518\n(dp1519\nS'editable'\np1520\nI00\nsS'value'\np1521\nS'number'\np1522\nssS'entity_type'\np1523\n(dp1524\nS'editable'\np1525\nI00\nsS'value'\np1526\nS'Group'\np1527\nssS'editable'\np1528\n(dp1529\nS'editable'\np1530\nI00\nsS'value'\np1531\nI00\nssS'unique'\np1532\n(dp1533\nS'editable'\np1534\nI00\nsS'value'\np1535\nI00\nssS'properties'\np1536\n(dp1537\nS'default_value'\np1538\n(dp1539\nS'editable'\np1540\nI00\nsS'value'\np1541\nNssS'summary_default'\np1542\n(dp1543\nS'editable'\np1544\nI01\nsS'value'\np1545\nS'none'\np1546\nsssS'description'\np1547\n(dp1548\nS'editable'\np1549\nI01\nsS'value'\np1550\ng47\nsssS'cached_display_name'\np1551\n(dp1552\nS'mandatory'\np1553\n(dp1554\nS'editable'\np1555\nI00\nsS'value'\np1556\nI00\nssS'name'\np1557\n(dp1558\nS'editable'\np1559\nI01\nsS'value'\np1560\nS'Cached Display Name'\np1561\nssS'data_type'\np1562\n(dp1563\nS'editable'\np1564\nI00\nsS'value'\np1565\nS'text'\np1566\nssS'entity_type'\np1567\n(dp1568\nS'editable'\np1569\nI00\nsS'value'\np1570\nS'Group'\np1571\nssS'editable'\np1572\n(dp1573\nS'editable'\np1574\nI00\nsS'value'\np1575\nI01\nssS'unique'\np1576\n(dp1577\nS'editable'\np1578\nI00\nsS'value'\np1579\nI00\nssS'properties'\np1580\n(dp1581\nS'default_value'\np1582\n(dp1583\nS'editable'\np1584\nI00\nsS'value'\np1585\nNssS'summary_default'\np1586\n(dp1587\nS'editable'\np1588\nI00\nsS'value'\np1589\nS'none'\np1590\nsssS'description'\np1591\n(dp1592\nS'editable'\np1593\nI01\nsS'value'\np1594\ng47\nsssS'tag_list'\np1595\n(dp1596\nS'mandatory'\np1597\n(dp1598\nS'editable'\np1599\nI00\nsS'value'\np1600\nI00\nssS'name'\np1601\n(dp1602\nS'editable'\np1603\nI01\nsS'value'\np1604\nS'Tags'\np1605\nssS'data_type'\np1606\n(dp1607\nS'editable'\np1608\nI00\nsS'value'\np1609\nS'tag_list'\np1610\nssS'entity_type'\np1611\n(dp1612\nS'editable'\np1613\nI00\nsS'value'\np1614\nS'Group'\np1615\nssS'editable'\np1616\n(dp1617\nS'editable'\np1618\nI00\nsS'value'\np1619\nI01\nssS'unique'\np1620\n(dp1621\nS'editable'\np1622\nI00\nsS'value'\np1623\nI00\nssS'properties'\np1624\n(dp1625\nS'default_value'\np1626\n(dp1627\nS'editable'\np1628\nI00\nsS'value'\np1629\nNssS'summary_default'\np1630\n(dp1631\nS'editable'\np1632\nI01\nsS'value'\np1633\nS'none'\np1634\nssS'valid_types'\np1635\n(dp1636\nS'editable'\np1637\nI01\nsS'value'\np1638\n(lp1639\nS'Tag'\np1640\nasssS'description'\np1641\n(dp1642\nS'editable'\np1643\nI01\nsS'value'\np1644\ng47\nsssS'notes'\np1645\n(dp1646\nS'mandatory'\np1647\n(dp1648\nS'editable'\np1649\nI00\nsS'value'\np1650\nI00\nssS'name'\np1651\n(dp1652\nS'editable'\np1653\nI01\nsS'value'\np1654\nS'Notes'\np1655\nssS'data_type'\np1656\n(dp1657\nS'editable'\np1658\nI00\nsS'value'\np1659\nS'multi_entity'\np1660\nssS'entity_type'\np1661\n(dp1662\nS'editable'\np1663\nI00\nsS'value'\np1664\nS'Group'\np1665\nssS'editable'\np1666\n(dp1667\nS'editable'\np1668\nI00\nsS'value'\np1669\nI01\nssS'unique'\np1670\n(dp1671\nS'editable'\np1672\nI00\nsS'value'\np1673\nI00\nssS'properties'\np1674\n(dp1675\nS'default_value'\np1676\n(dp1677\nS'editable'\np1678\nI00\nsS'value'\np1679\nNssS'summary_default'\np1680\n(dp1681\nS'editable'\np1682\nI01\nsS'value'\np1683\nS'none'\np1684\nssS'valid_types'\np1685\n(dp1686\nS'editable'\np1687\nI01\nsS'value'\np1688\n(lp1689\nS'Note'\np1690\nasssS'description'\np1691\n(dp1692\nS'editable'\np1693\nI01\nsS'value'\np1694\ng47\nsssS'updated_by'\np1695\n(dp1696\nS'mandatory'\np1697\n(dp1698\nS'editable'\np1699\nI00\nsS'value'\np1700\nI00\nssS'name'\np1701\n(dp1702\nS'editable'\np1703\nI01\nsS'value'\np1704\nS'Updated by'\np1705\nssS'data_type'\np1706\n(dp1707\nS'editable'\np1708\nI00\nsS'value'\np1709\nS'entity'\np1710\nssS'entity_type'\np1711\n(dp1712\nS'editable'\np1713\nI00\nsS'value'\np1714\nS'Group'\np1715\nssS'editable'\np1716\n(dp1717\nS'editable'\np1718\nI00\nsS'value'\np1719\nI00\nssS'unique'\np1720\n(dp1721\nS'editable'\np1722\nI00\nsS'value'\np1723\nI00\nssS'properties'\np1724\n(dp1725\nS'default_value'\np1726\n(dp1727\nS'editable'\np1728\nI00\nsS'value'\np1729\nNssS'summary_default'\np1730\n(dp1731\nS'editable'\np1732\nI01\nsS'value'\np1733\nS'none'\np1734\nssS'valid_types'\np1735\n(dp1736\nS'editable'\np1737\nI01\nsS'value'\np1738\n(lp1739\nS'HumanUser'\np1740\naS'ApiUser'\np1741\nasssS'description'\np1742\n(dp1743\nS'editable'\np1744\nI01\nsS'value'\np1745\ng47\nssssS'PhysicalAssetMocapTakeConnection'\np1746\n(dp1747\nS'physical_asset'\np1748\n(dp1749\nS'mandatory'\np1750\n(dp1751\nS'editable'\np1752\nI00\nsS'value'\np1753\nI00\nssS'name'\np1754\n(dp1755\nS'editable'\np1756\nI01\nsS'value'\np1757\nS'Physical Asset'\np1758\nssS'data_type'\np1759\n(dp1760\nS'editable'\np1761\nI00\nsS'value'\np1762\nS'entity'\np1763\nssS'entity_type'\np1764\n(dp1765\nS'editable'\np1766\nI00\nsS'value'\np1767\nS'PhysicalAssetMocapTakeConnection'\np1768\nssS'editable'\np1769\n(dp1770\nS'editable'\np1771\nI00\nsS'value'\np1772\nI00\nssS'unique'\np1773\n(dp1774\nS'editable'\np1775\nI00\nsS'value'\np1776\nI00\nssS'properties'\np1777\n(dp1778\nS'default_value'\np1779\n(dp1780\nS'editable'\np1781\nI00\nsS'value'\np1782\nNssS'summary_default'\np1783\n(dp1784\nS'editable'\np1785\nI00\nsS'value'\np1786\nS'none'\np1787\nssS'valid_types'\np1788\n(dp1789\nS'editable'\np1790\nI00\nsS'value'\np1791\n(lp1792\nS'PhysicalAsset'\np1793\nasssS'description'\np1794\n(dp1795\nS'editable'\np1796\nI01\nsS'value'\np1797\ng47\nsssS'mocap_take'\np1798\n(dp1799\nS'mandatory'\np1800\n(dp1801\nS'editable'\np1802\nI00\nsS'value'\np1803\nI00\nssS'name'\np1804\n(dp1805\nS'editable'\np1806\nI01\nsS'value'\np1807\nS'Mocap Take'\np1808\nssS'data_type'\np1809\n(dp1810\nS'editable'\np1811\nI00\nsS'value'\np1812\nS'entity'\np1813\nssS'entity_type'\np1814\n(dp1815\nS'editable'\np1816\nI00\nsS'value'\np1817\nS'PhysicalAssetMocapTakeConnection'\np1818\nssS'editable'\np1819\n(dp1820\nS'editable'\np1821\nI00\nsS'value'\np1822\nI00\nssS'unique'\np1823\n(dp1824\nS'editable'\np1825\nI00\nsS'value'\np1826\nI00\nssS'properties'\np1827\n(dp1828\nS'default_value'\np1829\n(dp1830\nS'editable'\np1831\nI00\nsS'value'\np1832\nNssS'summary_default'\np1833\n(dp1834\nS'editable'\np1835\nI00\nsS'value'\np1836\nS'none'\np1837\nssS'valid_types'\np1838\n(dp1839\nS'editable'\np1840\nI00\nsS'value'\np1841\n(lp1842\nS'MocapTake'\np1843\nasssS'description'\np1844\n(dp1845\nS'editable'\np1846\nI01\nsS'value'\np1847\ng47\nsssS'cached_display_name'\np1848\n(dp1849\nS'mandatory'\np1850\n(dp1851\nS'editable'\np1852\nI00\nsS'value'\np1853\nI00\nssS'name'\np1854\n(dp1855\nS'editable'\np1856\nI01\nsS'value'\np1857\nS'Cached Display Name'\np1858\nssS'data_type'\np1859\n(dp1860\nS'editable'\np1861\nI00\nsS'value'\np1862\nS'text'\np1863\nssS'entity_type'\np1864\n(dp1865\nS'editable'\np1866\nI00\nsS'value'\np1867\nS'PhysicalAssetMocapTakeConnection'\np1868\nssS'editable'\np1869\n(dp1870\nS'editable'\np1871\nI00\nsS'value'\np1872\nI01\nssS'unique'\np1873\n(dp1874\nS'editable'\np1875\nI00\nsS'value'\np1876\nI00\nssS'properties'\np1877\n(dp1878\nS'default_value'\np1879\n(dp1880\nS'editable'\np1881\nI00\nsS'value'\np1882\nNssS'summary_default'\np1883\n(dp1884\nS'editable'\np1885\nI00\nsS'value'\np1886\nS'none'\np1887\nsssS'description'\np1888\n(dp1889\nS'editable'\np1890\nI01\nsS'value'\np1891\ng47\nsssS'id'\np1892\n(dp1893\nS'mandatory'\np1894\n(dp1895\nS'editable'\np1896\nI00\nsS'value'\np1897\nI01\nssS'name'\np1898\n(dp1899\nS'editable'\np1900\nI01\nsS'value'\np1901\nS'Id'\np1902\nssS'data_type'\np1903\n(dp1904\nS'editable'\np1905\nI00\nsS'value'\np1906\nS'number'\np1907\nssS'entity_type'\np1908\n(dp1909\nS'editable'\np1910\nI00\nsS'value'\np1911\nS'PhysicalAssetMocapTakeConnection'\np1912\nssS'editable'\np1913\n(dp1914\nS'editable'\np1915\nI00\nsS'value'\np1916\nI00\nssS'unique'\np1917\n(dp1918\nS'editable'\np1919\nI00\nsS'value'\np1920\nI00\nssS'properties'\np1921\n(dp1922\nS'default_value'\np1923\n(dp1924\nS'editable'\np1925\nI00\nsS'value'\np1926\nNssS'summary_default'\np1927\n(dp1928\nS'editable'\np1929\nI00\nsS'value'\np1930\nS'none'\np1931\nsssS'description'\np1932\n(dp1933\nS'editable'\np1934\nI01\nsS'value'\np1935\ng47\nssssS'CustomEntity05'\np1936\n(dp1937\nS'open_notes_count'\np1938\n(dp1939\nS'mandatory'\np1940\n(dp1941\nS'editable'\np1942\nI00\nsS'value'\np1943\nI00\nssS'name'\np1944\n(dp1945\nS'editable'\np1946\nI01\nsS'value'\np1947\nS'Open Notes Count'\np1948\nssS'data_type'\np1949\n(dp1950\nS'editable'\np1951\nI00\nsS'value'\np1952\nS'text'\np1953\nssS'entity_type'\np1954\n(dp1955\nS'editable'\np1956\nI00\nsS'value'\np1957\nS'CustomEntity05'\np1958\nssS'editable'\np1959\n(dp1960\nS'editable'\np1961\nI00\nsS'value'\np1962\nI00\nssS'unique'\np1963\n(dp1964\nS'editable'\np1965\nI00\nsS'value'\np1966\nI00\nssS'properties'\np1967\n(dp1968\nS'default_value'\np1969\n(dp1970\nS'editable'\np1971\nI00\nsS'value'\np1972\nNssS'summary_default'\np1973\n(dp1974\nS'editable'\np1975\nI01\nsS'value'\np1976\nS'none'\np1977\nsssS'description'\np1978\n(dp1979\nS'editable'\np1980\nI01\nsS'value'\np1981\ng47\nsssS'code'\np1982\n(dp1983\nS'mandatory'\np1984\n(dp1985\nS'editable'\np1986\nI00\nsS'value'\np1987\nI01\nssS'name'\np1988\n(dp1989\nS'editable'\np1990\nI01\nsS'value'\np1991\nS'Custom Entity05 Name'\np1992\nssS'data_type'\np1993\n(dp1994\nS'editable'\np1995\nI00\nsS'value'\np1996\nS'text'\np1997\nssS'entity_type'\np1998\n(dp1999\nS'editable'\np2000\nI00\nsS'value'\np2001\nS'CustomEntity05'\np2002\nssS'editable'\np2003\n(dp2004\nS'editable'\np2005\nI00\nsS'value'\np2006\nI01\nssS'unique'\np2007\n(dp2008\nS'editable'\np2009\nI00\nsS'value'\np2010\nI00\nssS'properties'\np2011\n(dp2012\nS'default_value'\np2013\n(dp2014\nS'editable'\np2015\nI00\nsS'value'\np2016\nNssS'summary_default'\np2017\n(dp2018\nS'editable'\np2019\nI01\nsS'value'\np2020\nS'none'\np2021\nsssS'description'\np2022\n(dp2023\nS'editable'\np2024\nI01\nsS'value'\np2025\ng47\nsssS'open_notes'\np2026\n(dp2027\nS'mandatory'\np2028\n(dp2029\nS'editable'\np2030\nI00\nsS'value'\np2031\nI00\nssS'name'\np2032\n(dp2033\nS'editable'\np2034\nI01\nsS'value'\np2035\nS'Open Notes'\np2036\nssS'data_type'\np2037\n(dp2038\nS'editable'\np2039\nI00\nsS'value'\np2040\nS'multi_entity'\np2041\nssS'entity_type'\np2042\n(dp2043\nS'editable'\np2044\nI00\nsS'value'\np2045\nS'CustomEntity05'\np2046\nssS'editable'\np2047\n(dp2048\nS'editable'\np2049\nI00\nsS'value'\np2050\nI00\nssS'unique'\np2051\n(dp2052\nS'editable'\np2053\nI00\nsS'value'\np2054\nI00\nssS'properties'\np2055\n(dp2056\nS'default_value'\np2057\n(dp2058\nS'editable'\np2059\nI00\nsS'value'\np2060\nNssS'summary_default'\np2061\n(dp2062\nS'editable'\np2063\nI01\nsS'value'\np2064\nS'none'\np2065\nssS'valid_types'\np2066\n(dp2067\nS'editable'\np2068\nI01\nsS'value'\np2069\n(lp2070\nS'Note'\np2071\nasssS'description'\np2072\n(dp2073\nS'editable'\np2074\nI01\nsS'value'\np2075\ng47\nsssS'description'\np2076\n(dp2077\nS'mandatory'\np2078\n(dp2079\nS'editable'\np2080\nI00\nsS'value'\np2081\nI00\nssS'name'\np2082\n(dp2083\nS'editable'\np2084\nI01\nsS'value'\np2085\nS'Description'\np2086\nssS'data_type'\np2087\n(dp2088\nS'editable'\np2089\nI00\nsS'value'\np2090\nS'text'\np2091\nssS'entity_type'\np2092\n(dp2093\nS'editable'\np2094\nI00\nsS'value'\np2095\nS'CustomEntity05'\np2096\nssS'editable'\np2097\n(dp2098\nS'editable'\np2099\nI00\nsS'value'\np2100\nI01\nssS'unique'\np2101\n(dp2102\nS'editable'\np2103\nI00\nsS'value'\np2104\nI00\nssS'properties'\np2105\n(dp2106\nS'default_value'\np2107\n(dp2108\nS'editable'\np2109\nI00\nsS'value'\np2110\nNssS'summary_default'\np2111\n(dp2112\nS'editable'\np2113\nI01\nsS'value'\np2114\nS'none'\np2115\nsssS'description'\np2116\n(dp2117\nS'editable'\np2118\nI01\nsS'value'\np2119\ng47\nsssS'created_at'\np2120\n(dp2121\nS'mandatory'\np2122\n(dp2123\nS'editable'\np2124\nI00\nsS'value'\np2125\nI00\nssS'name'\np2126\n(dp2127\nS'editable'\np2128\nI01\nsS'value'\np2129\nS'Date Created'\np2130\nssS'data_type'\np2131\n(dp2132\nS'editable'\np2133\nI00\nsS'value'\np2134\nS'date_time'\np2135\nssS'entity_type'\np2136\n(dp2137\nS'editable'\np2138\nI00\nsS'value'\np2139\nS'CustomEntity05'\np2140\nssS'editable'\np2141\n(dp2142\nS'editable'\np2143\nI00\nsS'value'\np2144\nI00\nssS'unique'\np2145\n(dp2146\nS'editable'\np2147\nI00\nsS'value'\np2148\nI00\nssS'properties'\np2149\n(dp2150\nS'default_value'\np2151\n(dp2152\nS'editable'\np2153\nI00\nsS'value'\np2154\nNssS'summary_default'\np2155\n(dp2156\nS'editable'\np2157\nI01\nsS'value'\np2158\nS'none'\np2159\nsssS'description'\np2160\n(dp2161\nS'editable'\np2162\nI01\nsS'value'\np2163\ng47\nsssS'updated_at'\np2164\n(dp2165\nS'mandatory'\np2166\n(dp2167\nS'editable'\np2168\nI00\nsS'value'\np2169\nI00\nssS'name'\np2170\n(dp2171\nS'editable'\np2172\nI01\nsS'value'\np2173\nS'Date Updated'\np2174\nssS'data_type'\np2175\n(dp2176\nS'editable'\np2177\nI00\nsS'value'\np2178\nS'date_time'\np2179\nssS'entity_type'\np2180\n(dp2181\nS'editable'\np2182\nI00\nsS'value'\np2183\nS'CustomEntity05'\np2184\nssS'editable'\np2185\n(dp2186\nS'editable'\np2187\nI00\nsS'value'\np2188\nI00\nssS'unique'\np2189\n(dp2190\nS'editable'\np2191\nI00\nsS'value'\np2192\nI00\nssS'properties'\np2193\n(dp2194\nS'default_value'\np2195\n(dp2196\nS'editable'\np2197\nI00\nsS'value'\np2198\nNssS'summary_default'\np2199\n(dp2200\nS'editable'\np2201\nI01\nsS'value'\np2202\nS'none'\np2203\nsssS'description'\np2204\n(dp2205\nS'editable'\np2206\nI01\nsS'value'\np2207\ng47\nsssS'created_by'\np2208\n(dp2209\nS'mandatory'\np2210\n(dp2211\nS'editable'\np2212\nI00\nsS'value'\np2213\nI00\nssS'name'\np2214\n(dp2215\nS'editable'\np2216\nI01\nsS'value'\np2217\nS'Created by'\np2218\nssS'data_type'\np2219\n(dp2220\nS'editable'\np2221\nI00\nsS'value'\np2222\nS'entity'\np2223\nssS'entity_type'\np2224\n(dp2225\nS'editable'\np2226\nI00\nsS'value'\np2227\nS'CustomEntity05'\np2228\nssS'editable'\np2229\n(dp2230\nS'editable'\np2231\nI00\nsS'value'\np2232\nI00\nssS'unique'\np2233\n(dp2234\nS'editable'\np2235\nI00\nsS'value'\np2236\nI00\nssS'properties'\np2237\n(dp2238\nS'default_value'\np2239\n(dp2240\nS'editable'\np2241\nI00\nsS'value'\np2242\nNssS'summary_default'\np2243\n(dp2244\nS'editable'\np2245\nI01\nsS'value'\np2246\nS'none'\np2247\nssS'valid_types'\np2248\n(dp2249\nS'editable'\np2250\nI01\nsS'value'\np2251\n(lp2252\nS'HumanUser'\np2253\naS'ApiUser'\np2254\nasssS'description'\np2255\n(dp2256\nS'editable'\np2257\nI01\nsS'value'\np2258\ng47\nsssS'project'\np2259\n(dp2260\nS'mandatory'\np2261\n(dp2262\nS'editable'\np2263\nI00\nsS'value'\np2264\nI00\nssS'name'\np2265\n(dp2266\nS'editable'\np2267\nI01\nsS'value'\np2268\nS'Project'\np2269\nssS'data_type'\np2270\n(dp2271\nS'editable'\np2272\nI00\nsS'value'\np2273\nS'entity'\np2274\nssS'entity_type'\np2275\n(dp2276\nS'editable'\np2277\nI00\nsS'value'\np2278\nS'CustomEntity05'\np2279\nssS'editable'\np2280\n(dp2281\nS'editable'\np2282\nI00\nsS'value'\np2283\nI01\nssS'unique'\np2284\n(dp2285\nS'editable'\np2286\nI00\nsS'value'\np2287\nI00\nssS'properties'\np2288\n(dp2289\nS'default_value'\np2290\n(dp2291\nS'editable'\np2292\nI00\nsS'value'\np2293\nNssS'summary_default'\np2294\n(dp2295\nS'editable'\np2296\nI01\nsS'value'\np2297\nS'none'\np2298\nssS'valid_types'\np2299\n(dp2300\nS'editable'\np2301\nI01\nsS'value'\np2302\n(lp2303\nS'Project'\np2304\nasssS'description'\np2305\n(dp2306\nS'editable'\np2307\nI01\nsS'value'\np2308\ng47\nsssS'filmstrip_image'\np2309\n(dp2310\nS'mandatory'\np2311\n(dp2312\nS'editable'\np2313\nI00\nsS'value'\np2314\nI00\nssS'name'\np2315\n(dp2316\nS'editable'\np2317\nI01\nsS'value'\np2318\nS'Filmstrip Thumbnail'\np2319\nssS'data_type'\np2320\n(dp2321\nS'editable'\np2322\nI00\nsS'value'\np2323\nS'image'\np2324\nssS'entity_type'\np2325\n(dp2326\nS'editable'\np2327\nI00\nsS'value'\np2328\nS'CustomEntity05'\np2329\nssS'editable'\np2330\n(dp2331\nS'editable'\np2332\nI00\nsS'value'\np2333\nI01\nssS'unique'\np2334\n(dp2335\nS'editable'\np2336\nI00\nsS'value'\np2337\nI00\nssS'properties'\np2338\n(dp2339\nS'default_value'\np2340\n(dp2341\nS'editable'\np2342\nI00\nsS'value'\np2343\nNssS'summary_default'\np2344\n(dp2345\nS'editable'\np2346\nI01\nsS'value'\np2347\nS'none'\np2348\nsssS'description'\np2349\n(dp2350\nS'editable'\np2351\nI01\nsS'value'\np2352\ng47\nsssS'sg_status_list'\np2353\n(dp2354\nS'mandatory'\np2355\n(dp2356\nS'editable'\np2357\nI00\nsS'value'\np2358\nI00\nssS'name'\np2359\n(dp2360\nS'editable'\np2361\nI01\nsS'value'\np2362\nS'Status'\np2363\nssS'data_type'\np2364\n(dp2365\nS'editable'\np2366\nI00\nsS'value'\np2367\nS'status_list'\np2368\nssS'entity_type'\np2369\n(dp2370\nS'editable'\np2371\nI00\nsS'value'\np2372\nS'CustomEntity05'\np2373\nssS'editable'\np2374\n(dp2375\nS'editable'\np2376\nI00\nsS'value'\np2377\nI01\nssS'unique'\np2378\n(dp2379\nS'editable'\np2380\nI00\nsS'value'\np2381\nI00\nssS'properties'\np2382\n(dp2383\nS'default_value'\np2384\n(dp2385\nS'editable'\np2386\nI01\nsS'value'\np2387\nS'wtg'\np2388\nssS'valid_values'\np2389\n(dp2390\nS'editable'\np2391\nI01\nsS'value'\np2392\n(lp2393\nS'cmpt'\np2394\naS'ip'\np2395\naS'wtg'\np2396\nassS'summary_default'\np2397\n(dp2398\nS'editable'\np2399\nI01\nsS'value'\np2400\nS'none'\np2401\nsssS'description'\np2402\n(dp2403\nS'editable'\np2404\nI01\nsS'value'\np2405\ng47\nsssS'notes'\np2406\n(dp2407\nS'mandatory'\np2408\n(dp2409\nS'editable'\np2410\nI00\nsS'value'\np2411\nI00\nssS'name'\np2412\n(dp2413\nS'editable'\np2414\nI01\nsS'value'\np2415\nS'Notes'\np2416\nssS'data_type'\np2417\n(dp2418\nS'editable'\np2419\nI00\nsS'value'\np2420\nS'multi_entity'\np2421\nssS'entity_type'\np2422\n(dp2423\nS'editable'\np2424\nI00\nsS'value'\np2425\nS'CustomEntity05'\np2426\nssS'editable'\np2427\n(dp2428\nS'editable'\np2429\nI00\nsS'value'\np2430\nI01\nssS'unique'\np2431\n(dp2432\nS'editable'\np2433\nI00\nsS'value'\np2434\nI00\nssS'properties'\np2435\n(dp2436\nS'default_value'\np2437\n(dp2438\nS'editable'\np2439\nI00\nsS'value'\np2440\nNssS'summary_default'\np2441\n(dp2442\nS'editable'\np2443\nI01\nsS'value'\np2444\nS'none'\np2445\nssS'valid_types'\np2446\n(dp2447\nS'editable'\np2448\nI01\nsS'value'\np2449\n(lp2450\nS'Note'\np2451\nasssS'description'\np2452\n(dp2453\nS'editable'\np2454\nI01\nsS'value'\np2455\ng47\nsssS'image'\np2456\n(dp2457\nS'mandatory'\np2458\n(dp2459\nS'editable'\np2460\nI00\nsS'value'\np2461\nI00\nssS'name'\np2462\n(dp2463\nS'editable'\np2464\nI01\nsS'value'\np2465\nS'Thumbnail'\np2466\nssS'data_type'\np2467\n(dp2468\nS'editable'\np2469\nI00\nsS'value'\np2470\nS'image'\np2471\nssS'entity_type'\np2472\n(dp2473\nS'editable'\np2474\nI00\nsS'value'\np2475\nS'CustomEntity05'\np2476\nssS'editable'\np2477\n(dp2478\nS'editable'\np2479\nI00\nsS'value'\np2480\nI01\nssS'unique'\np2481\n(dp2482\nS'editable'\np2483\nI00\nsS'value'\np2484\nI00\nssS'properties'\np2485\n(dp2486\nS'default_value'\np2487\n(dp2488\nS'editable'\np2489\nI00\nsS'value'\np2490\nNssS'summary_default'\np2491\n(dp2492\nS'editable'\np2493\nI01\nsS'value'\np2494\nS'none'\np2495\nsssS'description'\np2496\n(dp2497\nS'editable'\np2498\nI01\nsS'value'\np2499\ng47\nsssS'cached_display_name'\np2500\n(dp2501\nS'mandatory'\np2502\n(dp2503\nS'editable'\np2504\nI00\nsS'value'\np2505\nI00\nssS'name'\np2506\n(dp2507\nS'editable'\np2508\nI01\nsS'value'\np2509\nS'Cached Display Name'\np2510\nssS'data_type'\np2511\n(dp2512\nS'editable'\np2513\nI00\nsS'value'\np2514\nS'text'\np2515\nssS'entity_type'\np2516\n(dp2517\nS'editable'\np2518\nI00\nsS'value'\np2519\nS'CustomEntity05'\np2520\nssS'editable'\np2521\n(dp2522\nS'editable'\np2523\nI00\nsS'value'\np2524\nI01\nssS'unique'\np2525\n(dp2526\nS'editable'\np2527\nI00\nsS'value'\np2528\nI00\nssS'properties'\np2529\n(dp2530\nS'default_value'\np2531\n(dp2532\nS'editable'\np2533\nI00\nsS'value'\np2534\nNssS'summary_default'\np2535\n(dp2536\nS'editable'\np2537\nI00\nsS'value'\np2538\nS'none'\np2539\nsssS'description'\np2540\n(dp2541\nS'editable'\np2542\nI01\nsS'value'\np2543\ng47\nsssS'tag_list'\np2544\n(dp2545\nS'mandatory'\np2546\n(dp2547\nS'editable'\np2548\nI00\nsS'value'\np2549\nI00\nssS'name'\np2550\n(dp2551\nS'editable'\np2552\nI01\nsS'value'\np2553\nS'Tags'\np2554\nssS'data_type'\np2555\n(dp2556\nS'editable'\np2557\nI00\nsS'value'\np2558\nS'tag_list'\np2559\nssS'entity_type'\np2560\n(dp2561\nS'editable'\np2562\nI00\nsS'value'\np2563\nS'CustomEntity05'\np2564\nssS'editable'\np2565\n(dp2566\nS'editable'\np2567\nI00\nsS'value'\np2568\nI01\nssS'unique'\np2569\n(dp2570\nS'editable'\np2571\nI00\nsS'value'\np2572\nI00\nssS'properties'\np2573\n(dp2574\nS'default_value'\np2575\n(dp2576\nS'editable'\np2577\nI00\nsS'value'\np2578\nNssS'summary_default'\np2579\n(dp2580\nS'editable'\np2581\nI01\nsS'value'\np2582\nS'none'\np2583\nssS'valid_types'\np2584\n(dp2585\nS'editable'\np2586\nI01\nsS'value'\np2587\n(lp2588\nS'Tag'\np2589\nasssS'description'\np2590\n(dp2591\nS'editable'\np2592\nI01\nsS'value'\np2593\ng47\nsssS'id'\np2594\n(dp2595\nS'mandatory'\np2596\n(dp2597\nS'editable'\np2598\nI00\nsS'value'\np2599\nI00\nssS'name'\np2600\n(dp2601\nS'editable'\np2602\nI01\nsS'value'\np2603\nS'Id'\np2604\nssS'data_type'\np2605\n(dp2606\nS'editable'\np2607\nI00\nsS'value'\np2608\nS'number'\np2609\nssS'entity_type'\np2610\n(dp2611\nS'editable'\np2612\nI00\nsS'value'\np2613\nS'CustomEntity05'\np2614\nssS'editable'\np2615\n(dp2616\nS'editable'\np2617\nI00\nsS'value'\np2618\nI00\nssS'unique'\np2619\n(dp2620\nS'editable'\np2621\nI00\nsS'value'\np2622\nI00\nssS'properties'\np2623\n(dp2624\nS'default_value'\np2625\n(dp2626\nS'editable'\np2627\nI00\nsS'value'\np2628\nNssS'summary_default'\np2629\n(dp2630\nS'editable'\np2631\nI01\nsS'value'\np2632\nS'none'\np2633\nsssS'description'\np2634\n(dp2635\nS'editable'\np2636\nI01\nsS'value'\np2637\ng47\nsssS'updated_by'\np2638\n(dp2639\nS'mandatory'\np2640\n(dp2641\nS'editable'\np2642\nI00\nsS'value'\np2643\nI00\nssS'name'\np2644\n(dp2645\nS'editable'\np2646\nI01\nsS'value'\np2647\nS'Updated by'\np2648\nssS'data_type'\np2649\n(dp2650\nS'editable'\np2651\nI00\nsS'value'\np2652\nS'entity'\np2653\nssS'entity_type'\np2654\n(dp2655\nS'editable'\np2656\nI00\nsS'value'\np2657\nS'CustomEntity05'\np2658\nssS'editable'\np2659\n(dp2660\nS'editable'\np2661\nI00\nsS'value'\np2662\nI00\nssS'unique'\np2663\n(dp2664\nS'editable'\np2665\nI00\nsS'value'\np2666\nI00\nssS'properties'\np2667\n(dp2668\nS'default_value'\np2669\n(dp2670\nS'editable'\np2671\nI00\nsS'value'\np2672\nNssS'summary_default'\np2673\n(dp2674\nS'editable'\np2675\nI01\nsS'value'\np2676\nS'none'\np2677\nssS'valid_types'\np2678\n(dp2679\nS'editable'\np2680\nI01\nsS'value'\np2681\n(lp2682\nS'HumanUser'\np2683\naS'ApiUser'\np2684\nasssS'description'\np2685\n(dp2686\nS'editable'\np2687\nI01\nsS'value'\np2688\ng47\nssssS'Note'\np2689\n(dp2690\nS'project'\np2691\n(dp2692\nS'mandatory'\np2693\n(dp2694\nS'editable'\np2695\nI00\nsS'value'\np2696\nI00\nssS'name'\np2697\n(dp2698\nS'editable'\np2699\nI01\nsS'value'\np2700\nS'Project'\np2701\nssS'data_type'\np2702\n(dp2703\nS'editable'\np2704\nI00\nsS'value'\np2705\nS'entity'\np2706\nssS'entity_type'\np2707\n(dp2708\nS'editable'\np2709\nI00\nsS'value'\np2710\nS'Note'\np2711\nssS'editable'\np2712\n(dp2713\nS'editable'\np2714\nI00\nsS'value'\np2715\nI01\nssS'unique'\np2716\n(dp2717\nS'editable'\np2718\nI00\nsS'value'\np2719\nI00\nssS'properties'\np2720\n(dp2721\nS'default_value'\np2722\n(dp2723\nS'editable'\np2724\nI00\nsS'value'\np2725\nNssS'summary_default'\np2726\n(dp2727\nS'editable'\np2728\nI01\nsS'value'\np2729\nS'none'\np2730\nssS'valid_types'\np2731\n(dp2732\nS'editable'\np2733\nI01\nsS'value'\np2734\n(lp2735\nS'Project'\np2736\nasssS'description'\np2737\n(dp2738\nS'editable'\np2739\nI01\nsS'value'\np2740\ng47\nsssS'playlist'\np2741\n(dp2742\nS'mandatory'\np2743\n(dp2744\nS'editable'\np2745\nI00\nsS'value'\np2746\nI00\nssS'name'\np2747\n(dp2748\nS'editable'\np2749\nI01\nsS'value'\np2750\nS'Playlist'\np2751\nssS'data_type'\np2752\n(dp2753\nS'editable'\np2754\nI00\nsS'value'\np2755\nS'entity'\np2756\nssS'entity_type'\np2757\n(dp2758\nS'editable'\np2759\nI00\nsS'value'\np2760\nS'Note'\np2761\nssS'editable'\np2762\n(dp2763\nS'editable'\np2764\nI00\nsS'value'\np2765\nI01\nssS'unique'\np2766\n(dp2767\nS'editable'\np2768\nI00\nsS'value'\np2769\nI00\nssS'properties'\np2770\n(dp2771\nS'default_value'\np2772\n(dp2773\nS'editable'\np2774\nI00\nsS'value'\np2775\nNssS'summary_default'\np2776\n(dp2777\nS'editable'\np2778\nI00\nsS'value'\np2779\nS'none'\np2780\nssS'valid_types'\np2781\n(dp2782\nS'editable'\np2783\nI00\nsS'value'\np2784\n(lp2785\nS'Playlist'\np2786\nasssS'description'\np2787\n(dp2788\nS'editable'\np2789\nI01\nsS'value'\np2790\ng47\nsssS'tasks'\np2791\n(dp2792\nS'mandatory'\np2793\n(dp2794\nS'editable'\np2795\nI00\nsS'value'\np2796\nI00\nssS'name'\np2797\n(dp2798\nS'editable'\np2799\nI01\nsS'value'\np2800\nS'Tasks'\np2801\nssS'data_type'\np2802\n(dp2803\nS'editable'\np2804\nI00\nsS'value'\np2805\nS'multi_entity'\np2806\nssS'entity_type'\np2807\n(dp2808\nS'editable'\np2809\nI00\nsS'value'\np2810\nS'Note'\np2811\nssS'editable'\np2812\n(dp2813\nS'editable'\np2814\nI00\nsS'value'\np2815\nI01\nssS'unique'\np2816\n(dp2817\nS'editable'\np2818\nI00\nsS'value'\np2819\nI00\nssS'properties'\np2820\n(dp2821\nS'default_value'\np2822\n(dp2823\nS'editable'\np2824\nI00\nsS'value'\np2825\nNssS'summary_default'\np2826\n(dp2827\nS'editable'\np2828\nI01\nsS'value'\np2829\nS'none'\np2830\nssS'valid_types'\np2831\n(dp2832\nS'editable'\np2833\nI01\nsS'value'\np2834\n(lp2835\nS'Task'\np2836\nasssS'description'\np2837\n(dp2838\nS'editable'\np2839\nI01\nsS'value'\np2840\ng47\nsssS'note_links'\np2841\n(dp2842\nS'mandatory'\np2843\n(dp2844\nS'editable'\np2845\nI00\nsS'value'\np2846\nI00\nssS'name'\np2847\n(dp2848\nS'editable'\np2849\nI01\nsS'value'\np2850\nS'Links'\np2851\nssS'data_type'\np2852\n(dp2853\nS'editable'\np2854\nI00\nsS'value'\np2855\nS'multi_entity'\np2856\nssS'entity_type'\np2857\n(dp2858\nS'editable'\np2859\nI00\nsS'value'\np2860\nS'Note'\np2861\nssS'editable'\np2862\n(dp2863\nS'editable'\np2864\nI00\nsS'value'\np2865\nI01\nssS'unique'\np2866\n(dp2867\nS'editable'\np2868\nI00\nsS'value'\np2869\nI00\nssS'properties'\np2870\n(dp2871\nS'default_value'\np2872\n(dp2873\nS'editable'\np2874\nI00\nsS'value'\np2875\nNssS'summary_default'\np2876\n(dp2877\nS'editable'\np2878\nI01\nsS'value'\np2879\nS'none'\np2880\nssS'valid_types'\np2881\n(dp2882\nS'editable'\np2883\nI01\nsS'value'\np2884\n(lp2885\nS'Asset'\np2886\naS'Shot'\np2887\naS'Version'\np2888\naS'Group'\np2889\naS'TaskTemplate'\np2890\naS'Playlist'\np2891\naS'Booking'\np2892\naS'Department'\np2893\naS'Phase'\np2894\naS'Sequence'\np2895\naS'PublishedFile'\np2896\naS'TankPublishedFile'\np2897\naS'CustomEntity01'\np2898\naS'Scene'\np2899\naS'CustomEntity02'\np2900\naS'CustomEntity03'\np2901\naS'CustomEntity04'\np2902\naS'CustomEntity05'\np2903\naS'CustomNonProjectEntity01'\np2904\naS'CustomNonProjectEntity02'\np2905\naS'CustomNonProjectEntity03'\np2906\naS'Element'\np2907\naS'AssetLibrary'\np2908\nasssS'description'\np2909\n(dp2910\nS'editable'\np2911\nI01\nsS'value'\np2912\ng47\nsssS'attachments'\np2913\n(dp2914\nS'mandatory'\np2915\n(dp2916\nS'editable'\np2917\nI00\nsS'value'\np2918\nI00\nssS'name'\np2919\n(dp2920\nS'editable'\np2921\nI01\nsS'value'\np2922\nS'Attachments'\np2923\nssS'data_type'\np2924\n(dp2925\nS'editable'\np2926\nI00\nsS'value'\np2927\nS'multi_entity'\np2928\nssS'entity_type'\np2929\n(dp2930\nS'editable'\np2931\nI00\nsS'value'\np2932\nS'Note'\np2933\nssS'editable'\np2934\n(dp2935\nS'editable'\np2936\nI00\nsS'value'\np2937\nI01\nssS'unique'\np2938\n(dp2939\nS'editable'\np2940\nI00\nsS'value'\np2941\nI00\nssS'properties'\np2942\n(dp2943\nS'default_value'\np2944\n(dp2945\nS'editable'\np2946\nI00\nsS'value'\np2947\nNssS'summary_default'\np2948\n(dp2949\nS'editable'\np2950\nI01\nsS'value'\np2951\nS'none'\np2952\nssS'valid_types'\np2953\n(dp2954\nS'editable'\np2955\nI01\nsS'value'\np2956\n(lp2957\nS'Attachment'\np2958\nasssS'description'\np2959\n(dp2960\nS'editable'\np2961\nI01\nsS'value'\np2962\ng47\nsssS'addressings_cc'\np2963\n(dp2964\nS'mandatory'\np2965\n(dp2966\nS'editable'\np2967\nI00\nsS'value'\np2968\nI00\nssS'name'\np2969\n(dp2970\nS'editable'\np2971\nI01\nsS'value'\np2972\nS'Cc'\np2973\nssS'data_type'\np2974\n(dp2975\nS'editable'\np2976\nI00\nsS'value'\np2977\nS'multi_entity'\np2978\nssS'entity_type'\np2979\n(dp2980\nS'editable'\np2981\nI00\nsS'value'\np2982\nS'Note'\np2983\nssS'editable'\np2984\n(dp2985\nS'editable'\np2986\nI00\nsS'value'\np2987\nI01\nssS'unique'\np2988\n(dp2989\nS'editable'\np2990\nI00\nsS'value'\np2991\nI00\nssS'properties'\np2992\n(dp2993\nS'default_value'\np2994\n(dp2995\nS'editable'\np2996\nI00\nsS'value'\np2997\nNssS'summary_default'\np2998\n(dp2999\nS'editable'\np3000\nI01\nsS'value'\np3001\nS'none'\np3002\nssS'valid_types'\np3003\n(dp3004\nS'editable'\np3005\nI01\nsS'value'\np3006\n(lp3007\nS'Group'\np3008\naS'HumanUser'\np3009\nasssS'description'\np3010\n(dp3011\nS'editable'\np3012\nI01\nsS'value'\np3013\ng47\nsssS'tag_list'\np3014\n(dp3015\nS'mandatory'\np3016\n(dp3017\nS'editable'\np3018\nI00\nsS'value'\np3019\nI00\nssS'name'\np3020\n(dp3021\nS'editable'\np3022\nI01\nsS'value'\np3023\nS'Tags'\np3024\nssS'data_type'\np3025\n(dp3026\nS'editable'\np3027\nI00\nsS'value'\np3028\nS'tag_list'\np3029\nssS'entity_type'\np3030\n(dp3031\nS'editable'\np3032\nI00\nsS'value'\np3033\nS'Note'\np3034\nssS'editable'\np3035\n(dp3036\nS'editable'\np3037\nI00\nsS'value'\np3038\nI01\nssS'unique'\np3039\n(dp3040\nS'editable'\np3041\nI00\nsS'value'\np3042\nI00\nssS'properties'\np3043\n(dp3044\nS'default_value'\np3045\n(dp3046\nS'editable'\np3047\nI00\nsS'value'\np3048\nNssS'summary_default'\np3049\n(dp3050\nS'editable'\np3051\nI01\nsS'value'\np3052\nS'none'\np3053\nssS'valid_types'\np3054\n(dp3055\nS'editable'\np3056\nI01\nsS'value'\np3057\n(lp3058\nS'Tag'\np3059\nasssS'description'\np3060\n(dp3061\nS'editable'\np3062\nI01\nsS'value'\np3063\ng47\nsssS'created_at'\np3064\n(dp3065\nS'mandatory'\np3066\n(dp3067\nS'editable'\np3068\nI00\nsS'value'\np3069\nI00\nssS'name'\np3070\n(dp3071\nS'editable'\np3072\nI01\nsS'value'\np3073\nS'Date Created'\np3074\nssS'data_type'\np3075\n(dp3076\nS'editable'\np3077\nI00\nsS'value'\np3078\nS'date_time'\np3079\nssS'entity_type'\np3080\n(dp3081\nS'editable'\np3082\nI00\nsS'value'\np3083\nS'Note'\np3084\nssS'editable'\np3085\n(dp3086\nS'editable'\np3087\nI00\nsS'value'\np3088\nI00\nssS'unique'\np3089\n(dp3090\nS'editable'\np3091\nI00\nsS'value'\np3092\nI00\nssS'properties'\np3093\n(dp3094\nS'default_value'\np3095\n(dp3096\nS'editable'\np3097\nI00\nsS'value'\np3098\nNssS'summary_default'\np3099\n(dp3100\nS'editable'\np3101\nI01\nsS'value'\np3102\nS'none'\np3103\nsssS'description'\np3104\n(dp3105\nS'editable'\np3106\nI01\nsS'value'\np3107\ng47\nsssS'addressings_to'\np3108\n(dp3109\nS'mandatory'\np3110\n(dp3111\nS'editable'\np3112\nI00\nsS'value'\np3113\nI00\nssS'name'\np3114\n(dp3115\nS'editable'\np3116\nI01\nsS'value'\np3117\nS'To'\np3118\nssS'data_type'\np3119\n(dp3120\nS'editable'\np3121\nI00\nsS'value'\np3122\nS'multi_entity'\np3123\nssS'entity_type'\np3124\n(dp3125\nS'editable'\np3126\nI00\nsS'value'\np3127\nS'Note'\np3128\nssS'editable'\np3129\n(dp3130\nS'editable'\np3131\nI00\nsS'value'\np3132\nI01\nssS'unique'\np3133\n(dp3134\nS'editable'\np3135\nI00\nsS'value'\np3136\nI00\nssS'properties'\np3137\n(dp3138\nS'default_value'\np3139\n(dp3140\nS'editable'\np3141\nI00\nsS'value'\np3142\nNssS'summary_default'\np3143\n(dp3144\nS'editable'\np3145\nI01\nsS'value'\np3146\nS'none'\np3147\nssS'valid_types'\np3148\n(dp3149\nS'editable'\np3150\nI01\nsS'value'\np3151\n(lp3152\nS'Group'\np3153\naS'HumanUser'\np3154\nasssS'description'\np3155\n(dp3156\nS'editable'\np3157\nI01\nsS'value'\np3158\ng47\nsssS'updated_at'\np3159\n(dp3160\nS'mandatory'\np3161\n(dp3162\nS'editable'\np3163\nI00\nsS'value'\np3164\nI00\nssS'name'\np3165\n(dp3166\nS'editable'\np3167\nI01\nsS'value'\np3168\nS'Date Updated'\np3169\nssS'data_type'\np3170\n(dp3171\nS'editable'\np3172\nI00\nsS'value'\np3173\nS'date_time'\np3174\nssS'entity_type'\np3175\n(dp3176\nS'editable'\np3177\nI00\nsS'value'\np3178\nS'Note'\np3179\nssS'editable'\np3180\n(dp3181\nS'editable'\np3182\nI00\nsS'value'\np3183\nI00\nssS'unique'\np3184\n(dp3185\nS'editable'\np3186\nI00\nsS'value'\np3187\nI00\nssS'properties'\np3188\n(dp3189\nS'default_value'\np3190\n(dp3191\nS'editable'\np3192\nI00\nsS'value'\np3193\nNssS'summary_default'\np3194\n(dp3195\nS'editable'\np3196\nI01\nsS'value'\np3197\nS'none'\np3198\nsssS'description'\np3199\n(dp3200\nS'editable'\np3201\nI01\nsS'value'\np3202\ng47\nsssS'created_by'\np3203\n(dp3204\nS'mandatory'\np3205\n(dp3206\nS'editable'\np3207\nI00\nsS'value'\np3208\nI00\nssS'name'\np3209\n(dp3210\nS'editable'\np3211\nI01\nsS'value'\np3212\nS'Created by'\np3213\nssS'data_type'\np3214\n(dp3215\nS'editable'\np3216\nI00\nsS'value'\np3217\nS'entity'\np3218\nssS'entity_type'\np3219\n(dp3220\nS'editable'\np3221\nI00\nsS'value'\np3222\nS'Note'\np3223\nssS'editable'\np3224\n(dp3225\nS'editable'\np3226\nI00\nsS'value'\np3227\nI00\nssS'unique'\np3228\n(dp3229\nS'editable'\np3230\nI00\nsS'value'\np3231\nI00\nssS'properties'\np3232\n(dp3233\nS'default_value'\np3234\n(dp3235\nS'editable'\np3236\nI00\nsS'value'\np3237\nNssS'summary_default'\np3238\n(dp3239\nS'editable'\np3240\nI01\nsS'value'\np3241\nS'none'\np3242\nssS'valid_types'\np3243\n(dp3244\nS'editable'\np3245\nI01\nsS'value'\np3246\n(lp3247\nS'HumanUser'\np3248\naS'ApiUser'\np3249\nasssS'description'\np3250\n(dp3251\nS'editable'\np3252\nI01\nsS'value'\np3253\ng47\nsssS'content'\np3254\n(dp3255\nS'mandatory'\np3256\n(dp3257\nS'editable'\np3258\nI00\nsS'value'\np3259\nI00\nssS'name'\np3260\n(dp3261\nS'editable'\np3262\nI01\nsS'value'\np3263\nS'Body'\np3264\nssS'data_type'\np3265\n(dp3266\nS'editable'\np3267\nI00\nsS'value'\np3268\nS'text'\np3269\nssS'entity_type'\np3270\n(dp3271\nS'editable'\np3272\nI00\nsS'value'\np3273\nS'Note'\np3274\nssS'editable'\np3275\n(dp3276\nS'editable'\np3277\nI00\nsS'value'\np3278\nI01\nssS'unique'\np3279\n(dp3280\nS'editable'\np3281\nI00\nsS'value'\np3282\nI00\nssS'properties'\np3283\n(dp3284\nS'default_value'\np3285\n(dp3286\nS'editable'\np3287\nI00\nsS'value'\np3288\nNssS'summary_default'\np3289\n(dp3290\nS'editable'\np3291\nI01\nsS'value'\np3292\nS'none'\np3293\nsssS'description'\np3294\n(dp3295\nS'editable'\np3296\nI01\nsS'value'\np3297\ng47\nsssS'updated_by'\np3298\n(dp3299\nS'mandatory'\np3300\n(dp3301\nS'editable'\np3302\nI00\nsS'value'\np3303\nI00\nssS'name'\np3304\n(dp3305\nS'editable'\np3306\nI01\nsS'value'\np3307\nS'Updated by'\np3308\nssS'data_type'\np3309\n(dp3310\nS'editable'\np3311\nI00\nsS'value'\np3312\nS'entity'\np3313\nssS'entity_type'\np3314\n(dp3315\nS'editable'\np3316\nI00\nsS'value'\np3317\nS'Note'\np3318\nssS'editable'\np3319\n(dp3320\nS'editable'\np3321\nI00\nsS'value'\np3322\nI00\nssS'unique'\np3323\n(dp3324\nS'editable'\np3325\nI00\nsS'value'\np3326\nI00\nssS'properties'\np3327\n(dp3328\nS'default_value'\np3329\n(dp3330\nS'editable'\np3331\nI00\nsS'value'\np3332\nNssS'summary_default'\np3333\n(dp3334\nS'editable'\np3335\nI01\nsS'value'\np3336\nS'none'\np3337\nssS'valid_types'\np3338\n(dp3339\nS'editable'\np3340\nI01\nsS'value'\np3341\n(lp3342\nS'HumanUser'\np3343\naS'ApiUser'\np3344\nasssS'description'\np3345\n(dp3346\nS'editable'\np3347\nI01\nsS'value'\np3348\ng47\nsssS'sg_status_list'\np3349\n(dp3350\nS'mandatory'\np3351\n(dp3352\nS'editable'\np3353\nI00\nsS'value'\np3354\nI00\nssS'name'\np3355\n(dp3356\nS'editable'\np3357\nI01\nsS'value'\np3358\nS'Status'\np3359\nssS'data_type'\np3360\n(dp3361\nS'editable'\np3362\nI00\nsS'value'\np3363\nS'status_list'\np3364\nssS'entity_type'\np3365\n(dp3366\nS'editable'\np3367\nI00\nsS'value'\np3368\nS'Note'\np3369\nssS'editable'\np3370\n(dp3371\nS'editable'\np3372\nI00\nsS'value'\np3373\nI01\nssS'unique'\np3374\n(dp3375\nS'editable'\np3376\nI00\nsS'value'\np3377\nI00\nssS'properties'\np3378\n(dp3379\nS'default_value'\np3380\n(dp3381\nS'editable'\np3382\nI01\nsS'value'\np3383\nS'opn'\np3384\nssS'valid_values'\np3385\n(dp3386\nS'editable'\np3387\nI01\nsS'value'\np3388\n(lp3389\nS'clsd'\np3390\naS'ip'\np3391\naS'opn'\np3392\nassS'summary_default'\np3393\n(dp3394\nS'editable'\np3395\nI01\nsS'value'\np3396\nS'none'\np3397\nsssS'description'\np3398\n(dp3399\nS'editable'\np3400\nI01\nsS'value'\np3401\ng47\nsssS'user'\np3402\n(dp3403\nS'mandatory'\np3404\n(dp3405\nS'editable'\np3406\nI00\nsS'value'\np3407\nI00\nssS'name'\np3408\n(dp3409\nS'editable'\np3410\nI01\nsS'value'\np3411\nS'Author'\np3412\nssS'data_type'\np3413\n(dp3414\nS'editable'\np3415\nI00\nsS'value'\np3416\nS'entity'\np3417\nssS'entity_type'\np3418\n(dp3419\nS'editable'\np3420\nI00\nsS'value'\np3421\nS'Note'\np3422\nssS'editable'\np3423\n(dp3424\nS'editable'\np3425\nI00\nsS'value'\np3426\nI01\nssS'unique'\np3427\n(dp3428\nS'editable'\np3429\nI00\nsS'value'\np3430\nI00\nssS'properties'\np3431\n(dp3432\nS'default_value'\np3433\n(dp3434\nS'editable'\np3435\nI00\nsS'value'\np3436\nNssS'summary_default'\np3437\n(dp3438\nS'editable'\np3439\nI01\nsS'value'\np3440\nS'none'\np3441\nssS'valid_types'\np3442\n(dp3443\nS'editable'\np3444\nI01\nsS'value'\np3445\n(lp3446\nS'HumanUser'\np3447\naS'ApiUser'\np3448\nasssS'description'\np3449\n(dp3450\nS'editable'\np3451\nI01\nsS'value'\np3452\ng47\nsssS'replies'\np3453\n(dp3454\nS'mandatory'\np3455\n(dp3456\nS'editable'\np3457\nI00\nsS'value'\np3458\nI00\nssS'name'\np3459\n(dp3460\nS'editable'\np3461\nI01\nsS'value'\np3462\nS'Replies'\np3463\nssS'data_type'\np3464\n(dp3465\nS'editable'\np3466\nI00\nsS'value'\np3467\nS'multi_entity'\np3468\nssS'entity_type'\np3469\n(dp3470\nS'editable'\np3471\nI00\nsS'value'\np3472\nS'Note'\np3473\nssS'editable'\np3474\n(dp3475\nS'editable'\np3476\nI00\nsS'value'\np3477\nI01\nssS'unique'\np3478\n(dp3479\nS'editable'\np3480\nI00\nsS'value'\np3481\nI00\nssS'properties'\np3482\n(dp3483\nS'default_value'\np3484\n(dp3485\nS'editable'\np3486\nI00\nsS'value'\np3487\nNssS'summary_default'\np3488\n(dp3489\nS'editable'\np3490\nI01\nsS'value'\np3491\nS'none'\np3492\nssS'valid_types'\np3493\n(dp3494\nS'editable'\np3495\nI01\nsS'value'\np3496\n(lp3497\nS'Reply'\np3498\nasssS'description'\np3499\n(dp3500\nS'editable'\np3501\nI01\nsS'value'\np3502\ng47\nsssS'sg_note_type'\np3503\n(dp3504\nS'mandatory'\np3505\n(dp3506\nS'editable'\np3507\nI00\nsS'value'\np3508\nI00\nssS'name'\np3509\n(dp3510\nS'editable'\np3511\nI01\nsS'value'\np3512\nS'Type'\np3513\nssS'data_type'\np3514\n(dp3515\nS'editable'\np3516\nI00\nsS'value'\np3517\nS'list'\np3518\nssS'entity_type'\np3519\n(dp3520\nS'editable'\np3521\nI00\nsS'value'\np3522\nS'Note'\np3523\nssS'editable'\np3524\n(dp3525\nS'editable'\np3526\nI00\nsS'value'\np3527\nI01\nssS'unique'\np3528\n(dp3529\nS'editable'\np3530\nI00\nsS'value'\np3531\nI00\nssS'properties'\np3532\n(dp3533\nS'default_value'\np3534\n(dp3535\nS'editable'\np3536\nI00\nsS'value'\np3537\nNssS'valid_values'\np3538\n(dp3539\nS'editable'\np3540\nI01\nsS'value'\np3541\n(lp3542\nS'Internal'\np3543\naS'Client'\np3544\naS'this list can be edited...'\np3545\nassS'summary_default'\np3546\n(dp3547\nS'editable'\np3548\nI01\nsS'value'\np3549\nS'none'\np3550\nsssS'description'\np3551\n(dp3552\nS'editable'\np3553\nI01\nsS'value'\np3554\ng47\nsssS'cached_display_name'\np3555\n(dp3556\nS'mandatory'\np3557\n(dp3558\nS'editable'\np3559\nI00\nsS'value'\np3560\nI00\nssS'name'\np3561\n(dp3562\nS'editable'\np3563\nI01\nsS'value'\np3564\nS'Cached Display Name'\np3565\nssS'data_type'\np3566\n(dp3567\nS'editable'\np3568\nI00\nsS'value'\np3569\nS'text'\np3570\nssS'entity_type'\np3571\n(dp3572\nS'editable'\np3573\nI00\nsS'value'\np3574\nS'Note'\np3575\nssS'editable'\np3576\n(dp3577\nS'editable'\np3578\nI00\nsS'value'\np3579\nI01\nssS'unique'\np3580\n(dp3581\nS'editable'\np3582\nI00\nsS'value'\np3583\nI00\nssS'properties'\np3584\n(dp3585\nS'default_value'\np3586\n(dp3587\nS'editable'\np3588\nI00\nsS'value'\np3589\nNssS'summary_default'\np3590\n(dp3591\nS'editable'\np3592\nI00\nsS'value'\np3593\nS'none'\np3594\nsssS'description'\np3595\n(dp3596\nS'editable'\np3597\nI01\nsS'value'\np3598\ng47\nsssS'reply_content'\np3599\n(dp3600\nS'mandatory'\np3601\n(dp3602\nS'editable'\np3603\nI00\nsS'value'\np3604\nI00\nssS'name'\np3605\n(dp3606\nS'editable'\np3607\nI01\nsS'value'\np3608\nS'Reply Content'\np3609\nssS'data_type'\np3610\n(dp3611\nS'editable'\np3612\nI00\nsS'value'\np3613\nS'text'\np3614\nssS'entity_type'\np3615\n(dp3616\nS'editable'\np3617\nI00\nsS'value'\np3618\nS'Note'\np3619\nssS'editable'\np3620\n(dp3621\nS'editable'\np3622\nI00\nsS'value'\np3623\nI01\nssS'unique'\np3624\n(dp3625\nS'editable'\np3626\nI00\nsS'value'\np3627\nI00\nssS'properties'\np3628\n(dp3629\nS'default_value'\np3630\n(dp3631\nS'editable'\np3632\nI00\nsS'value'\np3633\nNssS'summary_default'\np3634\n(dp3635\nS'editable'\np3636\nI01\nsS'value'\np3637\nS'none'\np3638\nsssS'description'\np3639\n(dp3640\nS'editable'\np3641\nI01\nsS'value'\np3642\ng47\nsssS'id'\np3643\n(dp3644\nS'mandatory'\np3645\n(dp3646\nS'editable'\np3647\nI00\nsS'value'\np3648\nI00\nssS'name'\np3649\n(dp3650\nS'editable'\np3651\nI01\nsS'value'\np3652\nS'Id'\np3653\nssS'data_type'\np3654\n(dp3655\nS'editable'\np3656\nI00\nsS'value'\np3657\nS'number'\np3658\nssS'entity_type'\np3659\n(dp3660\nS'editable'\np3661\nI00\nsS'value'\np3662\nS'Note'\np3663\nssS'editable'\np3664\n(dp3665\nS'editable'\np3666\nI00\nsS'value'\np3667\nI00\nssS'unique'\np3668\n(dp3669\nS'editable'\np3670\nI00\nsS'value'\np3671\nI00\nssS'properties'\np3672\n(dp3673\nS'default_value'\np3674\n(dp3675\nS'editable'\np3676\nI00\nsS'value'\np3677\nNssS'summary_default'\np3678\n(dp3679\nS'editable'\np3680\nI01\nsS'value'\np3681\nS'none'\np3682\nsssS'description'\np3683\n(dp3684\nS'editable'\np3685\nI01\nsS'value'\np3686\ng47\nsssS'subject'\np3687\n(dp3688\nS'mandatory'\np3689\n(dp3690\nS'editable'\np3691\nI00\nsS'value'\np3692\nI01\nssS'name'\np3693\n(dp3694\nS'editable'\np3695\nI01\nsS'value'\np3696\nS'Subject'\np3697\nssS'data_type'\np3698\n(dp3699\nS'editable'\np3700\nI00\nsS'value'\np3701\nS'text'\np3702\nssS'entity_type'\np3703\n(dp3704\nS'editable'\np3705\nI00\nsS'value'\np3706\nS'Note'\np3707\nssS'editable'\np3708\n(dp3709\nS'editable'\np3710\nI00\nsS'value'\np3711\nI01\nssS'unique'\np3712\n(dp3713\nS'editable'\np3714\nI00\nsS'value'\np3715\nI00\nssS'properties'\np3716\n(dp3717\nS'default_value'\np3718\n(dp3719\nS'editable'\np3720\nI00\nsS'value'\np3721\nNssS'summary_default'\np3722\n(dp3723\nS'editable'\np3724\nI01\nsS'value'\np3725\nS'none'\np3726\nsssS'description'\np3727\n(dp3728\nS'editable'\np3729\nI01\nsS'value'\np3730\ng47\nssssS'TaskDependency'\np3731\n(dp3732\nS'task'\np3733\n(dp3734\nS'mandatory'\np3735\n(dp3736\nS'editable'\np3737\nI00\nsS'value'\np3738\nI00\nssS'name'\np3739\n(dp3740\nS'editable'\np3741\nI01\nsS'value'\np3742\nS'Task'\np3743\nssS'data_type'\np3744\n(dp3745\nS'editable'\np3746\nI00\nsS'value'\np3747\nS'entity'\np3748\nssS'entity_type'\np3749\n(dp3750\nS'editable'\np3751\nI00\nsS'value'\np3752\nS'TaskDependency'\np3753\nssS'editable'\np3754\n(dp3755\nS'editable'\np3756\nI00\nsS'value'\np3757\nI01\nssS'unique'\np3758\n(dp3759\nS'editable'\np3760\nI00\nsS'value'\np3761\nI00\nssS'properties'\np3762\n(dp3763\nS'default_value'\np3764\n(dp3765\nS'editable'\np3766\nI00\nsS'value'\np3767\nNssS'summary_default'\np3768\n(dp3769\nS'editable'\np3770\nI00\nsS'value'\np3771\nS'none'\np3772\nssS'valid_types'\np3773\n(dp3774\nS'editable'\np3775\nI00\nsS'value'\np3776\n(lp3777\nS'Task'\np3778\nasssS'description'\np3779\n(dp3780\nS'editable'\np3781\nI01\nsS'value'\np3782\ng47\nsssS'task_id'\np3783\n(dp3784\nS'mandatory'\np3785\n(dp3786\nS'editable'\np3787\nI00\nsS'value'\np3788\nI00\nssS'name'\np3789\n(dp3790\nS'editable'\np3791\nI01\nsS'value'\np3792\nS'Task Id'\np3793\nssS'data_type'\np3794\n(dp3795\nS'editable'\np3796\nI00\nsS'value'\np3797\nS'number'\np3798\nssS'entity_type'\np3799\n(dp3800\nS'editable'\np3801\nI00\nsS'value'\np3802\nS'TaskDependency'\np3803\nssS'editable'\np3804\n(dp3805\nS'editable'\np3806\nI00\nsS'value'\np3807\nI00\nssS'unique'\np3808\n(dp3809\nS'editable'\np3810\nI00\nsS'value'\np3811\nI00\nssS'properties'\np3812\n(dp3813\nS'default_value'\np3814\n(dp3815\nS'editable'\np3816\nI00\nsS'value'\np3817\nNssS'summary_default'\np3818\n(dp3819\nS'editable'\np3820\nI00\nsS'value'\np3821\nS'none'\np3822\nsssS'description'\np3823\n(dp3824\nS'editable'\np3825\nI01\nsS'value'\np3826\ng47\nsssS'dependent_task'\np3827\n(dp3828\nS'mandatory'\np3829\n(dp3830\nS'editable'\np3831\nI00\nsS'value'\np3832\nI00\nssS'name'\np3833\n(dp3834\nS'editable'\np3835\nI01\nsS'value'\np3836\nS'Dependent Task'\np3837\nssS'data_type'\np3838\n(dp3839\nS'editable'\np3840\nI00\nsS'value'\np3841\nS'entity'\np3842\nssS'entity_type'\np3843\n(dp3844\nS'editable'\np3845\nI00\nsS'value'\np3846\nS'TaskDependency'\np3847\nssS'editable'\np3848\n(dp3849\nS'editable'\np3850\nI00\nsS'value'\np3851\nI01\nssS'unique'\np3852\n(dp3853\nS'editable'\np3854\nI00\nsS'value'\np3855\nI00\nssS'properties'\np3856\n(dp3857\nS'default_value'\np3858\n(dp3859\nS'editable'\np3860\nI00\nsS'value'\np3861\nNssS'summary_default'\np3862\n(dp3863\nS'editable'\np3864\nI00\nsS'value'\np3865\nS'none'\np3866\nssS'valid_types'\np3867\n(dp3868\nS'editable'\np3869\nI00\nsS'value'\np3870\n(lp3871\nS'Task'\np3872\nasssS'description'\np3873\n(dp3874\nS'editable'\np3875\nI01\nsS'value'\np3876\ng47\nsssS'offset_days'\np3877\n(dp3878\nS'mandatory'\np3879\n(dp3880\nS'editable'\np3881\nI00\nsS'value'\np3882\nI00\nssS'name'\np3883\n(dp3884\nS'editable'\np3885\nI01\nsS'value'\np3886\nS'Offset Days'\np3887\nssS'data_type'\np3888\n(dp3889\nS'editable'\np3890\nI00\nsS'value'\np3891\nS'number'\np3892\nssS'entity_type'\np3893\n(dp3894\nS'editable'\np3895\nI00\nsS'value'\np3896\nS'TaskDependency'\np3897\nssS'editable'\np3898\n(dp3899\nS'editable'\np3900\nI00\nsS'value'\np3901\nI01\nssS'unique'\np3902\n(dp3903\nS'editable'\np3904\nI00\nsS'value'\np3905\nI00\nssS'properties'\np3906\n(dp3907\nS'default_value'\np3908\n(dp3909\nS'editable'\np3910\nI00\nsS'value'\np3911\nNssS'summary_default'\np3912\n(dp3913\nS'editable'\np3914\nI00\nsS'value'\np3915\nS'none'\np3916\nsssS'description'\np3917\n(dp3918\nS'editable'\np3919\nI01\nsS'value'\np3920\ng47\nsssS'cached_display_name'\np3921\n(dp3922\nS'mandatory'\np3923\n(dp3924\nS'editable'\np3925\nI00\nsS'value'\np3926\nI00\nssS'name'\np3927\n(dp3928\nS'editable'\np3929\nI01\nsS'value'\np3930\nS'Cached Display Name'\np3931\nssS'data_type'\np3932\n(dp3933\nS'editable'\np3934\nI00\nsS'value'\np3935\nS'text'\np3936\nssS'entity_type'\np3937\n(dp3938\nS'editable'\np3939\nI00\nsS'value'\np3940\nS'TaskDependency'\np3941\nssS'editable'\np3942\n(dp3943\nS'editable'\np3944\nI00\nsS'value'\np3945\nI01\nssS'unique'\np3946\n(dp3947\nS'editable'\np3948\nI00\nsS'value'\np3949\nI00\nssS'properties'\np3950\n(dp3951\nS'default_value'\np3952\n(dp3953\nS'editable'\np3954\nI00\nsS'value'\np3955\nNssS'summary_default'\np3956\n(dp3957\nS'editable'\np3958\nI00\nsS'value'\np3959\nS'none'\np3960\nsssS'description'\np3961\n(dp3962\nS'editable'\np3963\nI01\nsS'value'\np3964\ng47\nsssS'dependent_task_id'\np3965\n(dp3966\nS'mandatory'\np3967\n(dp3968\nS'editable'\np3969\nI00\nsS'value'\np3970\nI00\nssS'name'\np3971\n(dp3972\nS'editable'\np3973\nI01\nsS'value'\np3974\nS'Dependent Task Id'\np3975\nssS'data_type'\np3976\n(dp3977\nS'editable'\np3978\nI00\nsS'value'\np3979\nS'number'\np3980\nssS'entity_type'\np3981\n(dp3982\nS'editable'\np3983\nI00\nsS'value'\np3984\nS'TaskDependency'\np3985\nssS'editable'\np3986\n(dp3987\nS'editable'\np3988\nI00\nsS'value'\np3989\nI00\nssS'unique'\np3990\n(dp3991\nS'editable'\np3992\nI00\nsS'value'\np3993\nI00\nssS'properties'\np3994\n(dp3995\nS'default_value'\np3996\n(dp3997\nS'editable'\np3998\nI00\nsS'value'\np3999\nNssS'summary_default'\np4000\n(dp4001\nS'editable'\np4002\nI00\nsS'value'\np4003\nS'none'\np4004\nsssS'description'\np4005\n(dp4006\nS'editable'\np4007\nI01\nsS'value'\np4008\ng47\nsssS'id'\np4009\n(dp4010\nS'mandatory'\np4011\n(dp4012\nS'editable'\np4013\nI00\nsS'value'\np4014\nI00\nssS'name'\np4015\n(dp4016\nS'editable'\np4017\nI01\nsS'value'\np4018\nS'Id'\np4019\nssS'data_type'\np4020\n(dp4021\nS'editable'\np4022\nI00\nsS'value'\np4023\nS'number'\np4024\nssS'entity_type'\np4025\n(dp4026\nS'editable'\np4027\nI00\nsS'value'\np4028\nS'TaskDependency'\np4029\nssS'editable'\np4030\n(dp4031\nS'editable'\np4032\nI00\nsS'value'\np4033\nI00\nssS'unique'\np4034\n(dp4035\nS'editable'\np4036\nI00\nsS'value'\np4037\nI00\nssS'properties'\np4038\n(dp4039\nS'default_value'\np4040\n(dp4041\nS'editable'\np4042\nI00\nsS'value'\np4043\nNssS'summary_default'\np4044\n(dp4045\nS'editable'\np4046\nI00\nsS'value'\np4047\nS'none'\np4048\nsssS'description'\np4049\n(dp4050\nS'editable'\np4051\nI01\nsS'value'\np4052\ng47\nssssS'PageHit'\np4053\n(dp4054\nS'user'\np4055\n(dp4056\nS'mandatory'\np4057\n(dp4058\nS'editable'\np4059\nI00\nsS'value'\np4060\nI00\nssS'name'\np4061\n(dp4062\nS'editable'\np4063\nI01\nsS'value'\np4064\nS'User'\np4065\nssS'data_type'\np4066\n(dp4067\nS'editable'\np4068\nI00\nsS'value'\np4069\nS'entity'\np4070\nssS'entity_type'\np4071\n(dp4072\nS'editable'\np4073\nI00\nsS'value'\np4074\nS'PageHit'\np4075\nssS'editable'\np4076\n(dp4077\nS'editable'\np4078\nI00\nsS'value'\np4079\nI00\nssS'unique'\np4080\n(dp4081\nS'editable'\np4082\nI00\nsS'value'\np4083\nI00\nssS'properties'\np4084\n(dp4085\nS'default_value'\np4086\n(dp4087\nS'editable'\np4088\nI00\nsS'value'\np4089\nNssS'summary_default'\np4090\n(dp4091\nS'editable'\np4092\nI00\nsS'value'\np4093\nS'none'\np4094\nssS'valid_types'\np4095\n(dp4096\nS'editable'\np4097\nI00\nsS'value'\np4098\n(lp4099\nS'HumanUser'\np4100\nasssS'description'\np4101\n(dp4102\nS'editable'\np4103\nI01\nsS'value'\np4104\ng47\nsssS'created_at'\np4105\n(dp4106\nS'mandatory'\np4107\n(dp4108\nS'editable'\np4109\nI00\nsS'value'\np4110\nI00\nssS'name'\np4111\n(dp4112\nS'editable'\np4113\nI01\nsS'value'\np4114\nS'Date Created'\np4115\nssS'data_type'\np4116\n(dp4117\nS'editable'\np4118\nI00\nsS'value'\np4119\nS'date_time'\np4120\nssS'entity_type'\np4121\n(dp4122\nS'editable'\np4123\nI00\nsS'value'\np4124\nS'PageHit'\np4125\nssS'editable'\np4126\n(dp4127\nS'editable'\np4128\nI00\nsS'value'\np4129\nI00\nssS'unique'\np4130\n(dp4131\nS'editable'\np4132\nI00\nsS'value'\np4133\nI00\nssS'properties'\np4134\n(dp4135\nS'default_value'\np4136\n(dp4137\nS'editable'\np4138\nI00\nsS'value'\np4139\nNssS'summary_default'\np4140\n(dp4141\nS'editable'\np4142\nI00\nsS'value'\np4143\nS'none'\np4144\nsssS'description'\np4145\n(dp4146\nS'editable'\np4147\nI01\nsS'value'\np4148\ng47\nsssS'id'\np4149\n(dp4150\nS'mandatory'\np4151\n(dp4152\nS'editable'\np4153\nI00\nsS'value'\np4154\nI01\nssS'name'\np4155\n(dp4156\nS'editable'\np4157\nI01\nsS'value'\np4158\nS'Id'\np4159\nssS'data_type'\np4160\n(dp4161\nS'editable'\np4162\nI00\nsS'value'\np4163\nS'number'\np4164\nssS'entity_type'\np4165\n(dp4166\nS'editable'\np4167\nI00\nsS'value'\np4168\nS'PageHit'\np4169\nssS'editable'\np4170\n(dp4171\nS'editable'\np4172\nI00\nsS'value'\np4173\nI00\nssS'unique'\np4174\n(dp4175\nS'editable'\np4176\nI00\nsS'value'\np4177\nI00\nssS'properties'\np4178\n(dp4179\nS'default_value'\np4180\n(dp4181\nS'editable'\np4182\nI00\nsS'value'\np4183\nNssS'summary_default'\np4184\n(dp4185\nS'editable'\np4186\nI00\nsS'value'\np4187\nS'none'\np4188\nsssS'description'\np4189\n(dp4190\nS'editable'\np4191\nI01\nsS'value'\np4192\ng47\nsssS'cached_display_name'\np4193\n(dp4194\nS'mandatory'\np4195\n(dp4196\nS'editable'\np4197\nI00\nsS'value'\np4198\nI00\nssS'name'\np4199\n(dp4200\nS'editable'\np4201\nI01\nsS'value'\np4202\nS'Cached Display Name'\np4203\nssS'data_type'\np4204\n(dp4205\nS'editable'\np4206\nI00\nsS'value'\np4207\nS'text'\np4208\nssS'entity_type'\np4209\n(dp4210\nS'editable'\np4211\nI00\nsS'value'\np4212\nS'PageHit'\np4213\nssS'editable'\np4214\n(dp4215\nS'editable'\np4216\nI00\nsS'value'\np4217\nI01\nssS'unique'\np4218\n(dp4219\nS'editable'\np4220\nI00\nsS'value'\np4221\nI00\nssS'properties'\np4222\n(dp4223\nS'default_value'\np4224\n(dp4225\nS'editable'\np4226\nI00\nsS'value'\np4227\nNssS'summary_default'\np4228\n(dp4229\nS'editable'\np4230\nI00\nsS'value'\np4231\nS'none'\np4232\nsssS'description'\np4233\n(dp4234\nS'editable'\np4235\nI01\nsS'value'\np4236\ng47\nsssS'page'\np4237\n(dp4238\nS'mandatory'\np4239\n(dp4240\nS'editable'\np4241\nI00\nsS'value'\np4242\nI00\nssS'name'\np4243\n(dp4244\nS'editable'\np4245\nI01\nsS'value'\np4246\nS'Page'\np4247\nssS'data_type'\np4248\n(dp4249\nS'editable'\np4250\nI00\nsS'value'\np4251\nS'entity'\np4252\nssS'entity_type'\np4253\n(dp4254\nS'editable'\np4255\nI00\nsS'value'\np4256\nS'PageHit'\np4257\nssS'editable'\np4258\n(dp4259\nS'editable'\np4260\nI00\nsS'value'\np4261\nI00\nssS'unique'\np4262\n(dp4263\nS'editable'\np4264\nI00\nsS'value'\np4265\nI00\nssS'properties'\np4266\n(dp4267\nS'default_value'\np4268\n(dp4269\nS'editable'\np4270\nI00\nsS'value'\np4271\nNssS'summary_default'\np4272\n(dp4273\nS'editable'\np4274\nI00\nsS'value'\np4275\nS'none'\np4276\nssS'valid_types'\np4277\n(dp4278\nS'editable'\np4279\nI00\nsS'value'\np4280\n(lp4281\nS'Page'\np4282\nasssS'description'\np4283\n(dp4284\nS'editable'\np4285\nI01\nsS'value'\np4286\ng47\nssssS'ActionMenuItem'\np4287\n(dp4288\nS'updated_by'\np4289\n(dp4290\nS'mandatory'\np4291\n(dp4292\nS'editable'\np4293\nI00\nsS'value'\np4294\nI00\nssS'name'\np4295\n(dp4296\nS'editable'\np4297\nI01\nsS'value'\np4298\nS'Updated by'\np4299\nssS'data_type'\np4300\n(dp4301\nS'editable'\np4302\nI00\nsS'value'\np4303\nS'entity'\np4304\nssS'entity_type'\np4305\n(dp4306\nS'editable'\np4307\nI00\nsS'value'\np4308\nS'ActionMenuItem'\np4309\nssS'editable'\np4310\n(dp4311\nS'editable'\np4312\nI00\nsS'value'\np4313\nI00\nssS'unique'\np4314\n(dp4315\nS'editable'\np4316\nI00\nsS'value'\np4317\nI00\nssS'properties'\np4318\n(dp4319\nS'default_value'\np4320\n(dp4321\nS'editable'\np4322\nI00\nsS'value'\np4323\nNssS'summary_default'\np4324\n(dp4325\nS'editable'\np4326\nI01\nsS'value'\np4327\nS'none'\np4328\nssS'valid_types'\np4329\n(dp4330\nS'editable'\np4331\nI01\nsS'value'\np4332\n(lp4333\nS'HumanUser'\np4334\naS'ApiUser'\np4335\nasssS'description'\np4336\n(dp4337\nS'editable'\np4338\nI01\nsS'value'\np4339\ng47\nsssS'list_order'\np4340\n(dp4341\nS'mandatory'\np4342\n(dp4343\nS'editable'\np4344\nI00\nsS'value'\np4345\nI00\nssS'name'\np4346\n(dp4347\nS'editable'\np4348\nI01\nsS'value'\np4349\nS'Order'\np4350\nssS'data_type'\np4351\n(dp4352\nS'editable'\np4353\nI00\nsS'value'\np4354\nS'number'\np4355\nssS'entity_type'\np4356\n(dp4357\nS'editable'\np4358\nI00\nsS'value'\np4359\nS'ActionMenuItem'\np4360\nssS'editable'\np4361\n(dp4362\nS'editable'\np4363\nI00\nsS'value'\np4364\nI01\nssS'unique'\np4365\n(dp4366\nS'editable'\np4367\nI00\nsS'value'\np4368\nI00\nssS'properties'\np4369\n(dp4370\nS'default_value'\np4371\n(dp4372\nS'editable'\np4373\nI00\nsS'value'\np4374\nNssS'summary_default'\np4375\n(dp4376\nS'editable'\np4377\nI00\nsS'value'\np4378\nS'none'\np4379\nsssS'description'\np4380\n(dp4381\nS'editable'\np4382\nI01\nsS'value'\np4383\ng47\nsssS'url'\np4384\n(dp4385\nS'mandatory'\np4386\n(dp4387\nS'editable'\np4388\nI00\nsS'value'\np4389\nI00\nssS'name'\np4390\n(dp4391\nS'editable'\np4392\nI01\nsS'value'\np4393\nS'URL'\np4394\nssS'data_type'\np4395\n(dp4396\nS'editable'\np4397\nI00\nsS'value'\np4398\nS'text'\np4399\nssS'entity_type'\np4400\n(dp4401\nS'editable'\np4402\nI00\nsS'value'\np4403\nS'ActionMenuItem'\np4404\nssS'editable'\np4405\n(dp4406\nS'editable'\np4407\nI00\nsS'value'\np4408\nI01\nssS'unique'\np4409\n(dp4410\nS'editable'\np4411\nI00\nsS'value'\np4412\nI00\nssS'properties'\np4413\n(dp4414\nS'default_value'\np4415\n(dp4416\nS'editable'\np4417\nI00\nsS'value'\np4418\nNssS'summary_default'\np4419\n(dp4420\nS'editable'\np4421\nI00\nsS'value'\np4422\nS'none'\np4423\nsssS'description'\np4424\n(dp4425\nS'editable'\np4426\nI01\nsS'value'\np4427\ng47\nsssS'created_at'\np4428\n(dp4429\nS'mandatory'\np4430\n(dp4431\nS'editable'\np4432\nI00\nsS'value'\np4433\nI00\nssS'name'\np4434\n(dp4435\nS'editable'\np4436\nI01\nsS'value'\np4437\nS'Date Created'\np4438\nssS'data_type'\np4439\n(dp4440\nS'editable'\np4441\nI00\nsS'value'\np4442\nS'date_time'\np4443\nssS'entity_type'\np4444\n(dp4445\nS'editable'\np4446\nI00\nsS'value'\np4447\nS'ActionMenuItem'\np4448\nssS'editable'\np4449\n(dp4450\nS'editable'\np4451\nI00\nsS'value'\np4452\nI00\nssS'unique'\np4453\n(dp4454\nS'editable'\np4455\nI00\nsS'value'\np4456\nI00\nssS'properties'\np4457\n(dp4458\nS'default_value'\np4459\n(dp4460\nS'editable'\np4461\nI00\nsS'value'\np4462\nNssS'summary_default'\np4463\n(dp4464\nS'editable'\np4465\nI01\nsS'value'\np4466\nS'none'\np4467\nsssS'description'\np4468\n(dp4469\nS'editable'\np4470\nI01\nsS'value'\np4471\ng47\nsssS'title'\np4472\n(dp4473\nS'mandatory'\np4474\n(dp4475\nS'editable'\np4476\nI00\nsS'value'\np4477\nI01\nssS'name'\np4478\n(dp4479\nS'editable'\np4480\nI01\nsS'value'\np4481\nS'Title'\np4482\nssS'data_type'\np4483\n(dp4484\nS'editable'\np4485\nI00\nsS'value'\np4486\nS'text'\np4487\nssS'entity_type'\np4488\n(dp4489\nS'editable'\np4490\nI00\nsS'value'\np4491\nS'ActionMenuItem'\np4492\nssS'editable'\np4493\n(dp4494\nS'editable'\np4495\nI00\nsS'value'\np4496\nI01\nssS'unique'\np4497\n(dp4498\nS'editable'\np4499\nI00\nsS'value'\np4500\nI00\nssS'properties'\np4501\n(dp4502\nS'default_value'\np4503\n(dp4504\nS'editable'\np4505\nI00\nsS'value'\np4506\nNssS'summary_default'\np4507\n(dp4508\nS'editable'\np4509\nI00\nsS'value'\np4510\nS'none'\np4511\nsssS'description'\np4512\n(dp4513\nS'editable'\np4514\nI01\nsS'value'\np4515\ng47\nsssS'poll_for_data_updates'\np4516\n(dp4517\nS'mandatory'\np4518\n(dp4519\nS'editable'\np4520\nI00\nsS'value'\np4521\nI00\nssS'name'\np4522\n(dp4523\nS'editable'\np4524\nI01\nsS'value'\np4525\nS'Poll For Data Updates'\np4526\nssS'data_type'\np4527\n(dp4528\nS'editable'\np4529\nI00\nsS'value'\np4530\nS'checkbox'\np4531\nssS'entity_type'\np4532\n(dp4533\nS'editable'\np4534\nI00\nsS'value'\np4535\nS'ActionMenuItem'\np4536\nssS'editable'\np4537\n(dp4538\nS'editable'\np4539\nI00\nsS'value'\np4540\nI01\nssS'unique'\np4541\n(dp4542\nS'editable'\np4543\nI00\nsS'value'\np4544\nI00\nssS'properties'\np4545\n(dp4546\nS'default_value'\np4547\n(dp4548\nS'editable'\np4549\nI00\nsS'value'\np4550\nI00\nssS'summary_default'\np4551\n(dp4552\nS'editable'\np4553\nI00\nsS'value'\np4554\nS'none'\np4555\nsssS'description'\np4556\n(dp4557\nS'editable'\np4558\nI01\nsS'value'\np4559\ng47\nsssS'updated_at'\np4560\n(dp4561\nS'mandatory'\np4562\n(dp4563\nS'editable'\np4564\nI00\nsS'value'\np4565\nI00\nssS'name'\np4566\n(dp4567\nS'editable'\np4568\nI01\nsS'value'\np4569\nS'Date Updated'\np4570\nssS'data_type'\np4571\n(dp4572\nS'editable'\np4573\nI00\nsS'value'\np4574\nS'date_time'\np4575\nssS'entity_type'\np4576\n(dp4577\nS'editable'\np4578\nI00\nsS'value'\np4579\nS'ActionMenuItem'\np4580\nssS'editable'\np4581\n(dp4582\nS'editable'\np4583\nI00\nsS'value'\np4584\nI00\nssS'unique'\np4585\n(dp4586\nS'editable'\np4587\nI00\nsS'value'\np4588\nI00\nssS'properties'\np4589\n(dp4590\nS'default_value'\np4591\n(dp4592\nS'editable'\np4593\nI00\nsS'value'\np4594\nNssS'summary_default'\np4595\n(dp4596\nS'editable'\np4597\nI01\nsS'value'\np4598\nS'none'\np4599\nsssS'description'\np4600\n(dp4601\nS'editable'\np4602\nI01\nsS'value'\np4603\ng47\nsssS'created_by'\np4604\n(dp4605\nS'mandatory'\np4606\n(dp4607\nS'editable'\np4608\nI00\nsS'value'\np4609\nI00\nssS'name'\np4610\n(dp4611\nS'editable'\np4612\nI01\nsS'value'\np4613\nS'Created by'\np4614\nssS'data_type'\np4615\n(dp4616\nS'editable'\np4617\nI00\nsS'value'\np4618\nS'entity'\np4619\nssS'entity_type'\np4620\n(dp4621\nS'editable'\np4622\nI00\nsS'value'\np4623\nS'ActionMenuItem'\np4624\nssS'editable'\np4625\n(dp4626\nS'editable'\np4627\nI00\nsS'value'\np4628\nI00\nssS'unique'\np4629\n(dp4630\nS'editable'\np4631\nI00\nsS'value'\np4632\nI00\nssS'properties'\np4633\n(dp4634\nS'default_value'\np4635\n(dp4636\nS'editable'\np4637\nI00\nsS'value'\np4638\nNssS'summary_default'\np4639\n(dp4640\nS'editable'\np4641\nI01\nsS'value'\np4642\nS'none'\np4643\nssS'valid_types'\np4644\n(dp4645\nS'editable'\np4646\nI01\nsS'value'\np4647\n(lp4648\nS'HumanUser'\np4649\naS'ApiUser'\np4650\nasssS'description'\np4651\n(dp4652\nS'editable'\np4653\nI01\nsS'value'\np4654\ng47\nsssS'permissions_groups'\np4655\n(dp4656\nS'mandatory'\np4657\n(dp4658\nS'editable'\np4659\nI00\nsS'value'\np4660\nI00\nssS'name'\np4661\n(dp4662\nS'editable'\np4663\nI01\nsS'value'\np4664\nS'Restrict to Permission Groups'\np4665\nssS'data_type'\np4666\n(dp4667\nS'editable'\np4668\nI00\nsS'value'\np4669\nS'multi_entity'\np4670\nssS'entity_type'\np4671\n(dp4672\nS'editable'\np4673\nI00\nsS'value'\np4674\nS'ActionMenuItem'\np4675\nssS'editable'\np4676\n(dp4677\nS'editable'\np4678\nI00\nsS'value'\np4679\nI01\nssS'unique'\np4680\n(dp4681\nS'editable'\np4682\nI00\nsS'value'\np4683\nI00\nssS'properties'\np4684\n(dp4685\nS'default_value'\np4686\n(dp4687\nS'editable'\np4688\nI00\nsS'value'\np4689\nNssS'summary_default'\np4690\n(dp4691\nS'editable'\np4692\nI01\nsS'value'\np4693\nS'none'\np4694\nssS'valid_types'\np4695\n(dp4696\nS'editable'\np4697\nI01\nsS'value'\np4698\n(lp4699\nS'PermissionRuleSet'\np4700\nasssS'description'\np4701\n(dp4702\nS'editable'\np4703\nI01\nsS'value'\np4704\ng47\nsssS'entity_type'\np4705\n(dp4706\nS'mandatory'\np4707\n(dp4708\nS'editable'\np4709\nI00\nsS'value'\np4710\nI00\nssS'name'\np4711\n(dp4712\nS'editable'\np4713\nI01\nsS'value'\np4714\nS'Entity Type'\np4715\nssS'data_type'\np4716\n(dp4717\nS'editable'\np4718\nI00\nsS'value'\np4719\nS'entity_type'\np4720\nssS'entity_type'\np4721\n(dp4722\nS'editable'\np4723\nI00\nsS'value'\np4724\nS'ActionMenuItem'\np4725\nssS'editable'\np4726\n(dp4727\nS'editable'\np4728\nI00\nsS'value'\np4729\nI01\nssS'unique'\np4730\n(dp4731\nS'editable'\np4732\nI00\nsS'value'\np4733\nI00\nssS'properties'\np4734\n(dp4735\nS'default_value'\np4736\n(dp4737\nS'editable'\np4738\nI00\nsS'value'\np4739\nNssS'summary_default'\np4740\n(dp4741\nS'editable'\np4742\nI00\nsS'value'\np4743\nS'none'\np4744\nsssS'description'\np4745\n(dp4746\nS'editable'\np4747\nI01\nsS'value'\np4748\ng47\nsssS'selection_required'\np4749\n(dp4750\nS'mandatory'\np4751\n(dp4752\nS'editable'\np4753\nI00\nsS'value'\np4754\nI00\nssS'name'\np4755\n(dp4756\nS'editable'\np4757\nI01\nsS'value'\np4758\nS'Selection Required'\np4759\nssS'data_type'\np4760\n(dp4761\nS'editable'\np4762\nI00\nsS'value'\np4763\nS'checkbox'\np4764\nssS'entity_type'\np4765\n(dp4766\nS'editable'\np4767\nI00\nsS'value'\np4768\nS'ActionMenuItem'\np4769\nssS'editable'\np4770\n(dp4771\nS'editable'\np4772\nI00\nsS'value'\np4773\nI01\nssS'unique'\np4774\n(dp4775\nS'editable'\np4776\nI00\nsS'value'\np4777\nI00\nssS'properties'\np4778\n(dp4779\nS'default_value'\np4780\n(dp4781\nS'editable'\np4782\nI00\nsS'value'\np4783\nI00\nssS'summary_default'\np4784\n(dp4785\nS'editable'\np4786\nI00\nsS'value'\np4787\nS'none'\np4788\nsssS'description'\np4789\n(dp4790\nS'editable'\np4791\nI01\nsS'value'\np4792\ng47\nsssS'folder'\np4793\n(dp4794\nS'mandatory'\np4795\n(dp4796\nS'editable'\np4797\nI00\nsS'value'\np4798\nI00\nssS'name'\np4799\n(dp4800\nS'editable'\np4801\nI01\nsS'value'\np4802\nS'Folder'\np4803\nssS'data_type'\np4804\n(dp4805\nS'editable'\np4806\nI00\nsS'value'\np4807\nS'text'\np4808\nssS'entity_type'\np4809\n(dp4810\nS'editable'\np4811\nI00\nsS'value'\np4812\nS'ActionMenuItem'\np4813\nssS'editable'\np4814\n(dp4815\nS'editable'\np4816\nI00\nsS'value'\np4817\nI01\nssS'unique'\np4818\n(dp4819\nS'editable'\np4820\nI00\nsS'value'\np4821\nI00\nssS'properties'\np4822\n(dp4823\nS'default_value'\np4824\n(dp4825\nS'editable'\np4826\nI00\nsS'value'\np4827\nNssS'summary_default'\np4828\n(dp4829\nS'editable'\np4830\nI00\nsS'value'\np4831\nS'none'\np4832\nsssS'description'\np4833\n(dp4834\nS'editable'\np4835\nI01\nsS'value'\np4836\ng47\nsssS'id'\np4837\n(dp4838\nS'mandatory'\np4839\n(dp4840\nS'editable'\np4841\nI00\nsS'value'\np4842\nI00\nssS'name'\np4843\n(dp4844\nS'editable'\np4845\nI01\nsS'value'\np4846\nS'Id'\np4847\nssS'data_type'\np4848\n(dp4849\nS'editable'\np4850\nI00\nsS'value'\np4851\nS'number'\np4852\nssS'entity_type'\np4853\n(dp4854\nS'editable'\np4855\nI00\nsS'value'\np4856\nS'ActionMenuItem'\np4857\nssS'editable'\np4858\n(dp4859\nS'editable'\np4860\nI00\nsS'value'\np4861\nI00\nssS'unique'\np4862\n(dp4863\nS'editable'\np4864\nI00\nsS'value'\np4865\nI00\nssS'properties'\np4866\n(dp4867\nS'default_value'\np4868\n(dp4869\nS'editable'\np4870\nI00\nsS'value'\np4871\nNssS'summary_default'\np4872\n(dp4873\nS'editable'\np4874\nI00\nsS'value'\np4875\nS'none'\np4876\nsssS'description'\np4877\n(dp4878\nS'editable'\np4879\nI01\nsS'value'\np4880\ng47\nsssS'projects'\np4881\n(dp4882\nS'mandatory'\np4883\n(dp4884\nS'editable'\np4885\nI00\nsS'value'\np4886\nI00\nssS'name'\np4887\n(dp4888\nS'editable'\np4889\nI01\nsS'value'\np4890\nS'Restrict to Projects'\np4891\nssS'data_type'\np4892\n(dp4893\nS'editable'\np4894\nI00\nsS'value'\np4895\nS'multi_entity'\np4896\nssS'entity_type'\np4897\n(dp4898\nS'editable'\np4899\nI00\nsS'value'\np4900\nS'ActionMenuItem'\np4901\nssS'editable'\np4902\n(dp4903\nS'editable'\np4904\nI00\nsS'value'\np4905\nI01\nssS'unique'\np4906\n(dp4907\nS'editable'\np4908\nI00\nsS'value'\np4909\nI00\nssS'properties'\np4910\n(dp4911\nS'default_value'\np4912\n(dp4913\nS'editable'\np4914\nI00\nsS'value'\np4915\nNssS'summary_default'\np4916\n(dp4917\nS'editable'\np4918\nI01\nsS'value'\np4919\nS'none'\np4920\nssS'valid_types'\np4921\n(dp4922\nS'editable'\np4923\nI01\nsS'value'\np4924\n(lp4925\nS'Project'\np4926\nasssS'description'\np4927\n(dp4928\nS'editable'\np4929\nI01\nsS'value'\np4930\ng47\nsssS'cached_display_name'\np4931\n(dp4932\nS'mandatory'\np4933\n(dp4934\nS'editable'\np4935\nI00\nsS'value'\np4936\nI00\nssS'name'\np4937\n(dp4938\nS'editable'\np4939\nI01\nsS'value'\np4940\nS'Cached Display Name'\np4941\nssS'data_type'\np4942\n(dp4943\nS'editable'\np4944\nI00\nsS'value'\np4945\nS'text'\np4946\nssS'entity_type'\np4947\n(dp4948\nS'editable'\np4949\nI00\nsS'value'\np4950\nS'ActionMenuItem'\np4951\nssS'editable'\np4952\n(dp4953\nS'editable'\np4954\nI00\nsS'value'\np4955\nI01\nssS'unique'\np4956\n(dp4957\nS'editable'\np4958\nI00\nsS'value'\np4959\nI00\nssS'properties'\np4960\n(dp4961\nS'default_value'\np4962\n(dp4963\nS'editable'\np4964\nI00\nsS'value'\np4965\nNssS'summary_default'\np4966\n(dp4967\nS'editable'\np4968\nI00\nsS'value'\np4969\nS'none'\np4970\nsssS'description'\np4971\n(dp4972\nS'editable'\np4973\nI01\nsS'value'\np4974\ng47\nssssS'Attachment'\np4975\n(dp4976\nS'open_notes_count'\np4977\n(dp4978\nS'mandatory'\np4979\n(dp4980\nS'editable'\np4981\nI00\nsS'value'\np4982\nI00\nssS'name'\np4983\n(dp4984\nS'editable'\np4985\nI01\nsS'value'\np4986\nS'Open Notes Count'\np4987\nssS'data_type'\np4988\n(dp4989\nS'editable'\np4990\nI00\nsS'value'\np4991\nS'text'\np4992\nssS'entity_type'\np4993\n(dp4994\nS'editable'\np4995\nI00\nsS'value'\np4996\nS'Attachment'\np4997\nssS'editable'\np4998\n(dp4999\nS'editable'\np5000\nI00\nsS'value'\np5001\nI00\nssS'unique'\np5002\n(dp5003\nS'editable'\np5004\nI00\nsS'value'\np5005\nI00\nssS'properties'\np5006\n(dp5007\nS'default_value'\np5008\n(dp5009\nS'editable'\np5010\nI00\nsS'value'\np5011\nNssS'summary_default'\np5012\n(dp5013\nS'editable'\np5014\nI01\nsS'value'\np5015\nS'none'\np5016\nsssS'description'\np5017\n(dp5018\nS'editable'\np5019\nI01\nsS'value'\np5020\ng47\nsssS'tasks'\np5021\n(dp5022\nS'mandatory'\np5023\n(dp5024\nS'editable'\np5025\nI00\nsS'value'\np5026\nI00\nssS'name'\np5027\n(dp5028\nS'editable'\np5029\nI01\nsS'value'\np5030\nS'Tasks'\np5031\nssS'data_type'\np5032\n(dp5033\nS'editable'\np5034\nI00\nsS'value'\np5035\nS'multi_entity'\np5036\nssS'entity_type'\np5037\n(dp5038\nS'editable'\np5039\nI00\nsS'value'\np5040\nS'Attachment'\np5041\nssS'editable'\np5042\n(dp5043\nS'editable'\np5044\nI00\nsS'value'\np5045\nI01\nssS'unique'\np5046\n(dp5047\nS'editable'\np5048\nI00\nsS'value'\np5049\nI00\nssS'properties'\np5050\n(dp5051\nS'default_value'\np5052\n(dp5053\nS'editable'\np5054\nI00\nsS'value'\np5055\nNssS'summary_default'\np5056\n(dp5057\nS'editable'\np5058\nI01\nsS'value'\np5059\nS'none'\np5060\nssS'valid_types'\np5061\n(dp5062\nS'editable'\np5063\nI01\nsS'value'\np5064\n(lp5065\nS'Task'\np5066\nasssS'description'\np5067\n(dp5068\nS'editable'\np5069\nI01\nsS'value'\np5070\ng47\nsssS'file_extension'\np5071\n(dp5072\nS'mandatory'\np5073\n(dp5074\nS'editable'\np5075\nI00\nsS'value'\np5076\nI00\nssS'name'\np5077\n(dp5078\nS'editable'\np5079\nI01\nsS'value'\np5080\nS'File Type'\np5081\nssS'data_type'\np5082\n(dp5083\nS'editable'\np5084\nI00\nsS'value'\np5085\nS'text'\np5086\nssS'entity_type'\np5087\n(dp5088\nS'editable'\np5089\nI00\nsS'value'\np5090\nS'Attachment'\np5091\nssS'editable'\np5092\n(dp5093\nS'editable'\np5094\nI00\nsS'value'\np5095\nI00\nssS'unique'\np5096\n(dp5097\nS'editable'\np5098\nI00\nsS'value'\np5099\nI00\nssS'properties'\np5100\n(dp5101\nS'default_value'\np5102\n(dp5103\nS'editable'\np5104\nI00\nsS'value'\np5105\nNssS'summary_default'\np5106\n(dp5107\nS'editable'\np5108\nI01\nsS'value'\np5109\nS'none'\np5110\nsssS'description'\np5111\n(dp5112\nS'editable'\np5113\nI01\nsS'value'\np5114\ng47\nsssS'updated_at'\np5115\n(dp5116\nS'mandatory'\np5117\n(dp5118\nS'editable'\np5119\nI00\nsS'value'\np5120\nI00\nssS'name'\np5121\n(dp5122\nS'editable'\np5123\nI01\nsS'value'\np5124\nS'Date Updated'\np5125\nssS'data_type'\np5126\n(dp5127\nS'editable'\np5128\nI00\nsS'value'\np5129\nS'date_time'\np5130\nssS'entity_type'\np5131\n(dp5132\nS'editable'\np5133\nI00\nsS'value'\np5134\nS'Attachment'\np5135\nssS'editable'\np5136\n(dp5137\nS'editable'\np5138\nI00\nsS'value'\np5139\nI00\nssS'unique'\np5140\n(dp5141\nS'editable'\np5142\nI00\nsS'value'\np5143\nI00\nssS'properties'\np5144\n(dp5145\nS'default_value'\np5146\n(dp5147\nS'editable'\np5148\nI00\nsS'value'\np5149\nNssS'summary_default'\np5150\n(dp5151\nS'editable'\np5152\nI01\nsS'value'\np5153\nS'none'\np5154\nsssS'description'\np5155\n(dp5156\nS'editable'\np5157\nI01\nsS'value'\np5158\ng47\nsssS'attachment_reference_links'\np5159\n(dp5160\nS'mandatory'\np5161\n(dp5162\nS'editable'\np5163\nI00\nsS'value'\np5164\nI00\nssS'name'\np5165\n(dp5166\nS'editable'\np5167\nI01\nsS'value'\np5168\nS'Reference For'\np5169\nssS'data_type'\np5170\n(dp5171\nS'editable'\np5172\nI00\nsS'value'\np5173\nS'multi_entity'\np5174\nssS'entity_type'\np5175\n(dp5176\nS'editable'\np5177\nI00\nsS'value'\np5178\nS'Attachment'\np5179\nssS'editable'\np5180\n(dp5181\nS'editable'\np5182\nI00\nsS'value'\np5183\nI01\nssS'unique'\np5184\n(dp5185\nS'editable'\np5186\nI00\nsS'value'\np5187\nI00\nssS'properties'\np5188\n(dp5189\nS'default_value'\np5190\n(dp5191\nS'editable'\np5192\nI00\nsS'value'\np5193\nNssS'summary_default'\np5194\n(dp5195\nS'editable'\np5196\nI01\nsS'value'\np5197\nS'none'\np5198\nssS'valid_types'\np5199\n(dp5200\nS'editable'\np5201\nI00\nsS'value'\np5202\n(lp5203\nS'Asset'\np5204\naS'Scene'\np5205\naS'Sequence'\np5206\naS'Shot'\np5207\naS'Version'\np5208\nasssS'description'\np5209\n(dp5210\nS'editable'\np5211\nI01\nsS'value'\np5212\ng47\nsssS'file_size'\np5213\n(dp5214\nS'mandatory'\np5215\n(dp5216\nS'editable'\np5217\nI00\nsS'value'\np5218\nI00\nssS'name'\np5219\n(dp5220\nS'editable'\np5221\nI01\nsS'value'\np5222\nS'File Size'\np5223\nssS'data_type'\np5224\n(dp5225\nS'editable'\np5226\nI00\nsS'value'\np5227\nS'number'\np5228\nssS'entity_type'\np5229\n(dp5230\nS'editable'\np5231\nI00\nsS'value'\np5232\nS'Attachment'\np5233\nssS'editable'\np5234\n(dp5235\nS'editable'\np5236\nI00\nsS'value'\np5237\nI00\nssS'unique'\np5238\n(dp5239\nS'editable'\np5240\nI00\nsS'value'\np5241\nI00\nssS'properties'\np5242\n(dp5243\nS'default_value'\np5244\n(dp5245\nS'editable'\np5246\nI00\nsS'value'\np5247\nNssS'summary_default'\np5248\n(dp5249\nS'editable'\np5250\nI01\nsS'value'\np5251\nS'none'\np5252\nsssS'description'\np5253\n(dp5254\nS'editable'\np5255\nI01\nsS'value'\np5256\ng47\nsssS'cached_display_name'\np5257\n(dp5258\nS'mandatory'\np5259\n(dp5260\nS'editable'\np5261\nI00\nsS'value'\np5262\nI00\nssS'name'\np5263\n(dp5264\nS'editable'\np5265\nI01\nsS'value'\np5266\nS'Cached Display Name'\np5267\nssS'data_type'\np5268\n(dp5269\nS'editable'\np5270\nI00\nsS'value'\np5271\nS'text'\np5272\nssS'entity_type'\np5273\n(dp5274\nS'editable'\np5275\nI00\nsS'value'\np5276\nS'Attachment'\np5277\nssS'editable'\np5278\n(dp5279\nS'editable'\np5280\nI00\nsS'value'\np5281\nI01\nssS'unique'\np5282\n(dp5283\nS'editable'\np5284\nI00\nsS'value'\np5285\nI00\nssS'properties'\np5286\n(dp5287\nS'default_value'\np5288\n(dp5289\nS'editable'\np5290\nI00\nsS'value'\np5291\nNssS'summary_default'\np5292\n(dp5293\nS'editable'\np5294\nI00\nsS'value'\np5295\nS'none'\np5296\nsssS'description'\np5297\n(dp5298\nS'editable'\np5299\nI01\nsS'value'\np5300\ng47\nsssS'id'\np5301\n(dp5302\nS'mandatory'\np5303\n(dp5304\nS'editable'\np5305\nI00\nsS'value'\np5306\nI00\nssS'name'\np5307\n(dp5308\nS'editable'\np5309\nI01\nsS'value'\np5310\nS'Id'\np5311\nssS'data_type'\np5312\n(dp5313\nS'editable'\np5314\nI00\nsS'value'\np5315\nS'number'\np5316\nssS'entity_type'\np5317\n(dp5318\nS'editable'\np5319\nI00\nsS'value'\np5320\nS'Attachment'\np5321\nssS'editable'\np5322\n(dp5323\nS'editable'\np5324\nI00\nsS'value'\np5325\nI00\nssS'unique'\np5326\n(dp5327\nS'editable'\np5328\nI00\nsS'value'\np5329\nI00\nssS'properties'\np5330\n(dp5331\nS'default_value'\np5332\n(dp5333\nS'editable'\np5334\nI00\nsS'value'\np5335\nNssS'summary_default'\np5336\n(dp5337\nS'editable'\np5338\nI01\nsS'value'\np5339\nS'none'\np5340\nsssS'description'\np5341\n(dp5342\nS'editable'\np5343\nI01\nsS'value'\np5344\ng47\nsssS'updated_by'\np5345\n(dp5346\nS'mandatory'\np5347\n(dp5348\nS'editable'\np5349\nI00\nsS'value'\np5350\nI00\nssS'name'\np5351\n(dp5352\nS'editable'\np5353\nI01\nsS'value'\np5354\nS'Updated by'\np5355\nssS'data_type'\np5356\n(dp5357\nS'editable'\np5358\nI00\nsS'value'\np5359\nS'entity'\np5360\nssS'entity_type'\np5361\n(dp5362\nS'editable'\np5363\nI00\nsS'value'\np5364\nS'Attachment'\np5365\nssS'editable'\np5366\n(dp5367\nS'editable'\np5368\nI00\nsS'value'\np5369\nI00\nssS'unique'\np5370\n(dp5371\nS'editable'\np5372\nI00\nsS'value'\np5373\nI00\nssS'properties'\np5374\n(dp5375\nS'default_value'\np5376\n(dp5377\nS'editable'\np5378\nI00\nsS'value'\np5379\nNssS'summary_default'\np5380\n(dp5381\nS'editable'\np5382\nI01\nsS'value'\np5383\nS'none'\np5384\nssS'valid_types'\np5385\n(dp5386\nS'editable'\np5387\nI01\nsS'value'\np5388\n(lp5389\nS'HumanUser'\np5390\naS'ApiUser'\np5391\nasssS'description'\np5392\n(dp5393\nS'editable'\np5394\nI01\nsS'value'\np5395\ng47\nsssS'queue_for_s3_upload'\np5396\n(dp5397\nS'mandatory'\np5398\n(dp5399\nS'editable'\np5400\nI00\nsS'value'\np5401\nI00\nssS'name'\np5402\n(dp5403\nS'editable'\np5404\nI01\nsS'value'\np5405\nS'Queue for S3 Upload'\np5406\nssS'data_type'\np5407\n(dp5408\nS'editable'\np5409\nI00\nsS'value'\np5410\nS'checkbox'\np5411\nssS'entity_type'\np5412\n(dp5413\nS'editable'\np5414\nI00\nsS'value'\np5415\nS'Attachment'\np5416\nssS'editable'\np5417\n(dp5418\nS'editable'\np5419\nI00\nsS'value'\np5420\nI00\nssS'unique'\np5421\n(dp5422\nS'editable'\np5423\nI00\nsS'value'\np5424\nI00\nssS'properties'\np5425\n(dp5426\nS'default_value'\np5427\n(dp5428\nS'editable'\np5429\nI00\nsS'value'\np5430\nI0\nssS'summary_default'\np5431\n(dp5432\nS'editable'\np5433\nI01\nsS'value'\np5434\nS'none'\np5435\nsssS'description'\np5436\n(dp5437\nS'editable'\np5438\nI01\nsS'value'\np5439\ng47\nsssS'display_name'\np5440\n(dp5441\nS'mandatory'\np5442\n(dp5443\nS'editable'\np5444\nI00\nsS'value'\np5445\nI00\nssS'name'\np5446\n(dp5447\nS'editable'\np5448\nI01\nsS'value'\np5449\nS'File Display Name'\np5450\nssS'data_type'\np5451\n(dp5452\nS'editable'\np5453\nI00\nsS'value'\np5454\nS'text'\np5455\nssS'entity_type'\np5456\n(dp5457\nS'editable'\np5458\nI00\nsS'value'\np5459\nS'Attachment'\np5460\nssS'editable'\np5461\n(dp5462\nS'editable'\np5463\nI00\nsS'value'\np5464\nI01\nssS'unique'\np5465\n(dp5466\nS'editable'\np5467\nI00\nsS'value'\np5468\nI00\nssS'properties'\np5469\n(dp5470\nS'default_value'\np5471\n(dp5472\nS'editable'\np5473\nI00\nsS'value'\np5474\nNssS'summary_default'\np5475\n(dp5476\nS'editable'\np5477\nI01\nsS'value'\np5478\nS'none'\np5479\nsssS'description'\np5480\n(dp5481\nS'editable'\np5482\nI01\nsS'value'\np5483\ng47\nsssS'image'\np5484\n(dp5485\nS'mandatory'\np5486\n(dp5487\nS'editable'\np5488\nI00\nsS'value'\np5489\nI00\nssS'name'\np5490\n(dp5491\nS'editable'\np5492\nI01\nsS'value'\np5493\nS'Thumbnail'\np5494\nssS'data_type'\np5495\n(dp5496\nS'editable'\np5497\nI00\nsS'value'\np5498\nS'image'\np5499\nssS'entity_type'\np5500\n(dp5501\nS'editable'\np5502\nI00\nsS'value'\np5503\nS'Attachment'\np5504\nssS'editable'\np5505\n(dp5506\nS'editable'\np5507\nI00\nsS'value'\np5508\nI01\nssS'unique'\np5509\n(dp5510\nS'editable'\np5511\nI00\nsS'value'\np5512\nI00\nssS'properties'\np5513\n(dp5514\nS'default_value'\np5515\n(dp5516\nS'editable'\np5517\nI00\nsS'value'\np5518\nNssS'summary_default'\np5519\n(dp5520\nS'editable'\np5521\nI01\nsS'value'\np5522\nS'none'\np5523\nsssS'description'\np5524\n(dp5525\nS'editable'\np5526\nI01\nsS'value'\np5527\ng47\nsssS'task_template'\np5528\n(dp5529\nS'mandatory'\np5530\n(dp5531\nS'editable'\np5532\nI00\nsS'value'\np5533\nI00\nssS'name'\np5534\n(dp5535\nS'editable'\np5536\nI01\nsS'value'\np5537\nS'Task Template'\np5538\nssS'data_type'\np5539\n(dp5540\nS'editable'\np5541\nI00\nsS'value'\np5542\nS'entity'\np5543\nssS'entity_type'\np5544\n(dp5545\nS'editable'\np5546\nI00\nsS'value'\np5547\nS'Attachment'\np5548\nssS'editable'\np5549\n(dp5550\nS'editable'\np5551\nI00\nsS'value'\np5552\nI01\nssS'unique'\np5553\n(dp5554\nS'editable'\np5555\nI00\nsS'value'\np5556\nI00\nssS'properties'\np5557\n(dp5558\nS'default_value'\np5559\n(dp5560\nS'editable'\np5561\nI00\nsS'value'\np5562\nNssS'summary_default'\np5563\n(dp5564\nS'editable'\np5565\nI01\nsS'value'\np5566\nS'none'\np5567\nssS'valid_types'\np5568\n(dp5569\nS'editable'\np5570\nI01\nsS'value'\np5571\n(lp5572\nS'TaskTemplate'\np5573\nasssS'description'\np5574\n(dp5575\nS'editable'\np5576\nI01\nsS'value'\np5577\ng47\nsssS'created_by'\np5578\n(dp5579\nS'mandatory'\np5580\n(dp5581\nS'editable'\np5582\nI00\nsS'value'\np5583\nI00\nssS'name'\np5584\n(dp5585\nS'editable'\np5586\nI01\nsS'value'\np5587\nS'Created by'\np5588\nssS'data_type'\np5589\n(dp5590\nS'editable'\np5591\nI00\nsS'value'\np5592\nS'entity'\np5593\nssS'entity_type'\np5594\n(dp5595\nS'editable'\np5596\nI00\nsS'value'\np5597\nS'Attachment'\np5598\nssS'editable'\np5599\n(dp5600\nS'editable'\np5601\nI00\nsS'value'\np5602\nI00\nssS'unique'\np5603\n(dp5604\nS'editable'\np5605\nI00\nsS'value'\np5606\nI00\nssS'properties'\np5607\n(dp5608\nS'default_value'\np5609\n(dp5610\nS'editable'\np5611\nI00\nsS'value'\np5612\nNssS'summary_default'\np5613\n(dp5614\nS'editable'\np5615\nI01\nsS'value'\np5616\nS'none'\np5617\nssS'valid_types'\np5618\n(dp5619\nS'editable'\np5620\nI01\nsS'value'\np5621\n(lp5622\nS'HumanUser'\np5623\naS'ApiUser'\np5624\nasssS'description'\np5625\n(dp5626\nS'editable'\np5627\nI01\nsS'value'\np5628\ng47\nsssS'filename'\np5629\n(dp5630\nS'mandatory'\np5631\n(dp5632\nS'editable'\np5633\nI00\nsS'value'\np5634\nI00\nssS'name'\np5635\n(dp5636\nS'editable'\np5637\nI01\nsS'value'\np5638\nS'File Name'\np5639\nssS'data_type'\np5640\n(dp5641\nS'editable'\np5642\nI00\nsS'value'\np5643\nS'text'\np5644\nssS'entity_type'\np5645\n(dp5646\nS'editable'\np5647\nI00\nsS'value'\np5648\nS'Attachment'\np5649\nssS'editable'\np5650\n(dp5651\nS'editable'\np5652\nI00\nsS'value'\np5653\nI00\nssS'unique'\np5654\n(dp5655\nS'editable'\np5656\nI00\nsS'value'\np5657\nI00\nssS'properties'\np5658\n(dp5659\nS'default_value'\np5660\n(dp5661\nS'editable'\np5662\nI00\nsS'value'\np5663\nNssS'summary_default'\np5664\n(dp5665\nS'editable'\np5666\nI01\nsS'value'\np5667\nS'none'\np5668\nsssS'description'\np5669\n(dp5670\nS'editable'\np5671\nI01\nsS'value'\np5672\ng47\nsssS'sg_status_list'\np5673\n(dp5674\nS'mandatory'\np5675\n(dp5676\nS'editable'\np5677\nI00\nsS'value'\np5678\nI00\nssS'name'\np5679\n(dp5680\nS'editable'\np5681\nI01\nsS'value'\np5682\nS'Status'\np5683\nssS'data_type'\np5684\n(dp5685\nS'editable'\np5686\nI00\nsS'value'\np5687\nS'status_list'\np5688\nssS'entity_type'\np5689\n(dp5690\nS'editable'\np5691\nI00\nsS'value'\np5692\nS'Attachment'\np5693\nssS'editable'\np5694\n(dp5695\nS'editable'\np5696\nI00\nsS'value'\np5697\nI01\nssS'unique'\np5698\n(dp5699\nS'editable'\np5700\nI00\nsS'value'\np5701\nI00\nssS'properties'\np5702\n(dp5703\nS'default_value'\np5704\n(dp5705\nS'editable'\np5706\nI01\nsS'value'\np5707\nS'na'\np5708\nssS'valid_values'\np5709\n(dp5710\nS'editable'\np5711\nI01\nsS'value'\np5712\n(lp5713\nS'fin'\np5714\naS'na'\np5715\nassS'summary_default'\np5716\n(dp5717\nS'editable'\np5718\nI01\nsS'value'\np5719\nS'status_list'\np5720\nsssS'description'\np5721\n(dp5722\nS'editable'\np5723\nI01\nsS'value'\np5724\ng47\nsssS'attachment_links'\np5725\n(dp5726\nS'mandatory'\np5727\n(dp5728\nS'editable'\np5729\nI00\nsS'value'\np5730\nI00\nssS'name'\np5731\n(dp5732\nS'editable'\np5733\nI01\nsS'value'\np5734\nS'Links'\np5735\nssS'data_type'\np5736\n(dp5737\nS'editable'\np5738\nI00\nsS'value'\np5739\nS'multi_entity'\np5740\nssS'entity_type'\np5741\n(dp5742\nS'editable'\np5743\nI00\nsS'value'\np5744\nS'Attachment'\np5745\nssS'editable'\np5746\n(dp5747\nS'editable'\np5748\nI00\nsS'value'\np5749\nI01\nssS'unique'\np5750\n(dp5751\nS'editable'\np5752\nI00\nsS'value'\np5753\nI00\nssS'properties'\np5754\n(dp5755\nS'default_value'\np5756\n(dp5757\nS'editable'\np5758\nI00\nsS'value'\np5759\nNssS'summary_default'\np5760\n(dp5761\nS'editable'\np5762\nI01\nsS'value'\np5763\nS'none'\np5764\nssS'valid_types'\np5765\n(dp5766\nS'editable'\np5767\nI00\nsS'value'\np5768\n(lp5769\nS'Asset'\np5770\naS'Scene'\np5771\naS'Sequence'\np5772\naS'Shot'\np5773\naS'Version'\np5774\nasssS'description'\np5775\n(dp5776\nS'editable'\np5777\nI01\nsS'value'\np5778\ng47\nsssS'description'\np5779\n(dp5780\nS'mandatory'\np5781\n(dp5782\nS'editable'\np5783\nI00\nsS'value'\np5784\nI00\nssS'name'\np5785\n(dp5786\nS'editable'\np5787\nI01\nsS'value'\np5788\nS'Description'\np5789\nssS'data_type'\np5790\n(dp5791\nS'editable'\np5792\nI00\nsS'value'\np5793\nS'text'\np5794\nssS'entity_type'\np5795\n(dp5796\nS'editable'\np5797\nI00\nsS'value'\np5798\nS'Attachment'\np5799\nssS'editable'\np5800\n(dp5801\nS'editable'\np5802\nI00\nsS'value'\np5803\nI01\nssS'unique'\np5804\n(dp5805\nS'editable'\np5806\nI00\nsS'value'\np5807\nI00\nssS'properties'\np5808\n(dp5809\nS'default_value'\np5810\n(dp5811\nS'editable'\np5812\nI00\nsS'value'\np5813\nNssS'summary_default'\np5814\n(dp5815\nS'editable'\np5816\nI01\nsS'value'\np5817\nS'none'\np5818\nsssS'description'\np5819\n(dp5820\nS'editable'\np5821\nI01\nsS'value'\np5822\ng47\nsssS'local_storage'\np5823\n(dp5824\nS'mandatory'\np5825\n(dp5826\nS'editable'\np5827\nI00\nsS'value'\np5828\nI00\nssS'name'\np5829\n(dp5830\nS'editable'\np5831\nI01\nsS'value'\np5832\nS'Local File Storage'\np5833\nssS'data_type'\np5834\n(dp5835\nS'editable'\np5836\nI00\nsS'value'\np5837\nS'entity'\np5838\nssS'entity_type'\np5839\n(dp5840\nS'editable'\np5841\nI00\nsS'value'\np5842\nS'Attachment'\np5843\nssS'editable'\np5844\n(dp5845\nS'editable'\np5846\nI00\nsS'value'\np5847\nI00\nssS'unique'\np5848\n(dp5849\nS'editable'\np5850\nI00\nsS'value'\np5851\nI00\nssS'properties'\np5852\n(dp5853\nS'default_value'\np5854\n(dp5855\nS'editable'\np5856\nI00\nsS'value'\np5857\nNssS'summary_default'\np5858\n(dp5859\nS'editable'\np5860\nI00\nsS'value'\np5861\nS'none'\np5862\nssS'valid_types'\np5863\n(dp5864\nS'editable'\np5865\nI00\nsS'value'\np5866\n(lp5867\nS'LocalStorage'\np5868\nasssS'description'\np5869\n(dp5870\nS'editable'\np5871\nI01\nsS'value'\np5872\ng47\nsssS'open_notes'\np5873\n(dp5874\nS'mandatory'\np5875\n(dp5876\nS'editable'\np5877\nI00\nsS'value'\np5878\nI00\nssS'name'\np5879\n(dp5880\nS'editable'\np5881\nI01\nsS'value'\np5882\nS'Open Notes'\np5883\nssS'data_type'\np5884\n(dp5885\nS'editable'\np5886\nI00\nsS'value'\np5887\nS'multi_entity'\np5888\nssS'entity_type'\np5889\n(dp5890\nS'editable'\np5891\nI00\nsS'value'\np5892\nS'Attachment'\np5893\nssS'editable'\np5894\n(dp5895\nS'editable'\np5896\nI00\nsS'value'\np5897\nI00\nssS'unique'\np5898\n(dp5899\nS'editable'\np5900\nI00\nsS'value'\np5901\nI00\nssS'properties'\np5902\n(dp5903\nS'default_value'\np5904\n(dp5905\nS'editable'\np5906\nI00\nsS'value'\np5907\nNssS'summary_default'\np5908\n(dp5909\nS'editable'\np5910\nI01\nsS'value'\np5911\nS'none'\np5912\nssS'valid_types'\np5913\n(dp5914\nS'editable'\np5915\nI01\nsS'value'\np5916\n(lp5917\nS'Note'\np5918\nasssS'description'\np5919\n(dp5920\nS'editable'\np5921\nI01\nsS'value'\np5922\ng47\nsssS'step_0'\np5923\n(dp5924\nS'mandatory'\np5925\n(dp5926\nS'editable'\np5927\nI00\nsS'value'\np5928\nI00\nssS'name'\np5929\n(dp5930\nS'editable'\np5931\nI01\nsS'value'\np5932\nS'ALL TASKS'\np5933\nssS'data_type'\np5934\n(dp5935\nS'editable'\np5936\nI00\nsS'value'\np5937\nS'pivot_column'\np5938\nssS'entity_type'\np5939\n(dp5940\nS'editable'\np5941\nI00\nsS'value'\np5942\nS'Attachment'\np5943\nssS'editable'\np5944\n(dp5945\nS'editable'\np5946\nI00\nsS'value'\np5947\nI00\nssS'unique'\np5948\n(dp5949\nS'editable'\np5950\nI00\nsS'value'\np5951\nI00\nssS'properties'\np5952\n(dp5953\nS'default_value'\np5954\n(dp5955\nS'editable'\np5956\nI00\nsS'value'\np5957\nNssS'summary_default'\np5958\n(dp5959\nS'editable'\np5960\nI00\nsS'value'\np5961\nS'none'\np5962\nsssS'description'\np5963\n(dp5964\nS'editable'\np5965\nI01\nsS'value'\np5966\ng47\nsssS'created_at'\np5967\n(dp5968\nS'mandatory'\np5969\n(dp5970\nS'editable'\np5971\nI00\nsS'value'\np5972\nI00\nssS'name'\np5973\n(dp5974\nS'editable'\np5975\nI01\nsS'value'\np5976\nS'Date Created'\np5977\nssS'data_type'\np5978\n(dp5979\nS'editable'\np5980\nI00\nsS'value'\np5981\nS'date_time'\np5982\nssS'entity_type'\np5983\n(dp5984\nS'editable'\np5985\nI00\nsS'value'\np5986\nS'Attachment'\np5987\nssS'editable'\np5988\n(dp5989\nS'editable'\np5990\nI00\nsS'value'\np5991\nI00\nssS'unique'\np5992\n(dp5993\nS'editable'\np5994\nI00\nsS'value'\np5995\nI00\nssS'properties'\np5996\n(dp5997\nS'default_value'\np5998\n(dp5999\nS'editable'\np6000\nI00\nsS'value'\np6001\nNssS'summary_default'\np6002\n(dp6003\nS'editable'\np6004\nI01\nsS'value'\np6005\nS'none'\np6006\nsssS'description'\np6007\n(dp6008\nS'editable'\np6009\nI01\nsS'value'\np6010\ng47\nsssS'project'\np6011\n(dp6012\nS'mandatory'\np6013\n(dp6014\nS'editable'\np6015\nI00\nsS'value'\np6016\nI00\nssS'name'\np6017\n(dp6018\nS'editable'\np6019\nI01\nsS'value'\np6020\nS'Project'\np6021\nssS'data_type'\np6022\n(dp6023\nS'editable'\np6024\nI00\nsS'value'\np6025\nS'entity'\np6026\nssS'entity_type'\np6027\n(dp6028\nS'editable'\np6029\nI00\nsS'value'\np6030\nS'Attachment'\np6031\nssS'editable'\np6032\n(dp6033\nS'editable'\np6034\nI00\nsS'value'\np6035\nI01\nssS'unique'\np6036\n(dp6037\nS'editable'\np6038\nI00\nsS'value'\np6039\nI00\nssS'properties'\np6040\n(dp6041\nS'default_value'\np6042\n(dp6043\nS'editable'\np6044\nI00\nsS'value'\np6045\nNssS'summary_default'\np6046\n(dp6047\nS'editable'\np6048\nI01\nsS'value'\np6049\nS'none'\np6050\nssS'valid_types'\np6051\n(dp6052\nS'editable'\np6053\nI01\nsS'value'\np6054\n(lp6055\nS'Project'\np6056\nasssS'description'\np6057\n(dp6058\nS'editable'\np6059\nI01\nsS'value'\np6060\ng47\nsssS'filmstrip_image'\np6061\n(dp6062\nS'mandatory'\np6063\n(dp6064\nS'editable'\np6065\nI00\nsS'value'\np6066\nI00\nssS'name'\np6067\n(dp6068\nS'editable'\np6069\nI01\nsS'value'\np6070\nS'Filmstrip Thumbnail'\np6071\nssS'data_type'\np6072\n(dp6073\nS'editable'\np6074\nI00\nsS'value'\np6075\nS'image'\np6076\nssS'entity_type'\np6077\n(dp6078\nS'editable'\np6079\nI00\nsS'value'\np6080\nS'Attachment'\np6081\nssS'editable'\np6082\n(dp6083\nS'editable'\np6084\nI00\nsS'value'\np6085\nI01\nssS'unique'\np6086\n(dp6087\nS'editable'\np6088\nI00\nsS'value'\np6089\nI00\nssS'properties'\np6090\n(dp6091\nS'default_value'\np6092\n(dp6093\nS'editable'\np6094\nI00\nsS'value'\np6095\nNssS'summary_default'\np6096\n(dp6097\nS'editable'\np6098\nI01\nsS'value'\np6099\nS'none'\np6100\nsssS'description'\np6101\n(dp6102\nS'editable'\np6103\nI01\nsS'value'\np6104\ng47\nsssS'this_file'\np6105\n(dp6106\nS'mandatory'\np6107\n(dp6108\nS'editable'\np6109\nI00\nsS'value'\np6110\nI01\nssS'name'\np6111\n(dp6112\nS'editable'\np6113\nI01\nsS'value'\np6114\nS'File'\np6115\nssS'data_type'\np6116\n(dp6117\nS'editable'\np6118\nI00\nsS'value'\np6119\nS'url'\np6120\nssS'entity_type'\np6121\n(dp6122\nS'editable'\np6123\nI00\nsS'value'\np6124\nS'Attachment'\np6125\nssS'editable'\np6126\n(dp6127\nS'editable'\np6128\nI00\nsS'value'\np6129\nI00\nssS'unique'\np6130\n(dp6131\nS'editable'\np6132\nI00\nsS'value'\np6133\nI00\nssS'properties'\np6134\n(dp6135\nS'default_value'\np6136\n(dp6137\nS'editable'\np6138\nI00\nsS'value'\np6139\nNssS'open_in_new_window'\np6140\n(dp6141\nS'editable'\np6142\nI01\nsS'value'\np6143\nI01\nssS'summary_default'\np6144\n(dp6145\nS'editable'\np6146\nI01\nsS'value'\np6147\nS'none'\np6148\nsssS'description'\np6149\n(dp6150\nS'editable'\np6151\nI01\nsS'value'\np6152\ng47\nsssS'sg_type'\np6153\n(dp6154\nS'mandatory'\np6155\n(dp6156\nS'editable'\np6157\nI00\nsS'value'\np6158\nI00\nssS'name'\np6159\n(dp6160\nS'editable'\np6161\nI01\nsS'value'\np6162\nS'Type'\np6163\nssS'data_type'\np6164\n(dp6165\nS'editable'\np6166\nI00\nsS'value'\np6167\nS'text'\np6168\nssS'entity_type'\np6169\n(dp6170\nS'editable'\np6171\nI00\nsS'value'\np6172\nS'Attachment'\np6173\nssS'editable'\np6174\n(dp6175\nS'editable'\np6176\nI00\nsS'value'\np6177\nI01\nssS'unique'\np6178\n(dp6179\nS'editable'\np6180\nI00\nsS'value'\np6181\nI00\nssS'properties'\np6182\n(dp6183\nS'default_value'\np6184\n(dp6185\nS'editable'\np6186\nI00\nsS'value'\np6187\nNssS'summary_default'\np6188\n(dp6189\nS'editable'\np6190\nI01\nsS'value'\np6191\nS'none'\np6192\nsssS'description'\np6193\n(dp6194\nS'editable'\np6195\nI01\nsS'value'\np6196\ng47\nsssS'tag_list'\np6197\n(dp6198\nS'mandatory'\np6199\n(dp6200\nS'editable'\np6201\nI00\nsS'value'\np6202\nI00\nssS'name'\np6203\n(dp6204\nS'editable'\np6205\nI01\nsS'value'\np6206\nS'Tags'\np6207\nssS'data_type'\np6208\n(dp6209\nS'editable'\np6210\nI00\nsS'value'\np6211\nS'tag_list'\np6212\nssS'entity_type'\np6213\n(dp6214\nS'editable'\np6215\nI00\nsS'value'\np6216\nS'Attachment'\np6217\nssS'editable'\np6218\n(dp6219\nS'editable'\np6220\nI00\nsS'value'\np6221\nI01\nssS'unique'\np6222\n(dp6223\nS'editable'\np6224\nI00\nsS'value'\np6225\nI00\nssS'properties'\np6226\n(dp6227\nS'default_value'\np6228\n(dp6229\nS'editable'\np6230\nI00\nsS'value'\np6231\nNssS'summary_default'\np6232\n(dp6233\nS'editable'\np6234\nI01\nsS'value'\np6235\nS'none'\np6236\nssS'valid_types'\np6237\n(dp6238\nS'editable'\np6239\nI01\nsS'value'\np6240\n(lp6241\nS'Tag'\np6242\nasssS'description'\np6243\n(dp6244\nS'editable'\np6245\nI01\nsS'value'\np6246\ng47\nsssS'notes'\np6247\n(dp6248\nS'mandatory'\np6249\n(dp6250\nS'editable'\np6251\nI00\nsS'value'\np6252\nI00\nssS'name'\np6253\n(dp6254\nS'editable'\np6255\nI01\nsS'value'\np6256\nS'Notes'\np6257\nssS'data_type'\np6258\n(dp6259\nS'editable'\np6260\nI00\nsS'value'\np6261\nS'multi_entity'\np6262\nssS'entity_type'\np6263\n(dp6264\nS'editable'\np6265\nI00\nsS'value'\np6266\nS'Attachment'\np6267\nssS'editable'\np6268\n(dp6269\nS'editable'\np6270\nI00\nsS'value'\np6271\nI01\nssS'unique'\np6272\n(dp6273\nS'editable'\np6274\nI00\nsS'value'\np6275\nI00\nssS'properties'\np6276\n(dp6277\nS'default_value'\np6278\n(dp6279\nS'editable'\np6280\nI00\nsS'value'\np6281\nNssS'summary_default'\np6282\n(dp6283\nS'editable'\np6284\nI01\nsS'value'\np6285\nS'none'\np6286\nssS'valid_types'\np6287\n(dp6288\nS'editable'\np6289\nI01\nsS'value'\np6290\n(lp6291\nS'Note'\np6292\nasssS'description'\np6293\n(dp6294\nS'editable'\np6295\nI01\nsS'value'\np6296\ng47\nssssS'AssetMocapTakeConnection'\np6297\n(dp6298\nS'mocap_take'\np6299\n(dp6300\nS'mandatory'\np6301\n(dp6302\nS'editable'\np6303\nI00\nsS'value'\np6304\nI00\nssS'name'\np6305\n(dp6306\nS'editable'\np6307\nI01\nsS'value'\np6308\nS'Mocap Take'\np6309\nssS'data_type'\np6310\n(dp6311\nS'editable'\np6312\nI00\nsS'value'\np6313\nS'entity'\np6314\nssS'entity_type'\np6315\n(dp6316\nS'editable'\np6317\nI00\nsS'value'\np6318\nS'AssetMocapTakeConnection'\np6319\nssS'editable'\np6320\n(dp6321\nS'editable'\np6322\nI00\nsS'value'\np6323\nI00\nssS'unique'\np6324\n(dp6325\nS'editable'\np6326\nI00\nsS'value'\np6327\nI00\nssS'properties'\np6328\n(dp6329\nS'default_value'\np6330\n(dp6331\nS'editable'\np6332\nI00\nsS'value'\np6333\nNssS'summary_default'\np6334\n(dp6335\nS'editable'\np6336\nI00\nsS'value'\np6337\nS'none'\np6338\nssS'valid_types'\np6339\n(dp6340\nS'editable'\np6341\nI00\nsS'value'\np6342\n(lp6343\nS'MocapTake'\np6344\nasssS'description'\np6345\n(dp6346\nS'editable'\np6347\nI01\nsS'value'\np6348\ng47\nsssS'cached_display_name'\np6349\n(dp6350\nS'mandatory'\np6351\n(dp6352\nS'editable'\np6353\nI00\nsS'value'\np6354\nI00\nssS'name'\np6355\n(dp6356\nS'editable'\np6357\nI01\nsS'value'\np6358\nS'Cached Display Name'\np6359\nssS'data_type'\np6360\n(dp6361\nS'editable'\np6362\nI00\nsS'value'\np6363\nS'text'\np6364\nssS'entity_type'\np6365\n(dp6366\nS'editable'\np6367\nI00\nsS'value'\np6368\nS'AssetMocapTakeConnection'\np6369\nssS'editable'\np6370\n(dp6371\nS'editable'\np6372\nI00\nsS'value'\np6373\nI01\nssS'unique'\np6374\n(dp6375\nS'editable'\np6376\nI00\nsS'value'\np6377\nI00\nssS'properties'\np6378\n(dp6379\nS'default_value'\np6380\n(dp6381\nS'editable'\np6382\nI00\nsS'value'\np6383\nNssS'summary_default'\np6384\n(dp6385\nS'editable'\np6386\nI00\nsS'value'\np6387\nS'none'\np6388\nsssS'description'\np6389\n(dp6390\nS'editable'\np6391\nI01\nsS'value'\np6392\ng47\nsssS'asset'\np6393\n(dp6394\nS'mandatory'\np6395\n(dp6396\nS'editable'\np6397\nI00\nsS'value'\np6398\nI00\nssS'name'\np6399\n(dp6400\nS'editable'\np6401\nI01\nsS'value'\np6402\nS'Asset'\np6403\nssS'data_type'\np6404\n(dp6405\nS'editable'\np6406\nI00\nsS'value'\np6407\nS'entity'\np6408\nssS'entity_type'\np6409\n(dp6410\nS'editable'\np6411\nI00\nsS'value'\np6412\nS'AssetMocapTakeConnection'\np6413\nssS'editable'\np6414\n(dp6415\nS'editable'\np6416\nI00\nsS'value'\np6417\nI00\nssS'unique'\np6418\n(dp6419\nS'editable'\np6420\nI00\nsS'value'\np6421\nI00\nssS'properties'\np6422\n(dp6423\nS'default_value'\np6424\n(dp6425\nS'editable'\np6426\nI00\nsS'value'\np6427\nNssS'summary_default'\np6428\n(dp6429\nS'editable'\np6430\nI00\nsS'value'\np6431\nS'none'\np6432\nssS'valid_types'\np6433\n(dp6434\nS'editable'\np6435\nI00\nsS'value'\np6436\n(lp6437\nS'Asset'\np6438\nasssS'description'\np6439\n(dp6440\nS'editable'\np6441\nI01\nsS'value'\np6442\ng47\nsssS'id'\np6443\n(dp6444\nS'mandatory'\np6445\n(dp6446\nS'editable'\np6447\nI00\nsS'value'\np6448\nI01\nssS'name'\np6449\n(dp6450\nS'editable'\np6451\nI01\nsS'value'\np6452\nS'Id'\np6453\nssS'data_type'\np6454\n(dp6455\nS'editable'\np6456\nI00\nsS'value'\np6457\nS'number'\np6458\nssS'entity_type'\np6459\n(dp6460\nS'editable'\np6461\nI00\nsS'value'\np6462\nS'AssetMocapTakeConnection'\np6463\nssS'editable'\np6464\n(dp6465\nS'editable'\np6466\nI00\nsS'value'\np6467\nI00\nssS'unique'\np6468\n(dp6469\nS'editable'\np6470\nI00\nsS'value'\np6471\nI00\nssS'properties'\np6472\n(dp6473\nS'default_value'\np6474\n(dp6475\nS'editable'\np6476\nI00\nsS'value'\np6477\nNssS'summary_default'\np6478\n(dp6479\nS'editable'\np6480\nI00\nsS'value'\np6481\nS'none'\np6482\nsssS'description'\np6483\n(dp6484\nS'editable'\np6485\nI01\nsS'value'\np6486\ng47\nssssS'Department'\np6487\n(dp6488\nS'open_notes_count'\np6489\n(dp6490\nS'mandatory'\np6491\n(dp6492\nS'editable'\np6493\nI00\nsS'value'\np6494\nI00\nssS'name'\np6495\n(dp6496\nS'editable'\np6497\nI01\nsS'value'\np6498\nS'Open Notes Count'\np6499\nssS'data_type'\np6500\n(dp6501\nS'editable'\np6502\nI00\nsS'value'\np6503\nS'text'\np6504\nssS'entity_type'\np6505\n(dp6506\nS'editable'\np6507\nI00\nsS'value'\np6508\nS'Department'\np6509\nssS'editable'\np6510\n(dp6511\nS'editable'\np6512\nI00\nsS'value'\np6513\nI00\nssS'unique'\np6514\n(dp6515\nS'editable'\np6516\nI00\nsS'value'\np6517\nI00\nssS'properties'\np6518\n(dp6519\nS'default_value'\np6520\n(dp6521\nS'editable'\np6522\nI00\nsS'value'\np6523\nNssS'summary_default'\np6524\n(dp6525\nS'editable'\np6526\nI01\nsS'value'\np6527\nS'none'\np6528\nsssS'description'\np6529\n(dp6530\nS'editable'\np6531\nI01\nsS'value'\np6532\ng47\nsssS'code'\np6533\n(dp6534\nS'mandatory'\np6535\n(dp6536\nS'editable'\np6537\nI00\nsS'value'\np6538\nI00\nssS'name'\np6539\n(dp6540\nS'editable'\np6541\nI01\nsS'value'\np6542\nS'Department Short Name'\np6543\nssS'data_type'\np6544\n(dp6545\nS'editable'\np6546\nI00\nsS'value'\np6547\nS'text'\np6548\nssS'entity_type'\np6549\n(dp6550\nS'editable'\np6551\nI00\nsS'value'\np6552\nS'Department'\np6553\nssS'editable'\np6554\n(dp6555\nS'editable'\np6556\nI00\nsS'value'\np6557\nI01\nssS'unique'\np6558\n(dp6559\nS'editable'\np6560\nI00\nsS'value'\np6561\nI00\nssS'properties'\np6562\n(dp6563\nS'default_value'\np6564\n(dp6565\nS'editable'\np6566\nI00\nsS'value'\np6567\nNssS'summary_default'\np6568\n(dp6569\nS'editable'\np6570\nI01\nsS'value'\np6571\nS'none'\np6572\nsssS'description'\np6573\n(dp6574\nS'editable'\np6575\nI01\nsS'value'\np6576\ng47\nsssS'open_notes'\np6577\n(dp6578\nS'mandatory'\np6579\n(dp6580\nS'editable'\np6581\nI00\nsS'value'\np6582\nI00\nssS'name'\np6583\n(dp6584\nS'editable'\np6585\nI01\nsS'value'\np6586\nS'Open Notes'\np6587\nssS'data_type'\np6588\n(dp6589\nS'editable'\np6590\nI00\nsS'value'\np6591\nS'multi_entity'\np6592\nssS'entity_type'\np6593\n(dp6594\nS'editable'\np6595\nI00\nsS'value'\np6596\nS'Department'\np6597\nssS'editable'\np6598\n(dp6599\nS'editable'\np6600\nI00\nsS'value'\np6601\nI00\nssS'unique'\np6602\n(dp6603\nS'editable'\np6604\nI00\nsS'value'\np6605\nI00\nssS'properties'\np6606\n(dp6607\nS'default_value'\np6608\n(dp6609\nS'editable'\np6610\nI00\nsS'value'\np6611\nNssS'summary_default'\np6612\n(dp6613\nS'editable'\np6614\nI01\nsS'value'\np6615\nS'none'\np6616\nssS'valid_types'\np6617\n(dp6618\nS'editable'\np6619\nI01\nsS'value'\np6620\n(lp6621\nS'Note'\np6622\nasssS'description'\np6623\n(dp6624\nS'editable'\np6625\nI01\nsS'value'\np6626\ng47\nsssS'users'\np6627\n(dp6628\nS'mandatory'\np6629\n(dp6630\nS'editable'\np6631\nI00\nsS'value'\np6632\nI00\nssS'name'\np6633\n(dp6634\nS'editable'\np6635\nI01\nsS'value'\np6636\nS'People'\np6637\nssS'data_type'\np6638\n(dp6639\nS'editable'\np6640\nI00\nsS'value'\np6641\nS'multi_entity'\np6642\nssS'entity_type'\np6643\n(dp6644\nS'editable'\np6645\nI00\nsS'value'\np6646\nS'Department'\np6647\nssS'editable'\np6648\n(dp6649\nS'editable'\np6650\nI00\nsS'value'\np6651\nI01\nssS'unique'\np6652\n(dp6653\nS'editable'\np6654\nI00\nsS'value'\np6655\nI00\nssS'properties'\np6656\n(dp6657\nS'default_value'\np6658\n(dp6659\nS'editable'\np6660\nI00\nsS'value'\np6661\nNssS'summary_default'\np6662\n(dp6663\nS'editable'\np6664\nI01\nsS'value'\np6665\nS'none'\np6666\nssS'valid_types'\np6667\n(dp6668\nS'editable'\np6669\nI01\nsS'value'\np6670\n(lp6671\nS'HumanUser'\np6672\nasssS'description'\np6673\n(dp6674\nS'editable'\np6675\nI01\nsS'value'\np6676\ng47\nsssS'list_order'\np6677\n(dp6678\nS'mandatory'\np6679\n(dp6680\nS'editable'\np6681\nI00\nsS'value'\np6682\nI00\nssS'name'\np6683\n(dp6684\nS'editable'\np6685\nI01\nsS'value'\np6686\nS'Order'\np6687\nssS'data_type'\np6688\n(dp6689\nS'editable'\np6690\nI00\nsS'value'\np6691\nS'number'\np6692\nssS'entity_type'\np6693\n(dp6694\nS'editable'\np6695\nI00\nsS'value'\np6696\nS'Department'\np6697\nssS'editable'\np6698\n(dp6699\nS'editable'\np6700\nI00\nsS'value'\np6701\nI01\nssS'unique'\np6702\n(dp6703\nS'editable'\np6704\nI00\nsS'value'\np6705\nI00\nssS'properties'\np6706\n(dp6707\nS'default_value'\np6708\n(dp6709\nS'editable'\np6710\nI00\nsS'value'\np6711\nNssS'summary_default'\np6712\n(dp6713\nS'editable'\np6714\nI00\nsS'value'\np6715\nS'none'\np6716\nsssS'description'\np6717\n(dp6718\nS'editable'\np6719\nI01\nsS'value'\np6720\ng47\nsssS'color'\np6721\n(dp6722\nS'mandatory'\np6723\n(dp6724\nS'editable'\np6725\nI00\nsS'value'\np6726\nI00\nssS'name'\np6727\n(dp6728\nS'editable'\np6729\nI01\nsS'value'\np6730\nS'Color'\np6731\nssS'data_type'\np6732\n(dp6733\nS'editable'\np6734\nI00\nsS'value'\np6735\nS'color'\np6736\nssS'entity_type'\np6737\n(dp6738\nS'editable'\np6739\nI00\nsS'value'\np6740\nS'Department'\np6741\nssS'editable'\np6742\n(dp6743\nS'editable'\np6744\nI00\nsS'value'\np6745\nI01\nssS'unique'\np6746\n(dp6747\nS'editable'\np6748\nI00\nsS'value'\np6749\nI00\nssS'properties'\np6750\n(dp6751\nS'default_value'\np6752\n(dp6753\nS'editable'\np6754\nI00\nsS'value'\np6755\nNssS'summary_default'\np6756\n(dp6757\nS'editable'\np6758\nI01\nsS'value'\np6759\nS'none'\np6760\nsssS'description'\np6761\n(dp6762\nS'editable'\np6763\nI01\nsS'value'\np6764\ng47\nsssS'created_at'\np6765\n(dp6766\nS'mandatory'\np6767\n(dp6768\nS'editable'\np6769\nI00\nsS'value'\np6770\nI00\nssS'name'\np6771\n(dp6772\nS'editable'\np6773\nI01\nsS'value'\np6774\nS'Date Created'\np6775\nssS'data_type'\np6776\n(dp6777\nS'editable'\np6778\nI00\nsS'value'\np6779\nS'date_time'\np6780\nssS'entity_type'\np6781\n(dp6782\nS'editable'\np6783\nI00\nsS'value'\np6784\nS'Department'\np6785\nssS'editable'\np6786\n(dp6787\nS'editable'\np6788\nI00\nsS'value'\np6789\nI00\nssS'unique'\np6790\n(dp6791\nS'editable'\np6792\nI00\nsS'value'\np6793\nI00\nssS'properties'\np6794\n(dp6795\nS'default_value'\np6796\n(dp6797\nS'editable'\np6798\nI00\nsS'value'\np6799\nNssS'summary_default'\np6800\n(dp6801\nS'editable'\np6802\nI01\nsS'value'\np6803\nS'none'\np6804\nsssS'description'\np6805\n(dp6806\nS'editable'\np6807\nI01\nsS'value'\np6808\ng47\nsssS'updated_at'\np6809\n(dp6810\nS'mandatory'\np6811\n(dp6812\nS'editable'\np6813\nI00\nsS'value'\np6814\nI00\nssS'name'\np6815\n(dp6816\nS'editable'\np6817\nI01\nsS'value'\np6818\nS'Date Updated'\np6819\nssS'data_type'\np6820\n(dp6821\nS'editable'\np6822\nI00\nsS'value'\np6823\nS'date_time'\np6824\nssS'entity_type'\np6825\n(dp6826\nS'editable'\np6827\nI00\nsS'value'\np6828\nS'Department'\np6829\nssS'editable'\np6830\n(dp6831\nS'editable'\np6832\nI00\nsS'value'\np6833\nI00\nssS'unique'\np6834\n(dp6835\nS'editable'\np6836\nI00\nsS'value'\np6837\nI00\nssS'properties'\np6838\n(dp6839\nS'default_value'\np6840\n(dp6841\nS'editable'\np6842\nI00\nsS'value'\np6843\nNssS'summary_default'\np6844\n(dp6845\nS'editable'\np6846\nI01\nsS'value'\np6847\nS'none'\np6848\nsssS'description'\np6849\n(dp6850\nS'editable'\np6851\nI01\nsS'value'\np6852\ng47\nsssS'created_by'\np6853\n(dp6854\nS'mandatory'\np6855\n(dp6856\nS'editable'\np6857\nI00\nsS'value'\np6858\nI00\nssS'name'\np6859\n(dp6860\nS'editable'\np6861\nI01\nsS'value'\np6862\nS'Created by'\np6863\nssS'data_type'\np6864\n(dp6865\nS'editable'\np6866\nI00\nsS'value'\np6867\nS'entity'\np6868\nssS'entity_type'\np6869\n(dp6870\nS'editable'\np6871\nI00\nsS'value'\np6872\nS'Department'\np6873\nssS'editable'\np6874\n(dp6875\nS'editable'\np6876\nI00\nsS'value'\np6877\nI00\nssS'unique'\np6878\n(dp6879\nS'editable'\np6880\nI00\nsS'value'\np6881\nI00\nssS'properties'\np6882\n(dp6883\nS'default_value'\np6884\n(dp6885\nS'editable'\np6886\nI00\nsS'value'\np6887\nNssS'summary_default'\np6888\n(dp6889\nS'editable'\np6890\nI01\nsS'value'\np6891\nS'none'\np6892\nssS'valid_types'\np6893\n(dp6894\nS'editable'\np6895\nI01\nsS'value'\np6896\n(lp6897\nS'HumanUser'\np6898\naS'ApiUser'\np6899\nasssS'description'\np6900\n(dp6901\nS'editable'\np6902\nI01\nsS'value'\np6903\ng47\nsssS'sg_status_list'\np6904\n(dp6905\nS'mandatory'\np6906\n(dp6907\nS'editable'\np6908\nI00\nsS'value'\np6909\nI00\nssS'name'\np6910\n(dp6911\nS'editable'\np6912\nI01\nsS'value'\np6913\nS'Status'\np6914\nssS'data_type'\np6915\n(dp6916\nS'editable'\np6917\nI00\nsS'value'\np6918\nS'status_list'\np6919\nssS'entity_type'\np6920\n(dp6921\nS'editable'\np6922\nI00\nsS'value'\np6923\nS'Department'\np6924\nssS'editable'\np6925\n(dp6926\nS'editable'\np6927\nI00\nsS'value'\np6928\nI01\nssS'unique'\np6929\n(dp6930\nS'editable'\np6931\nI00\nsS'value'\np6932\nI00\nssS'properties'\np6933\n(dp6934\nS'default_value'\np6935\n(dp6936\nS'editable'\np6937\nI01\nsS'value'\np6938\nS'act'\np6939\nssS'valid_values'\np6940\n(dp6941\nS'editable'\np6942\nI01\nsS'value'\np6943\n(lp6944\nS'act'\np6945\naS'dis'\np6946\nassS'summary_default'\np6947\n(dp6948\nS'editable'\np6949\nI01\nsS'value'\np6950\nS'none'\np6951\nsssS'description'\np6952\n(dp6953\nS'editable'\np6954\nI01\nsS'value'\np6955\ng47\nsssS'department_type'\np6956\n(dp6957\nS'mandatory'\np6958\n(dp6959\nS'editable'\np6960\nI00\nsS'value'\np6961\nI00\nssS'name'\np6962\n(dp6963\nS'editable'\np6964\nI01\nsS'value'\np6965\nS'Department Type'\np6966\nssS'data_type'\np6967\n(dp6968\nS'editable'\np6969\nI00\nsS'value'\np6970\nS'list'\np6971\nssS'entity_type'\np6972\n(dp6973\nS'editable'\np6974\nI00\nsS'value'\np6975\nS'Department'\np6976\nssS'editable'\np6977\n(dp6978\nS'editable'\np6979\nI00\nsS'value'\np6980\nI01\nssS'unique'\np6981\n(dp6982\nS'editable'\np6983\nI00\nsS'value'\np6984\nI00\nssS'properties'\np6985\n(dp6986\nS'default_value'\np6987\n(dp6988\nS'editable'\np6989\nI00\nsS'value'\np6990\nNssS'valid_values'\np6991\n(dp6992\nS'editable'\np6993\nI01\nsS'value'\np6994\n(lp6995\nssS'summary_default'\np6996\n(dp6997\nS'editable'\np6998\nI01\nsS'value'\np6999\nS'none'\np7000\nsssS'description'\np7001\n(dp7002\nS'editable'\np7003\nI01\nsS'value'\np7004\ng47\nsssS'image'\np7005\n(dp7006\nS'mandatory'\np7007\n(dp7008\nS'editable'\np7009\nI00\nsS'value'\np7010\nI00\nssS'name'\np7011\n(dp7012\nS'editable'\np7013\nI01\nsS'value'\np7014\nS'Thumbnail'\np7015\nssS'data_type'\np7016\n(dp7017\nS'editable'\np7018\nI00\nsS'value'\np7019\nS'image'\np7020\nssS'entity_type'\np7021\n(dp7022\nS'editable'\np7023\nI00\nsS'value'\np7024\nS'Department'\np7025\nssS'editable'\np7026\n(dp7027\nS'editable'\np7028\nI00\nsS'value'\np7029\nI01\nssS'unique'\np7030\n(dp7031\nS'editable'\np7032\nI00\nsS'value'\np7033\nI00\nssS'properties'\np7034\n(dp7035\nS'default_value'\np7036\n(dp7037\nS'editable'\np7038\nI00\nsS'value'\np7039\nNssS'summary_default'\np7040\n(dp7041\nS'editable'\np7042\nI01\nsS'value'\np7043\nS'none'\np7044\nsssS'description'\np7045\n(dp7046\nS'editable'\np7047\nI01\nsS'value'\np7048\ng47\nsssS'updated_by'\np7049\n(dp7050\nS'mandatory'\np7051\n(dp7052\nS'editable'\np7053\nI00\nsS'value'\np7054\nI00\nssS'name'\np7055\n(dp7056\nS'editable'\np7057\nI01\nsS'value'\np7058\nS'Updated by'\np7059\nssS'data_type'\np7060\n(dp7061\nS'editable'\np7062\nI00\nsS'value'\np7063\nS'entity'\np7064\nssS'entity_type'\np7065\n(dp7066\nS'editable'\np7067\nI00\nsS'value'\np7068\nS'Department'\np7069\nssS'editable'\np7070\n(dp7071\nS'editable'\np7072\nI00\nsS'value'\np7073\nI00\nssS'unique'\np7074\n(dp7075\nS'editable'\np7076\nI00\nsS'value'\np7077\nI00\nssS'properties'\np7078\n(dp7079\nS'default_value'\np7080\n(dp7081\nS'editable'\np7082\nI00\nsS'value'\np7083\nNssS'summary_default'\np7084\n(dp7085\nS'editable'\np7086\nI01\nsS'value'\np7087\nS'none'\np7088\nssS'valid_types'\np7089\n(dp7090\nS'editable'\np7091\nI01\nsS'value'\np7092\n(lp7093\nS'HumanUser'\np7094\naS'ApiUser'\np7095\nasssS'description'\np7096\n(dp7097\nS'editable'\np7098\nI01\nsS'value'\np7099\ng47\nsssS'notes'\np7100\n(dp7101\nS'mandatory'\np7102\n(dp7103\nS'editable'\np7104\nI00\nsS'value'\np7105\nI00\nssS'name'\np7106\n(dp7107\nS'editable'\np7108\nI01\nsS'value'\np7109\nS'Notes'\np7110\nssS'data_type'\np7111\n(dp7112\nS'editable'\np7113\nI00\nsS'value'\np7114\nS'multi_entity'\np7115\nssS'entity_type'\np7116\n(dp7117\nS'editable'\np7118\nI00\nsS'value'\np7119\nS'Department'\np7120\nssS'editable'\np7121\n(dp7122\nS'editable'\np7123\nI00\nsS'value'\np7124\nI01\nssS'unique'\np7125\n(dp7126\nS'editable'\np7127\nI00\nsS'value'\np7128\nI00\nssS'properties'\np7129\n(dp7130\nS'default_value'\np7131\n(dp7132\nS'editable'\np7133\nI00\nsS'value'\np7134\nNssS'summary_default'\np7135\n(dp7136\nS'editable'\np7137\nI01\nsS'value'\np7138\nS'none'\np7139\nssS'valid_types'\np7140\n(dp7141\nS'editable'\np7142\nI01\nsS'value'\np7143\n(lp7144\nS'Note'\np7145\nasssS'description'\np7146\n(dp7147\nS'editable'\np7148\nI01\nsS'value'\np7149\ng47\nsssS'cached_display_name'\np7150\n(dp7151\nS'mandatory'\np7152\n(dp7153\nS'editable'\np7154\nI00\nsS'value'\np7155\nI00\nssS'name'\np7156\n(dp7157\nS'editable'\np7158\nI01\nsS'value'\np7159\nS'Cached Display Name'\np7160\nssS'data_type'\np7161\n(dp7162\nS'editable'\np7163\nI00\nsS'value'\np7164\nS'text'\np7165\nssS'entity_type'\np7166\n(dp7167\nS'editable'\np7168\nI00\nsS'value'\np7169\nS'Department'\np7170\nssS'editable'\np7171\n(dp7172\nS'editable'\np7173\nI00\nsS'value'\np7174\nI01\nssS'unique'\np7175\n(dp7176\nS'editable'\np7177\nI00\nsS'value'\np7178\nI00\nssS'properties'\np7179\n(dp7180\nS'default_value'\np7181\n(dp7182\nS'editable'\np7183\nI00\nsS'value'\np7184\nNssS'summary_default'\np7185\n(dp7186\nS'editable'\np7187\nI00\nsS'value'\np7188\nS'none'\np7189\nsssS'description'\np7190\n(dp7191\nS'editable'\np7192\nI01\nsS'value'\np7193\ng47\nsssS'tag_list'\np7194\n(dp7195\nS'mandatory'\np7196\n(dp7197\nS'editable'\np7198\nI00\nsS'value'\np7199\nI00\nssS'name'\np7200\n(dp7201\nS'editable'\np7202\nI01\nsS'value'\np7203\nS'Tags'\np7204\nssS'data_type'\np7205\n(dp7206\nS'editable'\np7207\nI00\nsS'value'\np7208\nS'tag_list'\np7209\nssS'entity_type'\np7210\n(dp7211\nS'editable'\np7212\nI00\nsS'value'\np7213\nS'Department'\np7214\nssS'editable'\np7215\n(dp7216\nS'editable'\np7217\nI00\nsS'value'\np7218\nI01\nssS'unique'\np7219\n(dp7220\nS'editable'\np7221\nI00\nsS'value'\np7222\nI00\nssS'properties'\np7223\n(dp7224\nS'default_value'\np7225\n(dp7226\nS'editable'\np7227\nI00\nsS'value'\np7228\nNssS'summary_default'\np7229\n(dp7230\nS'editable'\np7231\nI01\nsS'value'\np7232\nS'none'\np7233\nssS'valid_types'\np7234\n(dp7235\nS'editable'\np7236\nI01\nsS'value'\np7237\n(lp7238\nS'Tag'\np7239\nasssS'description'\np7240\n(dp7241\nS'editable'\np7242\nI01\nsS'value'\np7243\ng47\nsssS'id'\np7244\n(dp7245\nS'mandatory'\np7246\n(dp7247\nS'editable'\np7248\nI00\nsS'value'\np7249\nI00\nssS'name'\np7250\n(dp7251\nS'editable'\np7252\nI01\nsS'value'\np7253\nS'Id'\np7254\nssS'data_type'\np7255\n(dp7256\nS'editable'\np7257\nI00\nsS'value'\np7258\nS'number'\np7259\nssS'entity_type'\np7260\n(dp7261\nS'editable'\np7262\nI00\nsS'value'\np7263\nS'Department'\np7264\nssS'editable'\np7265\n(dp7266\nS'editable'\np7267\nI00\nsS'value'\np7268\nI00\nssS'unique'\np7269\n(dp7270\nS'editable'\np7271\nI00\nsS'value'\np7272\nI00\nssS'properties'\np7273\n(dp7274\nS'default_value'\np7275\n(dp7276\nS'editable'\np7277\nI00\nsS'value'\np7278\nNssS'summary_default'\np7279\n(dp7280\nS'editable'\np7281\nI01\nsS'value'\np7282\nS'none'\np7283\nsssS'description'\np7284\n(dp7285\nS'editable'\np7286\nI01\nsS'value'\np7287\ng47\nsssS'name'\np7288\n(dp7289\nS'mandatory'\np7290\n(dp7291\nS'editable'\np7292\nI00\nsS'value'\np7293\nI01\nssS'name'\np7294\n(dp7295\nS'editable'\np7296\nI01\nsS'value'\np7297\nS'Department Name'\np7298\nssS'data_type'\np7299\n(dp7300\nS'editable'\np7301\nI00\nsS'value'\np7302\nS'text'\np7303\nssS'entity_type'\np7304\n(dp7305\nS'editable'\np7306\nI00\nsS'value'\np7307\nS'Department'\np7308\nssS'editable'\np7309\n(dp7310\nS'editable'\np7311\nI00\nsS'value'\np7312\nI01\nssS'unique'\np7313\n(dp7314\nS'editable'\np7315\nI00\nsS'value'\np7316\nI00\nssS'properties'\np7317\n(dp7318\nS'default_value'\np7319\n(dp7320\nS'editable'\np7321\nI00\nsS'value'\np7322\nNssS'summary_default'\np7323\n(dp7324\nS'editable'\np7325\nI01\nsS'value'\np7326\nS'none'\np7327\nsssS'description'\np7328\n(dp7329\nS'editable'\np7330\nI01\nsS'value'\np7331\ng47\nssssS'AssetSceneConnection'\np7332\n(dp7333\nS'id'\np7334\n(dp7335\nS'mandatory'\np7336\n(dp7337\nS'editable'\np7338\nI00\nsS'value'\np7339\nI01\nssS'name'\np7340\n(dp7341\nS'editable'\np7342\nI01\nsS'value'\np7343\nS'Id'\np7344\nssS'data_type'\np7345\n(dp7346\nS'editable'\np7347\nI00\nsS'value'\np7348\nS'number'\np7349\nssS'entity_type'\np7350\n(dp7351\nS'editable'\np7352\nI00\nsS'value'\np7353\nS'AssetSceneConnection'\np7354\nssS'editable'\np7355\n(dp7356\nS'editable'\np7357\nI00\nsS'value'\np7358\nI00\nssS'unique'\np7359\n(dp7360\nS'editable'\np7361\nI00\nsS'value'\np7362\nI00\nssS'properties'\np7363\n(dp7364\nS'default_value'\np7365\n(dp7366\nS'editable'\np7367\nI00\nsS'value'\np7368\nNssS'summary_default'\np7369\n(dp7370\nS'editable'\np7371\nI00\nsS'value'\np7372\nS'none'\np7373\nsssS'description'\np7374\n(dp7375\nS'editable'\np7376\nI01\nsS'value'\np7377\ng47\nsssS'cached_display_name'\np7378\n(dp7379\nS'mandatory'\np7380\n(dp7381\nS'editable'\np7382\nI00\nsS'value'\np7383\nI00\nssS'name'\np7384\n(dp7385\nS'editable'\np7386\nI01\nsS'value'\np7387\nS'Cached Display Name'\np7388\nssS'data_type'\np7389\n(dp7390\nS'editable'\np7391\nI00\nsS'value'\np7392\nS'text'\np7393\nssS'entity_type'\np7394\n(dp7395\nS'editable'\np7396\nI00\nsS'value'\np7397\nS'AssetSceneConnection'\np7398\nssS'editable'\np7399\n(dp7400\nS'editable'\np7401\nI00\nsS'value'\np7402\nI01\nssS'unique'\np7403\n(dp7404\nS'editable'\np7405\nI00\nsS'value'\np7406\nI00\nssS'properties'\np7407\n(dp7408\nS'default_value'\np7409\n(dp7410\nS'editable'\np7411\nI00\nsS'value'\np7412\nNssS'summary_default'\np7413\n(dp7414\nS'editable'\np7415\nI00\nsS'value'\np7416\nS'none'\np7417\nsssS'description'\np7418\n(dp7419\nS'editable'\np7420\nI01\nsS'value'\np7421\ng47\nsssS'asset'\np7422\n(dp7423\nS'mandatory'\np7424\n(dp7425\nS'editable'\np7426\nI00\nsS'value'\np7427\nI00\nssS'name'\np7428\n(dp7429\nS'editable'\np7430\nI01\nsS'value'\np7431\nS'Asset'\np7432\nssS'data_type'\np7433\n(dp7434\nS'editable'\np7435\nI00\nsS'value'\np7436\nS'entity'\np7437\nssS'entity_type'\np7438\n(dp7439\nS'editable'\np7440\nI00\nsS'value'\np7441\nS'AssetSceneConnection'\np7442\nssS'editable'\np7443\n(dp7444\nS'editable'\np7445\nI00\nsS'value'\np7446\nI00\nssS'unique'\np7447\n(dp7448\nS'editable'\np7449\nI00\nsS'value'\np7450\nI00\nssS'properties'\np7451\n(dp7452\nS'default_value'\np7453\n(dp7454\nS'editable'\np7455\nI00\nsS'value'\np7456\nNssS'summary_default'\np7457\n(dp7458\nS'editable'\np7459\nI00\nsS'value'\np7460\nS'none'\np7461\nssS'valid_types'\np7462\n(dp7463\nS'editable'\np7464\nI00\nsS'value'\np7465\n(lp7466\nS'Asset'\np7467\nasssS'description'\np7468\n(dp7469\nS'editable'\np7470\nI01\nsS'value'\np7471\ng47\nsssS'scene'\np7472\n(dp7473\nS'mandatory'\np7474\n(dp7475\nS'editable'\np7476\nI00\nsS'value'\np7477\nI00\nssS'name'\np7478\n(dp7479\nS'editable'\np7480\nI01\nsS'value'\np7481\nS'Scene'\np7482\nssS'data_type'\np7483\n(dp7484\nS'editable'\np7485\nI00\nsS'value'\np7486\nS'entity'\np7487\nssS'entity_type'\np7488\n(dp7489\nS'editable'\np7490\nI00\nsS'value'\np7491\nS'AssetSceneConnection'\np7492\nssS'editable'\np7493\n(dp7494\nS'editable'\np7495\nI00\nsS'value'\np7496\nI00\nssS'unique'\np7497\n(dp7498\nS'editable'\np7499\nI00\nsS'value'\np7500\nI00\nssS'properties'\np7501\n(dp7502\nS'default_value'\np7503\n(dp7504\nS'editable'\np7505\nI00\nsS'value'\np7506\nNssS'summary_default'\np7507\n(dp7508\nS'editable'\np7509\nI00\nsS'value'\np7510\nS'none'\np7511\nssS'valid_types'\np7512\n(dp7513\nS'editable'\np7514\nI00\nsS'value'\np7515\n(lp7516\nS'Scene'\np7517\nasssS'description'\np7518\n(dp7519\nS'editable'\np7520\nI01\nsS'value'\np7521\ng47\nssssS'CameraMocapTakeConnection'\np7522\n(dp7523\nS'mocap_take'\np7524\n(dp7525\nS'mandatory'\np7526\n(dp7527\nS'editable'\np7528\nI00\nsS'value'\np7529\nI00\nssS'name'\np7530\n(dp7531\nS'editable'\np7532\nI01\nsS'value'\np7533\nS'Mocap Take'\np7534\nssS'data_type'\np7535\n(dp7536\nS'editable'\np7537\nI00\nsS'value'\np7538\nS'entity'\np7539\nssS'entity_type'\np7540\n(dp7541\nS'editable'\np7542\nI00\nsS'value'\np7543\nS'CameraMocapTakeConnection'\np7544\nssS'editable'\np7545\n(dp7546\nS'editable'\np7547\nI00\nsS'value'\np7548\nI00\nssS'unique'\np7549\n(dp7550\nS'editable'\np7551\nI00\nsS'value'\np7552\nI00\nssS'properties'\np7553\n(dp7554\nS'default_value'\np7555\n(dp7556\nS'editable'\np7557\nI00\nsS'value'\np7558\nNssS'summary_default'\np7559\n(dp7560\nS'editable'\np7561\nI00\nsS'value'\np7562\nS'none'\np7563\nssS'valid_types'\np7564\n(dp7565\nS'editable'\np7566\nI00\nsS'value'\np7567\n(lp7568\nS'MocapTake'\np7569\nasssS'description'\np7570\n(dp7571\nS'editable'\np7572\nI01\nsS'value'\np7573\ng47\nsssS'cached_display_name'\np7574\n(dp7575\nS'mandatory'\np7576\n(dp7577\nS'editable'\np7578\nI00\nsS'value'\np7579\nI00\nssS'name'\np7580\n(dp7581\nS'editable'\np7582\nI01\nsS'value'\np7583\nS'Cached Display Name'\np7584\nssS'data_type'\np7585\n(dp7586\nS'editable'\np7587\nI00\nsS'value'\np7588\nS'text'\np7589\nssS'entity_type'\np7590\n(dp7591\nS'editable'\np7592\nI00\nsS'value'\np7593\nS'CameraMocapTakeConnection'\np7594\nssS'editable'\np7595\n(dp7596\nS'editable'\np7597\nI00\nsS'value'\np7598\nI01\nssS'unique'\np7599\n(dp7600\nS'editable'\np7601\nI00\nsS'value'\np7602\nI00\nssS'properties'\np7603\n(dp7604\nS'default_value'\np7605\n(dp7606\nS'editable'\np7607\nI00\nsS'value'\np7608\nNssS'summary_default'\np7609\n(dp7610\nS'editable'\np7611\nI00\nsS'value'\np7612\nS'none'\np7613\nsssS'description'\np7614\n(dp7615\nS'editable'\np7616\nI01\nsS'value'\np7617\ng47\nsssS'camera'\np7618\n(dp7619\nS'mandatory'\np7620\n(dp7621\nS'editable'\np7622\nI00\nsS'value'\np7623\nI00\nssS'name'\np7624\n(dp7625\nS'editable'\np7626\nI01\nsS'value'\np7627\nS'Camera'\np7628\nssS'data_type'\np7629\n(dp7630\nS'editable'\np7631\nI00\nsS'value'\np7632\nS'entity'\np7633\nssS'entity_type'\np7634\n(dp7635\nS'editable'\np7636\nI00\nsS'value'\np7637\nS'CameraMocapTakeConnection'\np7638\nssS'editable'\np7639\n(dp7640\nS'editable'\np7641\nI00\nsS'value'\np7642\nI00\nssS'unique'\np7643\n(dp7644\nS'editable'\np7645\nI00\nsS'value'\np7646\nI00\nssS'properties'\np7647\n(dp7648\nS'default_value'\np7649\n(dp7650\nS'editable'\np7651\nI00\nsS'value'\np7652\nNssS'summary_default'\np7653\n(dp7654\nS'editable'\np7655\nI00\nsS'value'\np7656\nS'none'\np7657\nssS'valid_types'\np7658\n(dp7659\nS'editable'\np7660\nI00\nsS'value'\np7661\n(lp7662\nS'Camera'\np7663\nasssS'description'\np7664\n(dp7665\nS'editable'\np7666\nI01\nsS'value'\np7667\ng47\nsssS'id'\np7668\n(dp7669\nS'mandatory'\np7670\n(dp7671\nS'editable'\np7672\nI00\nsS'value'\np7673\nI01\nssS'name'\np7674\n(dp7675\nS'editable'\np7676\nI01\nsS'value'\np7677\nS'Id'\np7678\nssS'data_type'\np7679\n(dp7680\nS'editable'\np7681\nI00\nsS'value'\np7682\nS'number'\np7683\nssS'entity_type'\np7684\n(dp7685\nS'editable'\np7686\nI00\nsS'value'\np7687\nS'CameraMocapTakeConnection'\np7688\nssS'editable'\np7689\n(dp7690\nS'editable'\np7691\nI00\nsS'value'\np7692\nI00\nssS'unique'\np7693\n(dp7694\nS'editable'\np7695\nI00\nsS'value'\np7696\nI00\nssS'properties'\np7697\n(dp7698\nS'default_value'\np7699\n(dp7700\nS'editable'\np7701\nI00\nsS'value'\np7702\nNssS'summary_default'\np7703\n(dp7704\nS'editable'\np7705\nI00\nsS'value'\np7706\nS'none'\np7707\nsssS'description'\np7708\n(dp7709\nS'editable'\np7710\nI01\nsS'value'\np7711\ng47\nssssS'Booking'\np7712\n(dp7713\nS'project'\np7714\n(dp7715\nS'mandatory'\np7716\n(dp7717\nS'editable'\np7718\nI00\nsS'value'\np7719\nI00\nssS'name'\np7720\n(dp7721\nS'editable'\np7722\nI01\nsS'value'\np7723\nS'Project'\np7724\nssS'data_type'\np7725\n(dp7726\nS'editable'\np7727\nI00\nsS'value'\np7728\nS'entity'\np7729\nssS'entity_type'\np7730\n(dp7731\nS'editable'\np7732\nI00\nsS'value'\np7733\nS'Booking'\np7734\nssS'editable'\np7735\n(dp7736\nS'editable'\np7737\nI00\nsS'value'\np7738\nI01\nssS'unique'\np7739\n(dp7740\nS'editable'\np7741\nI00\nsS'value'\np7742\nI00\nssS'properties'\np7743\n(dp7744\nS'default_value'\np7745\n(dp7746\nS'editable'\np7747\nI00\nsS'value'\np7748\nNssS'summary_default'\np7749\n(dp7750\nS'editable'\np7751\nI01\nsS'value'\np7752\nS'none'\np7753\nssS'valid_types'\np7754\n(dp7755\nS'editable'\np7756\nI01\nsS'value'\np7757\n(lp7758\nS'Project'\np7759\nasssS'description'\np7760\n(dp7761\nS'editable'\np7762\nI01\nsS'value'\np7763\ng47\nsssS'open_notes_count'\np7764\n(dp7765\nS'mandatory'\np7766\n(dp7767\nS'editable'\np7768\nI00\nsS'value'\np7769\nI00\nssS'name'\np7770\n(dp7771\nS'editable'\np7772\nI01\nsS'value'\np7773\nS'Open Notes Count'\np7774\nssS'data_type'\np7775\n(dp7776\nS'editable'\np7777\nI00\nsS'value'\np7778\nS'text'\np7779\nssS'entity_type'\np7780\n(dp7781\nS'editable'\np7782\nI00\nsS'value'\np7783\nS'Booking'\np7784\nssS'editable'\np7785\n(dp7786\nS'editable'\np7787\nI00\nsS'value'\np7788\nI00\nssS'unique'\np7789\n(dp7790\nS'editable'\np7791\nI00\nsS'value'\np7792\nI00\nssS'properties'\np7793\n(dp7794\nS'default_value'\np7795\n(dp7796\nS'editable'\np7797\nI00\nsS'value'\np7798\nNssS'summary_default'\np7799\n(dp7800\nS'editable'\np7801\nI01\nsS'value'\np7802\nS'none'\np7803\nsssS'description'\np7804\n(dp7805\nS'editable'\np7806\nI01\nsS'value'\np7807\ng47\nsssS'open_notes'\np7808\n(dp7809\nS'mandatory'\np7810\n(dp7811\nS'editable'\np7812\nI00\nsS'value'\np7813\nI00\nssS'name'\np7814\n(dp7815\nS'editable'\np7816\nI01\nsS'value'\np7817\nS'Open Notes'\np7818\nssS'data_type'\np7819\n(dp7820\nS'editable'\np7821\nI00\nsS'value'\np7822\nS'multi_entity'\np7823\nssS'entity_type'\np7824\n(dp7825\nS'editable'\np7826\nI00\nsS'value'\np7827\nS'Booking'\np7828\nssS'editable'\np7829\n(dp7830\nS'editable'\np7831\nI00\nsS'value'\np7832\nI00\nssS'unique'\np7833\n(dp7834\nS'editable'\np7835\nI00\nsS'value'\np7836\nI00\nssS'properties'\np7837\n(dp7838\nS'default_value'\np7839\n(dp7840\nS'editable'\np7841\nI00\nsS'value'\np7842\nNssS'summary_default'\np7843\n(dp7844\nS'editable'\np7845\nI01\nsS'value'\np7846\nS'none'\np7847\nssS'valid_types'\np7848\n(dp7849\nS'editable'\np7850\nI01\nsS'value'\np7851\n(lp7852\nS'Note'\np7853\nasssS'description'\np7854\n(dp7855\nS'editable'\np7856\nI01\nsS'value'\np7857\ng47\nsssS'updated_by'\np7858\n(dp7859\nS'mandatory'\np7860\n(dp7861\nS'editable'\np7862\nI00\nsS'value'\np7863\nI00\nssS'name'\np7864\n(dp7865\nS'editable'\np7866\nI01\nsS'value'\np7867\nS'Updated by'\np7868\nssS'data_type'\np7869\n(dp7870\nS'editable'\np7871\nI00\nsS'value'\np7872\nS'entity'\np7873\nssS'entity_type'\np7874\n(dp7875\nS'editable'\np7876\nI00\nsS'value'\np7877\nS'Booking'\np7878\nssS'editable'\np7879\n(dp7880\nS'editable'\np7881\nI00\nsS'value'\np7882\nI00\nssS'unique'\np7883\n(dp7884\nS'editable'\np7885\nI00\nsS'value'\np7886\nI00\nssS'properties'\np7887\n(dp7888\nS'default_value'\np7889\n(dp7890\nS'editable'\np7891\nI00\nsS'value'\np7892\nNssS'summary_default'\np7893\n(dp7894\nS'editable'\np7895\nI01\nsS'value'\np7896\nS'none'\np7897\nssS'valid_types'\np7898\n(dp7899\nS'editable'\np7900\nI01\nsS'value'\np7901\n(lp7902\nS'HumanUser'\np7903\naS'ApiUser'\np7904\nasssS'description'\np7905\n(dp7906\nS'editable'\np7907\nI01\nsS'value'\np7908\ng47\nsssS'end_date'\np7909\n(dp7910\nS'mandatory'\np7911\n(dp7912\nS'editable'\np7913\nI00\nsS'value'\np7914\nI00\nssS'name'\np7915\n(dp7916\nS'editable'\np7917\nI01\nsS'value'\np7918\nS'End Date'\np7919\nssS'data_type'\np7920\n(dp7921\nS'editable'\np7922\nI00\nsS'value'\np7923\nS'date'\np7924\nssS'entity_type'\np7925\n(dp7926\nS'editable'\np7927\nI00\nsS'value'\np7928\nS'Booking'\np7929\nssS'editable'\np7930\n(dp7931\nS'editable'\np7932\nI00\nsS'value'\np7933\nI01\nssS'unique'\np7934\n(dp7935\nS'editable'\np7936\nI00\nsS'value'\np7937\nI00\nssS'properties'\np7938\n(dp7939\nS'default_value'\np7940\n(dp7941\nS'editable'\np7942\nI00\nsS'value'\np7943\nNssS'summary_default'\np7944\n(dp7945\nS'editable'\np7946\nI01\nsS'value'\np7947\nS'none'\np7948\nsssS'description'\np7949\n(dp7950\nS'editable'\np7951\nI01\nsS'value'\np7952\ng47\nsssS'created_at'\np7953\n(dp7954\nS'mandatory'\np7955\n(dp7956\nS'editable'\np7957\nI00\nsS'value'\np7958\nI00\nssS'name'\np7959\n(dp7960\nS'editable'\np7961\nI01\nsS'value'\np7962\nS'Date Created'\np7963\nssS'data_type'\np7964\n(dp7965\nS'editable'\np7966\nI00\nsS'value'\np7967\nS'date_time'\np7968\nssS'entity_type'\np7969\n(dp7970\nS'editable'\np7971\nI00\nsS'value'\np7972\nS'Booking'\np7973\nssS'editable'\np7974\n(dp7975\nS'editable'\np7976\nI00\nsS'value'\np7977\nI00\nssS'unique'\np7978\n(dp7979\nS'editable'\np7980\nI00\nsS'value'\np7981\nI00\nssS'properties'\np7982\n(dp7983\nS'default_value'\np7984\n(dp7985\nS'editable'\np7986\nI00\nsS'value'\np7987\nNssS'summary_default'\np7988\n(dp7989\nS'editable'\np7990\nI01\nsS'value'\np7991\nS'none'\np7992\nsssS'description'\np7993\n(dp7994\nS'editable'\np7995\nI01\nsS'value'\np7996\ng47\nsssS'notes'\np7997\n(dp7998\nS'mandatory'\np7999\n(dp8000\nS'editable'\np8001\nI00\nsS'value'\np8002\nI00\nssS'name'\np8003\n(dp8004\nS'editable'\np8005\nI01\nsS'value'\np8006\nS'Notes'\np8007\nssS'data_type'\np8008\n(dp8009\nS'editable'\np8010\nI00\nsS'value'\np8011\nS'multi_entity'\np8012\nssS'entity_type'\np8013\n(dp8014\nS'editable'\np8015\nI00\nsS'value'\np8016\nS'Booking'\np8017\nssS'editable'\np8018\n(dp8019\nS'editable'\np8020\nI00\nsS'value'\np8021\nI01\nssS'unique'\np8022\n(dp8023\nS'editable'\np8024\nI00\nsS'value'\np8025\nI00\nssS'properties'\np8026\n(dp8027\nS'default_value'\np8028\n(dp8029\nS'editable'\np8030\nI00\nsS'value'\np8031\nNssS'summary_default'\np8032\n(dp8033\nS'editable'\np8034\nI01\nsS'value'\np8035\nS'none'\np8036\nssS'valid_types'\np8037\n(dp8038\nS'editable'\np8039\nI01\nsS'value'\np8040\n(lp8041\nS'Note'\np8042\nasssS'description'\np8043\n(dp8044\nS'editable'\np8045\nI01\nsS'value'\np8046\ng47\nsssS'vacation'\np8047\n(dp8048\nS'mandatory'\np8049\n(dp8050\nS'editable'\np8051\nI00\nsS'value'\np8052\nI00\nssS'name'\np8053\n(dp8054\nS'editable'\np8055\nI01\nsS'value'\np8056\nS'Vacation'\np8057\nssS'data_type'\np8058\n(dp8059\nS'editable'\np8060\nI00\nsS'value'\np8061\nS'checkbox'\np8062\nssS'entity_type'\np8063\n(dp8064\nS'editable'\np8065\nI00\nsS'value'\np8066\nS'Booking'\np8067\nssS'editable'\np8068\n(dp8069\nS'editable'\np8070\nI00\nsS'value'\np8071\nI01\nssS'unique'\np8072\n(dp8073\nS'editable'\np8074\nI00\nsS'value'\np8075\nI00\nssS'properties'\np8076\n(dp8077\nS'default_value'\np8078\n(dp8079\nS'editable'\np8080\nI00\nsS'value'\np8081\nNssS'summary_default'\np8082\n(dp8083\nS'editable'\np8084\nI01\nsS'value'\np8085\nS'none'\np8086\nsssS'description'\np8087\n(dp8088\nS'editable'\np8089\nI01\nsS'value'\np8090\ng47\nsssS'created_by'\np8091\n(dp8092\nS'mandatory'\np8093\n(dp8094\nS'editable'\np8095\nI00\nsS'value'\np8096\nI00\nssS'name'\np8097\n(dp8098\nS'editable'\np8099\nI01\nsS'value'\np8100\nS'Created by'\np8101\nssS'data_type'\np8102\n(dp8103\nS'editable'\np8104\nI00\nsS'value'\np8105\nS'entity'\np8106\nssS'entity_type'\np8107\n(dp8108\nS'editable'\np8109\nI00\nsS'value'\np8110\nS'Booking'\np8111\nssS'editable'\np8112\n(dp8113\nS'editable'\np8114\nI00\nsS'value'\np8115\nI00\nssS'unique'\np8116\n(dp8117\nS'editable'\np8118\nI00\nsS'value'\np8119\nI00\nssS'properties'\np8120\n(dp8121\nS'default_value'\np8122\n(dp8123\nS'editable'\np8124\nI00\nsS'value'\np8125\nNssS'summary_default'\np8126\n(dp8127\nS'editable'\np8128\nI01\nsS'value'\np8129\nS'none'\np8130\nssS'valid_types'\np8131\n(dp8132\nS'editable'\np8133\nI01\nsS'value'\np8134\n(lp8135\nS'HumanUser'\np8136\naS'ApiUser'\np8137\nasssS'description'\np8138\n(dp8139\nS'editable'\np8140\nI01\nsS'value'\np8141\ng47\nsssS'updated_at'\np8142\n(dp8143\nS'mandatory'\np8144\n(dp8145\nS'editable'\np8146\nI00\nsS'value'\np8147\nI00\nssS'name'\np8148\n(dp8149\nS'editable'\np8150\nI01\nsS'value'\np8151\nS'Date Updated'\np8152\nssS'data_type'\np8153\n(dp8154\nS'editable'\np8155\nI00\nsS'value'\np8156\nS'date_time'\np8157\nssS'entity_type'\np8158\n(dp8159\nS'editable'\np8160\nI00\nsS'value'\np8161\nS'Booking'\np8162\nssS'editable'\np8163\n(dp8164\nS'editable'\np8165\nI00\nsS'value'\np8166\nI00\nssS'unique'\np8167\n(dp8168\nS'editable'\np8169\nI00\nsS'value'\np8170\nI00\nssS'properties'\np8171\n(dp8172\nS'default_value'\np8173\n(dp8174\nS'editable'\np8175\nI00\nsS'value'\np8176\nNssS'summary_default'\np8177\n(dp8178\nS'editable'\np8179\nI01\nsS'value'\np8180\nS'none'\np8181\nsssS'description'\np8182\n(dp8183\nS'editable'\np8184\nI01\nsS'value'\np8185\ng47\nsssS'note'\np8186\n(dp8187\nS'mandatory'\np8188\n(dp8189\nS'editable'\np8190\nI00\nsS'value'\np8191\nI00\nssS'name'\np8192\n(dp8193\nS'editable'\np8194\nI01\nsS'value'\np8195\nS'Note'\np8196\nssS'data_type'\np8197\n(dp8198\nS'editable'\np8199\nI00\nsS'value'\np8200\nS'text'\np8201\nssS'entity_type'\np8202\n(dp8203\nS'editable'\np8204\nI00\nsS'value'\np8205\nS'Booking'\np8206\nssS'editable'\np8207\n(dp8208\nS'editable'\np8209\nI00\nsS'value'\np8210\nI01\nssS'unique'\np8211\n(dp8212\nS'editable'\np8213\nI00\nsS'value'\np8214\nI00\nssS'properties'\np8215\n(dp8216\nS'default_value'\np8217\n(dp8218\nS'editable'\np8219\nI00\nsS'value'\np8220\nNssS'summary_default'\np8221\n(dp8222\nS'editable'\np8223\nI01\nsS'value'\np8224\nS'none'\np8225\nsssS'description'\np8226\n(dp8227\nS'editable'\np8228\nI01\nsS'value'\np8229\ng47\nsssS'user'\np8230\n(dp8231\nS'mandatory'\np8232\n(dp8233\nS'editable'\np8234\nI00\nsS'value'\np8235\nI00\nssS'name'\np8236\n(dp8237\nS'editable'\np8238\nI01\nsS'value'\np8239\nS'Assigned To'\np8240\nssS'data_type'\np8241\n(dp8242\nS'editable'\np8243\nI00\nsS'value'\np8244\nS'entity'\np8245\nssS'entity_type'\np8246\n(dp8247\nS'editable'\np8248\nI00\nsS'value'\np8249\nS'Booking'\np8250\nssS'editable'\np8251\n(dp8252\nS'editable'\np8253\nI00\nsS'value'\np8254\nI01\nssS'unique'\np8255\n(dp8256\nS'editable'\np8257\nI00\nsS'value'\np8258\nI00\nssS'properties'\np8259\n(dp8260\nS'default_value'\np8261\n(dp8262\nS'editable'\np8263\nI00\nsS'value'\np8264\nNssS'summary_default'\np8265\n(dp8266\nS'editable'\np8267\nI01\nsS'value'\np8268\nS'none'\np8269\nssS'valid_types'\np8270\n(dp8271\nS'editable'\np8272\nI01\nsS'value'\np8273\n(lp8274\nS'HumanUser'\np8275\nasssS'description'\np8276\n(dp8277\nS'editable'\np8278\nI01\nsS'value'\np8279\ng47\nsssS'id'\np8280\n(dp8281\nS'mandatory'\np8282\n(dp8283\nS'editable'\np8284\nI00\nsS'value'\np8285\nI01\nssS'name'\np8286\n(dp8287\nS'editable'\np8288\nI01\nsS'value'\np8289\nS'Id'\np8290\nssS'data_type'\np8291\n(dp8292\nS'editable'\np8293\nI00\nsS'value'\np8294\nS'number'\np8295\nssS'entity_type'\np8296\n(dp8297\nS'editable'\np8298\nI00\nsS'value'\np8299\nS'Booking'\np8300\nssS'editable'\np8301\n(dp8302\nS'editable'\np8303\nI00\nsS'value'\np8304\nI00\nssS'unique'\np8305\n(dp8306\nS'editable'\np8307\nI00\nsS'value'\np8308\nI00\nssS'properties'\np8309\n(dp8310\nS'default_value'\np8311\n(dp8312\nS'editable'\np8313\nI00\nsS'value'\np8314\nNssS'summary_default'\np8315\n(dp8316\nS'editable'\np8317\nI01\nsS'value'\np8318\nS'none'\np8319\nsssS'description'\np8320\n(dp8321\nS'editable'\np8322\nI01\nsS'value'\np8323\ng47\nsssS'cached_display_name'\np8324\n(dp8325\nS'mandatory'\np8326\n(dp8327\nS'editable'\np8328\nI00\nsS'value'\np8329\nI00\nssS'name'\np8330\n(dp8331\nS'editable'\np8332\nI01\nsS'value'\np8333\nS'Cached Display Name'\np8334\nssS'data_type'\np8335\n(dp8336\nS'editable'\np8337\nI00\nsS'value'\np8338\nS'text'\np8339\nssS'entity_type'\np8340\n(dp8341\nS'editable'\np8342\nI00\nsS'value'\np8343\nS'Booking'\np8344\nssS'editable'\np8345\n(dp8346\nS'editable'\np8347\nI00\nsS'value'\np8348\nI01\nssS'unique'\np8349\n(dp8350\nS'editable'\np8351\nI00\nsS'value'\np8352\nI00\nssS'properties'\np8353\n(dp8354\nS'default_value'\np8355\n(dp8356\nS'editable'\np8357\nI00\nsS'value'\np8358\nNssS'summary_default'\np8359\n(dp8360\nS'editable'\np8361\nI00\nsS'value'\np8362\nS'none'\np8363\nsssS'description'\np8364\n(dp8365\nS'editable'\np8366\nI01\nsS'value'\np8367\ng47\nsssS'start_date'\np8368\n(dp8369\nS'mandatory'\np8370\n(dp8371\nS'editable'\np8372\nI00\nsS'value'\np8373\nI00\nssS'name'\np8374\n(dp8375\nS'editable'\np8376\nI01\nsS'value'\np8377\nS'Start Date'\np8378\nssS'data_type'\np8379\n(dp8380\nS'editable'\np8381\nI00\nsS'value'\np8382\nS'date'\np8383\nssS'entity_type'\np8384\n(dp8385\nS'editable'\np8386\nI00\nsS'value'\np8387\nS'Booking'\np8388\nssS'editable'\np8389\n(dp8390\nS'editable'\np8391\nI00\nsS'value'\np8392\nI01\nssS'unique'\np8393\n(dp8394\nS'editable'\np8395\nI00\nsS'value'\np8396\nI00\nssS'properties'\np8397\n(dp8398\nS'default_value'\np8399\n(dp8400\nS'editable'\np8401\nI00\nsS'value'\np8402\nNssS'summary_default'\np8403\n(dp8404\nS'editable'\np8405\nI01\nsS'value'\np8406\nS'none'\np8407\nsssS'description'\np8408\n(dp8409\nS'editable'\np8410\nI01\nsS'value'\np8411\ng47\nssssS'CutVersionConnection'\np8412\n(dp8413\nS'sg_cut_in'\np8414\n(dp8415\nS'mandatory'\np8416\n(dp8417\nS'editable'\np8418\nI00\nsS'value'\np8419\nI00\nssS'name'\np8420\n(dp8421\nS'editable'\np8422\nI01\nsS'value'\np8423\nS'Cut In'\np8424\nssS'data_type'\np8425\n(dp8426\nS'editable'\np8427\nI00\nsS'value'\np8428\nS'number'\np8429\nssS'entity_type'\np8430\n(dp8431\nS'editable'\np8432\nI00\nsS'value'\np8433\nS'CutVersionConnection'\np8434\nssS'editable'\np8435\n(dp8436\nS'editable'\np8437\nI00\nsS'value'\np8438\nI01\nssS'unique'\np8439\n(dp8440\nS'editable'\np8441\nI00\nsS'value'\np8442\nI00\nssS'properties'\np8443\n(dp8444\nS'default_value'\np8445\n(dp8446\nS'editable'\np8447\nI00\nsS'value'\np8448\nNssS'summary_default'\np8449\n(dp8450\nS'editable'\np8451\nI01\nsS'value'\np8452\nS'none'\np8453\nsssS'description'\np8454\n(dp8455\nS'editable'\np8456\nI01\nsS'value'\np8457\ng47\nsssS'cut'\np8458\n(dp8459\nS'mandatory'\np8460\n(dp8461\nS'editable'\np8462\nI00\nsS'value'\np8463\nI00\nssS'name'\np8464\n(dp8465\nS'editable'\np8466\nI01\nsS'value'\np8467\nS'Cut'\np8468\nssS'data_type'\np8469\n(dp8470\nS'editable'\np8471\nI00\nsS'value'\np8472\nS'entity'\np8473\nssS'entity_type'\np8474\n(dp8475\nS'editable'\np8476\nI00\nsS'value'\np8477\nS'CutVersionConnection'\np8478\nssS'editable'\np8479\n(dp8480\nS'editable'\np8481\nI00\nsS'value'\np8482\nI00\nssS'unique'\np8483\n(dp8484\nS'editable'\np8485\nI00\nsS'value'\np8486\nI00\nssS'properties'\np8487\n(dp8488\nS'default_value'\np8489\n(dp8490\nS'editable'\np8491\nI00\nsS'value'\np8492\nNssS'summary_default'\np8493\n(dp8494\nS'editable'\np8495\nI00\nsS'value'\np8496\nS'none'\np8497\nssS'valid_types'\np8498\n(dp8499\nS'editable'\np8500\nI00\nsS'value'\np8501\n(lp8502\nS'Cut'\np8503\nasssS'description'\np8504\n(dp8505\nS'editable'\np8506\nI01\nsS'value'\np8507\ng47\nsssS'sg_cut_out'\np8508\n(dp8509\nS'mandatory'\np8510\n(dp8511\nS'editable'\np8512\nI00\nsS'value'\np8513\nI00\nssS'name'\np8514\n(dp8515\nS'editable'\np8516\nI01\nsS'value'\np8517\nS'Cut Out'\np8518\nssS'data_type'\np8519\n(dp8520\nS'editable'\np8521\nI00\nsS'value'\np8522\nS'number'\np8523\nssS'entity_type'\np8524\n(dp8525\nS'editable'\np8526\nI00\nsS'value'\np8527\nS'CutVersionConnection'\np8528\nssS'editable'\np8529\n(dp8530\nS'editable'\np8531\nI00\nsS'value'\np8532\nI01\nssS'unique'\np8533\n(dp8534\nS'editable'\np8535\nI00\nsS'value'\np8536\nI00\nssS'properties'\np8537\n(dp8538\nS'default_value'\np8539\n(dp8540\nS'editable'\np8541\nI00\nsS'value'\np8542\nNssS'summary_default'\np8543\n(dp8544\nS'editable'\np8545\nI01\nsS'value'\np8546\nS'none'\np8547\nsssS'description'\np8548\n(dp8549\nS'editable'\np8550\nI01\nsS'value'\np8551\ng47\nsssS'sg_cut_order'\np8552\n(dp8553\nS'mandatory'\np8554\n(dp8555\nS'editable'\np8556\nI00\nsS'value'\np8557\nI00\nssS'name'\np8558\n(dp8559\nS'editable'\np8560\nI01\nsS'value'\np8561\nS'Cut Order'\np8562\nssS'data_type'\np8563\n(dp8564\nS'editable'\np8565\nI00\nsS'value'\np8566\nS'number'\np8567\nssS'entity_type'\np8568\n(dp8569\nS'editable'\np8570\nI00\nsS'value'\np8571\nS'CutVersionConnection'\np8572\nssS'editable'\np8573\n(dp8574\nS'editable'\np8575\nI00\nsS'value'\np8576\nI01\nssS'unique'\np8577\n(dp8578\nS'editable'\np8579\nI00\nsS'value'\np8580\nI00\nssS'properties'\np8581\n(dp8582\nS'default_value'\np8583\n(dp8584\nS'editable'\np8585\nI00\nsS'value'\np8586\nNssS'summary_default'\np8587\n(dp8588\nS'editable'\np8589\nI01\nsS'value'\np8590\nS'none'\np8591\nsssS'description'\np8592\n(dp8593\nS'editable'\np8594\nI01\nsS'value'\np8595\ng47\nsssS'version'\np8596\n(dp8597\nS'mandatory'\np8598\n(dp8599\nS'editable'\np8600\nI00\nsS'value'\np8601\nI00\nssS'name'\np8602\n(dp8603\nS'editable'\np8604\nI01\nsS'value'\np8605\nS'Version'\np8606\nssS'data_type'\np8607\n(dp8608\nS'editable'\np8609\nI00\nsS'value'\np8610\nS'entity'\np8611\nssS'entity_type'\np8612\n(dp8613\nS'editable'\np8614\nI00\nsS'value'\np8615\nS'CutVersionConnection'\np8616\nssS'editable'\np8617\n(dp8618\nS'editable'\np8619\nI00\nsS'value'\np8620\nI00\nssS'unique'\np8621\n(dp8622\nS'editable'\np8623\nI00\nsS'value'\np8624\nI00\nssS'properties'\np8625\n(dp8626\nS'default_value'\np8627\n(dp8628\nS'editable'\np8629\nI00\nsS'value'\np8630\nNssS'summary_default'\np8631\n(dp8632\nS'editable'\np8633\nI00\nsS'value'\np8634\nS'none'\np8635\nssS'valid_types'\np8636\n(dp8637\nS'editable'\np8638\nI00\nsS'value'\np8639\n(lp8640\nS'Version'\np8641\nasssS'description'\np8642\n(dp8643\nS'editable'\np8644\nI01\nsS'value'\np8645\ng47\nsssS'sg_cut_duration'\np8646\n(dp8647\nS'mandatory'\np8648\n(dp8649\nS'editable'\np8650\nI00\nsS'value'\np8651\nI00\nssS'name'\np8652\n(dp8653\nS'editable'\np8654\nI01\nsS'value'\np8655\nS'Cut Duration'\np8656\nssS'data_type'\np8657\n(dp8658\nS'editable'\np8659\nI00\nsS'value'\np8660\nS'number'\np8661\nssS'entity_type'\np8662\n(dp8663\nS'editable'\np8664\nI00\nsS'value'\np8665\nS'CutVersionConnection'\np8666\nssS'editable'\np8667\n(dp8668\nS'editable'\np8669\nI00\nsS'value'\np8670\nI01\nssS'unique'\np8671\n(dp8672\nS'editable'\np8673\nI00\nsS'value'\np8674\nI00\nssS'properties'\np8675\n(dp8676\nS'default_value'\np8677\n(dp8678\nS'editable'\np8679\nI00\nsS'value'\np8680\nNssS'summary_default'\np8681\n(dp8682\nS'editable'\np8683\nI01\nsS'value'\np8684\nS'none'\np8685\nsssS'description'\np8686\n(dp8687\nS'editable'\np8688\nI01\nsS'value'\np8689\ng47\nsssS'cached_display_name'\np8690\n(dp8691\nS'mandatory'\np8692\n(dp8693\nS'editable'\np8694\nI00\nsS'value'\np8695\nI00\nssS'name'\np8696\n(dp8697\nS'editable'\np8698\nI01\nsS'value'\np8699\nS'Cached Display Name'\np8700\nssS'data_type'\np8701\n(dp8702\nS'editable'\np8703\nI00\nsS'value'\np8704\nS'text'\np8705\nssS'entity_type'\np8706\n(dp8707\nS'editable'\np8708\nI00\nsS'value'\np8709\nS'CutVersionConnection'\np8710\nssS'editable'\np8711\n(dp8712\nS'editable'\np8713\nI00\nsS'value'\np8714\nI01\nssS'unique'\np8715\n(dp8716\nS'editable'\np8717\nI00\nsS'value'\np8718\nI00\nssS'properties'\np8719\n(dp8720\nS'default_value'\np8721\n(dp8722\nS'editable'\np8723\nI00\nsS'value'\np8724\nNssS'summary_default'\np8725\n(dp8726\nS'editable'\np8727\nI00\nsS'value'\np8728\nS'none'\np8729\nsssS'description'\np8730\n(dp8731\nS'editable'\np8732\nI01\nsS'value'\np8733\ng47\nsssS'id'\np8734\n(dp8735\nS'mandatory'\np8736\n(dp8737\nS'editable'\np8738\nI00\nsS'value'\np8739\nI01\nssS'name'\np8740\n(dp8741\nS'editable'\np8742\nI01\nsS'value'\np8743\nS'Id'\np8744\nssS'data_type'\np8745\n(dp8746\nS'editable'\np8747\nI00\nsS'value'\np8748\nS'number'\np8749\nssS'entity_type'\np8750\n(dp8751\nS'editable'\np8752\nI00\nsS'value'\np8753\nS'CutVersionConnection'\np8754\nssS'editable'\np8755\n(dp8756\nS'editable'\np8757\nI00\nsS'value'\np8758\nI00\nssS'unique'\np8759\n(dp8760\nS'editable'\np8761\nI00\nsS'value'\np8762\nI00\nssS'properties'\np8763\n(dp8764\nS'default_value'\np8765\n(dp8766\nS'editable'\np8767\nI00\nsS'value'\np8768\nNssS'summary_default'\np8769\n(dp8770\nS'editable'\np8771\nI00\nsS'value'\np8772\nS'none'\np8773\nsssS'description'\np8774\n(dp8775\nS'editable'\np8776\nI01\nsS'value'\np8777\ng47\nsssS'sg_cut_comments'\np8778\n(dp8779\nS'mandatory'\np8780\n(dp8781\nS'editable'\np8782\nI00\nsS'value'\np8783\nI00\nssS'name'\np8784\n(dp8785\nS'editable'\np8786\nI01\nsS'value'\np8787\nS'Cut Comments'\np8788\nssS'data_type'\np8789\n(dp8790\nS'editable'\np8791\nI00\nsS'value'\np8792\nS'text'\np8793\nssS'entity_type'\np8794\n(dp8795\nS'editable'\np8796\nI00\nsS'value'\np8797\nS'CutVersionConnection'\np8798\nssS'editable'\np8799\n(dp8800\nS'editable'\np8801\nI00\nsS'value'\np8802\nI01\nssS'unique'\np8803\n(dp8804\nS'editable'\np8805\nI00\nsS'value'\np8806\nI00\nssS'properties'\np8807\n(dp8808\nS'default_value'\np8809\n(dp8810\nS'editable'\np8811\nI00\nsS'value'\np8812\nNssS'summary_default'\np8813\n(dp8814\nS'editable'\np8815\nI01\nsS'value'\np8816\nS'none'\np8817\nsssS'description'\np8818\n(dp8819\nS'editable'\np8820\nI01\nsS'value'\np8821\ng47\nssssS'TimeLog'\np8822\n(dp8823\nS'description'\np8824\n(dp8825\nS'mandatory'\np8826\n(dp8827\nS'editable'\np8828\nI00\nsS'value'\np8829\nI00\nssS'name'\np8830\n(dp8831\nS'editable'\np8832\nI01\nsS'value'\np8833\nS'Description'\np8834\nssS'data_type'\np8835\n(dp8836\nS'editable'\np8837\nI00\nsS'value'\np8838\nS'text'\np8839\nssS'entity_type'\np8840\n(dp8841\nS'editable'\np8842\nI00\nsS'value'\np8843\nS'TimeLog'\np8844\nssS'editable'\np8845\n(dp8846\nS'editable'\np8847\nI00\nsS'value'\np8848\nI01\nssS'unique'\np8849\n(dp8850\nS'editable'\np8851\nI00\nsS'value'\np8852\nI00\nssS'properties'\np8853\n(dp8854\nS'default_value'\np8855\n(dp8856\nS'editable'\np8857\nI00\nsS'value'\np8858\nNssS'summary_default'\np8859\n(dp8860\nS'editable'\np8861\nI01\nsS'value'\np8862\nS'none'\np8863\nsssS'description'\np8864\n(dp8865\nS'editable'\np8866\nI01\nsS'value'\np8867\ng47\nsssS'created_at'\np8868\n(dp8869\nS'mandatory'\np8870\n(dp8871\nS'editable'\np8872\nI00\nsS'value'\np8873\nI00\nssS'name'\np8874\n(dp8875\nS'editable'\np8876\nI01\nsS'value'\np8877\nS'Date Created'\np8878\nssS'data_type'\np8879\n(dp8880\nS'editable'\np8881\nI00\nsS'value'\np8882\nS'date_time'\np8883\nssS'entity_type'\np8884\n(dp8885\nS'editable'\np8886\nI00\nsS'value'\np8887\nS'TimeLog'\np8888\nssS'editable'\np8889\n(dp8890\nS'editable'\np8891\nI00\nsS'value'\np8892\nI00\nssS'unique'\np8893\n(dp8894\nS'editable'\np8895\nI00\nsS'value'\np8896\nI00\nssS'properties'\np8897\n(dp8898\nS'default_value'\np8899\n(dp8900\nS'editable'\np8901\nI00\nsS'value'\np8902\nNssS'summary_default'\np8903\n(dp8904\nS'editable'\np8905\nI01\nsS'value'\np8906\nS'none'\np8907\nsssS'description'\np8908\n(dp8909\nS'editable'\np8910\nI01\nsS'value'\np8911\ng47\nsssS'updated_at'\np8912\n(dp8913\nS'mandatory'\np8914\n(dp8915\nS'editable'\np8916\nI00\nsS'value'\np8917\nI00\nssS'name'\np8918\n(dp8919\nS'editable'\np8920\nI01\nsS'value'\np8921\nS'Date Updated'\np8922\nssS'data_type'\np8923\n(dp8924\nS'editable'\np8925\nI00\nsS'value'\np8926\nS'date_time'\np8927\nssS'entity_type'\np8928\n(dp8929\nS'editable'\np8930\nI00\nsS'value'\np8931\nS'TimeLog'\np8932\nssS'editable'\np8933\n(dp8934\nS'editable'\np8935\nI00\nsS'value'\np8936\nI00\nssS'unique'\np8937\n(dp8938\nS'editable'\np8939\nI00\nsS'value'\np8940\nI00\nssS'properties'\np8941\n(dp8942\nS'default_value'\np8943\n(dp8944\nS'editable'\np8945\nI00\nsS'value'\np8946\nNssS'summary_default'\np8947\n(dp8948\nS'editable'\np8949\nI01\nsS'value'\np8950\nS'none'\np8951\nsssS'description'\np8952\n(dp8953\nS'editable'\np8954\nI01\nsS'value'\np8955\ng47\nsssS'created_by'\np8956\n(dp8957\nS'mandatory'\np8958\n(dp8959\nS'editable'\np8960\nI00\nsS'value'\np8961\nI00\nssS'name'\np8962\n(dp8963\nS'editable'\np8964\nI01\nsS'value'\np8965\nS'Created by'\np8966\nssS'data_type'\np8967\n(dp8968\nS'editable'\np8969\nI00\nsS'value'\np8970\nS'entity'\np8971\nssS'entity_type'\np8972\n(dp8973\nS'editable'\np8974\nI00\nsS'value'\np8975\nS'TimeLog'\np8976\nssS'editable'\np8977\n(dp8978\nS'editable'\np8979\nI00\nsS'value'\np8980\nI00\nssS'unique'\np8981\n(dp8982\nS'editable'\np8983\nI00\nsS'value'\np8984\nI00\nssS'properties'\np8985\n(dp8986\nS'default_value'\np8987\n(dp8988\nS'editable'\np8989\nI00\nsS'value'\np8990\nNssS'summary_default'\np8991\n(dp8992\nS'editable'\np8993\nI01\nsS'value'\np8994\nS'none'\np8995\nssS'valid_types'\np8996\n(dp8997\nS'editable'\np8998\nI01\nsS'value'\np8999\n(lp9000\nS'HumanUser'\np9001\naS'ApiUser'\np9002\nasssS'description'\np9003\n(dp9004\nS'editable'\np9005\nI01\nsS'value'\np9006\ng47\nsssS'entity'\np9007\n(dp9008\nS'mandatory'\np9009\n(dp9010\nS'editable'\np9011\nI00\nsS'value'\np9012\nI00\nssS'name'\np9013\n(dp9014\nS'editable'\np9015\nI01\nsS'value'\np9016\nS'Link'\np9017\nssS'data_type'\np9018\n(dp9019\nS'editable'\np9020\nI00\nsS'value'\np9021\nS'entity'\np9022\nssS'entity_type'\np9023\n(dp9024\nS'editable'\np9025\nI00\nsS'value'\np9026\nS'TimeLog'\np9027\nssS'editable'\np9028\n(dp9029\nS'editable'\np9030\nI00\nsS'value'\np9031\nI01\nssS'unique'\np9032\n(dp9033\nS'editable'\np9034\nI00\nsS'value'\np9035\nI00\nssS'properties'\np9036\n(dp9037\nS'default_value'\np9038\n(dp9039\nS'editable'\np9040\nI00\nsS'value'\np9041\nNssS'summary_default'\np9042\n(dp9043\nS'editable'\np9044\nI01\nsS'value'\np9045\nS'none'\np9046\nssS'valid_types'\np9047\n(dp9048\nS'editable'\np9049\nI01\nsS'value'\np9050\n(lp9051\nS'Task'\np9052\naS'Ticket'\np9053\nasssS'description'\np9054\n(dp9055\nS'editable'\np9056\nI01\nsS'value'\np9057\ng47\nsssS'project'\np9058\n(dp9059\nS'mandatory'\np9060\n(dp9061\nS'editable'\np9062\nI00\nsS'value'\np9063\nI00\nssS'name'\np9064\n(dp9065\nS'editable'\np9066\nI01\nsS'value'\np9067\nS'Project'\np9068\nssS'data_type'\np9069\n(dp9070\nS'editable'\np9071\nI00\nsS'value'\np9072\nS'entity'\np9073\nssS'entity_type'\np9074\n(dp9075\nS'editable'\np9076\nI00\nsS'value'\np9077\nS'TimeLog'\np9078\nssS'editable'\np9079\n(dp9080\nS'editable'\np9081\nI00\nsS'value'\np9082\nI01\nssS'unique'\np9083\n(dp9084\nS'editable'\np9085\nI00\nsS'value'\np9086\nI00\nssS'properties'\np9087\n(dp9088\nS'default_value'\np9089\n(dp9090\nS'editable'\np9091\nI00\nsS'value'\np9092\nNssS'summary_default'\np9093\n(dp9094\nS'editable'\np9095\nI01\nsS'value'\np9096\nS'none'\np9097\nssS'valid_types'\np9098\n(dp9099\nS'editable'\np9100\nI01\nsS'value'\np9101\n(lp9102\nS'Project'\np9103\nasssS'description'\np9104\n(dp9105\nS'editable'\np9106\nI01\nsS'value'\np9107\ng47\nsssS'duration'\np9108\n(dp9109\nS'mandatory'\np9110\n(dp9111\nS'editable'\np9112\nI00\nsS'value'\np9113\nI00\nssS'name'\np9114\n(dp9115\nS'editable'\np9116\nI01\nsS'value'\np9117\nS'Duration'\np9118\nssS'data_type'\np9119\n(dp9120\nS'editable'\np9121\nI00\nsS'value'\np9122\nS'duration'\np9123\nssS'entity_type'\np9124\n(dp9125\nS'editable'\np9126\nI00\nsS'value'\np9127\nS'TimeLog'\np9128\nssS'editable'\np9129\n(dp9130\nS'editable'\np9131\nI00\nsS'value'\np9132\nI01\nssS'unique'\np9133\n(dp9134\nS'editable'\np9135\nI00\nsS'value'\np9136\nI00\nssS'properties'\np9137\n(dp9138\nS'default_value'\np9139\n(dp9140\nS'editable'\np9141\nI00\nsS'value'\np9142\nI0\nssS'summary_default'\np9143\n(dp9144\nS'editable'\np9145\nI01\nsS'value'\np9146\nS'sum'\np9147\nsssS'description'\np9148\n(dp9149\nS'editable'\np9150\nI01\nsS'value'\np9151\ng47\nsssS'user'\np9152\n(dp9153\nS'mandatory'\np9154\n(dp9155\nS'editable'\np9156\nI00\nsS'value'\np9157\nI00\nssS'name'\np9158\n(dp9159\nS'editable'\np9160\nI01\nsS'value'\np9161\nS'Person'\np9162\nssS'data_type'\np9163\n(dp9164\nS'editable'\np9165\nI00\nsS'value'\np9166\nS'entity'\np9167\nssS'entity_type'\np9168\n(dp9169\nS'editable'\np9170\nI00\nsS'value'\np9171\nS'TimeLog'\np9172\nssS'editable'\np9173\n(dp9174\nS'editable'\np9175\nI00\nsS'value'\np9176\nI01\nssS'unique'\np9177\n(dp9178\nS'editable'\np9179\nI00\nsS'value'\np9180\nI00\nssS'properties'\np9181\n(dp9182\nS'default_value'\np9183\n(dp9184\nS'editable'\np9185\nI00\nsS'value'\np9186\nNssS'summary_default'\np9187\n(dp9188\nS'editable'\np9189\nI01\nsS'value'\np9190\nS'none'\np9191\nssS'valid_types'\np9192\n(dp9193\nS'editable'\np9194\nI01\nsS'value'\np9195\n(lp9196\nS'HumanUser'\np9197\nasssS'description'\np9198\n(dp9199\nS'editable'\np9200\nI01\nsS'value'\np9201\ng47\nsssS'date'\np9202\n(dp9203\nS'mandatory'\np9204\n(dp9205\nS'editable'\np9206\nI00\nsS'value'\np9207\nI00\nssS'name'\np9208\n(dp9209\nS'editable'\np9210\nI01\nsS'value'\np9211\nS'Date'\np9212\nssS'data_type'\np9213\n(dp9214\nS'editable'\np9215\nI00\nsS'value'\np9216\nS'date'\np9217\nssS'entity_type'\np9218\n(dp9219\nS'editable'\np9220\nI00\nsS'value'\np9221\nS'TimeLog'\np9222\nssS'editable'\np9223\n(dp9224\nS'editable'\np9225\nI00\nsS'value'\np9226\nI01\nssS'unique'\np9227\n(dp9228\nS'editable'\np9229\nI00\nsS'value'\np9230\nI00\nssS'properties'\np9231\n(dp9232\nS'default_value'\np9233\n(dp9234\nS'editable'\np9235\nI00\nsS'value'\np9236\nNssS'summary_default'\np9237\n(dp9238\nS'editable'\np9239\nI01\nsS'value'\np9240\nS'none'\np9241\nsssS'description'\np9242\n(dp9243\nS'editable'\np9244\nI01\nsS'value'\np9245\ng47\nsssS'cached_display_name'\np9246\n(dp9247\nS'mandatory'\np9248\n(dp9249\nS'editable'\np9250\nI00\nsS'value'\np9251\nI00\nssS'name'\np9252\n(dp9253\nS'editable'\np9254\nI01\nsS'value'\np9255\nS'Cached Display Name'\np9256\nssS'data_type'\np9257\n(dp9258\nS'editable'\np9259\nI00\nsS'value'\np9260\nS'text'\np9261\nssS'entity_type'\np9262\n(dp9263\nS'editable'\np9264\nI00\nsS'value'\np9265\nS'TimeLog'\np9266\nssS'editable'\np9267\n(dp9268\nS'editable'\np9269\nI00\nsS'value'\np9270\nI01\nssS'unique'\np9271\n(dp9272\nS'editable'\np9273\nI00\nsS'value'\np9274\nI00\nssS'properties'\np9275\n(dp9276\nS'default_value'\np9277\n(dp9278\nS'editable'\np9279\nI00\nsS'value'\np9280\nNssS'summary_default'\np9281\n(dp9282\nS'editable'\np9283\nI00\nsS'value'\np9284\nS'none'\np9285\nsssS'description'\np9286\n(dp9287\nS'editable'\np9288\nI01\nsS'value'\np9289\ng47\nsssS'id'\np9290\n(dp9291\nS'mandatory'\np9292\n(dp9293\nS'editable'\np9294\nI00\nsS'value'\np9295\nI01\nssS'name'\np9296\n(dp9297\nS'editable'\np9298\nI01\nsS'value'\np9299\nS'Id'\np9300\nssS'data_type'\np9301\n(dp9302\nS'editable'\np9303\nI00\nsS'value'\np9304\nS'number'\np9305\nssS'entity_type'\np9306\n(dp9307\nS'editable'\np9308\nI00\nsS'value'\np9309\nS'TimeLog'\np9310\nssS'editable'\np9311\n(dp9312\nS'editable'\np9313\nI00\nsS'value'\np9314\nI00\nssS'unique'\np9315\n(dp9316\nS'editable'\np9317\nI00\nsS'value'\np9318\nI00\nssS'properties'\np9319\n(dp9320\nS'default_value'\np9321\n(dp9322\nS'editable'\np9323\nI00\nsS'value'\np9324\nNssS'summary_default'\np9325\n(dp9326\nS'editable'\np9327\nI01\nsS'value'\np9328\nS'none'\np9329\nsssS'description'\np9330\n(dp9331\nS'editable'\np9332\nI01\nsS'value'\np9333\ng47\nsssS'updated_by'\np9334\n(dp9335\nS'mandatory'\np9336\n(dp9337\nS'editable'\np9338\nI00\nsS'value'\np9339\nI00\nssS'name'\np9340\n(dp9341\nS'editable'\np9342\nI01\nsS'value'\np9343\nS'Updated by'\np9344\nssS'data_type'\np9345\n(dp9346\nS'editable'\np9347\nI00\nsS'value'\np9348\nS'entity'\np9349\nssS'entity_type'\np9350\n(dp9351\nS'editable'\np9352\nI00\nsS'value'\np9353\nS'TimeLog'\np9354\nssS'editable'\np9355\n(dp9356\nS'editable'\np9357\nI00\nsS'value'\np9358\nI00\nssS'unique'\np9359\n(dp9360\nS'editable'\np9361\nI00\nsS'value'\np9362\nI00\nssS'properties'\np9363\n(dp9364\nS'default_value'\np9365\n(dp9366\nS'editable'\np9367\nI00\nsS'value'\np9368\nNssS'summary_default'\np9369\n(dp9370\nS'editable'\np9371\nI01\nsS'value'\np9372\nS'none'\np9373\nssS'valid_types'\np9374\n(dp9375\nS'editable'\np9376\nI01\nsS'value'\np9377\n(lp9378\nS'HumanUser'\np9379\naS'ApiUser'\np9380\nasssS'description'\np9381\n(dp9382\nS'editable'\np9383\nI01\nsS'value'\np9384\ng47\nssssS'PlaylistVersionConnection'\np9385\n(dp9386\nS'cached_display_name'\np9387\n(dp9388\nS'mandatory'\np9389\n(dp9390\nS'editable'\np9391\nI00\nsS'value'\np9392\nI00\nssS'name'\np9393\n(dp9394\nS'editable'\np9395\nI01\nsS'value'\np9396\nS'Cached Display Name'\np9397\nssS'data_type'\np9398\n(dp9399\nS'editable'\np9400\nI00\nsS'value'\np9401\nS'text'\np9402\nssS'entity_type'\np9403\n(dp9404\nS'editable'\np9405\nI00\nsS'value'\np9406\nS'PlaylistVersionConnection'\np9407\nssS'editable'\np9408\n(dp9409\nS'editable'\np9410\nI00\nsS'value'\np9411\nI01\nssS'unique'\np9412\n(dp9413\nS'editable'\np9414\nI00\nsS'value'\np9415\nI00\nssS'properties'\np9416\n(dp9417\nS'default_value'\np9418\n(dp9419\nS'editable'\np9420\nI00\nsS'value'\np9421\nNssS'summary_default'\np9422\n(dp9423\nS'editable'\np9424\nI00\nsS'value'\np9425\nS'none'\np9426\nsssS'description'\np9427\n(dp9428\nS'editable'\np9429\nI01\nsS'value'\np9430\ng47\nsssS'version'\np9431\n(dp9432\nS'mandatory'\np9433\n(dp9434\nS'editable'\np9435\nI00\nsS'value'\np9436\nI00\nssS'name'\np9437\n(dp9438\nS'editable'\np9439\nI01\nsS'value'\np9440\nS'Version'\np9441\nssS'data_type'\np9442\n(dp9443\nS'editable'\np9444\nI00\nsS'value'\np9445\nS'entity'\np9446\nssS'entity_type'\np9447\n(dp9448\nS'editable'\np9449\nI00\nsS'value'\np9450\nS'PlaylistVersionConnection'\np9451\nssS'editable'\np9452\n(dp9453\nS'editable'\np9454\nI00\nsS'value'\np9455\nI00\nssS'unique'\np9456\n(dp9457\nS'editable'\np9458\nI00\nsS'value'\np9459\nI00\nssS'properties'\np9460\n(dp9461\nS'default_value'\np9462\n(dp9463\nS'editable'\np9464\nI00\nsS'value'\np9465\nNssS'summary_default'\np9466\n(dp9467\nS'editable'\np9468\nI00\nsS'value'\np9469\nS'none'\np9470\nssS'valid_types'\np9471\n(dp9472\nS'editable'\np9473\nI00\nsS'value'\np9474\n(lp9475\nS'Version'\np9476\nasssS'description'\np9477\n(dp9478\nS'editable'\np9479\nI01\nsS'value'\np9480\ng47\nsssS'sg_sort_order'\np9481\n(dp9482\nS'mandatory'\np9483\n(dp9484\nS'editable'\np9485\nI00\nsS'value'\np9486\nI00\nssS'name'\np9487\n(dp9488\nS'editable'\np9489\nI01\nsS'value'\np9490\nS'Sort Order'\np9491\nssS'data_type'\np9492\n(dp9493\nS'editable'\np9494\nI00\nsS'value'\np9495\nS'number'\np9496\nssS'entity_type'\np9497\n(dp9498\nS'editable'\np9499\nI00\nsS'value'\np9500\nS'PlaylistVersionConnection'\np9501\nssS'editable'\np9502\n(dp9503\nS'editable'\np9504\nI00\nsS'value'\np9505\nI01\nssS'unique'\np9506\n(dp9507\nS'editable'\np9508\nI00\nsS'value'\np9509\nI00\nssS'properties'\np9510\n(dp9511\nS'default_value'\np9512\n(dp9513\nS'editable'\np9514\nI00\nsS'value'\np9515\nNssS'summary_default'\np9516\n(dp9517\nS'editable'\np9518\nI01\nsS'value'\np9519\nS'none'\np9520\nsssS'description'\np9521\n(dp9522\nS'editable'\np9523\nI01\nsS'value'\np9524\ng47\nsssS'playlist'\np9525\n(dp9526\nS'mandatory'\np9527\n(dp9528\nS'editable'\np9529\nI00\nsS'value'\np9530\nI00\nssS'name'\np9531\n(dp9532\nS'editable'\np9533\nI01\nsS'value'\np9534\nS'Playlist'\np9535\nssS'data_type'\np9536\n(dp9537\nS'editable'\np9538\nI00\nsS'value'\np9539\nS'entity'\np9540\nssS'entity_type'\np9541\n(dp9542\nS'editable'\np9543\nI00\nsS'value'\np9544\nS'PlaylistVersionConnection'\np9545\nssS'editable'\np9546\n(dp9547\nS'editable'\np9548\nI00\nsS'value'\np9549\nI00\nssS'unique'\np9550\n(dp9551\nS'editable'\np9552\nI00\nsS'value'\np9553\nI00\nssS'properties'\np9554\n(dp9555\nS'default_value'\np9556\n(dp9557\nS'editable'\np9558\nI00\nsS'value'\np9559\nNssS'summary_default'\np9560\n(dp9561\nS'editable'\np9562\nI00\nsS'value'\np9563\nS'none'\np9564\nssS'valid_types'\np9565\n(dp9566\nS'editable'\np9567\nI00\nsS'value'\np9568\n(lp9569\nS'Playlist'\np9570\nasssS'description'\np9571\n(dp9572\nS'editable'\np9573\nI01\nsS'value'\np9574\ng47\nsssS'id'\np9575\n(dp9576\nS'mandatory'\np9577\n(dp9578\nS'editable'\np9579\nI00\nsS'value'\np9580\nI01\nssS'name'\np9581\n(dp9582\nS'editable'\np9583\nI01\nsS'value'\np9584\nS'Id'\np9585\nssS'data_type'\np9586\n(dp9587\nS'editable'\np9588\nI00\nsS'value'\np9589\nS'number'\np9590\nssS'entity_type'\np9591\n(dp9592\nS'editable'\np9593\nI00\nsS'value'\np9594\nS'PlaylistVersionConnection'\np9595\nssS'editable'\np9596\n(dp9597\nS'editable'\np9598\nI00\nsS'value'\np9599\nI00\nssS'unique'\np9600\n(dp9601\nS'editable'\np9602\nI00\nsS'value'\np9603\nI00\nssS'properties'\np9604\n(dp9605\nS'default_value'\np9606\n(dp9607\nS'editable'\np9608\nI00\nsS'value'\np9609\nNssS'summary_default'\np9610\n(dp9611\nS'editable'\np9612\nI00\nsS'value'\np9613\nS'none'\np9614\nsssS'description'\np9615\n(dp9616\nS'editable'\np9617\nI01\nsS'value'\np9618\ng47\nssssS'CustomNonProjectEntity02'\np9619\n(dp9620\nS'open_notes_count'\np9621\n(dp9622\nS'mandatory'\np9623\n(dp9624\nS'editable'\np9625\nI00\nsS'value'\np9626\nI00\nssS'name'\np9627\n(dp9628\nS'editable'\np9629\nI01\nsS'value'\np9630\nS'Open Notes Count'\np9631\nssS'data_type'\np9632\n(dp9633\nS'editable'\np9634\nI00\nsS'value'\np9635\nS'text'\np9636\nssS'entity_type'\np9637\n(dp9638\nS'editable'\np9639\nI00\nsS'value'\np9640\nS'CustomNonProjectEntity02'\np9641\nssS'editable'\np9642\n(dp9643\nS'editable'\np9644\nI00\nsS'value'\np9645\nI00\nssS'unique'\np9646\n(dp9647\nS'editable'\np9648\nI00\nsS'value'\np9649\nI00\nssS'properties'\np9650\n(dp9651\nS'default_value'\np9652\n(dp9653\nS'editable'\np9654\nI00\nsS'value'\np9655\nNssS'summary_default'\np9656\n(dp9657\nS'editable'\np9658\nI01\nsS'value'\np9659\nS'none'\np9660\nsssS'description'\np9661\n(dp9662\nS'editable'\np9663\nI01\nsS'value'\np9664\ng47\nsssS'code'\np9665\n(dp9666\nS'mandatory'\np9667\n(dp9668\nS'editable'\np9669\nI00\nsS'value'\np9670\nI01\nssS'name'\np9671\n(dp9672\nS'editable'\np9673\nI01\nsS'value'\np9674\nS'Custom Non Project Entity02 Name'\np9675\nssS'data_type'\np9676\n(dp9677\nS'editable'\np9678\nI00\nsS'value'\np9679\nS'text'\np9680\nssS'entity_type'\np9681\n(dp9682\nS'editable'\np9683\nI00\nsS'value'\np9684\nS'CustomNonProjectEntity02'\np9685\nssS'editable'\np9686\n(dp9687\nS'editable'\np9688\nI00\nsS'value'\np9689\nI01\nssS'unique'\np9690\n(dp9691\nS'editable'\np9692\nI00\nsS'value'\np9693\nI00\nssS'properties'\np9694\n(dp9695\nS'default_value'\np9696\n(dp9697\nS'editable'\np9698\nI00\nsS'value'\np9699\nNssS'summary_default'\np9700\n(dp9701\nS'editable'\np9702\nI01\nsS'value'\np9703\nS'none'\np9704\nsssS'description'\np9705\n(dp9706\nS'editable'\np9707\nI01\nsS'value'\np9708\ng47\nsssS'open_notes'\np9709\n(dp9710\nS'mandatory'\np9711\n(dp9712\nS'editable'\np9713\nI00\nsS'value'\np9714\nI00\nssS'name'\np9715\n(dp9716\nS'editable'\np9717\nI01\nsS'value'\np9718\nS'Open Notes'\np9719\nssS'data_type'\np9720\n(dp9721\nS'editable'\np9722\nI00\nsS'value'\np9723\nS'multi_entity'\np9724\nssS'entity_type'\np9725\n(dp9726\nS'editable'\np9727\nI00\nsS'value'\np9728\nS'CustomNonProjectEntity02'\np9729\nssS'editable'\np9730\n(dp9731\nS'editable'\np9732\nI00\nsS'value'\np9733\nI00\nssS'unique'\np9734\n(dp9735\nS'editable'\np9736\nI00\nsS'value'\np9737\nI00\nssS'properties'\np9738\n(dp9739\nS'default_value'\np9740\n(dp9741\nS'editable'\np9742\nI00\nsS'value'\np9743\nNssS'summary_default'\np9744\n(dp9745\nS'editable'\np9746\nI01\nsS'value'\np9747\nS'none'\np9748\nssS'valid_types'\np9749\n(dp9750\nS'editable'\np9751\nI01\nsS'value'\np9752\n(lp9753\nS'Note'\np9754\nasssS'description'\np9755\n(dp9756\nS'editable'\np9757\nI01\nsS'value'\np9758\ng47\nsssS'description'\np9759\n(dp9760\nS'mandatory'\np9761\n(dp9762\nS'editable'\np9763\nI00\nsS'value'\np9764\nI00\nssS'name'\np9765\n(dp9766\nS'editable'\np9767\nI01\nsS'value'\np9768\nS'Description'\np9769\nssS'data_type'\np9770\n(dp9771\nS'editable'\np9772\nI00\nsS'value'\np9773\nS'text'\np9774\nssS'entity_type'\np9775\n(dp9776\nS'editable'\np9777\nI00\nsS'value'\np9778\nS'CustomNonProjectEntity02'\np9779\nssS'editable'\np9780\n(dp9781\nS'editable'\np9782\nI00\nsS'value'\np9783\nI01\nssS'unique'\np9784\n(dp9785\nS'editable'\np9786\nI00\nsS'value'\np9787\nI00\nssS'properties'\np9788\n(dp9789\nS'default_value'\np9790\n(dp9791\nS'editable'\np9792\nI00\nsS'value'\np9793\nNssS'summary_default'\np9794\n(dp9795\nS'editable'\np9796\nI01\nsS'value'\np9797\nS'none'\np9798\nsssS'description'\np9799\n(dp9800\nS'editable'\np9801\nI01\nsS'value'\np9802\ng47\nsssS'created_at'\np9803\n(dp9804\nS'mandatory'\np9805\n(dp9806\nS'editable'\np9807\nI00\nsS'value'\np9808\nI00\nssS'name'\np9809\n(dp9810\nS'editable'\np9811\nI01\nsS'value'\np9812\nS'Date Created'\np9813\nssS'data_type'\np9814\n(dp9815\nS'editable'\np9816\nI00\nsS'value'\np9817\nS'date_time'\np9818\nssS'entity_type'\np9819\n(dp9820\nS'editable'\np9821\nI00\nsS'value'\np9822\nS'CustomNonProjectEntity02'\np9823\nssS'editable'\np9824\n(dp9825\nS'editable'\np9826\nI00\nsS'value'\np9827\nI00\nssS'unique'\np9828\n(dp9829\nS'editable'\np9830\nI00\nsS'value'\np9831\nI00\nssS'properties'\np9832\n(dp9833\nS'default_value'\np9834\n(dp9835\nS'editable'\np9836\nI00\nsS'value'\np9837\nNssS'summary_default'\np9838\n(dp9839\nS'editable'\np9840\nI01\nsS'value'\np9841\nS'none'\np9842\nsssS'description'\np9843\n(dp9844\nS'editable'\np9845\nI01\nsS'value'\np9846\ng47\nsssS'updated_at'\np9847\n(dp9848\nS'mandatory'\np9849\n(dp9850\nS'editable'\np9851\nI00\nsS'value'\np9852\nI00\nssS'name'\np9853\n(dp9854\nS'editable'\np9855\nI01\nsS'value'\np9856\nS'Date Updated'\np9857\nssS'data_type'\np9858\n(dp9859\nS'editable'\np9860\nI00\nsS'value'\np9861\nS'date_time'\np9862\nssS'entity_type'\np9863\n(dp9864\nS'editable'\np9865\nI00\nsS'value'\np9866\nS'CustomNonProjectEntity02'\np9867\nssS'editable'\np9868\n(dp9869\nS'editable'\np9870\nI00\nsS'value'\np9871\nI00\nssS'unique'\np9872\n(dp9873\nS'editable'\np9874\nI00\nsS'value'\np9875\nI00\nssS'properties'\np9876\n(dp9877\nS'default_value'\np9878\n(dp9879\nS'editable'\np9880\nI00\nsS'value'\np9881\nNssS'summary_default'\np9882\n(dp9883\nS'editable'\np9884\nI01\nsS'value'\np9885\nS'none'\np9886\nsssS'description'\np9887\n(dp9888\nS'editable'\np9889\nI01\nsS'value'\np9890\ng47\nsssS'created_by'\np9891\n(dp9892\nS'mandatory'\np9893\n(dp9894\nS'editable'\np9895\nI00\nsS'value'\np9896\nI00\nssS'name'\np9897\n(dp9898\nS'editable'\np9899\nI01\nsS'value'\np9900\nS'Created by'\np9901\nssS'data_type'\np9902\n(dp9903\nS'editable'\np9904\nI00\nsS'value'\np9905\nS'entity'\np9906\nssS'entity_type'\np9907\n(dp9908\nS'editable'\np9909\nI00\nsS'value'\np9910\nS'CustomNonProjectEntity02'\np9911\nssS'editable'\np9912\n(dp9913\nS'editable'\np9914\nI00\nsS'value'\np9915\nI00\nssS'unique'\np9916\n(dp9917\nS'editable'\np9918\nI00\nsS'value'\np9919\nI00\nssS'properties'\np9920\n(dp9921\nS'default_value'\np9922\n(dp9923\nS'editable'\np9924\nI00\nsS'value'\np9925\nNssS'summary_default'\np9926\n(dp9927\nS'editable'\np9928\nI01\nsS'value'\np9929\nS'none'\np9930\nssS'valid_types'\np9931\n(dp9932\nS'editable'\np9933\nI01\nsS'value'\np9934\n(lp9935\nS'HumanUser'\np9936\naS'ApiUser'\np9937\nasssS'description'\np9938\n(dp9939\nS'editable'\np9940\nI01\nsS'value'\np9941\ng47\nsssS'filmstrip_image'\np9942\n(dp9943\nS'mandatory'\np9944\n(dp9945\nS'editable'\np9946\nI00\nsS'value'\np9947\nI00\nssS'name'\np9948\n(dp9949\nS'editable'\np9950\nI01\nsS'value'\np9951\nS'Filmstrip Thumbnail'\np9952\nssS'data_type'\np9953\n(dp9954\nS'editable'\np9955\nI00\nsS'value'\np9956\nS'image'\np9957\nssS'entity_type'\np9958\n(dp9959\nS'editable'\np9960\nI00\nsS'value'\np9961\nS'CustomNonProjectEntity02'\np9962\nssS'editable'\np9963\n(dp9964\nS'editable'\np9965\nI00\nsS'value'\np9966\nI01\nssS'unique'\np9967\n(dp9968\nS'editable'\np9969\nI00\nsS'value'\np9970\nI00\nssS'properties'\np9971\n(dp9972\nS'default_value'\np9973\n(dp9974\nS'editable'\np9975\nI00\nsS'value'\np9976\nNssS'summary_default'\np9977\n(dp9978\nS'editable'\np9979\nI01\nsS'value'\np9980\nS'none'\np9981\nsssS'description'\np9982\n(dp9983\nS'editable'\np9984\nI01\nsS'value'\np9985\ng47\nsssS'sg_status_list'\np9986\n(dp9987\nS'mandatory'\np9988\n(dp9989\nS'editable'\np9990\nI00\nsS'value'\np9991\nI00\nssS'name'\np9992\n(dp9993\nS'editable'\np9994\nI01\nsS'value'\np9995\nS'Status'\np9996\nssS'data_type'\np9997\n(dp9998\nS'editable'\np9999\nI00\nsS'value'\np10000\nS'status_list'\np10001\nssS'entity_type'\np10002\n(dp10003\nS'editable'\np10004\nI00\nsS'value'\np10005\nS'CustomNonProjectEntity02'\np10006\nssS'editable'\np10007\n(dp10008\nS'editable'\np10009\nI00\nsS'value'\np10010\nI01\nssS'unique'\np10011\n(dp10012\nS'editable'\np10013\nI00\nsS'value'\np10014\nI00\nssS'properties'\np10015\n(dp10016\nS'default_value'\np10017\n(dp10018\nS'editable'\np10019\nI01\nsS'value'\np10020\nS'wtg'\np10021\nssS'valid_values'\np10022\n(dp10023\nS'editable'\np10024\nI01\nsS'value'\np10025\n(lp10026\nS'cmpt'\np10027\naS'ip'\np10028\naS'wtg'\np10029\nassS'summary_default'\np10030\n(dp10031\nS'editable'\np10032\nI01\nsS'value'\np10033\nS'none'\np10034\nsssS'description'\np10035\n(dp10036\nS'editable'\np10037\nI01\nsS'value'\np10038\ng47\nsssS'notes'\np10039\n(dp10040\nS'mandatory'\np10041\n(dp10042\nS'editable'\np10043\nI00\nsS'value'\np10044\nI00\nssS'name'\np10045\n(dp10046\nS'editable'\np10047\nI01\nsS'value'\np10048\nS'Notes'\np10049\nssS'data_type'\np10050\n(dp10051\nS'editable'\np10052\nI00\nsS'value'\np10053\nS'multi_entity'\np10054\nssS'entity_type'\np10055\n(dp10056\nS'editable'\np10057\nI00\nsS'value'\np10058\nS'CustomNonProjectEntity02'\np10059\nssS'editable'\np10060\n(dp10061\nS'editable'\np10062\nI00\nsS'value'\np10063\nI01\nssS'unique'\np10064\n(dp10065\nS'editable'\np10066\nI00\nsS'value'\np10067\nI00\nssS'properties'\np10068\n(dp10069\nS'default_value'\np10070\n(dp10071\nS'editable'\np10072\nI00\nsS'value'\np10073\nNssS'summary_default'\np10074\n(dp10075\nS'editable'\np10076\nI01\nsS'value'\np10077\nS'none'\np10078\nssS'valid_types'\np10079\n(dp10080\nS'editable'\np10081\nI01\nsS'value'\np10082\n(lp10083\nS'Note'\np10084\nasssS'description'\np10085\n(dp10086\nS'editable'\np10087\nI01\nsS'value'\np10088\ng47\nsssS'image'\np10089\n(dp10090\nS'mandatory'\np10091\n(dp10092\nS'editable'\np10093\nI00\nsS'value'\np10094\nI00\nssS'name'\np10095\n(dp10096\nS'editable'\np10097\nI01\nsS'value'\np10098\nS'Thumbnail'\np10099\nssS'data_type'\np10100\n(dp10101\nS'editable'\np10102\nI00\nsS'value'\np10103\nS'image'\np10104\nssS'entity_type'\np10105\n(dp10106\nS'editable'\np10107\nI00\nsS'value'\np10108\nS'CustomNonProjectEntity02'\np10109\nssS'editable'\np10110\n(dp10111\nS'editable'\np10112\nI00\nsS'value'\np10113\nI01\nssS'unique'\np10114\n(dp10115\nS'editable'\np10116\nI00\nsS'value'\np10117\nI00\nssS'properties'\np10118\n(dp10119\nS'default_value'\np10120\n(dp10121\nS'editable'\np10122\nI00\nsS'value'\np10123\nNssS'summary_default'\np10124\n(dp10125\nS'editable'\np10126\nI01\nsS'value'\np10127\nS'none'\np10128\nsssS'description'\np10129\n(dp10130\nS'editable'\np10131\nI01\nsS'value'\np10132\ng47\nsssS'cached_display_name'\np10133\n(dp10134\nS'mandatory'\np10135\n(dp10136\nS'editable'\np10137\nI00\nsS'value'\np10138\nI00\nssS'name'\np10139\n(dp10140\nS'editable'\np10141\nI01\nsS'value'\np10142\nS'Cached Display Name'\np10143\nssS'data_type'\np10144\n(dp10145\nS'editable'\np10146\nI00\nsS'value'\np10147\nS'text'\np10148\nssS'entity_type'\np10149\n(dp10150\nS'editable'\np10151\nI00\nsS'value'\np10152\nS'CustomNonProjectEntity02'\np10153\nssS'editable'\np10154\n(dp10155\nS'editable'\np10156\nI00\nsS'value'\np10157\nI01\nssS'unique'\np10158\n(dp10159\nS'editable'\np10160\nI00\nsS'value'\np10161\nI00\nssS'properties'\np10162\n(dp10163\nS'default_value'\np10164\n(dp10165\nS'editable'\np10166\nI00\nsS'value'\np10167\nNssS'summary_default'\np10168\n(dp10169\nS'editable'\np10170\nI00\nsS'value'\np10171\nS'none'\np10172\nsssS'description'\np10173\n(dp10174\nS'editable'\np10175\nI01\nsS'value'\np10176\ng47\nsssS'tag_list'\np10177\n(dp10178\nS'mandatory'\np10179\n(dp10180\nS'editable'\np10181\nI00\nsS'value'\np10182\nI00\nssS'name'\np10183\n(dp10184\nS'editable'\np10185\nI01\nsS'value'\np10186\nS'Tags'\np10187\nssS'data_type'\np10188\n(dp10189\nS'editable'\np10190\nI00\nsS'value'\np10191\nS'tag_list'\np10192\nssS'entity_type'\np10193\n(dp10194\nS'editable'\np10195\nI00\nsS'value'\np10196\nS'CustomNonProjectEntity02'\np10197\nssS'editable'\np10198\n(dp10199\nS'editable'\np10200\nI00\nsS'value'\np10201\nI01\nssS'unique'\np10202\n(dp10203\nS'editable'\np10204\nI00\nsS'value'\np10205\nI00\nssS'properties'\np10206\n(dp10207\nS'default_value'\np10208\n(dp10209\nS'editable'\np10210\nI00\nsS'value'\np10211\nNssS'summary_default'\np10212\n(dp10213\nS'editable'\np10214\nI01\nsS'value'\np10215\nS'none'\np10216\nssS'valid_types'\np10217\n(dp10218\nS'editable'\np10219\nI01\nsS'value'\np10220\n(lp10221\nS'Tag'\np10222\nasssS'description'\np10223\n(dp10224\nS'editable'\np10225\nI01\nsS'value'\np10226\ng47\nsssS'id'\np10227\n(dp10228\nS'mandatory'\np10229\n(dp10230\nS'editable'\np10231\nI00\nsS'value'\np10232\nI00\nssS'name'\np10233\n(dp10234\nS'editable'\np10235\nI01\nsS'value'\np10236\nS'Id'\np10237\nssS'data_type'\np10238\n(dp10239\nS'editable'\np10240\nI00\nsS'value'\np10241\nS'number'\np10242\nssS'entity_type'\np10243\n(dp10244\nS'editable'\np10245\nI00\nsS'value'\np10246\nS'CustomNonProjectEntity02'\np10247\nssS'editable'\np10248\n(dp10249\nS'editable'\np10250\nI00\nsS'value'\np10251\nI00\nssS'unique'\np10252\n(dp10253\nS'editable'\np10254\nI00\nsS'value'\np10255\nI00\nssS'properties'\np10256\n(dp10257\nS'default_value'\np10258\n(dp10259\nS'editable'\np10260\nI00\nsS'value'\np10261\nNssS'summary_default'\np10262\n(dp10263\nS'editable'\np10264\nI01\nsS'value'\np10265\nS'none'\np10266\nsssS'description'\np10267\n(dp10268\nS'editable'\np10269\nI01\nsS'value'\np10270\ng47\nsssS'updated_by'\np10271\n(dp10272\nS'mandatory'\np10273\n(dp10274\nS'editable'\np10275\nI00\nsS'value'\np10276\nI00\nssS'name'\np10277\n(dp10278\nS'editable'\np10279\nI01\nsS'value'\np10280\nS'Updated by'\np10281\nssS'data_type'\np10282\n(dp10283\nS'editable'\np10284\nI00\nsS'value'\np10285\nS'entity'\np10286\nssS'entity_type'\np10287\n(dp10288\nS'editable'\np10289\nI00\nsS'value'\np10290\nS'CustomNonProjectEntity02'\np10291\nssS'editable'\np10292\n(dp10293\nS'editable'\np10294\nI00\nsS'value'\np10295\nI00\nssS'unique'\np10296\n(dp10297\nS'editable'\np10298\nI00\nsS'value'\np10299\nI00\nssS'properties'\np10300\n(dp10301\nS'default_value'\np10302\n(dp10303\nS'editable'\np10304\nI00\nsS'value'\np10305\nNssS'summary_default'\np10306\n(dp10307\nS'editable'\np10308\nI01\nsS'value'\np10309\nS'none'\np10310\nssS'valid_types'\np10311\n(dp10312\nS'editable'\np10313\nI01\nsS'value'\np10314\n(lp10315\nS'HumanUser'\np10316\naS'ApiUser'\np10317\nasssS'description'\np10318\n(dp10319\nS'editable'\np10320\nI01\nsS'value'\np10321\ng47\nssssS'AssetElementConnection'\np10322\n(dp10323\nS'cached_display_name'\np10324\n(dp10325\nS'mandatory'\np10326\n(dp10327\nS'editable'\np10328\nI00\nsS'value'\np10329\nI00\nssS'name'\np10330\n(dp10331\nS'editable'\np10332\nI01\nsS'value'\np10333\nS'Cached Display Name'\np10334\nssS'data_type'\np10335\n(dp10336\nS'editable'\np10337\nI00\nsS'value'\np10338\nS'text'\np10339\nssS'entity_type'\np10340\n(dp10341\nS'editable'\np10342\nI00\nsS'value'\np10343\nS'AssetElementConnection'\np10344\nssS'editable'\np10345\n(dp10346\nS'editable'\np10347\nI00\nsS'value'\np10348\nI01\nssS'unique'\np10349\n(dp10350\nS'editable'\np10351\nI00\nsS'value'\np10352\nI00\nssS'properties'\np10353\n(dp10354\nS'default_value'\np10355\n(dp10356\nS'editable'\np10357\nI00\nsS'value'\np10358\nNssS'summary_default'\np10359\n(dp10360\nS'editable'\np10361\nI00\nsS'value'\np10362\nS'none'\np10363\nsssS'description'\np10364\n(dp10365\nS'editable'\np10366\nI01\nsS'value'\np10367\ng47\nsssS'element'\np10368\n(dp10369\nS'mandatory'\np10370\n(dp10371\nS'editable'\np10372\nI00\nsS'value'\np10373\nI00\nssS'name'\np10374\n(dp10375\nS'editable'\np10376\nI01\nsS'value'\np10377\nS'Element'\np10378\nssS'data_type'\np10379\n(dp10380\nS'editable'\np10381\nI00\nsS'value'\np10382\nS'entity'\np10383\nssS'entity_type'\np10384\n(dp10385\nS'editable'\np10386\nI00\nsS'value'\np10387\nS'AssetElementConnection'\np10388\nssS'editable'\np10389\n(dp10390\nS'editable'\np10391\nI00\nsS'value'\np10392\nI00\nssS'unique'\np10393\n(dp10394\nS'editable'\np10395\nI00\nsS'value'\np10396\nI00\nssS'properties'\np10397\n(dp10398\nS'default_value'\np10399\n(dp10400\nS'editable'\np10401\nI00\nsS'value'\np10402\nNssS'summary_default'\np10403\n(dp10404\nS'editable'\np10405\nI00\nsS'value'\np10406\nS'none'\np10407\nssS'valid_types'\np10408\n(dp10409\nS'editable'\np10410\nI00\nsS'value'\np10411\n(lp10412\nS'Element'\np10413\nasssS'description'\np10414\n(dp10415\nS'editable'\np10416\nI01\nsS'value'\np10417\ng47\nsssS'asset'\np10418\n(dp10419\nS'mandatory'\np10420\n(dp10421\nS'editable'\np10422\nI00\nsS'value'\np10423\nI00\nssS'name'\np10424\n(dp10425\nS'editable'\np10426\nI01\nsS'value'\np10427\nS'Asset'\np10428\nssS'data_type'\np10429\n(dp10430\nS'editable'\np10431\nI00\nsS'value'\np10432\nS'entity'\np10433\nssS'entity_type'\np10434\n(dp10435\nS'editable'\np10436\nI00\nsS'value'\np10437\nS'AssetElementConnection'\np10438\nssS'editable'\np10439\n(dp10440\nS'editable'\np10441\nI00\nsS'value'\np10442\nI00\nssS'unique'\np10443\n(dp10444\nS'editable'\np10445\nI00\nsS'value'\np10446\nI00\nssS'properties'\np10447\n(dp10448\nS'default_value'\np10449\n(dp10450\nS'editable'\np10451\nI00\nsS'value'\np10452\nNssS'summary_default'\np10453\n(dp10454\nS'editable'\np10455\nI00\nsS'value'\np10456\nS'none'\np10457\nssS'valid_types'\np10458\n(dp10459\nS'editable'\np10460\nI00\nsS'value'\np10461\n(lp10462\nS'Asset'\np10463\nasssS'description'\np10464\n(dp10465\nS'editable'\np10466\nI01\nsS'value'\np10467\ng47\nsssS'id'\np10468\n(dp10469\nS'mandatory'\np10470\n(dp10471\nS'editable'\np10472\nI00\nsS'value'\np10473\nI01\nssS'name'\np10474\n(dp10475\nS'editable'\np10476\nI01\nsS'value'\np10477\nS'Id'\np10478\nssS'data_type'\np10479\n(dp10480\nS'editable'\np10481\nI00\nsS'value'\np10482\nS'number'\np10483\nssS'entity_type'\np10484\n(dp10485\nS'editable'\np10486\nI00\nsS'value'\np10487\nS'AssetElementConnection'\np10488\nssS'editable'\np10489\n(dp10490\nS'editable'\np10491\nI00\nsS'value'\np10492\nI00\nssS'unique'\np10493\n(dp10494\nS'editable'\np10495\nI00\nsS'value'\np10496\nI00\nssS'properties'\np10497\n(dp10498\nS'default_value'\np10499\n(dp10500\nS'editable'\np10501\nI00\nsS'value'\np10502\nNssS'summary_default'\np10503\n(dp10504\nS'editable'\np10505\nI00\nsS'value'\np10506\nS'none'\np10507\nsssS'description'\np10508\n(dp10509\nS'editable'\np10510\nI01\nsS'value'\np10511\ng47\nssssS'ReleaseTicketConnection'\np10512\n(dp10513\nS'release'\np10514\n(dp10515\nS'mandatory'\np10516\n(dp10517\nS'editable'\np10518\nI00\nsS'value'\np10519\nI00\nssS'name'\np10520\n(dp10521\nS'editable'\np10522\nI01\nsS'value'\np10523\nS'Release'\np10524\nssS'data_type'\np10525\n(dp10526\nS'editable'\np10527\nI00\nsS'value'\np10528\nS'entity'\np10529\nssS'entity_type'\np10530\n(dp10531\nS'editable'\np10532\nI00\nsS'value'\np10533\nS'ReleaseTicketConnection'\np10534\nssS'editable'\np10535\n(dp10536\nS'editable'\np10537\nI00\nsS'value'\np10538\nI00\nssS'unique'\np10539\n(dp10540\nS'editable'\np10541\nI00\nsS'value'\np10542\nI00\nssS'properties'\np10543\n(dp10544\nS'default_value'\np10545\n(dp10546\nS'editable'\np10547\nI00\nsS'value'\np10548\nNssS'summary_default'\np10549\n(dp10550\nS'editable'\np10551\nI00\nsS'value'\np10552\nS'none'\np10553\nssS'valid_types'\np10554\n(dp10555\nS'editable'\np10556\nI00\nsS'value'\np10557\n(lp10558\nS'Release'\np10559\nasssS'description'\np10560\n(dp10561\nS'editable'\np10562\nI01\nsS'value'\np10563\ng47\nsssS'ticket'\np10564\n(dp10565\nS'mandatory'\np10566\n(dp10567\nS'editable'\np10568\nI00\nsS'value'\np10569\nI00\nssS'name'\np10570\n(dp10571\nS'editable'\np10572\nI01\nsS'value'\np10573\nS'Ticket'\np10574\nssS'data_type'\np10575\n(dp10576\nS'editable'\np10577\nI00\nsS'value'\np10578\nS'entity'\np10579\nssS'entity_type'\np10580\n(dp10581\nS'editable'\np10582\nI00\nsS'value'\np10583\nS'ReleaseTicketConnection'\np10584\nssS'editable'\np10585\n(dp10586\nS'editable'\np10587\nI00\nsS'value'\np10588\nI00\nssS'unique'\np10589\n(dp10590\nS'editable'\np10591\nI00\nsS'value'\np10592\nI00\nssS'properties'\np10593\n(dp10594\nS'default_value'\np10595\n(dp10596\nS'editable'\np10597\nI00\nsS'value'\np10598\nNssS'summary_default'\np10599\n(dp10600\nS'editable'\np10601\nI00\nsS'value'\np10602\nS'none'\np10603\nssS'valid_types'\np10604\n(dp10605\nS'editable'\np10606\nI00\nsS'value'\np10607\n(lp10608\nS'Ticket'\np10609\nasssS'description'\np10610\n(dp10611\nS'editable'\np10612\nI01\nsS'value'\np10613\ng47\nsssS'id'\np10614\n(dp10615\nS'mandatory'\np10616\n(dp10617\nS'editable'\np10618\nI00\nsS'value'\np10619\nI01\nssS'name'\np10620\n(dp10621\nS'editable'\np10622\nI01\nsS'value'\np10623\nS'Id'\np10624\nssS'data_type'\np10625\n(dp10626\nS'editable'\np10627\nI00\nsS'value'\np10628\nS'number'\np10629\nssS'entity_type'\np10630\n(dp10631\nS'editable'\np10632\nI00\nsS'value'\np10633\nS'ReleaseTicketConnection'\np10634\nssS'editable'\np10635\n(dp10636\nS'editable'\np10637\nI00\nsS'value'\np10638\nI00\nssS'unique'\np10639\n(dp10640\nS'editable'\np10641\nI00\nsS'value'\np10642\nI00\nssS'properties'\np10643\n(dp10644\nS'default_value'\np10645\n(dp10646\nS'editable'\np10647\nI00\nsS'value'\np10648\nNssS'summary_default'\np10649\n(dp10650\nS'editable'\np10651\nI00\nsS'value'\np10652\nS'none'\np10653\nsssS'description'\np10654\n(dp10655\nS'editable'\np10656\nI01\nsS'value'\np10657\ng47\nsssS'cached_display_name'\np10658\n(dp10659\nS'mandatory'\np10660\n(dp10661\nS'editable'\np10662\nI00\nsS'value'\np10663\nI00\nssS'name'\np10664\n(dp10665\nS'editable'\np10666\nI01\nsS'value'\np10667\nS'Cached Display Name'\np10668\nssS'data_type'\np10669\n(dp10670\nS'editable'\np10671\nI00\nsS'value'\np10672\nS'text'\np10673\nssS'entity_type'\np10674\n(dp10675\nS'editable'\np10676\nI00\nsS'value'\np10677\nS'ReleaseTicketConnection'\np10678\nssS'editable'\np10679\n(dp10680\nS'editable'\np10681\nI00\nsS'value'\np10682\nI01\nssS'unique'\np10683\n(dp10684\nS'editable'\np10685\nI00\nsS'value'\np10686\nI00\nssS'properties'\np10687\n(dp10688\nS'default_value'\np10689\n(dp10690\nS'editable'\np10691\nI00\nsS'value'\np10692\nNssS'summary_default'\np10693\n(dp10694\nS'editable'\np10695\nI00\nsS'value'\np10696\nS'none'\np10697\nsssS'description'\np10698\n(dp10699\nS'editable'\np10700\nI01\nsS'value'\np10701\ng47\nssssS'RevisionRevisionConnection'\np10702\n(dp10703\nS'dest_revision'\np10704\n(dp10705\nS'mandatory'\np10706\n(dp10707\nS'editable'\np10708\nI00\nsS'value'\np10709\nI00\nssS'name'\np10710\n(dp10711\nS'editable'\np10712\nI01\nsS'value'\np10713\nS'Destination Revision'\np10714\nssS'data_type'\np10715\n(dp10716\nS'editable'\np10717\nI00\nsS'value'\np10718\nS'entity'\np10719\nssS'entity_type'\np10720\n(dp10721\nS'editable'\np10722\nI00\nsS'value'\np10723\nS'RevisionRevisionConnection'\np10724\nssS'editable'\np10725\n(dp10726\nS'editable'\np10727\nI00\nsS'value'\np10728\nI00\nssS'unique'\np10729\n(dp10730\nS'editable'\np10731\nI00\nsS'value'\np10732\nI00\nssS'properties'\np10733\n(dp10734\nS'default_value'\np10735\n(dp10736\nS'editable'\np10737\nI00\nsS'value'\np10738\nNssS'summary_default'\np10739\n(dp10740\nS'editable'\np10741\nI00\nsS'value'\np10742\nS'none'\np10743\nssS'valid_types'\np10744\n(dp10745\nS'editable'\np10746\nI00\nsS'value'\np10747\n(lp10748\nS'Revision'\np10749\nasssS'description'\np10750\n(dp10751\nS'editable'\np10752\nI01\nsS'value'\np10753\ng47\nsssS'source_revision'\np10754\n(dp10755\nS'mandatory'\np10756\n(dp10757\nS'editable'\np10758\nI00\nsS'value'\np10759\nI00\nssS'name'\np10760\n(dp10761\nS'editable'\np10762\nI01\nsS'value'\np10763\nS'Source Revision'\np10764\nssS'data_type'\np10765\n(dp10766\nS'editable'\np10767\nI00\nsS'value'\np10768\nS'entity'\np10769\nssS'entity_type'\np10770\n(dp10771\nS'editable'\np10772\nI00\nsS'value'\np10773\nS'RevisionRevisionConnection'\np10774\nssS'editable'\np10775\n(dp10776\nS'editable'\np10777\nI00\nsS'value'\np10778\nI00\nssS'unique'\np10779\n(dp10780\nS'editable'\np10781\nI00\nsS'value'\np10782\nI00\nssS'properties'\np10783\n(dp10784\nS'default_value'\np10785\n(dp10786\nS'editable'\np10787\nI00\nsS'value'\np10788\nNssS'summary_default'\np10789\n(dp10790\nS'editable'\np10791\nI00\nsS'value'\np10792\nS'none'\np10793\nssS'valid_types'\np10794\n(dp10795\nS'editable'\np10796\nI00\nsS'value'\np10797\n(lp10798\nS'Revision'\np10799\nasssS'description'\np10800\n(dp10801\nS'editable'\np10802\nI01\nsS'value'\np10803\ng47\nsssS'id'\np10804\n(dp10805\nS'mandatory'\np10806\n(dp10807\nS'editable'\np10808\nI00\nsS'value'\np10809\nI01\nssS'name'\np10810\n(dp10811\nS'editable'\np10812\nI01\nsS'value'\np10813\nS'Id'\np10814\nssS'data_type'\np10815\n(dp10816\nS'editable'\np10817\nI00\nsS'value'\np10818\nS'number'\np10819\nssS'entity_type'\np10820\n(dp10821\nS'editable'\np10822\nI00\nsS'value'\np10823\nS'RevisionRevisionConnection'\np10824\nssS'editable'\np10825\n(dp10826\nS'editable'\np10827\nI00\nsS'value'\np10828\nI00\nssS'unique'\np10829\n(dp10830\nS'editable'\np10831\nI00\nsS'value'\np10832\nI00\nssS'properties'\np10833\n(dp10834\nS'default_value'\np10835\n(dp10836\nS'editable'\np10837\nI00\nsS'value'\np10838\nNssS'summary_default'\np10839\n(dp10840\nS'editable'\np10841\nI00\nsS'value'\np10842\nS'none'\np10843\nsssS'description'\np10844\n(dp10845\nS'editable'\np10846\nI01\nsS'value'\np10847\ng47\nsssS'cached_display_name'\np10848\n(dp10849\nS'mandatory'\np10850\n(dp10851\nS'editable'\np10852\nI00\nsS'value'\np10853\nI00\nssS'name'\np10854\n(dp10855\nS'editable'\np10856\nI01\nsS'value'\np10857\nS'Cached Display Name'\np10858\nssS'data_type'\np10859\n(dp10860\nS'editable'\np10861\nI00\nsS'value'\np10862\nS'text'\np10863\nssS'entity_type'\np10864\n(dp10865\nS'editable'\np10866\nI00\nsS'value'\np10867\nS'RevisionRevisionConnection'\np10868\nssS'editable'\np10869\n(dp10870\nS'editable'\np10871\nI00\nsS'value'\np10872\nI01\nssS'unique'\np10873\n(dp10874\nS'editable'\np10875\nI00\nsS'value'\np10876\nI00\nssS'properties'\np10877\n(dp10878\nS'default_value'\np10879\n(dp10880\nS'editable'\np10881\nI00\nsS'value'\np10882\nNssS'summary_default'\np10883\n(dp10884\nS'editable'\np10885\nI00\nsS'value'\np10886\nS'none'\np10887\nsssS'description'\np10888\n(dp10889\nS'editable'\np10890\nI01\nsS'value'\np10891\ng47\nssssS'ProjectUserConnection'\np10892\n(dp10893\nS'project'\np10894\n(dp10895\nS'mandatory'\np10896\n(dp10897\nS'editable'\np10898\nI00\nsS'value'\np10899\nI00\nssS'name'\np10900\n(dp10901\nS'editable'\np10902\nI01\nsS'value'\np10903\nS'Project'\np10904\nssS'data_type'\np10905\n(dp10906\nS'editable'\np10907\nI00\nsS'value'\np10908\nS'entity'\np10909\nssS'entity_type'\np10910\n(dp10911\nS'editable'\np10912\nI00\nsS'value'\np10913\nS'ProjectUserConnection'\np10914\nssS'editable'\np10915\n(dp10916\nS'editable'\np10917\nI00\nsS'value'\np10918\nI00\nssS'unique'\np10919\n(dp10920\nS'editable'\np10921\nI00\nsS'value'\np10922\nI00\nssS'properties'\np10923\n(dp10924\nS'default_value'\np10925\n(dp10926\nS'editable'\np10927\nI00\nsS'value'\np10928\nNssS'summary_default'\np10929\n(dp10930\nS'editable'\np10931\nI00\nsS'value'\np10932\nS'none'\np10933\nssS'valid_types'\np10934\n(dp10935\nS'editable'\np10936\nI00\nsS'value'\np10937\n(lp10938\nS'Project'\np10939\nasssS'description'\np10940\n(dp10941\nS'editable'\np10942\nI01\nsS'value'\np10943\ng47\nsssS'cached_display_name'\np10944\n(dp10945\nS'mandatory'\np10946\n(dp10947\nS'editable'\np10948\nI00\nsS'value'\np10949\nI00\nssS'name'\np10950\n(dp10951\nS'editable'\np10952\nI01\nsS'value'\np10953\nS'Cached Display Name'\np10954\nssS'data_type'\np10955\n(dp10956\nS'editable'\np10957\nI00\nsS'value'\np10958\nS'text'\np10959\nssS'entity_type'\np10960\n(dp10961\nS'editable'\np10962\nI00\nsS'value'\np10963\nS'ProjectUserConnection'\np10964\nssS'editable'\np10965\n(dp10966\nS'editable'\np10967\nI00\nsS'value'\np10968\nI01\nssS'unique'\np10969\n(dp10970\nS'editable'\np10971\nI00\nsS'value'\np10972\nI00\nssS'properties'\np10973\n(dp10974\nS'default_value'\np10975\n(dp10976\nS'editable'\np10977\nI00\nsS'value'\np10978\nNssS'summary_default'\np10979\n(dp10980\nS'editable'\np10981\nI00\nsS'value'\np10982\nS'none'\np10983\nsssS'description'\np10984\n(dp10985\nS'editable'\np10986\nI01\nsS'value'\np10987\ng47\nsssS'id'\np10988\n(dp10989\nS'mandatory'\np10990\n(dp10991\nS'editable'\np10992\nI00\nsS'value'\np10993\nI01\nssS'name'\np10994\n(dp10995\nS'editable'\np10996\nI01\nsS'value'\np10997\nS'Id'\np10998\nssS'data_type'\np10999\n(dp11000\nS'editable'\np11001\nI00\nsS'value'\np11002\nS'number'\np11003\nssS'entity_type'\np11004\n(dp11005\nS'editable'\np11006\nI00\nsS'value'\np11007\nS'ProjectUserConnection'\np11008\nssS'editable'\np11009\n(dp11010\nS'editable'\np11011\nI00\nsS'value'\np11012\nI00\nssS'unique'\np11013\n(dp11014\nS'editable'\np11015\nI00\nsS'value'\np11016\nI00\nssS'properties'\np11017\n(dp11018\nS'default_value'\np11019\n(dp11020\nS'editable'\np11021\nI00\nsS'value'\np11022\nNssS'summary_default'\np11023\n(dp11024\nS'editable'\np11025\nI00\nsS'value'\np11026\nS'none'\np11027\nsssS'description'\np11028\n(dp11029\nS'editable'\np11030\nI01\nsS'value'\np11031\ng47\nsssS'user'\np11032\n(dp11033\nS'mandatory'\np11034\n(dp11035\nS'editable'\np11036\nI00\nsS'value'\np11037\nI00\nssS'name'\np11038\n(dp11039\nS'editable'\np11040\nI01\nsS'value'\np11041\nS'Person'\np11042\nssS'data_type'\np11043\n(dp11044\nS'editable'\np11045\nI00\nsS'value'\np11046\nS'entity'\np11047\nssS'entity_type'\np11048\n(dp11049\nS'editable'\np11050\nI00\nsS'value'\np11051\nS'ProjectUserConnection'\np11052\nssS'editable'\np11053\n(dp11054\nS'editable'\np11055\nI00\nsS'value'\np11056\nI00\nssS'unique'\np11057\n(dp11058\nS'editable'\np11059\nI00\nsS'value'\np11060\nI00\nssS'properties'\np11061\n(dp11062\nS'default_value'\np11063\n(dp11064\nS'editable'\np11065\nI00\nsS'value'\np11066\nNssS'summary_default'\np11067\n(dp11068\nS'editable'\np11069\nI00\nsS'value'\np11070\nS'none'\np11071\nssS'valid_types'\np11072\n(dp11073\nS'editable'\np11074\nI00\nsS'value'\np11075\n(lp11076\nS'HumanUser'\np11077\nasssS'description'\np11078\n(dp11079\nS'editable'\np11080\nI01\nsS'value'\np11081\ng47\nssssS'MocapTakeRangeShotConnection'\np11082\n(dp11083\nS'mocap_take_range'\np11084\n(dp11085\nS'mandatory'\np11086\n(dp11087\nS'editable'\np11088\nI00\nsS'value'\np11089\nI00\nssS'name'\np11090\n(dp11091\nS'editable'\np11092\nI01\nsS'value'\np11093\nS'Mocap Take Range'\np11094\nssS'data_type'\np11095\n(dp11096\nS'editable'\np11097\nI00\nsS'value'\np11098\nS'entity'\np11099\nssS'entity_type'\np11100\n(dp11101\nS'editable'\np11102\nI00\nsS'value'\np11103\nS'MocapTakeRangeShotConnection'\np11104\nssS'editable'\np11105\n(dp11106\nS'editable'\np11107\nI00\nsS'value'\np11108\nI00\nssS'unique'\np11109\n(dp11110\nS'editable'\np11111\nI00\nsS'value'\np11112\nI00\nssS'properties'\np11113\n(dp11114\nS'default_value'\np11115\n(dp11116\nS'editable'\np11117\nI00\nsS'value'\np11118\nNssS'summary_default'\np11119\n(dp11120\nS'editable'\np11121\nI00\nsS'value'\np11122\nS'none'\np11123\nssS'valid_types'\np11124\n(dp11125\nS'editable'\np11126\nI00\nsS'value'\np11127\n(lp11128\nS'MocapTakeRange'\np11129\nasssS'description'\np11130\n(dp11131\nS'editable'\np11132\nI01\nsS'value'\np11133\ng47\nsssS'cached_display_name'\np11134\n(dp11135\nS'mandatory'\np11136\n(dp11137\nS'editable'\np11138\nI00\nsS'value'\np11139\nI00\nssS'name'\np11140\n(dp11141\nS'editable'\np11142\nI01\nsS'value'\np11143\nS'Cached Display Name'\np11144\nssS'data_type'\np11145\n(dp11146\nS'editable'\np11147\nI00\nsS'value'\np11148\nS'text'\np11149\nssS'entity_type'\np11150\n(dp11151\nS'editable'\np11152\nI00\nsS'value'\np11153\nS'MocapTakeRangeShotConnection'\np11154\nssS'editable'\np11155\n(dp11156\nS'editable'\np11157\nI00\nsS'value'\np11158\nI01\nssS'unique'\np11159\n(dp11160\nS'editable'\np11161\nI00\nsS'value'\np11162\nI00\nssS'properties'\np11163\n(dp11164\nS'default_value'\np11165\n(dp11166\nS'editable'\np11167\nI00\nsS'value'\np11168\nNssS'summary_default'\np11169\n(dp11170\nS'editable'\np11171\nI00\nsS'value'\np11172\nS'none'\np11173\nsssS'description'\np11174\n(dp11175\nS'editable'\np11176\nI01\nsS'value'\np11177\ng47\nsssS'shot'\np11178\n(dp11179\nS'mandatory'\np11180\n(dp11181\nS'editable'\np11182\nI00\nsS'value'\np11183\nI00\nssS'name'\np11184\n(dp11185\nS'editable'\np11186\nI01\nsS'value'\np11187\nS'Shot'\np11188\nssS'data_type'\np11189\n(dp11190\nS'editable'\np11191\nI00\nsS'value'\np11192\nS'entity'\np11193\nssS'entity_type'\np11194\n(dp11195\nS'editable'\np11196\nI00\nsS'value'\np11197\nS'MocapTakeRangeShotConnection'\np11198\nssS'editable'\np11199\n(dp11200\nS'editable'\np11201\nI00\nsS'value'\np11202\nI00\nssS'unique'\np11203\n(dp11204\nS'editable'\np11205\nI00\nsS'value'\np11206\nI00\nssS'properties'\np11207\n(dp11208\nS'default_value'\np11209\n(dp11210\nS'editable'\np11211\nI00\nsS'value'\np11212\nNssS'summary_default'\np11213\n(dp11214\nS'editable'\np11215\nI00\nsS'value'\np11216\nS'none'\np11217\nssS'valid_types'\np11218\n(dp11219\nS'editable'\np11220\nI00\nsS'value'\np11221\n(lp11222\nS'Shot'\np11223\nasssS'description'\np11224\n(dp11225\nS'editable'\np11226\nI01\nsS'value'\np11227\ng47\nsssS'id'\np11228\n(dp11229\nS'mandatory'\np11230\n(dp11231\nS'editable'\np11232\nI00\nsS'value'\np11233\nI01\nssS'name'\np11234\n(dp11235\nS'editable'\np11236\nI01\nsS'value'\np11237\nS'Id'\np11238\nssS'data_type'\np11239\n(dp11240\nS'editable'\np11241\nI00\nsS'value'\np11242\nS'number'\np11243\nssS'entity_type'\np11244\n(dp11245\nS'editable'\np11246\nI00\nsS'value'\np11247\nS'MocapTakeRangeShotConnection'\np11248\nssS'editable'\np11249\n(dp11250\nS'editable'\np11251\nI00\nsS'value'\np11252\nI00\nssS'unique'\np11253\n(dp11254\nS'editable'\np11255\nI00\nsS'value'\np11256\nI00\nssS'properties'\np11257\n(dp11258\nS'default_value'\np11259\n(dp11260\nS'editable'\np11261\nI00\nsS'value'\np11262\nNssS'summary_default'\np11263\n(dp11264\nS'editable'\np11265\nI00\nsS'value'\np11266\nS'none'\np11267\nsssS'description'\np11268\n(dp11269\nS'editable'\np11270\nI01\nsS'value'\np11271\ng47\nssssS'PublishedFileDependency'\np11272\n(dp11273\nS'cached_display_name'\np11274\n(dp11275\nS'mandatory'\np11276\n(dp11277\nS'editable'\np11278\nI00\nsS'value'\np11279\nI00\nssS'name'\np11280\n(dp11281\nS'editable'\np11282\nI01\nsS'value'\np11283\nS'Cached Display Name'\np11284\nssS'data_type'\np11285\n(dp11286\nS'editable'\np11287\nI00\nsS'value'\np11288\nS'text'\np11289\nssS'entity_type'\np11290\n(dp11291\nS'editable'\np11292\nI00\nsS'value'\np11293\nS'PublishedFileDependency'\np11294\nssS'editable'\np11295\n(dp11296\nS'editable'\np11297\nI00\nsS'value'\np11298\nI01\nssS'unique'\np11299\n(dp11300\nS'editable'\np11301\nI00\nsS'value'\np11302\nI00\nssS'properties'\np11303\n(dp11304\nS'default_value'\np11305\n(dp11306\nS'editable'\np11307\nI00\nsS'value'\np11308\nNssS'summary_default'\np11309\n(dp11310\nS'editable'\np11311\nI00\nsS'value'\np11312\nS'none'\np11313\nsssS'description'\np11314\n(dp11315\nS'editable'\np11316\nI01\nsS'value'\np11317\ng47\nsssS'dependent_published_file'\np11318\n(dp11319\nS'mandatory'\np11320\n(dp11321\nS'editable'\np11322\nI00\nsS'value'\np11323\nI00\nssS'name'\np11324\n(dp11325\nS'editable'\np11326\nI01\nsS'value'\np11327\nS'Dependent Published File'\np11328\nssS'data_type'\np11329\n(dp11330\nS'editable'\np11331\nI00\nsS'value'\np11332\nS'entity'\np11333\nssS'entity_type'\np11334\n(dp11335\nS'editable'\np11336\nI00\nsS'value'\np11337\nS'PublishedFileDependency'\np11338\nssS'editable'\np11339\n(dp11340\nS'editable'\np11341\nI00\nsS'value'\np11342\nI01\nssS'unique'\np11343\n(dp11344\nS'editable'\np11345\nI00\nsS'value'\np11346\nI00\nssS'properties'\np11347\n(dp11348\nS'default_value'\np11349\n(dp11350\nS'editable'\np11351\nI00\nsS'value'\np11352\nNssS'summary_default'\np11353\n(dp11354\nS'editable'\np11355\nI00\nsS'value'\np11356\nS'none'\np11357\nssS'valid_types'\np11358\n(dp11359\nS'editable'\np11360\nI00\nsS'value'\np11361\n(lp11362\nS'PublishedFile'\np11363\nasssS'description'\np11364\n(dp11365\nS'editable'\np11366\nI01\nsS'value'\np11367\ng47\nsssS'id'\np11368\n(dp11369\nS'mandatory'\np11370\n(dp11371\nS'editable'\np11372\nI00\nsS'value'\np11373\nI00\nssS'name'\np11374\n(dp11375\nS'editable'\np11376\nI01\nsS'value'\np11377\nS'Id'\np11378\nssS'data_type'\np11379\n(dp11380\nS'editable'\np11381\nI00\nsS'value'\np11382\nS'number'\np11383\nssS'entity_type'\np11384\n(dp11385\nS'editable'\np11386\nI00\nsS'value'\np11387\nS'PublishedFileDependency'\np11388\nssS'editable'\np11389\n(dp11390\nS'editable'\np11391\nI00\nsS'value'\np11392\nI00\nssS'unique'\np11393\n(dp11394\nS'editable'\np11395\nI00\nsS'value'\np11396\nI00\nssS'properties'\np11397\n(dp11398\nS'default_value'\np11399\n(dp11400\nS'editable'\np11401\nI00\nsS'value'\np11402\nNssS'summary_default'\np11403\n(dp11404\nS'editable'\np11405\nI00\nsS'value'\np11406\nS'none'\np11407\nsssS'description'\np11408\n(dp11409\nS'editable'\np11410\nI01\nsS'value'\np11411\ng47\nsssS'published_file'\np11412\n(dp11413\nS'mandatory'\np11414\n(dp11415\nS'editable'\np11416\nI00\nsS'value'\np11417\nI00\nssS'name'\np11418\n(dp11419\nS'editable'\np11420\nI01\nsS'value'\np11421\nS'Published File'\np11422\nssS'data_type'\np11423\n(dp11424\nS'editable'\np11425\nI00\nsS'value'\np11426\nS'entity'\np11427\nssS'entity_type'\np11428\n(dp11429\nS'editable'\np11430\nI00\nsS'value'\np11431\nS'PublishedFileDependency'\np11432\nssS'editable'\np11433\n(dp11434\nS'editable'\np11435\nI00\nsS'value'\np11436\nI01\nssS'unique'\np11437\n(dp11438\nS'editable'\np11439\nI00\nsS'value'\np11440\nI00\nssS'properties'\np11441\n(dp11442\nS'default_value'\np11443\n(dp11444\nS'editable'\np11445\nI00\nsS'value'\np11446\nNssS'summary_default'\np11447\n(dp11448\nS'editable'\np11449\nI00\nsS'value'\np11450\nS'none'\np11451\nssS'valid_types'\np11452\n(dp11453\nS'editable'\np11454\nI00\nsS'value'\np11455\n(lp11456\nS'PublishedFile'\np11457\nasssS'description'\np11458\n(dp11459\nS'editable'\np11460\nI01\nsS'value'\np11461\ng47\nssssS'Step'\np11462\n(dp11463\nS'code'\np11464\n(dp11465\nS'mandatory'\np11466\n(dp11467\nS'editable'\np11468\nI00\nsS'value'\np11469\nI01\nssS'name'\np11470\n(dp11471\nS'editable'\np11472\nI01\nsS'value'\np11473\nS'Pipeline Step'\np11474\nssS'data_type'\np11475\n(dp11476\nS'editable'\np11477\nI00\nsS'value'\np11478\nS'text'\np11479\nssS'entity_type'\np11480\n(dp11481\nS'editable'\np11482\nI00\nsS'value'\np11483\nS'Step'\np11484\nssS'editable'\np11485\n(dp11486\nS'editable'\np11487\nI00\nsS'value'\np11488\nI01\nssS'unique'\np11489\n(dp11490\nS'editable'\np11491\nI00\nsS'value'\np11492\nI00\nssS'properties'\np11493\n(dp11494\nS'default_value'\np11495\n(dp11496\nS'editable'\np11497\nI00\nsS'value'\np11498\nNssS'summary_default'\np11499\n(dp11500\nS'editable'\np11501\nI01\nsS'value'\np11502\nS'none'\np11503\nsssS'description'\np11504\n(dp11505\nS'editable'\np11506\nI01\nsS'value'\np11507\ng47\nsssS'description'\np11508\n(dp11509\nS'mandatory'\np11510\n(dp11511\nS'editable'\np11512\nI00\nsS'value'\np11513\nI00\nssS'name'\np11514\n(dp11515\nS'editable'\np11516\nI01\nsS'value'\np11517\nS'Description'\np11518\nssS'data_type'\np11519\n(dp11520\nS'editable'\np11521\nI00\nsS'value'\np11522\nS'text'\np11523\nssS'entity_type'\np11524\n(dp11525\nS'editable'\np11526\nI00\nsS'value'\np11527\nS'Step'\np11528\nssS'editable'\np11529\n(dp11530\nS'editable'\np11531\nI00\nsS'value'\np11532\nI01\nssS'unique'\np11533\n(dp11534\nS'editable'\np11535\nI00\nsS'value'\np11536\nI00\nssS'properties'\np11537\n(dp11538\nS'default_value'\np11539\n(dp11540\nS'editable'\np11541\nI00\nsS'value'\np11542\nNssS'summary_default'\np11543\n(dp11544\nS'editable'\np11545\nI01\nsS'value'\np11546\nS'none'\np11547\nsssS'description'\np11548\n(dp11549\nS'editable'\np11550\nI01\nsS'value'\np11551\ng47\nsssS'short_name'\np11552\n(dp11553\nS'mandatory'\np11554\n(dp11555\nS'editable'\np11556\nI00\nsS'value'\np11557\nI00\nssS'name'\np11558\n(dp11559\nS'editable'\np11560\nI01\nsS'value'\np11561\nS'Short Code'\np11562\nssS'data_type'\np11563\n(dp11564\nS'editable'\np11565\nI00\nsS'value'\np11566\nS'text'\np11567\nssS'entity_type'\np11568\n(dp11569\nS'editable'\np11570\nI00\nsS'value'\np11571\nS'Step'\np11572\nssS'editable'\np11573\n(dp11574\nS'editable'\np11575\nI00\nsS'value'\np11576\nI01\nssS'unique'\np11577\n(dp11578\nS'editable'\np11579\nI00\nsS'value'\np11580\nI00\nssS'properties'\np11581\n(dp11582\nS'default_value'\np11583\n(dp11584\nS'editable'\np11585\nI00\nsS'value'\np11586\nNssS'summary_default'\np11587\n(dp11588\nS'editable'\np11589\nI01\nsS'value'\np11590\nS'none'\np11591\nsssS'description'\np11592\n(dp11593\nS'editable'\np11594\nI01\nsS'value'\np11595\ng47\nsssS'list_order'\np11596\n(dp11597\nS'mandatory'\np11598\n(dp11599\nS'editable'\np11600\nI00\nsS'value'\np11601\nI00\nssS'name'\np11602\n(dp11603\nS'editable'\np11604\nI01\nsS'value'\np11605\nS'Order'\np11606\nssS'data_type'\np11607\n(dp11608\nS'editable'\np11609\nI00\nsS'value'\np11610\nS'number'\np11611\nssS'entity_type'\np11612\n(dp11613\nS'editable'\np11614\nI00\nsS'value'\np11615\nS'Step'\np11616\nssS'editable'\np11617\n(dp11618\nS'editable'\np11619\nI00\nsS'value'\np11620\nI01\nssS'unique'\np11621\n(dp11622\nS'editable'\np11623\nI00\nsS'value'\np11624\nI00\nssS'properties'\np11625\n(dp11626\nS'default_value'\np11627\n(dp11628\nS'editable'\np11629\nI00\nsS'value'\np11630\nNssS'summary_default'\np11631\n(dp11632\nS'editable'\np11633\nI01\nsS'value'\np11634\nS'none'\np11635\nsssS'description'\np11636\n(dp11637\nS'editable'\np11638\nI01\nsS'value'\np11639\ng47\nsssS'color'\np11640\n(dp11641\nS'mandatory'\np11642\n(dp11643\nS'editable'\np11644\nI00\nsS'value'\np11645\nI00\nssS'name'\np11646\n(dp11647\nS'editable'\np11648\nI01\nsS'value'\np11649\nS'Color'\np11650\nssS'data_type'\np11651\n(dp11652\nS'editable'\np11653\nI00\nsS'value'\np11654\nS'color'\np11655\nssS'entity_type'\np11656\n(dp11657\nS'editable'\np11658\nI00\nsS'value'\np11659\nS'Step'\np11660\nssS'editable'\np11661\n(dp11662\nS'editable'\np11663\nI00\nsS'value'\np11664\nI01\nssS'unique'\np11665\n(dp11666\nS'editable'\np11667\nI00\nsS'value'\np11668\nI00\nssS'properties'\np11669\n(dp11670\nS'default_value'\np11671\n(dp11672\nS'editable'\np11673\nI00\nsS'value'\np11674\nNssS'summary_default'\np11675\n(dp11676\nS'editable'\np11677\nI01\nsS'value'\np11678\nS'none'\np11679\nsssS'description'\np11680\n(dp11681\nS'editable'\np11682\nI01\nsS'value'\np11683\ng47\nsssS'created_at'\np11684\n(dp11685\nS'mandatory'\np11686\n(dp11687\nS'editable'\np11688\nI00\nsS'value'\np11689\nI00\nssS'name'\np11690\n(dp11691\nS'editable'\np11692\nI01\nsS'value'\np11693\nS'Date Created'\np11694\nssS'data_type'\np11695\n(dp11696\nS'editable'\np11697\nI00\nsS'value'\np11698\nS'date_time'\np11699\nssS'entity_type'\np11700\n(dp11701\nS'editable'\np11702\nI00\nsS'value'\np11703\nS'Step'\np11704\nssS'editable'\np11705\n(dp11706\nS'editable'\np11707\nI00\nsS'value'\np11708\nI00\nssS'unique'\np11709\n(dp11710\nS'editable'\np11711\nI00\nsS'value'\np11712\nI00\nssS'properties'\np11713\n(dp11714\nS'default_value'\np11715\n(dp11716\nS'editable'\np11717\nI00\nsS'value'\np11718\nNssS'summary_default'\np11719\n(dp11720\nS'editable'\np11721\nI01\nsS'value'\np11722\nS'none'\np11723\nsssS'description'\np11724\n(dp11725\nS'editable'\np11726\nI01\nsS'value'\np11727\ng47\nsssS'entity_type'\np11728\n(dp11729\nS'mandatory'\np11730\n(dp11731\nS'editable'\np11732\nI00\nsS'value'\np11733\nI00\nssS'name'\np11734\n(dp11735\nS'editable'\np11736\nI01\nsS'value'\np11737\nS'Entity Type'\np11738\nssS'data_type'\np11739\n(dp11740\nS'editable'\np11741\nI00\nsS'value'\np11742\nS'entity_type'\np11743\nssS'entity_type'\np11744\n(dp11745\nS'editable'\np11746\nI00\nsS'value'\np11747\nS'Step'\np11748\nssS'editable'\np11749\n(dp11750\nS'editable'\np11751\nI00\nsS'value'\np11752\nI01\nssS'unique'\np11753\n(dp11754\nS'editable'\np11755\nI00\nsS'value'\np11756\nI00\nssS'properties'\np11757\n(dp11758\nS'default_value'\np11759\n(dp11760\nS'editable'\np11761\nI00\nsS'value'\np11762\nNssS'summary_default'\np11763\n(dp11764\nS'editable'\np11765\nI01\nsS'value'\np11766\nS'none'\np11767\nsssS'description'\np11768\n(dp11769\nS'editable'\np11770\nI01\nsS'value'\np11771\ng47\nsssS'updated_at'\np11772\n(dp11773\nS'mandatory'\np11774\n(dp11775\nS'editable'\np11776\nI00\nsS'value'\np11777\nI00\nssS'name'\np11778\n(dp11779\nS'editable'\np11780\nI01\nsS'value'\np11781\nS'Date Updated'\np11782\nssS'data_type'\np11783\n(dp11784\nS'editable'\np11785\nI00\nsS'value'\np11786\nS'date_time'\np11787\nssS'entity_type'\np11788\n(dp11789\nS'editable'\np11790\nI00\nsS'value'\np11791\nS'Step'\np11792\nssS'editable'\np11793\n(dp11794\nS'editable'\np11795\nI00\nsS'value'\np11796\nI00\nssS'unique'\np11797\n(dp11798\nS'editable'\np11799\nI00\nsS'value'\np11800\nI00\nssS'properties'\np11801\n(dp11802\nS'default_value'\np11803\n(dp11804\nS'editable'\np11805\nI00\nsS'value'\np11806\nNssS'summary_default'\np11807\n(dp11808\nS'editable'\np11809\nI01\nsS'value'\np11810\nS'none'\np11811\nsssS'description'\np11812\n(dp11813\nS'editable'\np11814\nI01\nsS'value'\np11815\ng47\nsssS'created_by'\np11816\n(dp11817\nS'mandatory'\np11818\n(dp11819\nS'editable'\np11820\nI00\nsS'value'\np11821\nI00\nssS'name'\np11822\n(dp11823\nS'editable'\np11824\nI01\nsS'value'\np11825\nS'Created by'\np11826\nssS'data_type'\np11827\n(dp11828\nS'editable'\np11829\nI00\nsS'value'\np11830\nS'entity'\np11831\nssS'entity_type'\np11832\n(dp11833\nS'editable'\np11834\nI00\nsS'value'\np11835\nS'Step'\np11836\nssS'editable'\np11837\n(dp11838\nS'editable'\np11839\nI00\nsS'value'\np11840\nI00\nssS'unique'\np11841\n(dp11842\nS'editable'\np11843\nI00\nsS'value'\np11844\nI00\nssS'properties'\np11845\n(dp11846\nS'default_value'\np11847\n(dp11848\nS'editable'\np11849\nI00\nsS'value'\np11850\nNssS'summary_default'\np11851\n(dp11852\nS'editable'\np11853\nI01\nsS'value'\np11854\nS'none'\np11855\nssS'valid_types'\np11856\n(dp11857\nS'editable'\np11858\nI01\nsS'value'\np11859\n(lp11860\nS'HumanUser'\np11861\naS'ApiUser'\np11862\nasssS'description'\np11863\n(dp11864\nS'editable'\np11865\nI01\nsS'value'\np11866\ng47\nsssS'cached_display_name'\np11867\n(dp11868\nS'mandatory'\np11869\n(dp11870\nS'editable'\np11871\nI00\nsS'value'\np11872\nI00\nssS'name'\np11873\n(dp11874\nS'editable'\np11875\nI01\nsS'value'\np11876\nS'Cached Display Name'\np11877\nssS'data_type'\np11878\n(dp11879\nS'editable'\np11880\nI00\nsS'value'\np11881\nS'text'\np11882\nssS'entity_type'\np11883\n(dp11884\nS'editable'\np11885\nI00\nsS'value'\np11886\nS'Step'\np11887\nssS'editable'\np11888\n(dp11889\nS'editable'\np11890\nI00\nsS'value'\np11891\nI01\nssS'unique'\np11892\n(dp11893\nS'editable'\np11894\nI00\nsS'value'\np11895\nI00\nssS'properties'\np11896\n(dp11897\nS'default_value'\np11898\n(dp11899\nS'editable'\np11900\nI00\nsS'value'\np11901\nNssS'summary_default'\np11902\n(dp11903\nS'editable'\np11904\nI00\nsS'value'\np11905\nS'none'\np11906\nsssS'description'\np11907\n(dp11908\nS'editable'\np11909\nI01\nsS'value'\np11910\ng47\nsssS'id'\np11911\n(dp11912\nS'mandatory'\np11913\n(dp11914\nS'editable'\np11915\nI00\nsS'value'\np11916\nI00\nssS'name'\np11917\n(dp11918\nS'editable'\np11919\nI01\nsS'value'\np11920\nS'Id'\np11921\nssS'data_type'\np11922\n(dp11923\nS'editable'\np11924\nI00\nsS'value'\np11925\nS'number'\np11926\nssS'entity_type'\np11927\n(dp11928\nS'editable'\np11929\nI00\nsS'value'\np11930\nS'Step'\np11931\nssS'editable'\np11932\n(dp11933\nS'editable'\np11934\nI00\nsS'value'\np11935\nI00\nssS'unique'\np11936\n(dp11937\nS'editable'\np11938\nI00\nsS'value'\np11939\nI00\nssS'properties'\np11940\n(dp11941\nS'default_value'\np11942\n(dp11943\nS'editable'\np11944\nI00\nsS'value'\np11945\nNssS'summary_default'\np11946\n(dp11947\nS'editable'\np11948\nI00\nsS'value'\np11949\nS'none'\np11950\nsssS'description'\np11951\n(dp11952\nS'editable'\np11953\nI01\nsS'value'\np11954\ng47\nsssS'updated_by'\np11955\n(dp11956\nS'mandatory'\np11957\n(dp11958\nS'editable'\np11959\nI00\nsS'value'\np11960\nI00\nssS'name'\np11961\n(dp11962\nS'editable'\np11963\nI01\nsS'value'\np11964\nS'Updated by'\np11965\nssS'data_type'\np11966\n(dp11967\nS'editable'\np11968\nI00\nsS'value'\np11969\nS'entity'\np11970\nssS'entity_type'\np11971\n(dp11972\nS'editable'\np11973\nI00\nsS'value'\np11974\nS'Step'\np11975\nssS'editable'\np11976\n(dp11977\nS'editable'\np11978\nI00\nsS'value'\np11979\nI00\nssS'unique'\np11980\n(dp11981\nS'editable'\np11982\nI00\nsS'value'\np11983\nI00\nssS'properties'\np11984\n(dp11985\nS'default_value'\np11986\n(dp11987\nS'editable'\np11988\nI00\nsS'value'\np11989\nNssS'summary_default'\np11990\n(dp11991\nS'editable'\np11992\nI01\nsS'value'\np11993\nS'none'\np11994\nssS'valid_types'\np11995\n(dp11996\nS'editable'\np11997\nI01\nsS'value'\np11998\n(lp11999\nS'HumanUser'\np12000\naS'ApiUser'\np12001\nasssS'description'\np12002\n(dp12003\nS'editable'\np12004\nI01\nsS'value'\np12005\ng47\nssssS'AssetLibrary'\np12006\n(dp12007\nS'open_notes_count'\np12008\n(dp12009\nS'mandatory'\np12010\n(dp12011\nS'editable'\np12012\nI00\nsS'value'\np12013\nI00\nssS'name'\np12014\n(dp12015\nS'editable'\np12016\nI01\nsS'value'\np12017\nS'Open Notes Count'\np12018\nssS'data_type'\np12019\n(dp12020\nS'editable'\np12021\nI00\nsS'value'\np12022\nS'text'\np12023\nssS'entity_type'\np12024\n(dp12025\nS'editable'\np12026\nI00\nsS'value'\np12027\nS'AssetLibrary'\np12028\nssS'editable'\np12029\n(dp12030\nS'editable'\np12031\nI00\nsS'value'\np12032\nI00\nssS'unique'\np12033\n(dp12034\nS'editable'\np12035\nI00\nsS'value'\np12036\nI00\nssS'properties'\np12037\n(dp12038\nS'default_value'\np12039\n(dp12040\nS'editable'\np12041\nI00\nsS'value'\np12042\nNssS'summary_default'\np12043\n(dp12044\nS'editable'\np12045\nI01\nsS'value'\np12046\nS'none'\np12047\nsssS'description'\np12048\n(dp12049\nS'editable'\np12050\nI01\nsS'value'\np12051\ng47\nsssS'code'\np12052\n(dp12053\nS'mandatory'\np12054\n(dp12055\nS'editable'\np12056\nI00\nsS'value'\np12057\nI01\nssS'name'\np12058\n(dp12059\nS'editable'\np12060\nI01\nsS'value'\np12061\nS'Asset Library Name'\np12062\nssS'data_type'\np12063\n(dp12064\nS'editable'\np12065\nI00\nsS'value'\np12066\nS'text'\np12067\nssS'entity_type'\np12068\n(dp12069\nS'editable'\np12070\nI00\nsS'value'\np12071\nS'AssetLibrary'\np12072\nssS'editable'\np12073\n(dp12074\nS'editable'\np12075\nI00\nsS'value'\np12076\nI01\nssS'unique'\np12077\n(dp12078\nS'editable'\np12079\nI00\nsS'value'\np12080\nI00\nssS'properties'\np12081\n(dp12082\nS'default_value'\np12083\n(dp12084\nS'editable'\np12085\nI00\nsS'value'\np12086\nNssS'summary_default'\np12087\n(dp12088\nS'editable'\np12089\nI01\nsS'value'\np12090\nS'none'\np12091\nsssS'description'\np12092\n(dp12093\nS'editable'\np12094\nI01\nsS'value'\np12095\ng47\nsssS'open_notes'\np12096\n(dp12097\nS'mandatory'\np12098\n(dp12099\nS'editable'\np12100\nI00\nsS'value'\np12101\nI00\nssS'name'\np12102\n(dp12103\nS'editable'\np12104\nI01\nsS'value'\np12105\nS'Open Notes'\np12106\nssS'data_type'\np12107\n(dp12108\nS'editable'\np12109\nI00\nsS'value'\np12110\nS'multi_entity'\np12111\nssS'entity_type'\np12112\n(dp12113\nS'editable'\np12114\nI00\nsS'value'\np12115\nS'AssetLibrary'\np12116\nssS'editable'\np12117\n(dp12118\nS'editable'\np12119\nI00\nsS'value'\np12120\nI00\nssS'unique'\np12121\n(dp12122\nS'editable'\np12123\nI00\nsS'value'\np12124\nI00\nssS'properties'\np12125\n(dp12126\nS'default_value'\np12127\n(dp12128\nS'editable'\np12129\nI00\nsS'value'\np12130\nNssS'summary_default'\np12131\n(dp12132\nS'editable'\np12133\nI01\nsS'value'\np12134\nS'none'\np12135\nssS'valid_types'\np12136\n(dp12137\nS'editable'\np12138\nI01\nsS'value'\np12139\n(lp12140\nS'Note'\np12141\nasssS'description'\np12142\n(dp12143\nS'editable'\np12144\nI01\nsS'value'\np12145\ng47\nsssS'description'\np12146\n(dp12147\nS'mandatory'\np12148\n(dp12149\nS'editable'\np12150\nI00\nsS'value'\np12151\nI00\nssS'name'\np12152\n(dp12153\nS'editable'\np12154\nI01\nsS'value'\np12155\nS'Description'\np12156\nssS'data_type'\np12157\n(dp12158\nS'editable'\np12159\nI00\nsS'value'\np12160\nS'text'\np12161\nssS'entity_type'\np12162\n(dp12163\nS'editable'\np12164\nI00\nsS'value'\np12165\nS'AssetLibrary'\np12166\nssS'editable'\np12167\n(dp12168\nS'editable'\np12169\nI00\nsS'value'\np12170\nI01\nssS'unique'\np12171\n(dp12172\nS'editable'\np12173\nI00\nsS'value'\np12174\nI00\nssS'properties'\np12175\n(dp12176\nS'default_value'\np12177\n(dp12178\nS'editable'\np12179\nI00\nsS'value'\np12180\nNssS'summary_default'\np12181\n(dp12182\nS'editable'\np12183\nI01\nsS'value'\np12184\nS'none'\np12185\nsssS'description'\np12186\n(dp12187\nS'editable'\np12188\nI01\nsS'value'\np12189\ng47\nsssS'created_at'\np12190\n(dp12191\nS'mandatory'\np12192\n(dp12193\nS'editable'\np12194\nI00\nsS'value'\np12195\nI00\nssS'name'\np12196\n(dp12197\nS'editable'\np12198\nI01\nsS'value'\np12199\nS'Date Created'\np12200\nssS'data_type'\np12201\n(dp12202\nS'editable'\np12203\nI00\nsS'value'\np12204\nS'date_time'\np12205\nssS'entity_type'\np12206\n(dp12207\nS'editable'\np12208\nI00\nsS'value'\np12209\nS'AssetLibrary'\np12210\nssS'editable'\np12211\n(dp12212\nS'editable'\np12213\nI00\nsS'value'\np12214\nI00\nssS'unique'\np12215\n(dp12216\nS'editable'\np12217\nI00\nsS'value'\np12218\nI00\nssS'properties'\np12219\n(dp12220\nS'default_value'\np12221\n(dp12222\nS'editable'\np12223\nI00\nsS'value'\np12224\nNssS'summary_default'\np12225\n(dp12226\nS'editable'\np12227\nI01\nsS'value'\np12228\nS'none'\np12229\nsssS'description'\np12230\n(dp12231\nS'editable'\np12232\nI01\nsS'value'\np12233\ng47\nsssS'updated_at'\np12234\n(dp12235\nS'mandatory'\np12236\n(dp12237\nS'editable'\np12238\nI00\nsS'value'\np12239\nI00\nssS'name'\np12240\n(dp12241\nS'editable'\np12242\nI01\nsS'value'\np12243\nS'Date Updated'\np12244\nssS'data_type'\np12245\n(dp12246\nS'editable'\np12247\nI00\nsS'value'\np12248\nS'date_time'\np12249\nssS'entity_type'\np12250\n(dp12251\nS'editable'\np12252\nI00\nsS'value'\np12253\nS'AssetLibrary'\np12254\nssS'editable'\np12255\n(dp12256\nS'editable'\np12257\nI00\nsS'value'\np12258\nI00\nssS'unique'\np12259\n(dp12260\nS'editable'\np12261\nI00\nsS'value'\np12262\nI00\nssS'properties'\np12263\n(dp12264\nS'default_value'\np12265\n(dp12266\nS'editable'\np12267\nI00\nsS'value'\np12268\nNssS'summary_default'\np12269\n(dp12270\nS'editable'\np12271\nI01\nsS'value'\np12272\nS'none'\np12273\nsssS'description'\np12274\n(dp12275\nS'editable'\np12276\nI01\nsS'value'\np12277\ng47\nsssS'created_by'\np12278\n(dp12279\nS'mandatory'\np12280\n(dp12281\nS'editable'\np12282\nI00\nsS'value'\np12283\nI00\nssS'name'\np12284\n(dp12285\nS'editable'\np12286\nI01\nsS'value'\np12287\nS'Created by'\np12288\nssS'data_type'\np12289\n(dp12290\nS'editable'\np12291\nI00\nsS'value'\np12292\nS'entity'\np12293\nssS'entity_type'\np12294\n(dp12295\nS'editable'\np12296\nI00\nsS'value'\np12297\nS'AssetLibrary'\np12298\nssS'editable'\np12299\n(dp12300\nS'editable'\np12301\nI00\nsS'value'\np12302\nI00\nssS'unique'\np12303\n(dp12304\nS'editable'\np12305\nI00\nsS'value'\np12306\nI00\nssS'properties'\np12307\n(dp12308\nS'default_value'\np12309\n(dp12310\nS'editable'\np12311\nI00\nsS'value'\np12312\nNssS'summary_default'\np12313\n(dp12314\nS'editable'\np12315\nI01\nsS'value'\np12316\nS'none'\np12317\nssS'valid_types'\np12318\n(dp12319\nS'editable'\np12320\nI01\nsS'value'\np12321\n(lp12322\nS'HumanUser'\np12323\naS'ApiUser'\np12324\nasssS'description'\np12325\n(dp12326\nS'editable'\np12327\nI01\nsS'value'\np12328\ng47\nsssS'project'\np12329\n(dp12330\nS'mandatory'\np12331\n(dp12332\nS'editable'\np12333\nI00\nsS'value'\np12334\nI00\nssS'name'\np12335\n(dp12336\nS'editable'\np12337\nI01\nsS'value'\np12338\nS'Project'\np12339\nssS'data_type'\np12340\n(dp12341\nS'editable'\np12342\nI00\nsS'value'\np12343\nS'entity'\np12344\nssS'entity_type'\np12345\n(dp12346\nS'editable'\np12347\nI00\nsS'value'\np12348\nS'AssetLibrary'\np12349\nssS'editable'\np12350\n(dp12351\nS'editable'\np12352\nI00\nsS'value'\np12353\nI01\nssS'unique'\np12354\n(dp12355\nS'editable'\np12356\nI00\nsS'value'\np12357\nI00\nssS'properties'\np12358\n(dp12359\nS'default_value'\np12360\n(dp12361\nS'editable'\np12362\nI00\nsS'value'\np12363\nNssS'summary_default'\np12364\n(dp12365\nS'editable'\np12366\nI01\nsS'value'\np12367\nS'none'\np12368\nssS'valid_types'\np12369\n(dp12370\nS'editable'\np12371\nI01\nsS'value'\np12372\n(lp12373\nS'Project'\np12374\nasssS'description'\np12375\n(dp12376\nS'editable'\np12377\nI01\nsS'value'\np12378\ng47\nsssS'filmstrip_image'\np12379\n(dp12380\nS'mandatory'\np12381\n(dp12382\nS'editable'\np12383\nI00\nsS'value'\np12384\nI00\nssS'name'\np12385\n(dp12386\nS'editable'\np12387\nI01\nsS'value'\np12388\nS'Filmstrip Thumbnail'\np12389\nssS'data_type'\np12390\n(dp12391\nS'editable'\np12392\nI00\nsS'value'\np12393\nS'image'\np12394\nssS'entity_type'\np12395\n(dp12396\nS'editable'\np12397\nI00\nsS'value'\np12398\nS'AssetLibrary'\np12399\nssS'editable'\np12400\n(dp12401\nS'editable'\np12402\nI00\nsS'value'\np12403\nI01\nssS'unique'\np12404\n(dp12405\nS'editable'\np12406\nI00\nsS'value'\np12407\nI00\nssS'properties'\np12408\n(dp12409\nS'default_value'\np12410\n(dp12411\nS'editable'\np12412\nI00\nsS'value'\np12413\nNssS'summary_default'\np12414\n(dp12415\nS'editable'\np12416\nI01\nsS'value'\np12417\nS'none'\np12418\nsssS'description'\np12419\n(dp12420\nS'editable'\np12421\nI01\nsS'value'\np12422\ng47\nsssS'sg_status_list'\np12423\n(dp12424\nS'mandatory'\np12425\n(dp12426\nS'editable'\np12427\nI00\nsS'value'\np12428\nI00\nssS'name'\np12429\n(dp12430\nS'editable'\np12431\nI01\nsS'value'\np12432\nS'Status'\np12433\nssS'data_type'\np12434\n(dp12435\nS'editable'\np12436\nI00\nsS'value'\np12437\nS'status_list'\np12438\nssS'entity_type'\np12439\n(dp12440\nS'editable'\np12441\nI00\nsS'value'\np12442\nS'AssetLibrary'\np12443\nssS'editable'\np12444\n(dp12445\nS'editable'\np12446\nI00\nsS'value'\np12447\nI01\nssS'unique'\np12448\n(dp12449\nS'editable'\np12450\nI00\nsS'value'\np12451\nI00\nssS'properties'\np12452\n(dp12453\nS'default_value'\np12454\n(dp12455\nS'editable'\np12456\nI01\nsS'value'\np12457\nS'wtg'\np12458\nssS'valid_values'\np12459\n(dp12460\nS'editable'\np12461\nI01\nsS'value'\np12462\n(lp12463\nS'cmpt'\np12464\naS'ip'\np12465\naS'wtg'\np12466\nassS'summary_default'\np12467\n(dp12468\nS'editable'\np12469\nI01\nsS'value'\np12470\nS'none'\np12471\nsssS'description'\np12472\n(dp12473\nS'editable'\np12474\nI01\nsS'value'\np12475\ng47\nsssS'notes'\np12476\n(dp12477\nS'mandatory'\np12478\n(dp12479\nS'editable'\np12480\nI00\nsS'value'\np12481\nI00\nssS'name'\np12482\n(dp12483\nS'editable'\np12484\nI01\nsS'value'\np12485\nS'Notes'\np12486\nssS'data_type'\np12487\n(dp12488\nS'editable'\np12489\nI00\nsS'value'\np12490\nS'multi_entity'\np12491\nssS'entity_type'\np12492\n(dp12493\nS'editable'\np12494\nI00\nsS'value'\np12495\nS'AssetLibrary'\np12496\nssS'editable'\np12497\n(dp12498\nS'editable'\np12499\nI00\nsS'value'\np12500\nI01\nssS'unique'\np12501\n(dp12502\nS'editable'\np12503\nI00\nsS'value'\np12504\nI00\nssS'properties'\np12505\n(dp12506\nS'default_value'\np12507\n(dp12508\nS'editable'\np12509\nI00\nsS'value'\np12510\nNssS'summary_default'\np12511\n(dp12512\nS'editable'\np12513\nI01\nsS'value'\np12514\nS'none'\np12515\nssS'valid_types'\np12516\n(dp12517\nS'editable'\np12518\nI01\nsS'value'\np12519\n(lp12520\nS'Note'\np12521\nasssS'description'\np12522\n(dp12523\nS'editable'\np12524\nI01\nsS'value'\np12525\ng47\nsssS'image'\np12526\n(dp12527\nS'mandatory'\np12528\n(dp12529\nS'editable'\np12530\nI00\nsS'value'\np12531\nI00\nssS'name'\np12532\n(dp12533\nS'editable'\np12534\nI01\nsS'value'\np12535\nS'Thumbnail'\np12536\nssS'data_type'\np12537\n(dp12538\nS'editable'\np12539\nI00\nsS'value'\np12540\nS'image'\np12541\nssS'entity_type'\np12542\n(dp12543\nS'editable'\np12544\nI00\nsS'value'\np12545\nS'AssetLibrary'\np12546\nssS'editable'\np12547\n(dp12548\nS'editable'\np12549\nI00\nsS'value'\np12550\nI01\nssS'unique'\np12551\n(dp12552\nS'editable'\np12553\nI00\nsS'value'\np12554\nI00\nssS'properties'\np12555\n(dp12556\nS'default_value'\np12557\n(dp12558\nS'editable'\np12559\nI00\nsS'value'\np12560\nNssS'summary_default'\np12561\n(dp12562\nS'editable'\np12563\nI01\nsS'value'\np12564\nS'none'\np12565\nsssS'description'\np12566\n(dp12567\nS'editable'\np12568\nI01\nsS'value'\np12569\ng47\nsssS'cached_display_name'\np12570\n(dp12571\nS'mandatory'\np12572\n(dp12573\nS'editable'\np12574\nI00\nsS'value'\np12575\nI00\nssS'name'\np12576\n(dp12577\nS'editable'\np12578\nI01\nsS'value'\np12579\nS'Cached Display Name'\np12580\nssS'data_type'\np12581\n(dp12582\nS'editable'\np12583\nI00\nsS'value'\np12584\nS'text'\np12585\nssS'entity_type'\np12586\n(dp12587\nS'editable'\np12588\nI00\nsS'value'\np12589\nS'AssetLibrary'\np12590\nssS'editable'\np12591\n(dp12592\nS'editable'\np12593\nI00\nsS'value'\np12594\nI01\nssS'unique'\np12595\n(dp12596\nS'editable'\np12597\nI00\nsS'value'\np12598\nI00\nssS'properties'\np12599\n(dp12600\nS'default_value'\np12601\n(dp12602\nS'editable'\np12603\nI00\nsS'value'\np12604\nNssS'summary_default'\np12605\n(dp12606\nS'editable'\np12607\nI00\nsS'value'\np12608\nS'none'\np12609\nsssS'description'\np12610\n(dp12611\nS'editable'\np12612\nI01\nsS'value'\np12613\ng47\nsssS'tag_list'\np12614\n(dp12615\nS'mandatory'\np12616\n(dp12617\nS'editable'\np12618\nI00\nsS'value'\np12619\nI00\nssS'name'\np12620\n(dp12621\nS'editable'\np12622\nI01\nsS'value'\np12623\nS'Tags'\np12624\nssS'data_type'\np12625\n(dp12626\nS'editable'\np12627\nI00\nsS'value'\np12628\nS'tag_list'\np12629\nssS'entity_type'\np12630\n(dp12631\nS'editable'\np12632\nI00\nsS'value'\np12633\nS'AssetLibrary'\np12634\nssS'editable'\np12635\n(dp12636\nS'editable'\np12637\nI00\nsS'value'\np12638\nI01\nssS'unique'\np12639\n(dp12640\nS'editable'\np12641\nI00\nsS'value'\np12642\nI00\nssS'properties'\np12643\n(dp12644\nS'default_value'\np12645\n(dp12646\nS'editable'\np12647\nI00\nsS'value'\np12648\nNssS'summary_default'\np12649\n(dp12650\nS'editable'\np12651\nI01\nsS'value'\np12652\nS'none'\np12653\nssS'valid_types'\np12654\n(dp12655\nS'editable'\np12656\nI01\nsS'value'\np12657\n(lp12658\nS'Tag'\np12659\nasssS'description'\np12660\n(dp12661\nS'editable'\np12662\nI01\nsS'value'\np12663\ng47\nsssS'id'\np12664\n(dp12665\nS'mandatory'\np12666\n(dp12667\nS'editable'\np12668\nI00\nsS'value'\np12669\nI00\nssS'name'\np12670\n(dp12671\nS'editable'\np12672\nI01\nsS'value'\np12673\nS'Id'\np12674\nssS'data_type'\np12675\n(dp12676\nS'editable'\np12677\nI00\nsS'value'\np12678\nS'number'\np12679\nssS'entity_type'\np12680\n(dp12681\nS'editable'\np12682\nI00\nsS'value'\np12683\nS'AssetLibrary'\np12684\nssS'editable'\np12685\n(dp12686\nS'editable'\np12687\nI00\nsS'value'\np12688\nI00\nssS'unique'\np12689\n(dp12690\nS'editable'\np12691\nI00\nsS'value'\np12692\nI00\nssS'properties'\np12693\n(dp12694\nS'default_value'\np12695\n(dp12696\nS'editable'\np12697\nI00\nsS'value'\np12698\nNssS'summary_default'\np12699\n(dp12700\nS'editable'\np12701\nI01\nsS'value'\np12702\nS'none'\np12703\nsssS'description'\np12704\n(dp12705\nS'editable'\np12706\nI01\nsS'value'\np12707\ng47\nsssS'updated_by'\np12708\n(dp12709\nS'mandatory'\np12710\n(dp12711\nS'editable'\np12712\nI00\nsS'value'\np12713\nI00\nssS'name'\np12714\n(dp12715\nS'editable'\np12716\nI01\nsS'value'\np12717\nS'Updated by'\np12718\nssS'data_type'\np12719\n(dp12720\nS'editable'\np12721\nI00\nsS'value'\np12722\nS'entity'\np12723\nssS'entity_type'\np12724\n(dp12725\nS'editable'\np12726\nI00\nsS'value'\np12727\nS'AssetLibrary'\np12728\nssS'editable'\np12729\n(dp12730\nS'editable'\np12731\nI00\nsS'value'\np12732\nI00\nssS'unique'\np12733\n(dp12734\nS'editable'\np12735\nI00\nsS'value'\np12736\nI00\nssS'properties'\np12737\n(dp12738\nS'default_value'\np12739\n(dp12740\nS'editable'\np12741\nI00\nsS'value'\np12742\nNssS'summary_default'\np12743\n(dp12744\nS'editable'\np12745\nI01\nsS'value'\np12746\nS'none'\np12747\nssS'valid_types'\np12748\n(dp12749\nS'editable'\np12750\nI01\nsS'value'\np12751\n(lp12752\nS'HumanUser'\np12753\naS'ApiUser'\np12754\nasssS'description'\np12755\n(dp12756\nS'editable'\np12757\nI01\nsS'value'\np12758\ng47\nssssS'PerformerMocapTakeConnection'\np12759\n(dp12760\nS'mocap_take'\np12761\n(dp12762\nS'mandatory'\np12763\n(dp12764\nS'editable'\np12765\nI00\nsS'value'\np12766\nI00\nssS'name'\np12767\n(dp12768\nS'editable'\np12769\nI01\nsS'value'\np12770\nS'Mocap Take'\np12771\nssS'data_type'\np12772\n(dp12773\nS'editable'\np12774\nI00\nsS'value'\np12775\nS'entity'\np12776\nssS'entity_type'\np12777\n(dp12778\nS'editable'\np12779\nI00\nsS'value'\np12780\nS'PerformerMocapTakeConnection'\np12781\nssS'editable'\np12782\n(dp12783\nS'editable'\np12784\nI00\nsS'value'\np12785\nI00\nssS'unique'\np12786\n(dp12787\nS'editable'\np12788\nI00\nsS'value'\np12789\nI00\nssS'properties'\np12790\n(dp12791\nS'default_value'\np12792\n(dp12793\nS'editable'\np12794\nI00\nsS'value'\np12795\nNssS'summary_default'\np12796\n(dp12797\nS'editable'\np12798\nI00\nsS'value'\np12799\nS'none'\np12800\nssS'valid_types'\np12801\n(dp12802\nS'editable'\np12803\nI00\nsS'value'\np12804\n(lp12805\nS'MocapTake'\np12806\nasssS'description'\np12807\n(dp12808\nS'editable'\np12809\nI01\nsS'value'\np12810\ng47\nsssS'cached_display_name'\np12811\n(dp12812\nS'mandatory'\np12813\n(dp12814\nS'editable'\np12815\nI00\nsS'value'\np12816\nI00\nssS'name'\np12817\n(dp12818\nS'editable'\np12819\nI01\nsS'value'\np12820\nS'Cached Display Name'\np12821\nssS'data_type'\np12822\n(dp12823\nS'editable'\np12824\nI00\nsS'value'\np12825\nS'text'\np12826\nssS'entity_type'\np12827\n(dp12828\nS'editable'\np12829\nI00\nsS'value'\np12830\nS'PerformerMocapTakeConnection'\np12831\nssS'editable'\np12832\n(dp12833\nS'editable'\np12834\nI00\nsS'value'\np12835\nI01\nssS'unique'\np12836\n(dp12837\nS'editable'\np12838\nI00\nsS'value'\np12839\nI00\nssS'properties'\np12840\n(dp12841\nS'default_value'\np12842\n(dp12843\nS'editable'\np12844\nI00\nsS'value'\np12845\nNssS'summary_default'\np12846\n(dp12847\nS'editable'\np12848\nI00\nsS'value'\np12849\nS'none'\np12850\nsssS'description'\np12851\n(dp12852\nS'editable'\np12853\nI01\nsS'value'\np12854\ng47\nsssS'performer'\np12855\n(dp12856\nS'mandatory'\np12857\n(dp12858\nS'editable'\np12859\nI00\nsS'value'\np12860\nI00\nssS'name'\np12861\n(dp12862\nS'editable'\np12863\nI01\nsS'value'\np12864\nS'Performer'\np12865\nssS'data_type'\np12866\n(dp12867\nS'editable'\np12868\nI00\nsS'value'\np12869\nS'entity'\np12870\nssS'entity_type'\np12871\n(dp12872\nS'editable'\np12873\nI00\nsS'value'\np12874\nS'PerformerMocapTakeConnection'\np12875\nssS'editable'\np12876\n(dp12877\nS'editable'\np12878\nI00\nsS'value'\np12879\nI00\nssS'unique'\np12880\n(dp12881\nS'editable'\np12882\nI00\nsS'value'\np12883\nI00\nssS'properties'\np12884\n(dp12885\nS'default_value'\np12886\n(dp12887\nS'editable'\np12888\nI00\nsS'value'\np12889\nNssS'summary_default'\np12890\n(dp12891\nS'editable'\np12892\nI00\nsS'value'\np12893\nS'none'\np12894\nssS'valid_types'\np12895\n(dp12896\nS'editable'\np12897\nI00\nsS'value'\np12898\n(lp12899\nS'Performer'\np12900\nasssS'description'\np12901\n(dp12902\nS'editable'\np12903\nI01\nsS'value'\np12904\ng47\nsssS'id'\np12905\n(dp12906\nS'mandatory'\np12907\n(dp12908\nS'editable'\np12909\nI00\nsS'value'\np12910\nI01\nssS'name'\np12911\n(dp12912\nS'editable'\np12913\nI01\nsS'value'\np12914\nS'Id'\np12915\nssS'data_type'\np12916\n(dp12917\nS'editable'\np12918\nI00\nsS'value'\np12919\nS'number'\np12920\nssS'entity_type'\np12921\n(dp12922\nS'editable'\np12923\nI00\nsS'value'\np12924\nS'PerformerMocapTakeConnection'\np12925\nssS'editable'\np12926\n(dp12927\nS'editable'\np12928\nI00\nsS'value'\np12929\nI00\nssS'unique'\np12930\n(dp12931\nS'editable'\np12932\nI00\nsS'value'\np12933\nI00\nssS'properties'\np12934\n(dp12935\nS'default_value'\np12936\n(dp12937\nS'editable'\np12938\nI00\nsS'value'\np12939\nNssS'summary_default'\np12940\n(dp12941\nS'editable'\np12942\nI00\nsS'value'\np12943\nS'none'\np12944\nsssS'description'\np12945\n(dp12946\nS'editable'\np12947\nI01\nsS'value'\np12948\ng47\nssssS'Phase'\np12949\n(dp12950\nS'open_notes_count'\np12951\n(dp12952\nS'mandatory'\np12953\n(dp12954\nS'editable'\np12955\nI00\nsS'value'\np12956\nI00\nssS'name'\np12957\n(dp12958\nS'editable'\np12959\nI01\nsS'value'\np12960\nS'Open Notes Count'\np12961\nssS'data_type'\np12962\n(dp12963\nS'editable'\np12964\nI00\nsS'value'\np12965\nS'text'\np12966\nssS'entity_type'\np12967\n(dp12968\nS'editable'\np12969\nI00\nsS'value'\np12970\nS'Phase'\np12971\nssS'editable'\np12972\n(dp12973\nS'editable'\np12974\nI00\nsS'value'\np12975\nI00\nssS'unique'\np12976\n(dp12977\nS'editable'\np12978\nI00\nsS'value'\np12979\nI00\nssS'properties'\np12980\n(dp12981\nS'default_value'\np12982\n(dp12983\nS'editable'\np12984\nI00\nsS'value'\np12985\nNssS'summary_default'\np12986\n(dp12987\nS'editable'\np12988\nI01\nsS'value'\np12989\nS'none'\np12990\nsssS'description'\np12991\n(dp12992\nS'editable'\np12993\nI01\nsS'value'\np12994\ng47\nsssS'code'\np12995\n(dp12996\nS'mandatory'\np12997\n(dp12998\nS'editable'\np12999\nI00\nsS'value'\np13000\nI01\nssS'name'\np13001\n(dp13002\nS'editable'\np13003\nI01\nsS'value'\np13004\nS'Phase Name'\np13005\nssS'data_type'\np13006\n(dp13007\nS'editable'\np13008\nI00\nsS'value'\np13009\nS'text'\np13010\nssS'entity_type'\np13011\n(dp13012\nS'editable'\np13013\nI00\nsS'value'\np13014\nS'Phase'\np13015\nssS'editable'\np13016\n(dp13017\nS'editable'\np13018\nI00\nsS'value'\np13019\nI01\nssS'unique'\np13020\n(dp13021\nS'editable'\np13022\nI00\nsS'value'\np13023\nI00\nssS'properties'\np13024\n(dp13025\nS'default_value'\np13026\n(dp13027\nS'editable'\np13028\nI00\nsS'value'\np13029\nNssS'summary_default'\np13030\n(dp13031\nS'editable'\np13032\nI01\nsS'value'\np13033\nS'none'\np13034\nsssS'description'\np13035\n(dp13036\nS'editable'\np13037\nI01\nsS'value'\np13038\ng47\nsssS'open_notes'\np13039\n(dp13040\nS'mandatory'\np13041\n(dp13042\nS'editable'\np13043\nI00\nsS'value'\np13044\nI00\nssS'name'\np13045\n(dp13046\nS'editable'\np13047\nI01\nsS'value'\np13048\nS'Open Notes'\np13049\nssS'data_type'\np13050\n(dp13051\nS'editable'\np13052\nI00\nsS'value'\np13053\nS'multi_entity'\np13054\nssS'entity_type'\np13055\n(dp13056\nS'editable'\np13057\nI00\nsS'value'\np13058\nS'Phase'\np13059\nssS'editable'\np13060\n(dp13061\nS'editable'\np13062\nI00\nsS'value'\np13063\nI00\nssS'unique'\np13064\n(dp13065\nS'editable'\np13066\nI00\nsS'value'\np13067\nI00\nssS'properties'\np13068\n(dp13069\nS'default_value'\np13070\n(dp13071\nS'editable'\np13072\nI00\nsS'value'\np13073\nNssS'summary_default'\np13074\n(dp13075\nS'editable'\np13076\nI01\nsS'value'\np13077\nS'none'\np13078\nssS'valid_types'\np13079\n(dp13080\nS'editable'\np13081\nI01\nsS'value'\np13082\n(lp13083\nS'Note'\np13084\nasssS'description'\np13085\n(dp13086\nS'editable'\np13087\nI01\nsS'value'\np13088\ng47\nsssS'description'\np13089\n(dp13090\nS'mandatory'\np13091\n(dp13092\nS'editable'\np13093\nI00\nsS'value'\np13094\nI00\nssS'name'\np13095\n(dp13096\nS'editable'\np13097\nI01\nsS'value'\np13098\nS'Description'\np13099\nssS'data_type'\np13100\n(dp13101\nS'editable'\np13102\nI00\nsS'value'\np13103\nS'text'\np13104\nssS'entity_type'\np13105\n(dp13106\nS'editable'\np13107\nI00\nsS'value'\np13108\nS'Phase'\np13109\nssS'editable'\np13110\n(dp13111\nS'editable'\np13112\nI00\nsS'value'\np13113\nI01\nssS'unique'\np13114\n(dp13115\nS'editable'\np13116\nI00\nsS'value'\np13117\nI00\nssS'properties'\np13118\n(dp13119\nS'default_value'\np13120\n(dp13121\nS'editable'\np13122\nI00\nsS'value'\np13123\nNssS'summary_default'\np13124\n(dp13125\nS'editable'\np13126\nI01\nsS'value'\np13127\nS'none'\np13128\nsssS'description'\np13129\n(dp13130\nS'editable'\np13131\nI01\nsS'value'\np13132\ng47\nsssS'end_date'\np13133\n(dp13134\nS'mandatory'\np13135\n(dp13136\nS'editable'\np13137\nI00\nsS'value'\np13138\nI00\nssS'name'\np13139\n(dp13140\nS'editable'\np13141\nI01\nsS'value'\np13142\nS'End Date'\np13143\nssS'data_type'\np13144\n(dp13145\nS'editable'\np13146\nI00\nsS'value'\np13147\nS'date'\np13148\nssS'entity_type'\np13149\n(dp13150\nS'editable'\np13151\nI00\nsS'value'\np13152\nS'Phase'\np13153\nssS'editable'\np13154\n(dp13155\nS'editable'\np13156\nI00\nsS'value'\np13157\nI01\nssS'unique'\np13158\n(dp13159\nS'editable'\np13160\nI00\nsS'value'\np13161\nI00\nssS'properties'\np13162\n(dp13163\nS'default_value'\np13164\n(dp13165\nS'editable'\np13166\nI00\nsS'value'\np13167\nNssS'summary_default'\np13168\n(dp13169\nS'editable'\np13170\nI01\nsS'value'\np13171\nS'none'\np13172\nsssS'description'\np13173\n(dp13174\nS'editable'\np13175\nI01\nsS'value'\np13176\ng47\nsssS'color'\np13177\n(dp13178\nS'mandatory'\np13179\n(dp13180\nS'editable'\np13181\nI00\nsS'value'\np13182\nI00\nssS'name'\np13183\n(dp13184\nS'editable'\np13185\nI01\nsS'value'\np13186\nS'Color'\np13187\nssS'data_type'\np13188\n(dp13189\nS'editable'\np13190\nI00\nsS'value'\np13191\nS'color'\np13192\nssS'entity_type'\np13193\n(dp13194\nS'editable'\np13195\nI00\nsS'value'\np13196\nS'Phase'\np13197\nssS'editable'\np13198\n(dp13199\nS'editable'\np13200\nI00\nsS'value'\np13201\nI01\nssS'unique'\np13202\n(dp13203\nS'editable'\np13204\nI00\nsS'value'\np13205\nI00\nssS'properties'\np13206\n(dp13207\nS'default_value'\np13208\n(dp13209\nS'editable'\np13210\nI00\nsS'value'\np13211\nNssS'summary_default'\np13212\n(dp13213\nS'editable'\np13214\nI01\nsS'value'\np13215\nS'none'\np13216\nsssS'description'\np13217\n(dp13218\nS'editable'\np13219\nI01\nsS'value'\np13220\ng47\nsssS'created_at'\np13221\n(dp13222\nS'mandatory'\np13223\n(dp13224\nS'editable'\np13225\nI00\nsS'value'\np13226\nI00\nssS'name'\np13227\n(dp13228\nS'editable'\np13229\nI01\nsS'value'\np13230\nS'Date Created'\np13231\nssS'data_type'\np13232\n(dp13233\nS'editable'\np13234\nI00\nsS'value'\np13235\nS'date_time'\np13236\nssS'entity_type'\np13237\n(dp13238\nS'editable'\np13239\nI00\nsS'value'\np13240\nS'Phase'\np13241\nssS'editable'\np13242\n(dp13243\nS'editable'\np13244\nI00\nsS'value'\np13245\nI00\nssS'unique'\np13246\n(dp13247\nS'editable'\np13248\nI00\nsS'value'\np13249\nI00\nssS'properties'\np13250\n(dp13251\nS'default_value'\np13252\n(dp13253\nS'editable'\np13254\nI00\nsS'value'\np13255\nNssS'summary_default'\np13256\n(dp13257\nS'editable'\np13258\nI01\nsS'value'\np13259\nS'none'\np13260\nsssS'description'\np13261\n(dp13262\nS'editable'\np13263\nI01\nsS'value'\np13264\ng47\nsssS'updated_at'\np13265\n(dp13266\nS'mandatory'\np13267\n(dp13268\nS'editable'\np13269\nI00\nsS'value'\np13270\nI00\nssS'name'\np13271\n(dp13272\nS'editable'\np13273\nI01\nsS'value'\np13274\nS'Date Updated'\np13275\nssS'data_type'\np13276\n(dp13277\nS'editable'\np13278\nI00\nsS'value'\np13279\nS'date_time'\np13280\nssS'entity_type'\np13281\n(dp13282\nS'editable'\np13283\nI00\nsS'value'\np13284\nS'Phase'\np13285\nssS'editable'\np13286\n(dp13287\nS'editable'\np13288\nI00\nsS'value'\np13289\nI00\nssS'unique'\np13290\n(dp13291\nS'editable'\np13292\nI00\nsS'value'\np13293\nI00\nssS'properties'\np13294\n(dp13295\nS'default_value'\np13296\n(dp13297\nS'editable'\np13298\nI00\nsS'value'\np13299\nNssS'summary_default'\np13300\n(dp13301\nS'editable'\np13302\nI01\nsS'value'\np13303\nS'none'\np13304\nsssS'description'\np13305\n(dp13306\nS'editable'\np13307\nI01\nsS'value'\np13308\ng47\nsssS'created_by'\np13309\n(dp13310\nS'mandatory'\np13311\n(dp13312\nS'editable'\np13313\nI00\nsS'value'\np13314\nI00\nssS'name'\np13315\n(dp13316\nS'editable'\np13317\nI01\nsS'value'\np13318\nS'Created by'\np13319\nssS'data_type'\np13320\n(dp13321\nS'editable'\np13322\nI00\nsS'value'\np13323\nS'entity'\np13324\nssS'entity_type'\np13325\n(dp13326\nS'editable'\np13327\nI00\nsS'value'\np13328\nS'Phase'\np13329\nssS'editable'\np13330\n(dp13331\nS'editable'\np13332\nI00\nsS'value'\np13333\nI00\nssS'unique'\np13334\n(dp13335\nS'editable'\np13336\nI00\nsS'value'\np13337\nI00\nssS'properties'\np13338\n(dp13339\nS'default_value'\np13340\n(dp13341\nS'editable'\np13342\nI00\nsS'value'\np13343\nNssS'summary_default'\np13344\n(dp13345\nS'editable'\np13346\nI01\nsS'value'\np13347\nS'none'\np13348\nssS'valid_types'\np13349\n(dp13350\nS'editable'\np13351\nI01\nsS'value'\np13352\n(lp13353\nS'HumanUser'\np13354\naS'ApiUser'\np13355\nasssS'description'\np13356\n(dp13357\nS'editable'\np13358\nI01\nsS'value'\np13359\ng47\nsssS'start_date'\np13360\n(dp13361\nS'mandatory'\np13362\n(dp13363\nS'editable'\np13364\nI00\nsS'value'\np13365\nI00\nssS'name'\np13366\n(dp13367\nS'editable'\np13368\nI01\nsS'value'\np13369\nS'Start Date'\np13370\nssS'data_type'\np13371\n(dp13372\nS'editable'\np13373\nI00\nsS'value'\np13374\nS'date'\np13375\nssS'entity_type'\np13376\n(dp13377\nS'editable'\np13378\nI00\nsS'value'\np13379\nS'Phase'\np13380\nssS'editable'\np13381\n(dp13382\nS'editable'\np13383\nI00\nsS'value'\np13384\nI01\nssS'unique'\np13385\n(dp13386\nS'editable'\np13387\nI00\nsS'value'\np13388\nI00\nssS'properties'\np13389\n(dp13390\nS'default_value'\np13391\n(dp13392\nS'editable'\np13393\nI00\nsS'value'\np13394\nNssS'summary_default'\np13395\n(dp13396\nS'editable'\np13397\nI01\nsS'value'\np13398\nS'none'\np13399\nsssS'description'\np13400\n(dp13401\nS'editable'\np13402\nI01\nsS'value'\np13403\ng47\nsssS'project'\np13404\n(dp13405\nS'mandatory'\np13406\n(dp13407\nS'editable'\np13408\nI00\nsS'value'\np13409\nI00\nssS'name'\np13410\n(dp13411\nS'editable'\np13412\nI01\nsS'value'\np13413\nS'Project'\np13414\nssS'data_type'\np13415\n(dp13416\nS'editable'\np13417\nI00\nsS'value'\np13418\nS'entity'\np13419\nssS'entity_type'\np13420\n(dp13421\nS'editable'\np13422\nI00\nsS'value'\np13423\nS'Phase'\np13424\nssS'editable'\np13425\n(dp13426\nS'editable'\np13427\nI00\nsS'value'\np13428\nI01\nssS'unique'\np13429\n(dp13430\nS'editable'\np13431\nI00\nsS'value'\np13432\nI00\nssS'properties'\np13433\n(dp13434\nS'default_value'\np13435\n(dp13436\nS'editable'\np13437\nI00\nsS'value'\np13438\nNssS'summary_default'\np13439\n(dp13440\nS'editable'\np13441\nI01\nsS'value'\np13442\nS'none'\np13443\nssS'valid_types'\np13444\n(dp13445\nS'editable'\np13446\nI01\nsS'value'\np13447\n(lp13448\nS'Project'\np13449\nasssS'description'\np13450\n(dp13451\nS'editable'\np13452\nI01\nsS'value'\np13453\ng47\nsssS'notes'\np13454\n(dp13455\nS'mandatory'\np13456\n(dp13457\nS'editable'\np13458\nI00\nsS'value'\np13459\nI00\nssS'name'\np13460\n(dp13461\nS'editable'\np13462\nI01\nsS'value'\np13463\nS'Notes'\np13464\nssS'data_type'\np13465\n(dp13466\nS'editable'\np13467\nI00\nsS'value'\np13468\nS'multi_entity'\np13469\nssS'entity_type'\np13470\n(dp13471\nS'editable'\np13472\nI00\nsS'value'\np13473\nS'Phase'\np13474\nssS'editable'\np13475\n(dp13476\nS'editable'\np13477\nI00\nsS'value'\np13478\nI01\nssS'unique'\np13479\n(dp13480\nS'editable'\np13481\nI00\nsS'value'\np13482\nI00\nssS'properties'\np13483\n(dp13484\nS'default_value'\np13485\n(dp13486\nS'editable'\np13487\nI00\nsS'value'\np13488\nNssS'summary_default'\np13489\n(dp13490\nS'editable'\np13491\nI01\nsS'value'\np13492\nS'none'\np13493\nssS'valid_types'\np13494\n(dp13495\nS'editable'\np13496\nI01\nsS'value'\np13497\n(lp13498\nS'Note'\np13499\nasssS'description'\np13500\n(dp13501\nS'editable'\np13502\nI01\nsS'value'\np13503\ng47\nsssS'milestone'\np13504\n(dp13505\nS'mandatory'\np13506\n(dp13507\nS'editable'\np13508\nI00\nsS'value'\np13509\nI00\nssS'name'\np13510\n(dp13511\nS'editable'\np13512\nI01\nsS'value'\np13513\nS'Milestone'\np13514\nssS'data_type'\np13515\n(dp13516\nS'editable'\np13517\nI00\nsS'value'\np13518\nS'checkbox'\np13519\nssS'entity_type'\np13520\n(dp13521\nS'editable'\np13522\nI00\nsS'value'\np13523\nS'Phase'\np13524\nssS'editable'\np13525\n(dp13526\nS'editable'\np13527\nI00\nsS'value'\np13528\nI01\nssS'unique'\np13529\n(dp13530\nS'editable'\np13531\nI00\nsS'value'\np13532\nI00\nssS'properties'\np13533\n(dp13534\nS'default_value'\np13535\n(dp13536\nS'editable'\np13537\nI00\nsS'value'\np13538\nNssS'summary_default'\np13539\n(dp13540\nS'editable'\np13541\nI01\nsS'value'\np13542\nS'none'\np13543\nsssS'description'\np13544\n(dp13545\nS'editable'\np13546\nI01\nsS'value'\np13547\ng47\nsssS'cached_display_name'\np13548\n(dp13549\nS'mandatory'\np13550\n(dp13551\nS'editable'\np13552\nI00\nsS'value'\np13553\nI00\nssS'name'\np13554\n(dp13555\nS'editable'\np13556\nI01\nsS'value'\np13557\nS'Cached Display Name'\np13558\nssS'data_type'\np13559\n(dp13560\nS'editable'\np13561\nI00\nsS'value'\np13562\nS'text'\np13563\nssS'entity_type'\np13564\n(dp13565\nS'editable'\np13566\nI00\nsS'value'\np13567\nS'Phase'\np13568\nssS'editable'\np13569\n(dp13570\nS'editable'\np13571\nI00\nsS'value'\np13572\nI01\nssS'unique'\np13573\n(dp13574\nS'editable'\np13575\nI00\nsS'value'\np13576\nI00\nssS'properties'\np13577\n(dp13578\nS'default_value'\np13579\n(dp13580\nS'editable'\np13581\nI00\nsS'value'\np13582\nNssS'summary_default'\np13583\n(dp13584\nS'editable'\np13585\nI00\nsS'value'\np13586\nS'none'\np13587\nsssS'description'\np13588\n(dp13589\nS'editable'\np13590\nI01\nsS'value'\np13591\ng47\nsssS'id'\np13592\n(dp13593\nS'mandatory'\np13594\n(dp13595\nS'editable'\np13596\nI00\nsS'value'\np13597\nI00\nssS'name'\np13598\n(dp13599\nS'editable'\np13600\nI01\nsS'value'\np13601\nS'Id'\np13602\nssS'data_type'\np13603\n(dp13604\nS'editable'\np13605\nI00\nsS'value'\np13606\nS'number'\np13607\nssS'entity_type'\np13608\n(dp13609\nS'editable'\np13610\nI00\nsS'value'\np13611\nS'Phase'\np13612\nssS'editable'\np13613\n(dp13614\nS'editable'\np13615\nI00\nsS'value'\np13616\nI00\nssS'unique'\np13617\n(dp13618\nS'editable'\np13619\nI00\nsS'value'\np13620\nI00\nssS'properties'\np13621\n(dp13622\nS'default_value'\np13623\n(dp13624\nS'editable'\np13625\nI00\nsS'value'\np13626\nNssS'summary_default'\np13627\n(dp13628\nS'editable'\np13629\nI01\nsS'value'\np13630\nS'none'\np13631\nsssS'description'\np13632\n(dp13633\nS'editable'\np13634\nI01\nsS'value'\np13635\ng47\nsssS'updated_by'\np13636\n(dp13637\nS'mandatory'\np13638\n(dp13639\nS'editable'\np13640\nI00\nsS'value'\np13641\nI00\nssS'name'\np13642\n(dp13643\nS'editable'\np13644\nI01\nsS'value'\np13645\nS'Updated by'\np13646\nssS'data_type'\np13647\n(dp13648\nS'editable'\np13649\nI00\nsS'value'\np13650\nS'entity'\np13651\nssS'entity_type'\np13652\n(dp13653\nS'editable'\np13654\nI00\nsS'value'\np13655\nS'Phase'\np13656\nssS'editable'\np13657\n(dp13658\nS'editable'\np13659\nI00\nsS'value'\np13660\nI00\nssS'unique'\np13661\n(dp13662\nS'editable'\np13663\nI00\nsS'value'\np13664\nI00\nssS'properties'\np13665\n(dp13666\nS'default_value'\np13667\n(dp13668\nS'editable'\np13669\nI00\nsS'value'\np13670\nNssS'summary_default'\np13671\n(dp13672\nS'editable'\np13673\nI01\nsS'value'\np13674\nS'none'\np13675\nssS'valid_types'\np13676\n(dp13677\nS'editable'\np13678\nI01\nsS'value'\np13679\n(lp13680\nS'HumanUser'\np13681\naS'ApiUser'\np13682\nasssS'description'\np13683\n(dp13684\nS'editable'\np13685\nI01\nsS'value'\np13686\ng47\nssssS'PublishedFile'\np13687\n(dp13688\nS'open_notes_count'\np13689\n(dp13690\nS'mandatory'\np13691\n(dp13692\nS'editable'\np13693\nI00\nsS'value'\np13694\nI00\nssS'name'\np13695\n(dp13696\nS'editable'\np13697\nI01\nsS'value'\np13698\nS'Open Notes Count'\np13699\nssS'data_type'\np13700\n(dp13701\nS'editable'\np13702\nI00\nsS'value'\np13703\nS'text'\np13704\nssS'entity_type'\np13705\n(dp13706\nS'editable'\np13707\nI00\nsS'value'\np13708\nS'PublishedFile'\np13709\nssS'editable'\np13710\n(dp13711\nS'editable'\np13712\nI00\nsS'value'\np13713\nI00\nssS'unique'\np13714\n(dp13715\nS'editable'\np13716\nI00\nsS'value'\np13717\nI00\nssS'properties'\np13718\n(dp13719\nS'default_value'\np13720\n(dp13721\nS'editable'\np13722\nI00\nsS'value'\np13723\nNssS'summary_default'\np13724\n(dp13725\nS'editable'\np13726\nI01\nsS'value'\np13727\nS'none'\np13728\nsssS'description'\np13729\n(dp13730\nS'editable'\np13731\nI01\nsS'value'\np13732\ng47\nsssS'code'\np13733\n(dp13734\nS'mandatory'\np13735\n(dp13736\nS'editable'\np13737\nI00\nsS'value'\np13738\nI01\nssS'name'\np13739\n(dp13740\nS'editable'\np13741\nI01\nsS'value'\np13742\nS'Published File Name'\np13743\nssS'data_type'\np13744\n(dp13745\nS'editable'\np13746\nI00\nsS'value'\np13747\nS'text'\np13748\nssS'entity_type'\np13749\n(dp13750\nS'editable'\np13751\nI00\nsS'value'\np13752\nS'PublishedFile'\np13753\nssS'editable'\np13754\n(dp13755\nS'editable'\np13756\nI00\nsS'value'\np13757\nI01\nssS'unique'\np13758\n(dp13759\nS'editable'\np13760\nI00\nsS'value'\np13761\nI00\nssS'properties'\np13762\n(dp13763\nS'default_value'\np13764\n(dp13765\nS'editable'\np13766\nI00\nsS'value'\np13767\nNssS'summary_default'\np13768\n(dp13769\nS'editable'\np13770\nI01\nsS'value'\np13771\nS'none'\np13772\nsssS'description'\np13773\n(dp13774\nS'editable'\np13775\nI01\nsS'value'\np13776\ng47\nsssS'image'\np13777\n(dp13778\nS'mandatory'\np13779\n(dp13780\nS'editable'\np13781\nI00\nsS'value'\np13782\nI00\nssS'name'\np13783\n(dp13784\nS'editable'\np13785\nI01\nsS'value'\np13786\nS'Thumbnail'\np13787\nssS'data_type'\np13788\n(dp13789\nS'editable'\np13790\nI00\nsS'value'\np13791\nS'image'\np13792\nssS'entity_type'\np13793\n(dp13794\nS'editable'\np13795\nI00\nsS'value'\np13796\nS'PublishedFile'\np13797\nssS'editable'\np13798\n(dp13799\nS'editable'\np13800\nI00\nsS'value'\np13801\nI01\nssS'unique'\np13802\n(dp13803\nS'editable'\np13804\nI00\nsS'value'\np13805\nI00\nssS'properties'\np13806\n(dp13807\nS'default_value'\np13808\n(dp13809\nS'editable'\np13810\nI00\nsS'value'\np13811\nNssS'summary_default'\np13812\n(dp13813\nS'editable'\np13814\nI01\nsS'value'\np13815\nS'none'\np13816\nsssS'description'\np13817\n(dp13818\nS'editable'\np13819\nI01\nsS'value'\np13820\ng47\nsssS'updated_at'\np13821\n(dp13822\nS'mandatory'\np13823\n(dp13824\nS'editable'\np13825\nI00\nsS'value'\np13826\nI00\nssS'name'\np13827\n(dp13828\nS'editable'\np13829\nI01\nsS'value'\np13830\nS'Date Updated'\np13831\nssS'data_type'\np13832\n(dp13833\nS'editable'\np13834\nI00\nsS'value'\np13835\nS'date_time'\np13836\nssS'entity_type'\np13837\n(dp13838\nS'editable'\np13839\nI00\nsS'value'\np13840\nS'PublishedFile'\np13841\nssS'editable'\np13842\n(dp13843\nS'editable'\np13844\nI00\nsS'value'\np13845\nI00\nssS'unique'\np13846\n(dp13847\nS'editable'\np13848\nI00\nsS'value'\np13849\nI00\nssS'properties'\np13850\n(dp13851\nS'default_value'\np13852\n(dp13853\nS'editable'\np13854\nI00\nsS'value'\np13855\nNssS'summary_default'\np13856\n(dp13857\nS'editable'\np13858\nI01\nsS'value'\np13859\nS'none'\np13860\nsssS'description'\np13861\n(dp13862\nS'editable'\np13863\nI01\nsS'value'\np13864\ng47\nsssS'entity'\np13865\n(dp13866\nS'mandatory'\np13867\n(dp13868\nS'editable'\np13869\nI00\nsS'value'\np13870\nI00\nssS'name'\np13871\n(dp13872\nS'editable'\np13873\nI01\nsS'value'\np13874\nS'Link'\np13875\nssS'data_type'\np13876\n(dp13877\nS'editable'\np13878\nI00\nsS'value'\np13879\nS'entity'\np13880\nssS'entity_type'\np13881\n(dp13882\nS'editable'\np13883\nI00\nsS'value'\np13884\nS'PublishedFile'\np13885\nssS'editable'\np13886\n(dp13887\nS'editable'\np13888\nI00\nsS'value'\np13889\nI01\nssS'unique'\np13890\n(dp13891\nS'editable'\np13892\nI00\nsS'value'\np13893\nI00\nssS'properties'\np13894\n(dp13895\nS'default_value'\np13896\n(dp13897\nS'editable'\np13898\nI00\nsS'value'\np13899\nNssS'summary_default'\np13900\n(dp13901\nS'editable'\np13902\nI01\nsS'value'\np13903\nS'none'\np13904\nssS'valid_types'\np13905\n(dp13906\nS'editable'\np13907\nI01\nsS'value'\np13908\n(lp13909\nS'Asset'\np13910\naS'Shot'\np13911\naS'Project'\np13912\nasssS'description'\np13913\n(dp13914\nS'editable'\np13915\nI01\nsS'value'\np13916\ng47\nsssS'cached_display_name'\np13917\n(dp13918\nS'mandatory'\np13919\n(dp13920\nS'editable'\np13921\nI00\nsS'value'\np13922\nI00\nssS'name'\np13923\n(dp13924\nS'editable'\np13925\nI01\nsS'value'\np13926\nS'Cached Display Name'\np13927\nssS'data_type'\np13928\n(dp13929\nS'editable'\np13930\nI00\nsS'value'\np13931\nS'text'\np13932\nssS'entity_type'\np13933\n(dp13934\nS'editable'\np13935\nI00\nsS'value'\np13936\nS'PublishedFile'\np13937\nssS'editable'\np13938\n(dp13939\nS'editable'\np13940\nI00\nsS'value'\np13941\nI01\nssS'unique'\np13942\n(dp13943\nS'editable'\np13944\nI00\nsS'value'\np13945\nI00\nssS'properties'\np13946\n(dp13947\nS'default_value'\np13948\n(dp13949\nS'editable'\np13950\nI00\nsS'value'\np13951\nNssS'summary_default'\np13952\n(dp13953\nS'editable'\np13954\nI00\nsS'value'\np13955\nS'none'\np13956\nsssS'description'\np13957\n(dp13958\nS'editable'\np13959\nI01\nsS'value'\np13960\ng47\nsssS'path_cache'\np13961\n(dp13962\nS'mandatory'\np13963\n(dp13964\nS'editable'\np13965\nI00\nsS'value'\np13966\nI00\nssS'name'\np13967\n(dp13968\nS'editable'\np13969\nI01\nsS'value'\np13970\nS'Path Cache'\np13971\nssS'data_type'\np13972\n(dp13973\nS'editable'\np13974\nI00\nsS'value'\np13975\nS'text'\np13976\nssS'entity_type'\np13977\n(dp13978\nS'editable'\np13979\nI00\nsS'value'\np13980\nS'PublishedFile'\np13981\nssS'editable'\np13982\n(dp13983\nS'editable'\np13984\nI00\nsS'value'\np13985\nI01\nssS'unique'\np13986\n(dp13987\nS'editable'\np13988\nI00\nsS'value'\np13989\nI00\nssS'properties'\np13990\n(dp13991\nS'default_value'\np13992\n(dp13993\nS'editable'\np13994\nI00\nsS'value'\np13995\nNssS'summary_default'\np13996\n(dp13997\nS'editable'\np13998\nI01\nsS'value'\np13999\nS'none'\np14000\nsssS'description'\np14001\n(dp14002\nS'editable'\np14003\nI01\nsS'value'\np14004\ng47\nsssS'id'\np14005\n(dp14006\nS'mandatory'\np14007\n(dp14008\nS'editable'\np14009\nI00\nsS'value'\np14010\nI00\nssS'name'\np14011\n(dp14012\nS'editable'\np14013\nI01\nsS'value'\np14014\nS'Id'\np14015\nssS'data_type'\np14016\n(dp14017\nS'editable'\np14018\nI00\nsS'value'\np14019\nS'number'\np14020\nssS'entity_type'\np14021\n(dp14022\nS'editable'\np14023\nI00\nsS'value'\np14024\nS'PublishedFile'\np14025\nssS'editable'\np14026\n(dp14027\nS'editable'\np14028\nI00\nsS'value'\np14029\nI00\nssS'unique'\np14030\n(dp14031\nS'editable'\np14032\nI00\nsS'value'\np14033\nI00\nssS'properties'\np14034\n(dp14035\nS'default_value'\np14036\n(dp14037\nS'editable'\np14038\nI00\nsS'value'\np14039\nNssS'summary_default'\np14040\n(dp14041\nS'editable'\np14042\nI01\nsS'value'\np14043\nS'none'\np14044\nsssS'description'\np14045\n(dp14046\nS'editable'\np14047\nI01\nsS'value'\np14048\ng47\nsssS'updated_by'\np14049\n(dp14050\nS'mandatory'\np14051\n(dp14052\nS'editable'\np14053\nI00\nsS'value'\np14054\nI00\nssS'name'\np14055\n(dp14056\nS'editable'\np14057\nI01\nsS'value'\np14058\nS'Updated by'\np14059\nssS'data_type'\np14060\n(dp14061\nS'editable'\np14062\nI00\nsS'value'\np14063\nS'entity'\np14064\nssS'entity_type'\np14065\n(dp14066\nS'editable'\np14067\nI00\nsS'value'\np14068\nS'PublishedFile'\np14069\nssS'editable'\np14070\n(dp14071\nS'editable'\np14072\nI00\nsS'value'\np14073\nI00\nssS'unique'\np14074\n(dp14075\nS'editable'\np14076\nI00\nsS'value'\np14077\nI00\nssS'properties'\np14078\n(dp14079\nS'default_value'\np14080\n(dp14081\nS'editable'\np14082\nI00\nsS'value'\np14083\nNssS'summary_default'\np14084\n(dp14085\nS'editable'\np14086\nI01\nsS'value'\np14087\nS'none'\np14088\nssS'valid_types'\np14089\n(dp14090\nS'editable'\np14091\nI01\nsS'value'\np14092\n(lp14093\nS'HumanUser'\np14094\naS'ApiUser'\np14095\nasssS'description'\np14096\n(dp14097\nS'editable'\np14098\nI01\nsS'value'\np14099\ng47\nsssS'open_notes'\np14100\n(dp14101\nS'mandatory'\np14102\n(dp14103\nS'editable'\np14104\nI00\nsS'value'\np14105\nI00\nssS'name'\np14106\n(dp14107\nS'editable'\np14108\nI01\nsS'value'\np14109\nS'Open Notes'\np14110\nssS'data_type'\np14111\n(dp14112\nS'editable'\np14113\nI00\nsS'value'\np14114\nS'multi_entity'\np14115\nssS'entity_type'\np14116\n(dp14117\nS'editable'\np14118\nI00\nsS'value'\np14119\nS'PublishedFile'\np14120\nssS'editable'\np14121\n(dp14122\nS'editable'\np14123\nI00\nsS'value'\np14124\nI00\nssS'unique'\np14125\n(dp14126\nS'editable'\np14127\nI00\nsS'value'\np14128\nI00\nssS'properties'\np14129\n(dp14130\nS'default_value'\np14131\n(dp14132\nS'editable'\np14133\nI00\nsS'value'\np14134\nNssS'summary_default'\np14135\n(dp14136\nS'editable'\np14137\nI01\nsS'value'\np14138\nS'none'\np14139\nssS'valid_types'\np14140\n(dp14141\nS'editable'\np14142\nI01\nsS'value'\np14143\n(lp14144\nS'Note'\np14145\nasssS'description'\np14146\n(dp14147\nS'editable'\np14148\nI01\nsS'value'\np14149\ng47\nsssS'created_by'\np14150\n(dp14151\nS'mandatory'\np14152\n(dp14153\nS'editable'\np14154\nI00\nsS'value'\np14155\nI00\nssS'name'\np14156\n(dp14157\nS'editable'\np14158\nI01\nsS'value'\np14159\nS'Created by'\np14160\nssS'data_type'\np14161\n(dp14162\nS'editable'\np14163\nI00\nsS'value'\np14164\nS'entity'\np14165\nssS'entity_type'\np14166\n(dp14167\nS'editable'\np14168\nI00\nsS'value'\np14169\nS'PublishedFile'\np14170\nssS'editable'\np14171\n(dp14172\nS'editable'\np14173\nI00\nsS'value'\np14174\nI00\nssS'unique'\np14175\n(dp14176\nS'editable'\np14177\nI00\nsS'value'\np14178\nI00\nssS'properties'\np14179\n(dp14180\nS'default_value'\np14181\n(dp14182\nS'editable'\np14183\nI00\nsS'value'\np14184\nNssS'summary_default'\np14185\n(dp14186\nS'editable'\np14187\nI01\nsS'value'\np14188\nS'none'\np14189\nssS'valid_types'\np14190\n(dp14191\nS'editable'\np14192\nI01\nsS'value'\np14193\n(lp14194\nS'HumanUser'\np14195\naS'ApiUser'\np14196\nasssS'description'\np14197\n(dp14198\nS'editable'\np14199\nI01\nsS'value'\np14200\ng47\nsssS'version'\np14201\n(dp14202\nS'mandatory'\np14203\n(dp14204\nS'editable'\np14205\nI00\nsS'value'\np14206\nI00\nssS'name'\np14207\n(dp14208\nS'editable'\np14209\nI01\nsS'value'\np14210\nS'Version'\np14211\nssS'data_type'\np14212\n(dp14213\nS'editable'\np14214\nI00\nsS'value'\np14215\nS'entity'\np14216\nssS'entity_type'\np14217\n(dp14218\nS'editable'\np14219\nI00\nsS'value'\np14220\nS'PublishedFile'\np14221\nssS'editable'\np14222\n(dp14223\nS'editable'\np14224\nI00\nsS'value'\np14225\nI01\nssS'unique'\np14226\n(dp14227\nS'editable'\np14228\nI00\nsS'value'\np14229\nI00\nssS'properties'\np14230\n(dp14231\nS'default_value'\np14232\n(dp14233\nS'editable'\np14234\nI00\nsS'value'\np14235\nNssS'summary_default'\np14236\n(dp14237\nS'editable'\np14238\nI01\nsS'value'\np14239\nS'none'\np14240\nssS'valid_types'\np14241\n(dp14242\nS'editable'\np14243\nI01\nsS'value'\np14244\n(lp14245\nS'Version'\np14246\nasssS'description'\np14247\n(dp14248\nS'editable'\np14249\nI01\nsS'value'\np14250\ng47\nsssS'upstream_published_files'\np14251\n(dp14252\nS'mandatory'\np14253\n(dp14254\nS'editable'\np14255\nI00\nsS'value'\np14256\nI00\nssS'name'\np14257\n(dp14258\nS'editable'\np14259\nI01\nsS'value'\np14260\nS'Upstream Published Files'\np14261\nssS'data_type'\np14262\n(dp14263\nS'editable'\np14264\nI00\nsS'value'\np14265\nS'multi_entity'\np14266\nssS'entity_type'\np14267\n(dp14268\nS'editable'\np14269\nI00\nsS'value'\np14270\nS'PublishedFile'\np14271\nssS'editable'\np14272\n(dp14273\nS'editable'\np14274\nI00\nsS'value'\np14275\nI01\nssS'unique'\np14276\n(dp14277\nS'editable'\np14278\nI00\nsS'value'\np14279\nI00\nssS'properties'\np14280\n(dp14281\nS'default_value'\np14282\n(dp14283\nS'editable'\np14284\nI00\nsS'value'\np14285\nNssS'summary_default'\np14286\n(dp14287\nS'editable'\np14288\nI00\nsS'value'\np14289\nS'none'\np14290\nssS'valid_types'\np14291\n(dp14292\nS'editable'\np14293\nI00\nsS'value'\np14294\n(lp14295\nS'PublishedFile'\np14296\nasssS'description'\np14297\n(dp14298\nS'editable'\np14299\nI01\nsS'value'\np14300\ng47\nsssS'sg_status_list'\np14301\n(dp14302\nS'mandatory'\np14303\n(dp14304\nS'editable'\np14305\nI00\nsS'value'\np14306\nI00\nssS'name'\np14307\n(dp14308\nS'editable'\np14309\nI01\nsS'value'\np14310\nS'Status'\np14311\nssS'data_type'\np14312\n(dp14313\nS'editable'\np14314\nI00\nsS'value'\np14315\nS'status_list'\np14316\nssS'entity_type'\np14317\n(dp14318\nS'editable'\np14319\nI00\nsS'value'\np14320\nS'PublishedFile'\np14321\nssS'editable'\np14322\n(dp14323\nS'editable'\np14324\nI00\nsS'value'\np14325\nI01\nssS'unique'\np14326\n(dp14327\nS'editable'\np14328\nI00\nsS'value'\np14329\nI00\nssS'properties'\np14330\n(dp14331\nS'default_value'\np14332\n(dp14333\nS'editable'\np14334\nI01\nsS'value'\np14335\nS'wtg'\np14336\nssS'valid_values'\np14337\n(dp14338\nS'editable'\np14339\nI01\nsS'value'\np14340\n(lp14341\nS'wtg'\np14342\naS'ip'\np14343\naS'cmpt'\np14344\nassS'summary_default'\np14345\n(dp14346\nS'editable'\np14347\nI01\nsS'value'\np14348\nS'none'\np14349\nsssS'description'\np14350\n(dp14351\nS'editable'\np14352\nI01\nsS'value'\np14353\ng47\nsssS'description'\np14354\n(dp14355\nS'mandatory'\np14356\n(dp14357\nS'editable'\np14358\nI00\nsS'value'\np14359\nI00\nssS'name'\np14360\n(dp14361\nS'editable'\np14362\nI01\nsS'value'\np14363\nS'Description'\np14364\nssS'data_type'\np14365\n(dp14366\nS'editable'\np14367\nI00\nsS'value'\np14368\nS'text'\np14369\nssS'entity_type'\np14370\n(dp14371\nS'editable'\np14372\nI00\nsS'value'\np14373\nS'PublishedFile'\np14374\nssS'editable'\np14375\n(dp14376\nS'editable'\np14377\nI00\nsS'value'\np14378\nI01\nssS'unique'\np14379\n(dp14380\nS'editable'\np14381\nI00\nsS'value'\np14382\nI00\nssS'properties'\np14383\n(dp14384\nS'default_value'\np14385\n(dp14386\nS'editable'\np14387\nI00\nsS'value'\np14388\nNssS'summary_default'\np14389\n(dp14390\nS'editable'\np14391\nI01\nsS'value'\np14392\nS'none'\np14393\nsssS'description'\np14394\n(dp14395\nS'editable'\np14396\nI01\nsS'value'\np14397\ng47\nsssS'path_cache_storage'\np14398\n(dp14399\nS'mandatory'\np14400\n(dp14401\nS'editable'\np14402\nI00\nsS'value'\np14403\nI00\nssS'name'\np14404\n(dp14405\nS'editable'\np14406\nI01\nsS'value'\np14407\nS'Path Cache Storage'\np14408\nssS'data_type'\np14409\n(dp14410\nS'editable'\np14411\nI00\nsS'value'\np14412\nS'entity'\np14413\nssS'entity_type'\np14414\n(dp14415\nS'editable'\np14416\nI00\nsS'value'\np14417\nS'PublishedFile'\np14418\nssS'editable'\np14419\n(dp14420\nS'editable'\np14421\nI00\nsS'value'\np14422\nI01\nssS'unique'\np14423\n(dp14424\nS'editable'\np14425\nI00\nsS'value'\np14426\nI00\nssS'properties'\np14427\n(dp14428\nS'default_value'\np14429\n(dp14430\nS'editable'\np14431\nI00\nsS'value'\np14432\nNssS'summary_default'\np14433\n(dp14434\nS'editable'\np14435\nI01\nsS'value'\np14436\nS'none'\np14437\nssS'valid_types'\np14438\n(dp14439\nS'editable'\np14440\nI01\nsS'value'\np14441\n(lp14442\nS'LocalStorage'\np14443\nasssS'description'\np14444\n(dp14445\nS'editable'\np14446\nI01\nsS'value'\np14447\ng47\nsssS'downstream_published_files'\np14448\n(dp14449\nS'mandatory'\np14450\n(dp14451\nS'editable'\np14452\nI00\nsS'value'\np14453\nI00\nssS'name'\np14454\n(dp14455\nS'editable'\np14456\nI01\nsS'value'\np14457\nS'Downstream Published Files'\np14458\nssS'data_type'\np14459\n(dp14460\nS'editable'\np14461\nI00\nsS'value'\np14462\nS'multi_entity'\np14463\nssS'entity_type'\np14464\n(dp14465\nS'editable'\np14466\nI00\nsS'value'\np14467\nS'PublishedFile'\np14468\nssS'editable'\np14469\n(dp14470\nS'editable'\np14471\nI00\nsS'value'\np14472\nI01\nssS'unique'\np14473\n(dp14474\nS'editable'\np14475\nI00\nsS'value'\np14476\nI00\nssS'properties'\np14477\n(dp14478\nS'default_value'\np14479\n(dp14480\nS'editable'\np14481\nI00\nsS'value'\np14482\nNssS'summary_default'\np14483\n(dp14484\nS'editable'\np14485\nI00\nsS'value'\np14486\nS'none'\np14487\nssS'valid_types'\np14488\n(dp14489\nS'editable'\np14490\nI00\nsS'value'\np14491\n(lp14492\nS'PublishedFile'\np14493\nasssS'description'\np14494\n(dp14495\nS'editable'\np14496\nI01\nsS'value'\np14497\ng47\nsssS'path'\np14498\n(dp14499\nS'mandatory'\np14500\n(dp14501\nS'editable'\np14502\nI00\nsS'value'\np14503\nI00\nssS'name'\np14504\n(dp14505\nS'editable'\np14506\nI01\nsS'value'\np14507\nS'Path'\np14508\nssS'data_type'\np14509\n(dp14510\nS'editable'\np14511\nI00\nsS'value'\np14512\nS'url'\np14513\nssS'entity_type'\np14514\n(dp14515\nS'editable'\np14516\nI00\nsS'value'\np14517\nS'PublishedFile'\np14518\nssS'editable'\np14519\n(dp14520\nS'editable'\np14521\nI00\nsS'value'\np14522\nI01\nssS'unique'\np14523\n(dp14524\nS'editable'\np14525\nI00\nsS'value'\np14526\nI00\nssS'properties'\np14527\n(dp14528\nS'default_value'\np14529\n(dp14530\nS'editable'\np14531\nI00\nsS'value'\np14532\nNssS'open_in_new_window'\np14533\n(dp14534\nS'editable'\np14535\nI01\nsS'value'\np14536\nI01\nssS'summary_default'\np14537\n(dp14538\nS'editable'\np14539\nI01\nsS'value'\np14540\nS'none'\np14541\nsssS'description'\np14542\n(dp14543\nS'editable'\np14544\nI01\nsS'value'\np14545\ng47\nsssS'version_number'\np14546\n(dp14547\nS'mandatory'\np14548\n(dp14549\nS'editable'\np14550\nI00\nsS'value'\np14551\nI00\nssS'name'\np14552\n(dp14553\nS'editable'\np14554\nI01\nsS'value'\np14555\nS'Version Number'\np14556\nssS'data_type'\np14557\n(dp14558\nS'editable'\np14559\nI00\nsS'value'\np14560\nS'number'\np14561\nssS'entity_type'\np14562\n(dp14563\nS'editable'\np14564\nI00\nsS'value'\np14565\nS'PublishedFile'\np14566\nssS'editable'\np14567\n(dp14568\nS'editable'\np14569\nI00\nsS'value'\np14570\nI01\nssS'unique'\np14571\n(dp14572\nS'editable'\np14573\nI00\nsS'value'\np14574\nI00\nssS'properties'\np14575\n(dp14576\nS'default_value'\np14577\n(dp14578\nS'editable'\np14579\nI00\nsS'value'\np14580\nNssS'summary_default'\np14581\n(dp14582\nS'editable'\np14583\nI01\nsS'value'\np14584\nS'none'\np14585\nsssS'description'\np14586\n(dp14587\nS'editable'\np14588\nI01\nsS'value'\np14589\ng47\nsssS'task'\np14590\n(dp14591\nS'mandatory'\np14592\n(dp14593\nS'editable'\np14594\nI00\nsS'value'\np14595\nI00\nssS'name'\np14596\n(dp14597\nS'editable'\np14598\nI01\nsS'value'\np14599\nS'Task'\np14600\nssS'data_type'\np14601\n(dp14602\nS'editable'\np14603\nI00\nsS'value'\np14604\nS'entity'\np14605\nssS'entity_type'\np14606\n(dp14607\nS'editable'\np14608\nI00\nsS'value'\np14609\nS'PublishedFile'\np14610\nssS'editable'\np14611\n(dp14612\nS'editable'\np14613\nI00\nsS'value'\np14614\nI01\nssS'unique'\np14615\n(dp14616\nS'editable'\np14617\nI00\nsS'value'\np14618\nI00\nssS'properties'\np14619\n(dp14620\nS'default_value'\np14621\n(dp14622\nS'editable'\np14623\nI00\nsS'value'\np14624\nNssS'summary_default'\np14625\n(dp14626\nS'editable'\np14627\nI01\nsS'value'\np14628\nS'none'\np14629\nssS'valid_types'\np14630\n(dp14631\nS'editable'\np14632\nI01\nsS'value'\np14633\n(lp14634\nS'Task'\np14635\nasssS'description'\np14636\n(dp14637\nS'editable'\np14638\nI01\nsS'value'\np14639\ng47\nsssS'name'\np14640\n(dp14641\nS'mandatory'\np14642\n(dp14643\nS'editable'\np14644\nI00\nsS'value'\np14645\nI00\nssS'name'\np14646\n(dp14647\nS'editable'\np14648\nI01\nsS'value'\np14649\nS'Name'\np14650\nssS'data_type'\np14651\n(dp14652\nS'editable'\np14653\nI00\nsS'value'\np14654\nS'text'\np14655\nssS'entity_type'\np14656\n(dp14657\nS'editable'\np14658\nI00\nsS'value'\np14659\nS'PublishedFile'\np14660\nssS'editable'\np14661\n(dp14662\nS'editable'\np14663\nI00\nsS'value'\np14664\nI01\nssS'unique'\np14665\n(dp14666\nS'editable'\np14667\nI00\nsS'value'\np14668\nI00\nssS'properties'\np14669\n(dp14670\nS'default_value'\np14671\n(dp14672\nS'editable'\np14673\nI00\nsS'value'\np14674\nNssS'summary_default'\np14675\n(dp14676\nS'editable'\np14677\nI01\nsS'value'\np14678\nS'none'\np14679\nsssS'description'\np14680\n(dp14681\nS'editable'\np14682\nI01\nsS'value'\np14683\ng47\nsssS'created_at'\np14684\n(dp14685\nS'mandatory'\np14686\n(dp14687\nS'editable'\np14688\nI00\nsS'value'\np14689\nI00\nssS'name'\np14690\n(dp14691\nS'editable'\np14692\nI01\nsS'value'\np14693\nS'Date Created'\np14694\nssS'data_type'\np14695\n(dp14696\nS'editable'\np14697\nI00\nsS'value'\np14698\nS'date_time'\np14699\nssS'entity_type'\np14700\n(dp14701\nS'editable'\np14702\nI00\nsS'value'\np14703\nS'PublishedFile'\np14704\nssS'editable'\np14705\n(dp14706\nS'editable'\np14707\nI00\nsS'value'\np14708\nI00\nssS'unique'\np14709\n(dp14710\nS'editable'\np14711\nI00\nsS'value'\np14712\nI00\nssS'properties'\np14713\n(dp14714\nS'default_value'\np14715\n(dp14716\nS'editable'\np14717\nI00\nsS'value'\np14718\nNssS'summary_default'\np14719\n(dp14720\nS'editable'\np14721\nI01\nsS'value'\np14722\nS'none'\np14723\nsssS'description'\np14724\n(dp14725\nS'editable'\np14726\nI01\nsS'value'\np14727\ng47\nsssS'published_file_type'\np14728\n(dp14729\nS'mandatory'\np14730\n(dp14731\nS'editable'\np14732\nI00\nsS'value'\np14733\nI00\nssS'name'\np14734\n(dp14735\nS'editable'\np14736\nI01\nsS'value'\np14737\nS'Published File Type'\np14738\nssS'data_type'\np14739\n(dp14740\nS'editable'\np14741\nI00\nsS'value'\np14742\nS'entity'\np14743\nssS'entity_type'\np14744\n(dp14745\nS'editable'\np14746\nI00\nsS'value'\np14747\nS'PublishedFile'\np14748\nssS'editable'\np14749\n(dp14750\nS'editable'\np14751\nI00\nsS'value'\np14752\nI01\nssS'unique'\np14753\n(dp14754\nS'editable'\np14755\nI00\nsS'value'\np14756\nI00\nssS'properties'\np14757\n(dp14758\nS'default_value'\np14759\n(dp14760\nS'editable'\np14761\nI00\nsS'value'\np14762\nNssS'summary_default'\np14763\n(dp14764\nS'editable'\np14765\nI01\nsS'value'\np14766\nS'none'\np14767\nssS'valid_types'\np14768\n(dp14769\nS'editable'\np14770\nI01\nsS'value'\np14771\n(lp14772\nS'PublishedFileType'\np14773\nasssS'description'\np14774\n(dp14775\nS'editable'\np14776\nI01\nsS'value'\np14777\ng47\nsssS'project'\np14778\n(dp14779\nS'mandatory'\np14780\n(dp14781\nS'editable'\np14782\nI00\nsS'value'\np14783\nI00\nssS'name'\np14784\n(dp14785\nS'editable'\np14786\nI01\nsS'value'\np14787\nS'Project'\np14788\nssS'data_type'\np14789\n(dp14790\nS'editable'\np14791\nI00\nsS'value'\np14792\nS'entity'\np14793\nssS'entity_type'\np14794\n(dp14795\nS'editable'\np14796\nI00\nsS'value'\np14797\nS'PublishedFile'\np14798\nssS'editable'\np14799\n(dp14800\nS'editable'\np14801\nI00\nsS'value'\np14802\nI01\nssS'unique'\np14803\n(dp14804\nS'editable'\np14805\nI00\nsS'value'\np14806\nI00\nssS'properties'\np14807\n(dp14808\nS'default_value'\np14809\n(dp14810\nS'editable'\np14811\nI00\nsS'value'\np14812\nNssS'summary_default'\np14813\n(dp14814\nS'editable'\np14815\nI01\nsS'value'\np14816\nS'none'\np14817\nssS'valid_types'\np14818\n(dp14819\nS'editable'\np14820\nI01\nsS'value'\np14821\n(lp14822\nS'Project'\np14823\nasssS'description'\np14824\n(dp14825\nS'editable'\np14826\nI01\nsS'value'\np14827\ng47\nsssS'tag_list'\np14828\n(dp14829\nS'mandatory'\np14830\n(dp14831\nS'editable'\np14832\nI00\nsS'value'\np14833\nI00\nssS'name'\np14834\n(dp14835\nS'editable'\np14836\nI01\nsS'value'\np14837\nS'Tags'\np14838\nssS'data_type'\np14839\n(dp14840\nS'editable'\np14841\nI00\nsS'value'\np14842\nS'tag_list'\np14843\nssS'entity_type'\np14844\n(dp14845\nS'editable'\np14846\nI00\nsS'value'\np14847\nS'PublishedFile'\np14848\nssS'editable'\np14849\n(dp14850\nS'editable'\np14851\nI00\nsS'value'\np14852\nI01\nssS'unique'\np14853\n(dp14854\nS'editable'\np14855\nI00\nsS'value'\np14856\nI00\nssS'properties'\np14857\n(dp14858\nS'default_value'\np14859\n(dp14860\nS'editable'\np14861\nI00\nsS'value'\np14862\nNssS'summary_default'\np14863\n(dp14864\nS'editable'\np14865\nI01\nsS'value'\np14866\nS'none'\np14867\nssS'valid_types'\np14868\n(dp14869\nS'editable'\np14870\nI01\nsS'value'\np14871\n(lp14872\nS'Tag'\np14873\nasssS'description'\np14874\n(dp14875\nS'editable'\np14876\nI01\nsS'value'\np14877\ng47\nsssS'notes'\np14878\n(dp14879\nS'mandatory'\np14880\n(dp14881\nS'editable'\np14882\nI00\nsS'value'\np14883\nI00\nssS'name'\np14884\n(dp14885\nS'editable'\np14886\nI01\nsS'value'\np14887\nS'Notes'\np14888\nssS'data_type'\np14889\n(dp14890\nS'editable'\np14891\nI00\nsS'value'\np14892\nS'multi_entity'\np14893\nssS'entity_type'\np14894\n(dp14895\nS'editable'\np14896\nI00\nsS'value'\np14897\nS'PublishedFile'\np14898\nssS'editable'\np14899\n(dp14900\nS'editable'\np14901\nI00\nsS'value'\np14902\nI01\nssS'unique'\np14903\n(dp14904\nS'editable'\np14905\nI00\nsS'value'\np14906\nI00\nssS'properties'\np14907\n(dp14908\nS'default_value'\np14909\n(dp14910\nS'editable'\np14911\nI00\nsS'value'\np14912\nNssS'summary_default'\np14913\n(dp14914\nS'editable'\np14915\nI01\nsS'value'\np14916\nS'none'\np14917\nssS'valid_types'\np14918\n(dp14919\nS'editable'\np14920\nI01\nsS'value'\np14921\n(lp14922\nS'Note'\np14923\nasssS'description'\np14924\n(dp14925\nS'editable'\np14926\nI01\nsS'value'\np14927\ng47\nssssS'ShootDaySceneConnection'\np14928\n(dp14929\nS'cached_display_name'\np14930\n(dp14931\nS'mandatory'\np14932\n(dp14933\nS'editable'\np14934\nI00\nsS'value'\np14935\nI00\nssS'name'\np14936\n(dp14937\nS'editable'\np14938\nI01\nsS'value'\np14939\nS'Cached Display Name'\np14940\nssS'data_type'\np14941\n(dp14942\nS'editable'\np14943\nI00\nsS'value'\np14944\nS'text'\np14945\nssS'entity_type'\np14946\n(dp14947\nS'editable'\np14948\nI00\nsS'value'\np14949\nS'ShootDaySceneConnection'\np14950\nssS'editable'\np14951\n(dp14952\nS'editable'\np14953\nI00\nsS'value'\np14954\nI01\nssS'unique'\np14955\n(dp14956\nS'editable'\np14957\nI00\nsS'value'\np14958\nI00\nssS'properties'\np14959\n(dp14960\nS'default_value'\np14961\n(dp14962\nS'editable'\np14963\nI00\nsS'value'\np14964\nNssS'summary_default'\np14965\n(dp14966\nS'editable'\np14967\nI00\nsS'value'\np14968\nS'none'\np14969\nsssS'description'\np14970\n(dp14971\nS'editable'\np14972\nI01\nsS'value'\np14973\ng47\nsssS'scene'\np14974\n(dp14975\nS'mandatory'\np14976\n(dp14977\nS'editable'\np14978\nI00\nsS'value'\np14979\nI00\nssS'name'\np14980\n(dp14981\nS'editable'\np14982\nI01\nsS'value'\np14983\nS'Scene'\np14984\nssS'data_type'\np14985\n(dp14986\nS'editable'\np14987\nI00\nsS'value'\np14988\nS'entity'\np14989\nssS'entity_type'\np14990\n(dp14991\nS'editable'\np14992\nI00\nsS'value'\np14993\nS'ShootDaySceneConnection'\np14994\nssS'editable'\np14995\n(dp14996\nS'editable'\np14997\nI00\nsS'value'\np14998\nI00\nssS'unique'\np14999\n(dp15000\nS'editable'\np15001\nI00\nsS'value'\np15002\nI00\nssS'properties'\np15003\n(dp15004\nS'default_value'\np15005\n(dp15006\nS'editable'\np15007\nI00\nsS'value'\np15008\nNssS'summary_default'\np15009\n(dp15010\nS'editable'\np15011\nI00\nsS'value'\np15012\nS'none'\np15013\nssS'valid_types'\np15014\n(dp15015\nS'editable'\np15016\nI00\nsS'value'\np15017\n(lp15018\nS'Scene'\np15019\nasssS'description'\np15020\n(dp15021\nS'editable'\np15022\nI01\nsS'value'\np15023\ng47\nsssS'id'\np15024\n(dp15025\nS'mandatory'\np15026\n(dp15027\nS'editable'\np15028\nI00\nsS'value'\np15029\nI01\nssS'name'\np15030\n(dp15031\nS'editable'\np15032\nI01\nsS'value'\np15033\nS'Id'\np15034\nssS'data_type'\np15035\n(dp15036\nS'editable'\np15037\nI00\nsS'value'\np15038\nS'number'\np15039\nssS'entity_type'\np15040\n(dp15041\nS'editable'\np15042\nI00\nsS'value'\np15043\nS'ShootDaySceneConnection'\np15044\nssS'editable'\np15045\n(dp15046\nS'editable'\np15047\nI00\nsS'value'\np15048\nI00\nssS'unique'\np15049\n(dp15050\nS'editable'\np15051\nI00\nsS'value'\np15052\nI00\nssS'properties'\np15053\n(dp15054\nS'default_value'\np15055\n(dp15056\nS'editable'\np15057\nI00\nsS'value'\np15058\nNssS'summary_default'\np15059\n(dp15060\nS'editable'\np15061\nI00\nsS'value'\np15062\nS'none'\np15063\nsssS'description'\np15064\n(dp15065\nS'editable'\np15066\nI01\nsS'value'\np15067\ng47\nsssS'shoot_day'\np15068\n(dp15069\nS'mandatory'\np15070\n(dp15071\nS'editable'\np15072\nI00\nsS'value'\np15073\nI00\nssS'name'\np15074\n(dp15075\nS'editable'\np15076\nI01\nsS'value'\np15077\nS'Shoot Day'\np15078\nssS'data_type'\np15079\n(dp15080\nS'editable'\np15081\nI00\nsS'value'\np15082\nS'entity'\np15083\nssS'entity_type'\np15084\n(dp15085\nS'editable'\np15086\nI00\nsS'value'\np15087\nS'ShootDaySceneConnection'\np15088\nssS'editable'\np15089\n(dp15090\nS'editable'\np15091\nI00\nsS'value'\np15092\nI00\nssS'unique'\np15093\n(dp15094\nS'editable'\np15095\nI00\nsS'value'\np15096\nI00\nssS'properties'\np15097\n(dp15098\nS'default_value'\np15099\n(dp15100\nS'editable'\np15101\nI00\nsS'value'\np15102\nNssS'summary_default'\np15103\n(dp15104\nS'editable'\np15105\nI00\nsS'value'\np15106\nS'none'\np15107\nssS'valid_types'\np15108\n(dp15109\nS'editable'\np15110\nI00\nsS'value'\np15111\n(lp15112\nS'ShootDay'\np15113\nasssS'description'\np15114\n(dp15115\nS'editable'\np15116\nI01\nsS'value'\np15117\ng47\nssssS'AssetShotConnection'\np15118\n(dp15119\nS'cached_display_name'\np15120\n(dp15121\nS'mandatory'\np15122\n(dp15123\nS'editable'\np15124\nI00\nsS'value'\np15125\nI00\nssS'name'\np15126\n(dp15127\nS'editable'\np15128\nI01\nsS'value'\np15129\nS'Cached Display Name'\np15130\nssS'data_type'\np15131\n(dp15132\nS'editable'\np15133\nI00\nsS'value'\np15134\nS'text'\np15135\nssS'entity_type'\np15136\n(dp15137\nS'editable'\np15138\nI00\nsS'value'\np15139\nS'AssetShotConnection'\np15140\nssS'editable'\np15141\n(dp15142\nS'editable'\np15143\nI00\nsS'value'\np15144\nI01\nssS'unique'\np15145\n(dp15146\nS'editable'\np15147\nI00\nsS'value'\np15148\nI00\nssS'properties'\np15149\n(dp15150\nS'default_value'\np15151\n(dp15152\nS'editable'\np15153\nI00\nsS'value'\np15154\nNssS'summary_default'\np15155\n(dp15156\nS'editable'\np15157\nI00\nsS'value'\np15158\nS'none'\np15159\nsssS'description'\np15160\n(dp15161\nS'editable'\np15162\nI01\nsS'value'\np15163\ng47\nsssS'shot'\np15164\n(dp15165\nS'mandatory'\np15166\n(dp15167\nS'editable'\np15168\nI00\nsS'value'\np15169\nI00\nssS'name'\np15170\n(dp15171\nS'editable'\np15172\nI01\nsS'value'\np15173\nS'Shot'\np15174\nssS'data_type'\np15175\n(dp15176\nS'editable'\np15177\nI00\nsS'value'\np15178\nS'entity'\np15179\nssS'entity_type'\np15180\n(dp15181\nS'editable'\np15182\nI00\nsS'value'\np15183\nS'AssetShotConnection'\np15184\nssS'editable'\np15185\n(dp15186\nS'editable'\np15187\nI00\nsS'value'\np15188\nI00\nssS'unique'\np15189\n(dp15190\nS'editable'\np15191\nI00\nsS'value'\np15192\nI00\nssS'properties'\np15193\n(dp15194\nS'default_value'\np15195\n(dp15196\nS'editable'\np15197\nI00\nsS'value'\np15198\nNssS'summary_default'\np15199\n(dp15200\nS'editable'\np15201\nI00\nsS'value'\np15202\nS'none'\np15203\nssS'valid_types'\np15204\n(dp15205\nS'editable'\np15206\nI00\nsS'value'\np15207\n(lp15208\nS'Shot'\np15209\nasssS'description'\np15210\n(dp15211\nS'editable'\np15212\nI01\nsS'value'\np15213\ng47\nsssS'asset'\np15214\n(dp15215\nS'mandatory'\np15216\n(dp15217\nS'editable'\np15218\nI00\nsS'value'\np15219\nI00\nssS'name'\np15220\n(dp15221\nS'editable'\np15222\nI01\nsS'value'\np15223\nS'Asset'\np15224\nssS'data_type'\np15225\n(dp15226\nS'editable'\np15227\nI00\nsS'value'\np15228\nS'entity'\np15229\nssS'entity_type'\np15230\n(dp15231\nS'editable'\np15232\nI00\nsS'value'\np15233\nS'AssetShotConnection'\np15234\nssS'editable'\np15235\n(dp15236\nS'editable'\np15237\nI00\nsS'value'\np15238\nI00\nssS'unique'\np15239\n(dp15240\nS'editable'\np15241\nI00\nsS'value'\np15242\nI00\nssS'properties'\np15243\n(dp15244\nS'default_value'\np15245\n(dp15246\nS'editable'\np15247\nI00\nsS'value'\np15248\nNssS'summary_default'\np15249\n(dp15250\nS'editable'\np15251\nI00\nsS'value'\np15252\nS'none'\np15253\nssS'valid_types'\np15254\n(dp15255\nS'editable'\np15256\nI00\nsS'value'\np15257\n(lp15258\nS'Asset'\np15259\nasssS'description'\np15260\n(dp15261\nS'editable'\np15262\nI01\nsS'value'\np15263\ng47\nsssS'id'\np15264\n(dp15265\nS'mandatory'\np15266\n(dp15267\nS'editable'\np15268\nI00\nsS'value'\np15269\nI01\nssS'name'\np15270\n(dp15271\nS'editable'\np15272\nI01\nsS'value'\np15273\nS'Id'\np15274\nssS'data_type'\np15275\n(dp15276\nS'editable'\np15277\nI00\nsS'value'\np15278\nS'number'\np15279\nssS'entity_type'\np15280\n(dp15281\nS'editable'\np15282\nI00\nsS'value'\np15283\nS'AssetShotConnection'\np15284\nssS'editable'\np15285\n(dp15286\nS'editable'\np15287\nI00\nsS'value'\np15288\nI00\nssS'unique'\np15289\n(dp15290\nS'editable'\np15291\nI00\nsS'value'\np15292\nI00\nssS'properties'\np15293\n(dp15294\nS'default_value'\np15295\n(dp15296\nS'editable'\np15297\nI00\nsS'value'\np15298\nNssS'summary_default'\np15299\n(dp15300\nS'editable'\np15301\nI00\nsS'value'\np15302\nS'none'\np15303\nsssS'description'\np15304\n(dp15305\nS'editable'\np15306\nI01\nsS'value'\np15307\ng47\nssssS'TicketTicketConnection'\np15308\n(dp15309\nS'dest_ticket'\np15310\n(dp15311\nS'mandatory'\np15312\n(dp15313\nS'editable'\np15314\nI00\nsS'value'\np15315\nI00\nssS'name'\np15316\n(dp15317\nS'editable'\np15318\nI01\nsS'value'\np15319\nS'Ticket'\np15320\nssS'data_type'\np15321\n(dp15322\nS'editable'\np15323\nI00\nsS'value'\np15324\nS'entity'\np15325\nssS'entity_type'\np15326\n(dp15327\nS'editable'\np15328\nI00\nsS'value'\np15329\nS'TicketTicketConnection'\np15330\nssS'editable'\np15331\n(dp15332\nS'editable'\np15333\nI00\nsS'value'\np15334\nI00\nssS'unique'\np15335\n(dp15336\nS'editable'\np15337\nI00\nsS'value'\np15338\nI00\nssS'properties'\np15339\n(dp15340\nS'default_value'\np15341\n(dp15342\nS'editable'\np15343\nI00\nsS'value'\np15344\nNssS'summary_default'\np15345\n(dp15346\nS'editable'\np15347\nI00\nsS'value'\np15348\nS'none'\np15349\nssS'valid_types'\np15350\n(dp15351\nS'editable'\np15352\nI00\nsS'value'\np15353\n(lp15354\nS'Ticket'\np15355\nasssS'description'\np15356\n(dp15357\nS'editable'\np15358\nI01\nsS'value'\np15359\ng47\nsssS'cached_display_name'\np15360\n(dp15361\nS'mandatory'\np15362\n(dp15363\nS'editable'\np15364\nI00\nsS'value'\np15365\nI00\nssS'name'\np15366\n(dp15367\nS'editable'\np15368\nI01\nsS'value'\np15369\nS'Cached Display Name'\np15370\nssS'data_type'\np15371\n(dp15372\nS'editable'\np15373\nI00\nsS'value'\np15374\nS'text'\np15375\nssS'entity_type'\np15376\n(dp15377\nS'editable'\np15378\nI00\nsS'value'\np15379\nS'TicketTicketConnection'\np15380\nssS'editable'\np15381\n(dp15382\nS'editable'\np15383\nI00\nsS'value'\np15384\nI01\nssS'unique'\np15385\n(dp15386\nS'editable'\np15387\nI00\nsS'value'\np15388\nI00\nssS'properties'\np15389\n(dp15390\nS'default_value'\np15391\n(dp15392\nS'editable'\np15393\nI00\nsS'value'\np15394\nNssS'summary_default'\np15395\n(dp15396\nS'editable'\np15397\nI00\nsS'value'\np15398\nS'none'\np15399\nsssS'description'\np15400\n(dp15401\nS'editable'\np15402\nI01\nsS'value'\np15403\ng47\nsssS'source_ticket'\np15404\n(dp15405\nS'mandatory'\np15406\n(dp15407\nS'editable'\np15408\nI00\nsS'value'\np15409\nI00\nssS'name'\np15410\n(dp15411\nS'editable'\np15412\nI01\nsS'value'\np15413\nS'Ticket'\np15414\nssS'data_type'\np15415\n(dp15416\nS'editable'\np15417\nI00\nsS'value'\np15418\nS'entity'\np15419\nssS'entity_type'\np15420\n(dp15421\nS'editable'\np15422\nI00\nsS'value'\np15423\nS'TicketTicketConnection'\np15424\nssS'editable'\np15425\n(dp15426\nS'editable'\np15427\nI00\nsS'value'\np15428\nI00\nssS'unique'\np15429\n(dp15430\nS'editable'\np15431\nI00\nsS'value'\np15432\nI00\nssS'properties'\np15433\n(dp15434\nS'default_value'\np15435\n(dp15436\nS'editable'\np15437\nI00\nsS'value'\np15438\nNssS'summary_default'\np15439\n(dp15440\nS'editable'\np15441\nI00\nsS'value'\np15442\nS'none'\np15443\nssS'valid_types'\np15444\n(dp15445\nS'editable'\np15446\nI00\nsS'value'\np15447\n(lp15448\nS'Ticket'\np15449\nasssS'description'\np15450\n(dp15451\nS'editable'\np15452\nI01\nsS'value'\np15453\ng47\nsssS'id'\np15454\n(dp15455\nS'mandatory'\np15456\n(dp15457\nS'editable'\np15458\nI00\nsS'value'\np15459\nI01\nssS'name'\np15460\n(dp15461\nS'editable'\np15462\nI01\nsS'value'\np15463\nS'Id'\np15464\nssS'data_type'\np15465\n(dp15466\nS'editable'\np15467\nI00\nsS'value'\np15468\nS'number'\np15469\nssS'entity_type'\np15470\n(dp15471\nS'editable'\np15472\nI00\nsS'value'\np15473\nS'TicketTicketConnection'\np15474\nssS'editable'\np15475\n(dp15476\nS'editable'\np15477\nI00\nsS'value'\np15478\nI00\nssS'unique'\np15479\n(dp15480\nS'editable'\np15481\nI00\nsS'value'\np15482\nI00\nssS'properties'\np15483\n(dp15484\nS'default_value'\np15485\n(dp15486\nS'editable'\np15487\nI00\nsS'value'\np15488\nNssS'summary_default'\np15489\n(dp15490\nS'editable'\np15491\nI00\nsS'value'\np15492\nS'none'\np15493\nsssS'description'\np15494\n(dp15495\nS'editable'\np15496\nI01\nsS'value'\np15497\ng47\nssssS'AssetBlendshapeConnection'\np15498\n(dp15499\nS'cached_display_name'\np15500\n(dp15501\nS'mandatory'\np15502\n(dp15503\nS'editable'\np15504\nI00\nsS'value'\np15505\nI00\nssS'name'\np15506\n(dp15507\nS'editable'\np15508\nI01\nsS'value'\np15509\nS'Cached Display Name'\np15510\nssS'data_type'\np15511\n(dp15512\nS'editable'\np15513\nI00\nsS'value'\np15514\nS'text'\np15515\nssS'entity_type'\np15516\n(dp15517\nS'editable'\np15518\nI00\nsS'value'\np15519\nS'AssetBlendshapeConnection'\np15520\nssS'editable'\np15521\n(dp15522\nS'editable'\np15523\nI00\nsS'value'\np15524\nI01\nssS'unique'\np15525\n(dp15526\nS'editable'\np15527\nI00\nsS'value'\np15528\nI00\nssS'properties'\np15529\n(dp15530\nS'default_value'\np15531\n(dp15532\nS'editable'\np15533\nI00\nsS'value'\np15534\nNssS'summary_default'\np15535\n(dp15536\nS'editable'\np15537\nI00\nsS'value'\np15538\nS'none'\np15539\nsssS'description'\np15540\n(dp15541\nS'editable'\np15542\nI01\nsS'value'\np15543\ng47\nsssS'asset'\np15544\n(dp15545\nS'mandatory'\np15546\n(dp15547\nS'editable'\np15548\nI00\nsS'value'\np15549\nI00\nssS'name'\np15550\n(dp15551\nS'editable'\np15552\nI01\nsS'value'\np15553\nS'Asset'\np15554\nssS'data_type'\np15555\n(dp15556\nS'editable'\np15557\nI00\nsS'value'\np15558\nS'entity'\np15559\nssS'entity_type'\np15560\n(dp15561\nS'editable'\np15562\nI00\nsS'value'\np15563\nS'AssetBlendshapeConnection'\np15564\nssS'editable'\np15565\n(dp15566\nS'editable'\np15567\nI00\nsS'value'\np15568\nI00\nssS'unique'\np15569\n(dp15570\nS'editable'\np15571\nI00\nsS'value'\np15572\nI00\nssS'properties'\np15573\n(dp15574\nS'default_value'\np15575\n(dp15576\nS'editable'\np15577\nI00\nsS'value'\np15578\nNssS'summary_default'\np15579\n(dp15580\nS'editable'\np15581\nI00\nsS'value'\np15582\nS'none'\np15583\nssS'valid_types'\np15584\n(dp15585\nS'editable'\np15586\nI00\nsS'value'\np15587\n(lp15588\nS'Asset'\np15589\nasssS'description'\np15590\n(dp15591\nS'editable'\np15592\nI01\nsS'value'\np15593\ng47\nsssS'blendshape'\np15594\n(dp15595\nS'mandatory'\np15596\n(dp15597\nS'editable'\np15598\nI00\nsS'value'\np15599\nI00\nssS'name'\np15600\n(dp15601\nS'editable'\np15602\nI01\nsS'value'\np15603\nS'Blendshape'\np15604\nssS'data_type'\np15605\n(dp15606\nS'editable'\np15607\nI00\nsS'value'\np15608\nS'entity'\np15609\nssS'entity_type'\np15610\n(dp15611\nS'editable'\np15612\nI00\nsS'value'\np15613\nS'AssetBlendshapeConnection'\np15614\nssS'editable'\np15615\n(dp15616\nS'editable'\np15617\nI00\nsS'value'\np15618\nI00\nssS'unique'\np15619\n(dp15620\nS'editable'\np15621\nI00\nsS'value'\np15622\nI00\nssS'properties'\np15623\n(dp15624\nS'default_value'\np15625\n(dp15626\nS'editable'\np15627\nI00\nsS'value'\np15628\nNssS'summary_default'\np15629\n(dp15630\nS'editable'\np15631\nI00\nsS'value'\np15632\nS'none'\np15633\nssS'valid_types'\np15634\n(dp15635\nS'editable'\np15636\nI00\nsS'value'\np15637\n(lp15638\nS'Blendshape'\np15639\nasssS'description'\np15640\n(dp15641\nS'editable'\np15642\nI01\nsS'value'\np15643\ng47\nsssS'id'\np15644\n(dp15645\nS'mandatory'\np15646\n(dp15647\nS'editable'\np15648\nI00\nsS'value'\np15649\nI01\nssS'name'\np15650\n(dp15651\nS'editable'\np15652\nI01\nsS'value'\np15653\nS'Id'\np15654\nssS'data_type'\np15655\n(dp15656\nS'editable'\np15657\nI00\nsS'value'\np15658\nS'number'\np15659\nssS'entity_type'\np15660\n(dp15661\nS'editable'\np15662\nI00\nsS'value'\np15663\nS'AssetBlendshapeConnection'\np15664\nssS'editable'\np15665\n(dp15666\nS'editable'\np15667\nI00\nsS'value'\np15668\nI00\nssS'unique'\np15669\n(dp15670\nS'editable'\np15671\nI00\nsS'value'\np15672\nI00\nssS'properties'\np15673\n(dp15674\nS'default_value'\np15675\n(dp15676\nS'editable'\np15677\nI00\nsS'value'\np15678\nNssS'summary_default'\np15679\n(dp15680\nS'editable'\np15681\nI00\nsS'value'\np15682\nS'none'\np15683\nsssS'description'\np15684\n(dp15685\nS'editable'\np15686\nI01\nsS'value'\np15687\ng47\nssssS'PageSetting'\np15688\n(dp15689\nS'created_at'\np15690\n(dp15691\nS'mandatory'\np15692\n(dp15693\nS'editable'\np15694\nI00\nsS'value'\np15695\nI00\nssS'name'\np15696\n(dp15697\nS'editable'\np15698\nI01\nsS'value'\np15699\nS'Date Created'\np15700\nssS'data_type'\np15701\n(dp15702\nS'editable'\np15703\nI00\nsS'value'\np15704\nS'date_time'\np15705\nssS'entity_type'\np15706\n(dp15707\nS'editable'\np15708\nI00\nsS'value'\np15709\nS'PageSetting'\np15710\nssS'editable'\np15711\n(dp15712\nS'editable'\np15713\nI00\nsS'value'\np15714\nI00\nssS'unique'\np15715\n(dp15716\nS'editable'\np15717\nI00\nsS'value'\np15718\nI00\nssS'properties'\np15719\n(dp15720\nS'default_value'\np15721\n(dp15722\nS'editable'\np15723\nI00\nsS'value'\np15724\nNssS'summary_default'\np15725\n(dp15726\nS'editable'\np15727\nI01\nsS'value'\np15728\nS'none'\np15729\nsssS'description'\np15730\n(dp15731\nS'editable'\np15732\nI01\nsS'value'\np15733\ng47\nsssS'settings_json'\np15734\n(dp15735\nS'mandatory'\np15736\n(dp15737\nS'editable'\np15738\nI00\nsS'value'\np15739\nI00\nssS'name'\np15740\n(dp15741\nS'editable'\np15742\nI01\nsS'value'\np15743\nS'Settings'\np15744\nssS'data_type'\np15745\n(dp15746\nS'editable'\np15747\nI00\nsS'value'\np15748\nS'text'\np15749\nssS'entity_type'\np15750\n(dp15751\nS'editable'\np15752\nI00\nsS'value'\np15753\nS'PageSetting'\np15754\nssS'editable'\np15755\n(dp15756\nS'editable'\np15757\nI00\nsS'value'\np15758\nI01\nssS'unique'\np15759\n(dp15760\nS'editable'\np15761\nI00\nsS'value'\np15762\nI00\nssS'properties'\np15763\n(dp15764\nS'default_value'\np15765\n(dp15766\nS'editable'\np15767\nI00\nsS'value'\np15768\nNssS'summary_default'\np15769\n(dp15770\nS'editable'\np15771\nI01\nsS'value'\np15772\nS'none'\np15773\nsssS'description'\np15774\n(dp15775\nS'editable'\np15776\nI01\nsS'value'\np15777\ng47\nsssS'page'\np15778\n(dp15779\nS'mandatory'\np15780\n(dp15781\nS'editable'\np15782\nI00\nsS'value'\np15783\nI00\nssS'name'\np15784\n(dp15785\nS'editable'\np15786\nI01\nsS'value'\np15787\nS'Page'\np15788\nssS'data_type'\np15789\n(dp15790\nS'editable'\np15791\nI00\nsS'value'\np15792\nS'entity'\np15793\nssS'entity_type'\np15794\n(dp15795\nS'editable'\np15796\nI00\nsS'value'\np15797\nS'PageSetting'\np15798\nssS'editable'\np15799\n(dp15800\nS'editable'\np15801\nI00\nsS'value'\np15802\nI01\nssS'unique'\np15803\n(dp15804\nS'editable'\np15805\nI00\nsS'value'\np15806\nI00\nssS'properties'\np15807\n(dp15808\nS'default_value'\np15809\n(dp15810\nS'editable'\np15811\nI00\nsS'value'\np15812\nNssS'summary_default'\np15813\n(dp15814\nS'editable'\np15815\nI01\nsS'value'\np15816\nS'none'\np15817\nssS'valid_types'\np15818\n(dp15819\nS'editable'\np15820\nI01\nsS'value'\np15821\n(lp15822\nS'Page'\np15823\nasssS'description'\np15824\n(dp15825\nS'editable'\np15826\nI01\nsS'value'\np15827\ng47\nsssS'user'\np15828\n(dp15829\nS'mandatory'\np15830\n(dp15831\nS'editable'\np15832\nI00\nsS'value'\np15833\nI00\nssS'name'\np15834\n(dp15835\nS'editable'\np15836\nI01\nsS'value'\np15837\nS'User'\np15838\nssS'data_type'\np15839\n(dp15840\nS'editable'\np15841\nI00\nsS'value'\np15842\nS'entity'\np15843\nssS'entity_type'\np15844\n(dp15845\nS'editable'\np15846\nI00\nsS'value'\np15847\nS'PageSetting'\np15848\nssS'editable'\np15849\n(dp15850\nS'editable'\np15851\nI00\nsS'value'\np15852\nI01\nssS'unique'\np15853\n(dp15854\nS'editable'\np15855\nI00\nsS'value'\np15856\nI00\nssS'properties'\np15857\n(dp15858\nS'default_value'\np15859\n(dp15860\nS'editable'\np15861\nI00\nsS'value'\np15862\nNssS'summary_default'\np15863\n(dp15864\nS'editable'\np15865\nI01\nsS'value'\np15866\nS'none'\np15867\nssS'valid_types'\np15868\n(dp15869\nS'editable'\np15870\nI01\nsS'value'\np15871\n(lp15872\nS'HumanUser'\np15873\nasssS'description'\np15874\n(dp15875\nS'editable'\np15876\nI01\nsS'value'\np15877\ng47\nsssS'cached_display_name'\np15878\n(dp15879\nS'mandatory'\np15880\n(dp15881\nS'editable'\np15882\nI00\nsS'value'\np15883\nI00\nssS'name'\np15884\n(dp15885\nS'editable'\np15886\nI01\nsS'value'\np15887\nS'Cached Display Name'\np15888\nssS'data_type'\np15889\n(dp15890\nS'editable'\np15891\nI00\nsS'value'\np15892\nS'text'\np15893\nssS'entity_type'\np15894\n(dp15895\nS'editable'\np15896\nI00\nsS'value'\np15897\nS'PageSetting'\np15898\nssS'editable'\np15899\n(dp15900\nS'editable'\np15901\nI00\nsS'value'\np15902\nI01\nssS'unique'\np15903\n(dp15904\nS'editable'\np15905\nI00\nsS'value'\np15906\nI00\nssS'properties'\np15907\n(dp15908\nS'default_value'\np15909\n(dp15910\nS'editable'\np15911\nI00\nsS'value'\np15912\nNssS'summary_default'\np15913\n(dp15914\nS'editable'\np15915\nI00\nsS'value'\np15916\nS'none'\np15917\nsssS'description'\np15918\n(dp15919\nS'editable'\np15920\nI01\nsS'value'\np15921\ng47\nsssS'id'\np15922\n(dp15923\nS'mandatory'\np15924\n(dp15925\nS'editable'\np15926\nI00\nsS'value'\np15927\nI00\nssS'name'\np15928\n(dp15929\nS'editable'\np15930\nI01\nsS'value'\np15931\nS'Id'\np15932\nssS'data_type'\np15933\n(dp15934\nS'editable'\np15935\nI00\nsS'value'\np15936\nS'number'\np15937\nssS'entity_type'\np15938\n(dp15939\nS'editable'\np15940\nI00\nsS'value'\np15941\nS'PageSetting'\np15942\nssS'editable'\np15943\n(dp15944\nS'editable'\np15945\nI00\nsS'value'\np15946\nI00\nssS'unique'\np15947\n(dp15948\nS'editable'\np15949\nI00\nsS'value'\np15950\nI00\nssS'properties'\np15951\n(dp15952\nS'default_value'\np15953\n(dp15954\nS'editable'\np15955\nI00\nsS'value'\np15956\nNssS'summary_default'\np15957\n(dp15958\nS'editable'\np15959\nI01\nsS'value'\np15960\nS'none'\np15961\nsssS'description'\np15962\n(dp15963\nS'editable'\np15964\nI01\nsS'value'\np15965\ng47\nssssS'Status'\np15966\n(dp15967\nS'code'\np15968\n(dp15969\nS'mandatory'\np15970\n(dp15971\nS'editable'\np15972\nI00\nsS'value'\np15973\nI00\nssS'name'\np15974\n(dp15975\nS'editable'\np15976\nI01\nsS'value'\np15977\nS'Short Code'\np15978\nssS'data_type'\np15979\n(dp15980\nS'editable'\np15981\nI00\nsS'value'\np15982\nS'text'\np15983\nssS'entity_type'\np15984\n(dp15985\nS'editable'\np15986\nI00\nsS'value'\np15987\nS'Status'\np15988\nssS'editable'\np15989\n(dp15990\nS'editable'\np15991\nI00\nsS'value'\np15992\nI00\nssS'unique'\np15993\n(dp15994\nS'editable'\np15995\nI00\nsS'value'\np15996\nI00\nssS'properties'\np15997\n(dp15998\nS'default_value'\np15999\n(dp16000\nS'editable'\np16001\nI00\nsS'value'\np16002\nNssS'summary_default'\np16003\n(dp16004\nS'editable'\np16005\nI01\nsS'value'\np16006\nS'none'\np16007\nsssS'description'\np16008\n(dp16009\nS'editable'\np16010\nI01\nsS'value'\np16011\ng47\nsssS'name'\np16012\n(dp16013\nS'mandatory'\np16014\n(dp16015\nS'editable'\np16016\nI00\nsS'value'\np16017\nI01\nssS'name'\np16018\n(dp16019\nS'editable'\np16020\nI01\nsS'value'\np16021\nS'Status Name'\np16022\nssS'data_type'\np16023\n(dp16024\nS'editable'\np16025\nI00\nsS'value'\np16026\nS'text'\np16027\nssS'entity_type'\np16028\n(dp16029\nS'editable'\np16030\nI00\nsS'value'\np16031\nS'Status'\np16032\nssS'editable'\np16033\n(dp16034\nS'editable'\np16035\nI00\nsS'value'\np16036\nI01\nssS'unique'\np16037\n(dp16038\nS'editable'\np16039\nI00\nsS'value'\np16040\nI00\nssS'properties'\np16041\n(dp16042\nS'default_value'\np16043\n(dp16044\nS'editable'\np16045\nI00\nsS'value'\np16046\nNssS'summary_default'\np16047\n(dp16048\nS'editable'\np16049\nI01\nsS'value'\np16050\nS'none'\np16051\nsssS'description'\np16052\n(dp16053\nS'editable'\np16054\nI01\nsS'value'\np16055\ng47\nsssS'created_at'\np16056\n(dp16057\nS'mandatory'\np16058\n(dp16059\nS'editable'\np16060\nI00\nsS'value'\np16061\nI00\nssS'name'\np16062\n(dp16063\nS'editable'\np16064\nI01\nsS'value'\np16065\nS'Date Created'\np16066\nssS'data_type'\np16067\n(dp16068\nS'editable'\np16069\nI00\nsS'value'\np16070\nS'date_time'\np16071\nssS'entity_type'\np16072\n(dp16073\nS'editable'\np16074\nI00\nsS'value'\np16075\nS'Status'\np16076\nssS'editable'\np16077\n(dp16078\nS'editable'\np16079\nI00\nsS'value'\np16080\nI00\nssS'unique'\np16081\n(dp16082\nS'editable'\np16083\nI00\nsS'value'\np16084\nI00\nssS'properties'\np16085\n(dp16086\nS'default_value'\np16087\n(dp16088\nS'editable'\np16089\nI00\nsS'value'\np16090\nNssS'summary_default'\np16091\n(dp16092\nS'editable'\np16093\nI00\nsS'value'\np16094\nS'none'\np16095\nsssS'description'\np16096\n(dp16097\nS'editable'\np16098\nI01\nsS'value'\np16099\ng47\nsssS'updated_at'\np16100\n(dp16101\nS'mandatory'\np16102\n(dp16103\nS'editable'\np16104\nI00\nsS'value'\np16105\nI00\nssS'name'\np16106\n(dp16107\nS'editable'\np16108\nI01\nsS'value'\np16109\nS'Date Updated'\np16110\nssS'data_type'\np16111\n(dp16112\nS'editable'\np16113\nI00\nsS'value'\np16114\nS'date_time'\np16115\nssS'entity_type'\np16116\n(dp16117\nS'editable'\np16118\nI00\nsS'value'\np16119\nS'Status'\np16120\nssS'editable'\np16121\n(dp16122\nS'editable'\np16123\nI00\nsS'value'\np16124\nI00\nssS'unique'\np16125\n(dp16126\nS'editable'\np16127\nI00\nsS'value'\np16128\nI00\nssS'properties'\np16129\n(dp16130\nS'default_value'\np16131\n(dp16132\nS'editable'\np16133\nI00\nsS'value'\np16134\nNssS'summary_default'\np16135\n(dp16136\nS'editable'\np16137\nI00\nsS'value'\np16138\nS'none'\np16139\nsssS'description'\np16140\n(dp16141\nS'editable'\np16142\nI01\nsS'value'\np16143\ng47\nsssS'created_by'\np16144\n(dp16145\nS'mandatory'\np16146\n(dp16147\nS'editable'\np16148\nI00\nsS'value'\np16149\nI00\nssS'name'\np16150\n(dp16151\nS'editable'\np16152\nI01\nsS'value'\np16153\nS'Created by'\np16154\nssS'data_type'\np16155\n(dp16156\nS'editable'\np16157\nI00\nsS'value'\np16158\nS'entity'\np16159\nssS'entity_type'\np16160\n(dp16161\nS'editable'\np16162\nI00\nsS'value'\np16163\nS'Status'\np16164\nssS'editable'\np16165\n(dp16166\nS'editable'\np16167\nI00\nsS'value'\np16168\nI00\nssS'unique'\np16169\n(dp16170\nS'editable'\np16171\nI00\nsS'value'\np16172\nI00\nssS'properties'\np16173\n(dp16174\nS'default_value'\np16175\n(dp16176\nS'editable'\np16177\nI00\nsS'value'\np16178\nNssS'summary_default'\np16179\n(dp16180\nS'editable'\np16181\nI00\nsS'value'\np16182\nS'none'\np16183\nssS'valid_types'\np16184\n(dp16185\nS'editable'\np16186\nI00\nsS'value'\np16187\n(lp16188\nS'HumanUser'\np16189\naS'ApiUser'\np16190\nasssS'description'\np16191\n(dp16192\nS'editable'\np16193\nI01\nsS'value'\np16194\ng47\nsssS'system'\np16195\n(dp16196\nS'mandatory'\np16197\n(dp16198\nS'editable'\np16199\nI00\nsS'value'\np16200\nI00\nssS'name'\np16201\n(dp16202\nS'editable'\np16203\nI01\nsS'value'\np16204\nS'Locked by System'\np16205\nssS'data_type'\np16206\n(dp16207\nS'editable'\np16208\nI00\nsS'value'\np16209\nS'checkbox'\np16210\nssS'entity_type'\np16211\n(dp16212\nS'editable'\np16213\nI00\nsS'value'\np16214\nS'Status'\np16215\nssS'editable'\np16216\n(dp16217\nS'editable'\np16218\nI00\nsS'value'\np16219\nI00\nssS'unique'\np16220\n(dp16221\nS'editable'\np16222\nI00\nsS'value'\np16223\nI00\nssS'properties'\np16224\n(dp16225\nS'default_value'\np16226\n(dp16227\nS'editable'\np16228\nI00\nsS'value'\np16229\nI00\nssS'summary_default'\np16230\n(dp16231\nS'editable'\np16232\nI00\nsS'value'\np16233\nS'none'\np16234\nsssS'description'\np16235\n(dp16236\nS'editable'\np16237\nI01\nsS'value'\np16238\ng47\nsssS'bg_color'\np16239\n(dp16240\nS'mandatory'\np16241\n(dp16242\nS'editable'\np16243\nI00\nsS'value'\np16244\nI00\nssS'name'\np16245\n(dp16246\nS'editable'\np16247\nI01\nsS'value'\np16248\nS'Background Color'\np16249\nssS'data_type'\np16250\n(dp16251\nS'editable'\np16252\nI00\nsS'value'\np16253\nS'color'\np16254\nssS'entity_type'\np16255\n(dp16256\nS'editable'\np16257\nI00\nsS'value'\np16258\nS'Status'\np16259\nssS'editable'\np16260\n(dp16261\nS'editable'\np16262\nI00\nsS'value'\np16263\nI01\nssS'unique'\np16264\n(dp16265\nS'editable'\np16266\nI00\nsS'value'\np16267\nI00\nssS'properties'\np16268\n(dp16269\nS'default_value'\np16270\n(dp16271\nS'editable'\np16272\nI00\nsS'value'\np16273\nNssS'summary_default'\np16274\n(dp16275\nS'editable'\np16276\nI00\nsS'value'\np16277\nS'none'\np16278\nsssS'description'\np16279\n(dp16280\nS'editable'\np16281\nI01\nsS'value'\np16282\ng47\nsssS'updated_by'\np16283\n(dp16284\nS'mandatory'\np16285\n(dp16286\nS'editable'\np16287\nI00\nsS'value'\np16288\nI00\nssS'name'\np16289\n(dp16290\nS'editable'\np16291\nI01\nsS'value'\np16292\nS'Updated by'\np16293\nssS'data_type'\np16294\n(dp16295\nS'editable'\np16296\nI00\nsS'value'\np16297\nS'entity'\np16298\nssS'entity_type'\np16299\n(dp16300\nS'editable'\np16301\nI00\nsS'value'\np16302\nS'Status'\np16303\nssS'editable'\np16304\n(dp16305\nS'editable'\np16306\nI00\nsS'value'\np16307\nI00\nssS'unique'\np16308\n(dp16309\nS'editable'\np16310\nI00\nsS'value'\np16311\nI00\nssS'properties'\np16312\n(dp16313\nS'default_value'\np16314\n(dp16315\nS'editable'\np16316\nI00\nsS'value'\np16317\nNssS'summary_default'\np16318\n(dp16319\nS'editable'\np16320\nI00\nsS'value'\np16321\nS'none'\np16322\nssS'valid_types'\np16323\n(dp16324\nS'editable'\np16325\nI00\nsS'value'\np16326\n(lp16327\nS'HumanUser'\np16328\naS'ApiUser'\np16329\nasssS'description'\np16330\n(dp16331\nS'editable'\np16332\nI01\nsS'value'\np16333\ng47\nsssS'cached_display_name'\np16334\n(dp16335\nS'mandatory'\np16336\n(dp16337\nS'editable'\np16338\nI00\nsS'value'\np16339\nI00\nssS'name'\np16340\n(dp16341\nS'editable'\np16342\nI01\nsS'value'\np16343\nS'Cached Display Name'\np16344\nssS'data_type'\np16345\n(dp16346\nS'editable'\np16347\nI00\nsS'value'\np16348\nS'text'\np16349\nssS'entity_type'\np16350\n(dp16351\nS'editable'\np16352\nI00\nsS'value'\np16353\nS'Status'\np16354\nssS'editable'\np16355\n(dp16356\nS'editable'\np16357\nI00\nsS'value'\np16358\nI01\nssS'unique'\np16359\n(dp16360\nS'editable'\np16361\nI00\nsS'value'\np16362\nI00\nssS'properties'\np16363\n(dp16364\nS'default_value'\np16365\n(dp16366\nS'editable'\np16367\nI00\nsS'value'\np16368\nNssS'summary_default'\np16369\n(dp16370\nS'editable'\np16371\nI00\nsS'value'\np16372\nS'none'\np16373\nsssS'description'\np16374\n(dp16375\nS'editable'\np16376\nI01\nsS'value'\np16377\ng47\nsssS'id'\np16378\n(dp16379\nS'mandatory'\np16380\n(dp16381\nS'editable'\np16382\nI00\nsS'value'\np16383\nI00\nssS'name'\np16384\n(dp16385\nS'editable'\np16386\nI01\nsS'value'\np16387\nS'Id'\np16388\nssS'data_type'\np16389\n(dp16390\nS'editable'\np16391\nI00\nsS'value'\np16392\nS'number'\np16393\nssS'entity_type'\np16394\n(dp16395\nS'editable'\np16396\nI00\nsS'value'\np16397\nS'Status'\np16398\nssS'editable'\np16399\n(dp16400\nS'editable'\np16401\nI00\nsS'value'\np16402\nI00\nssS'unique'\np16403\n(dp16404\nS'editable'\np16405\nI00\nsS'value'\np16406\nI00\nssS'properties'\np16407\n(dp16408\nS'default_value'\np16409\n(dp16410\nS'editable'\np16411\nI00\nsS'value'\np16412\nNssS'summary_default'\np16413\n(dp16414\nS'editable'\np16415\nI00\nsS'value'\np16416\nS'none'\np16417\nsssS'description'\np16418\n(dp16419\nS'editable'\np16420\nI01\nsS'value'\np16421\ng47\nsssS'icon'\np16422\n(dp16423\nS'mandatory'\np16424\n(dp16425\nS'editable'\np16426\nI00\nsS'value'\np16427\nI01\nssS'name'\np16428\n(dp16429\nS'editable'\np16430\nI01\nsS'value'\np16431\nS'Icon'\np16432\nssS'data_type'\np16433\n(dp16434\nS'editable'\np16435\nI00\nsS'value'\np16436\nS'entity'\np16437\nssS'entity_type'\np16438\n(dp16439\nS'editable'\np16440\nI00\nsS'value'\np16441\nS'Status'\np16442\nssS'editable'\np16443\n(dp16444\nS'editable'\np16445\nI00\nsS'value'\np16446\nI01\nssS'unique'\np16447\n(dp16448\nS'editable'\np16449\nI00\nsS'value'\np16450\nI00\nssS'properties'\np16451\n(dp16452\nS'default_value'\np16453\n(dp16454\nS'editable'\np16455\nI00\nsS'value'\np16456\nNssS'summary_default'\np16457\n(dp16458\nS'editable'\np16459\nI00\nsS'value'\np16460\nS'none'\np16461\nssS'valid_types'\np16462\n(dp16463\nS'editable'\np16464\nI00\nsS'value'\np16465\n(lp16466\nS'Icon'\np16467\nasssS'description'\np16468\n(dp16469\nS'editable'\np16470\nI01\nsS'value'\np16471\ng47\nssssS'Reply'\np16472\n(dp16473\nS'created_at'\np16474\n(dp16475\nS'mandatory'\np16476\n(dp16477\nS'editable'\np16478\nI00\nsS'value'\np16479\nI00\nssS'name'\np16480\n(dp16481\nS'editable'\np16482\nI01\nsS'value'\np16483\nS'Date Created'\np16484\nssS'data_type'\np16485\n(dp16486\nS'editable'\np16487\nI00\nsS'value'\np16488\nS'date_time'\np16489\nssS'entity_type'\np16490\n(dp16491\nS'editable'\np16492\nI00\nsS'value'\np16493\nS'Reply'\np16494\nssS'editable'\np16495\n(dp16496\nS'editable'\np16497\nI00\nsS'value'\np16498\nI00\nssS'unique'\np16499\n(dp16500\nS'editable'\np16501\nI00\nsS'value'\np16502\nI00\nssS'properties'\np16503\n(dp16504\nS'default_value'\np16505\n(dp16506\nS'editable'\np16507\nI00\nsS'value'\np16508\nNssS'summary_default'\np16509\n(dp16510\nS'editable'\np16511\nI01\nsS'value'\np16512\nS'none'\np16513\nsssS'description'\np16514\n(dp16515\nS'editable'\np16516\nI01\nsS'value'\np16517\ng47\nsssS'entity'\np16518\n(dp16519\nS'mandatory'\np16520\n(dp16521\nS'editable'\np16522\nI00\nsS'value'\np16523\nI00\nssS'name'\np16524\n(dp16525\nS'editable'\np16526\nI01\nsS'value'\np16527\nS'Link'\np16528\nssS'data_type'\np16529\n(dp16530\nS'editable'\np16531\nI00\nsS'value'\np16532\nS'entity'\np16533\nssS'entity_type'\np16534\n(dp16535\nS'editable'\np16536\nI00\nsS'value'\np16537\nS'Reply'\np16538\nssS'editable'\np16539\n(dp16540\nS'editable'\np16541\nI00\nsS'value'\np16542\nI01\nssS'unique'\np16543\n(dp16544\nS'editable'\np16545\nI00\nsS'value'\np16546\nI00\nssS'properties'\np16547\n(dp16548\nS'default_value'\np16549\n(dp16550\nS'editable'\np16551\nI00\nsS'value'\np16552\nNssS'summary_default'\np16553\n(dp16554\nS'editable'\np16555\nI01\nsS'value'\np16556\nS'none'\np16557\nssS'valid_types'\np16558\n(dp16559\nS'editable'\np16560\nI01\nsS'value'\np16561\n(lp16562\nS'ApiUser'\np16563\naS'AppWelcome'\np16564\naS'Asset'\np16565\naS'AssetLibrary'\np16566\naS'Attachment'\np16567\naS'Banner'\np16568\naS'Booking'\np16569\naS'CustomEntity01'\np16570\naS'CustomEntity02'\np16571\naS'CustomEntity03'\np16572\naS'CustomEntity04'\np16573\naS'CustomEntity05'\np16574\naS'CustomNonProjectEntity01'\np16575\naS'CustomNonProjectEntity02'\np16576\naS'CustomNonProjectEntity03'\np16577\naS'Department'\np16578\naS'Element'\np16579\naS'Group'\np16580\naS'HumanUser'\np16581\naS'Icon'\np16582\naS'LocalStorage'\np16583\naS'Note'\np16584\naS'Page'\np16585\naS'PermissionRuleSet'\np16586\naS'Phase'\np16587\naS'PipelineConfiguration'\np16588\naS'Playlist'\np16589\naS'Project'\np16590\naS'PublishedFile'\np16591\naS'PublishedFileDependency'\np16592\naS'PublishedFileType'\np16593\naS'Scene'\np16594\naS'Sequence'\np16595\naS'Shot'\np16596\naS'Status'\np16597\naS'Step'\np16598\naS'Tag'\np16599\naS'TankDependency'\np16600\naS'TankPublishedFile'\np16601\naS'TankType'\np16602\naS'Task'\np16603\naS'TaskTemplate'\np16604\naS'Version'\np16605\nasssS'description'\np16606\n(dp16607\nS'editable'\np16608\nI01\nsS'value'\np16609\ng47\nsssS'content'\np16610\n(dp16611\nS'mandatory'\np16612\n(dp16613\nS'editable'\np16614\nI00\nsS'value'\np16615\nI01\nssS'name'\np16616\n(dp16617\nS'editable'\np16618\nI01\nsS'value'\np16619\nS'Reply Text'\np16620\nssS'data_type'\np16621\n(dp16622\nS'editable'\np16623\nI00\nsS'value'\np16624\nS'text'\np16625\nssS'entity_type'\np16626\n(dp16627\nS'editable'\np16628\nI00\nsS'value'\np16629\nS'Reply'\np16630\nssS'editable'\np16631\n(dp16632\nS'editable'\np16633\nI00\nsS'value'\np16634\nI01\nssS'unique'\np16635\n(dp16636\nS'editable'\np16637\nI00\nsS'value'\np16638\nI00\nssS'properties'\np16639\n(dp16640\nS'default_value'\np16641\n(dp16642\nS'editable'\np16643\nI00\nsS'value'\np16644\nNssS'summary_default'\np16645\n(dp16646\nS'editable'\np16647\nI01\nsS'value'\np16648\nS'none'\np16649\nsssS'description'\np16650\n(dp16651\nS'editable'\np16652\nI01\nsS'value'\np16653\ng47\nsssS'user'\np16654\n(dp16655\nS'mandatory'\np16656\n(dp16657\nS'editable'\np16658\nI00\nsS'value'\np16659\nI00\nssS'name'\np16660\n(dp16661\nS'editable'\np16662\nI01\nsS'value'\np16663\nS'User'\np16664\nssS'data_type'\np16665\n(dp16666\nS'editable'\np16667\nI00\nsS'value'\np16668\nS'entity'\np16669\nssS'entity_type'\np16670\n(dp16671\nS'editable'\np16672\nI00\nsS'value'\np16673\nS'Reply'\np16674\nssS'editable'\np16675\n(dp16676\nS'editable'\np16677\nI00\nsS'value'\np16678\nI01\nssS'unique'\np16679\n(dp16680\nS'editable'\np16681\nI00\nsS'value'\np16682\nI00\nssS'properties'\np16683\n(dp16684\nS'default_value'\np16685\n(dp16686\nS'editable'\np16687\nI00\nsS'value'\np16688\nNssS'summary_default'\np16689\n(dp16690\nS'editable'\np16691\nI01\nsS'value'\np16692\nS'none'\np16693\nssS'valid_types'\np16694\n(dp16695\nS'editable'\np16696\nI01\nsS'value'\np16697\n(lp16698\nS'HumanUser'\np16699\naS'ApiUser'\np16700\nasssS'description'\np16701\n(dp16702\nS'editable'\np16703\nI01\nsS'value'\np16704\ng47\nsssS'cached_display_name'\np16705\n(dp16706\nS'mandatory'\np16707\n(dp16708\nS'editable'\np16709\nI00\nsS'value'\np16710\nI00\nssS'name'\np16711\n(dp16712\nS'editable'\np16713\nI01\nsS'value'\np16714\nS'Cached Display Name'\np16715\nssS'data_type'\np16716\n(dp16717\nS'editable'\np16718\nI00\nsS'value'\np16719\nS'text'\np16720\nssS'entity_type'\np16721\n(dp16722\nS'editable'\np16723\nI00\nsS'value'\np16724\nS'Reply'\np16725\nssS'editable'\np16726\n(dp16727\nS'editable'\np16728\nI00\nsS'value'\np16729\nI01\nssS'unique'\np16730\n(dp16731\nS'editable'\np16732\nI00\nsS'value'\np16733\nI00\nssS'properties'\np16734\n(dp16735\nS'default_value'\np16736\n(dp16737\nS'editable'\np16738\nI00\nsS'value'\np16739\nNssS'summary_default'\np16740\n(dp16741\nS'editable'\np16742\nI00\nsS'value'\np16743\nS'none'\np16744\nsssS'description'\np16745\n(dp16746\nS'editable'\np16747\nI01\nsS'value'\np16748\ng47\nsssS'id'\np16749\n(dp16750\nS'mandatory'\np16751\n(dp16752\nS'editable'\np16753\nI00\nsS'value'\np16754\nI00\nssS'name'\np16755\n(dp16756\nS'editable'\np16757\nI01\nsS'value'\np16758\nS'Id'\np16759\nssS'data_type'\np16760\n(dp16761\nS'editable'\np16762\nI00\nsS'value'\np16763\nS'number'\np16764\nssS'entity_type'\np16765\n(dp16766\nS'editable'\np16767\nI00\nsS'value'\np16768\nS'Reply'\np16769\nssS'editable'\np16770\n(dp16771\nS'editable'\np16772\nI00\nsS'value'\np16773\nI00\nssS'unique'\np16774\n(dp16775\nS'editable'\np16776\nI00\nsS'value'\np16777\nI00\nssS'properties'\np16778\n(dp16779\nS'default_value'\np16780\n(dp16781\nS'editable'\np16782\nI00\nsS'value'\np16783\nNssS'summary_default'\np16784\n(dp16785\nS'editable'\np16786\nI01\nsS'value'\np16787\nS'none'\np16788\nsssS'description'\np16789\n(dp16790\nS'editable'\np16791\nI01\nsS'value'\np16792\ng47\nssssS'Task'\np16793\n(dp16794\nS'open_notes_count'\np16795\n(dp16796\nS'mandatory'\np16797\n(dp16798\nS'editable'\np16799\nI00\nsS'value'\np16800\nI00\nssS'name'\np16801\n(dp16802\nS'editable'\np16803\nI01\nsS'value'\np16804\nS'Open Notes Count'\np16805\nssS'data_type'\np16806\n(dp16807\nS'editable'\np16808\nI00\nsS'value'\np16809\nS'text'\np16810\nssS'entity_type'\np16811\n(dp16812\nS'editable'\np16813\nI00\nsS'value'\np16814\nS'Task'\np16815\nssS'editable'\np16816\n(dp16817\nS'editable'\np16818\nI00\nsS'value'\np16819\nI00\nssS'unique'\np16820\n(dp16821\nS'editable'\np16822\nI00\nsS'value'\np16823\nI00\nssS'properties'\np16824\n(dp16825\nS'default_value'\np16826\n(dp16827\nS'editable'\np16828\nI00\nsS'value'\np16829\nNssS'summary_default'\np16830\n(dp16831\nS'editable'\np16832\nI01\nsS'value'\np16833\nS'none'\np16834\nsssS'description'\np16835\n(dp16836\nS'editable'\np16837\nI01\nsS'value'\np16838\ng47\nsssS'color'\np16839\n(dp16840\nS'mandatory'\np16841\n(dp16842\nS'editable'\np16843\nI00\nsS'value'\np16844\nI00\nssS'name'\np16845\n(dp16846\nS'editable'\np16847\nI01\nsS'value'\np16848\nS'Gantt Bar Color'\np16849\nssS'data_type'\np16850\n(dp16851\nS'editable'\np16852\nI00\nsS'value'\np16853\nS'color'\np16854\nssS'entity_type'\np16855\n(dp16856\nS'editable'\np16857\nI00\nsS'value'\np16858\nS'Task'\np16859\nssS'editable'\np16860\n(dp16861\nS'editable'\np16862\nI00\nsS'value'\np16863\nI01\nssS'unique'\np16864\n(dp16865\nS'editable'\np16866\nI00\nsS'value'\np16867\nI00\nssS'properties'\np16868\n(dp16869\nS'default_value'\np16870\n(dp16871\nS'editable'\np16872\nI00\nsS'value'\np16873\nNssS'summary_default'\np16874\n(dp16875\nS'editable'\np16876\nI01\nsS'value'\np16877\nS'none'\np16878\nsssS'description'\np16879\n(dp16880\nS'editable'\np16881\nI01\nsS'value'\np16882\ng47\nsssS'split_durations'\np16883\n(dp16884\nS'mandatory'\np16885\n(dp16886\nS'editable'\np16887\nI00\nsS'value'\np16888\nI00\nssS'name'\np16889\n(dp16890\nS'editable'\np16891\nI01\nsS'value'\np16892\nS'Split Durations'\np16893\nssS'data_type'\np16894\n(dp16895\nS'editable'\np16896\nI00\nsS'value'\np16897\nS'serializable'\np16898\nssS'entity_type'\np16899\n(dp16900\nS'editable'\np16901\nI00\nsS'value'\np16902\nS'Task'\np16903\nssS'editable'\np16904\n(dp16905\nS'editable'\np16906\nI00\nsS'value'\np16907\nI00\nssS'unique'\np16908\n(dp16909\nS'editable'\np16910\nI00\nsS'value'\np16911\nI00\nssS'properties'\np16912\n(dp16913\nS'default_value'\np16914\n(dp16915\nS'editable'\np16916\nI00\nsS'value'\np16917\nNssS'summary_default'\np16918\n(dp16919\nS'editable'\np16920\nI00\nsS'value'\np16921\nS'none'\np16922\nsssS'description'\np16923\n(dp16924\nS'editable'\np16925\nI01\nsS'value'\np16926\ng47\nsssS'image'\np16927\n(dp16928\nS'mandatory'\np16929\n(dp16930\nS'editable'\np16931\nI00\nsS'value'\np16932\nI00\nssS'name'\np16933\n(dp16934\nS'editable'\np16935\nI01\nsS'value'\np16936\nS'Thumbnail'\np16937\nssS'data_type'\np16938\n(dp16939\nS'editable'\np16940\nI00\nsS'value'\np16941\nS'image'\np16942\nssS'entity_type'\np16943\n(dp16944\nS'editable'\np16945\nI00\nsS'value'\np16946\nS'Task'\np16947\nssS'editable'\np16948\n(dp16949\nS'editable'\np16950\nI00\nsS'value'\np16951\nI01\nssS'unique'\np16952\n(dp16953\nS'editable'\np16954\nI00\nsS'value'\np16955\nI00\nssS'properties'\np16956\n(dp16957\nS'default_value'\np16958\n(dp16959\nS'editable'\np16960\nI00\nsS'value'\np16961\nNssS'summary_default'\np16962\n(dp16963\nS'editable'\np16964\nI01\nsS'value'\np16965\nS'none'\np16966\nsssS'description'\np16967\n(dp16968\nS'editable'\np16969\nI01\nsS'value'\np16970\ng47\nsssS'updated_at'\np16971\n(dp16972\nS'mandatory'\np16973\n(dp16974\nS'editable'\np16975\nI00\nsS'value'\np16976\nI00\nssS'name'\np16977\n(dp16978\nS'editable'\np16979\nI01\nsS'value'\np16980\nS'Date Updated'\np16981\nssS'data_type'\np16982\n(dp16983\nS'editable'\np16984\nI00\nsS'value'\np16985\nS'date_time'\np16986\nssS'entity_type'\np16987\n(dp16988\nS'editable'\np16989\nI00\nsS'value'\np16990\nS'Task'\np16991\nssS'editable'\np16992\n(dp16993\nS'editable'\np16994\nI00\nsS'value'\np16995\nI00\nssS'unique'\np16996\n(dp16997\nS'editable'\np16998\nI00\nsS'value'\np16999\nI00\nssS'properties'\np17000\n(dp17001\nS'default_value'\np17002\n(dp17003\nS'editable'\np17004\nI00\nsS'value'\np17005\nNssS'summary_default'\np17006\n(dp17007\nS'editable'\np17008\nI01\nsS'value'\np17009\nS'none'\np17010\nsssS'description'\np17011\n(dp17012\nS'editable'\np17013\nI01\nsS'value'\np17014\ng47\nsssS'entity'\np17015\n(dp17016\nS'mandatory'\np17017\n(dp17018\nS'editable'\np17019\nI00\nsS'value'\np17020\nI00\nssS'name'\np17021\n(dp17022\nS'editable'\np17023\nI01\nsS'value'\np17024\nS'Link'\np17025\nssS'data_type'\np17026\n(dp17027\nS'editable'\np17028\nI00\nsS'value'\np17029\nS'entity'\np17030\nssS'entity_type'\np17031\n(dp17032\nS'editable'\np17033\nI00\nsS'value'\np17034\nS'Task'\np17035\nssS'editable'\np17036\n(dp17037\nS'editable'\np17038\nI00\nsS'value'\np17039\nI01\nssS'unique'\np17040\n(dp17041\nS'editable'\np17042\nI00\nsS'value'\np17043\nI00\nssS'properties'\np17044\n(dp17045\nS'default_value'\np17046\n(dp17047\nS'editable'\np17048\nI00\nsS'value'\np17049\nNssS'summary_default'\np17050\n(dp17051\nS'editable'\np17052\nI01\nsS'value'\np17053\nS'none'\np17054\nssS'valid_types'\np17055\n(dp17056\nS'editable'\np17057\nI01\nsS'value'\np17058\n(lp17059\nS'Asset'\np17060\naS'Element'\np17061\naS'Scene'\np17062\naS'Sequence'\np17063\naS'Shot'\np17064\naS'Project'\np17065\nasssS'description'\np17066\n(dp17067\nS'editable'\np17068\nI01\nsS'value'\np17069\ng47\nsssS'task_assignees'\np17070\n(dp17071\nS'mandatory'\np17072\n(dp17073\nS'editable'\np17074\nI00\nsS'value'\np17075\nI00\nssS'name'\np17076\n(dp17077\nS'editable'\np17078\nI01\nsS'value'\np17079\nS'Assigned To'\np17080\nssS'data_type'\np17081\n(dp17082\nS'editable'\np17083\nI00\nsS'value'\np17084\nS'multi_entity'\np17085\nssS'entity_type'\np17086\n(dp17087\nS'editable'\np17088\nI00\nsS'value'\np17089\nS'Task'\np17090\nssS'editable'\np17091\n(dp17092\nS'editable'\np17093\nI00\nsS'value'\np17094\nI01\nssS'unique'\np17095\n(dp17096\nS'editable'\np17097\nI00\nsS'value'\np17098\nI00\nssS'properties'\np17099\n(dp17100\nS'default_value'\np17101\n(dp17102\nS'editable'\np17103\nI00\nsS'value'\np17104\nNssS'summary_default'\np17105\n(dp17106\nS'editable'\np17107\nI01\nsS'value'\np17108\nS'none'\np17109\nssS'valid_types'\np17110\n(dp17111\nS'editable'\np17112\nI01\nsS'value'\np17113\n(lp17114\nS'Group'\np17115\naS'HumanUser'\np17116\nasssS'description'\np17117\n(dp17118\nS'editable'\np17119\nI01\nsS'value'\np17120\ng47\nsssS'duration'\np17121\n(dp17122\nS'mandatory'\np17123\n(dp17124\nS'editable'\np17125\nI00\nsS'value'\np17126\nI00\nssS'name'\np17127\n(dp17128\nS'editable'\np17129\nI01\nsS'value'\np17130\nS'Duration'\np17131\nssS'data_type'\np17132\n(dp17133\nS'editable'\np17134\nI00\nsS'value'\np17135\nS'duration'\np17136\nssS'entity_type'\np17137\n(dp17138\nS'editable'\np17139\nI00\nsS'value'\np17140\nS'Task'\np17141\nssS'editable'\np17142\n(dp17143\nS'editable'\np17144\nI00\nsS'value'\np17145\nI01\nssS'unique'\np17146\n(dp17147\nS'editable'\np17148\nI00\nsS'value'\np17149\nI00\nssS'properties'\np17150\n(dp17151\nS'default_value'\np17152\n(dp17153\nS'editable'\np17154\nI00\nsS'value'\np17155\nNssS'summary_default'\np17156\n(dp17157\nS'editable'\np17158\nI01\nsS'value'\np17159\nS'sum'\np17160\nsssS'description'\np17161\n(dp17162\nS'editable'\np17163\nI01\nsS'value'\np17164\ng47\nsssS'cached_display_name'\np17165\n(dp17166\nS'mandatory'\np17167\n(dp17168\nS'editable'\np17169\nI00\nsS'value'\np17170\nI00\nssS'name'\np17171\n(dp17172\nS'editable'\np17173\nI01\nsS'value'\np17174\nS'Cached Display Name'\np17175\nssS'data_type'\np17176\n(dp17177\nS'editable'\np17178\nI00\nsS'value'\np17179\nS'text'\np17180\nssS'entity_type'\np17181\n(dp17182\nS'editable'\np17183\nI00\nsS'value'\np17184\nS'Task'\np17185\nssS'editable'\np17186\n(dp17187\nS'editable'\np17188\nI00\nsS'value'\np17189\nI01\nssS'unique'\np17190\n(dp17191\nS'editable'\np17192\nI00\nsS'value'\np17193\nI00\nssS'properties'\np17194\n(dp17195\nS'default_value'\np17196\n(dp17197\nS'editable'\np17198\nI00\nsS'value'\np17199\nNssS'summary_default'\np17200\n(dp17201\nS'editable'\np17202\nI00\nsS'value'\np17203\nS'none'\np17204\nsssS'description'\np17205\n(dp17206\nS'editable'\np17207\nI01\nsS'value'\np17208\ng47\nsssS'id'\np17209\n(dp17210\nS'mandatory'\np17211\n(dp17212\nS'editable'\np17213\nI00\nsS'value'\np17214\nI00\nssS'name'\np17215\n(dp17216\nS'editable'\np17217\nI01\nsS'value'\np17218\nS'Id'\np17219\nssS'data_type'\np17220\n(dp17221\nS'editable'\np17222\nI00\nsS'value'\np17223\nS'number'\np17224\nssS'entity_type'\np17225\n(dp17226\nS'editable'\np17227\nI00\nsS'value'\np17228\nS'Task'\np17229\nssS'editable'\np17230\n(dp17231\nS'editable'\np17232\nI00\nsS'value'\np17233\nI00\nssS'unique'\np17234\n(dp17235\nS'editable'\np17236\nI00\nsS'value'\np17237\nI00\nssS'properties'\np17238\n(dp17239\nS'default_value'\np17240\n(dp17241\nS'editable'\np17242\nI00\nsS'value'\np17243\nNssS'summary_default'\np17244\n(dp17245\nS'editable'\np17246\nI01\nsS'value'\np17247\nS'none'\np17248\nsssS'description'\np17249\n(dp17250\nS'editable'\np17251\nI01\nsS'value'\np17252\ng47\nsssS'pinned'\np17253\n(dp17254\nS'mandatory'\np17255\n(dp17256\nS'editable'\np17257\nI00\nsS'value'\np17258\nI00\nssS'name'\np17259\n(dp17260\nS'editable'\np17261\nI01\nsS'value'\np17262\nS'Pinned'\np17263\nssS'data_type'\np17264\n(dp17265\nS'editable'\np17266\nI00\nsS'value'\np17267\nS'checkbox'\np17268\nssS'entity_type'\np17269\n(dp17270\nS'editable'\np17271\nI00\nsS'value'\np17272\nS'Task'\np17273\nssS'editable'\np17274\n(dp17275\nS'editable'\np17276\nI00\nsS'value'\np17277\nI01\nssS'unique'\np17278\n(dp17279\nS'editable'\np17280\nI00\nsS'value'\np17281\nI00\nssS'properties'\np17282\n(dp17283\nS'default_value'\np17284\n(dp17285\nS'editable'\np17286\nI00\nsS'value'\np17287\nI00\nssS'summary_default'\np17288\n(dp17289\nS'editable'\np17290\nI01\nsS'value'\np17291\nS'none'\np17292\nsssS'description'\np17293\n(dp17294\nS'editable'\np17295\nI01\nsS'value'\np17296\ng47\nsssS'sg_task_order'\np17297\n(dp17298\nS'mandatory'\np17299\n(dp17300\nS'editable'\np17301\nI00\nsS'value'\np17302\nI00\nssS'name'\np17303\n(dp17304\nS'editable'\np17305\nI01\nsS'value'\np17306\nS'Task Order'\np17307\nssS'data_type'\np17308\n(dp17309\nS'editable'\np17310\nI00\nsS'value'\np17311\nS'number'\np17312\nssS'entity_type'\np17313\n(dp17314\nS'editable'\np17315\nI00\nsS'value'\np17316\nS'Task'\np17317\nssS'editable'\np17318\n(dp17319\nS'editable'\np17320\nI00\nsS'value'\np17321\nI01\nssS'unique'\np17322\n(dp17323\nS'editable'\np17324\nI00\nsS'value'\np17325\nI00\nssS'properties'\np17326\n(dp17327\nS'default_value'\np17328\n(dp17329\nS'editable'\np17330\nI00\nsS'value'\np17331\nNssS'summary_default'\np17332\n(dp17333\nS'editable'\np17334\nI01\nsS'value'\np17335\nS'none'\np17336\nsssS'description'\np17337\n(dp17338\nS'editable'\np17339\nI01\nsS'value'\np17340\ng47\nsssS'downstream_tasks'\np17341\n(dp17342\nS'mandatory'\np17343\n(dp17344\nS'editable'\np17345\nI00\nsS'value'\np17346\nI00\nssS'name'\np17347\n(dp17348\nS'editable'\np17349\nI01\nsS'value'\np17350\nS'Downstream Dependency'\np17351\nssS'data_type'\np17352\n(dp17353\nS'editable'\np17354\nI00\nsS'value'\np17355\nS'multi_entity'\np17356\nssS'entity_type'\np17357\n(dp17358\nS'editable'\np17359\nI00\nsS'value'\np17360\nS'Task'\np17361\nssS'editable'\np17362\n(dp17363\nS'editable'\np17364\nI00\nsS'value'\np17365\nI01\nssS'unique'\np17366\n(dp17367\nS'editable'\np17368\nI00\nsS'value'\np17369\nI00\nssS'properties'\np17370\n(dp17371\nS'default_value'\np17372\n(dp17373\nS'editable'\np17374\nI00\nsS'value'\np17375\nNssS'summary_default'\np17376\n(dp17377\nS'editable'\np17378\nI00\nsS'value'\np17379\nS'none'\np17380\nssS'valid_types'\np17381\n(dp17382\nS'editable'\np17383\nI00\nsS'value'\np17384\n(lp17385\nS'Task'\np17386\nasssS'description'\np17387\n(dp17388\nS'editable'\np17389\nI01\nsS'value'\np17390\ng47\nsssS'open_notes'\np17391\n(dp17392\nS'mandatory'\np17393\n(dp17394\nS'editable'\np17395\nI00\nsS'value'\np17396\nI00\nssS'name'\np17397\n(dp17398\nS'editable'\np17399\nI01\nsS'value'\np17400\nS'Open Notes'\np17401\nssS'data_type'\np17402\n(dp17403\nS'editable'\np17404\nI00\nsS'value'\np17405\nS'multi_entity'\np17406\nssS'entity_type'\np17407\n(dp17408\nS'editable'\np17409\nI00\nsS'value'\np17410\nS'Task'\np17411\nssS'editable'\np17412\n(dp17413\nS'editable'\np17414\nI00\nsS'value'\np17415\nI00\nssS'unique'\np17416\n(dp17417\nS'editable'\np17418\nI00\nsS'value'\np17419\nI00\nssS'properties'\np17420\n(dp17421\nS'default_value'\np17422\n(dp17423\nS'editable'\np17424\nI00\nsS'value'\np17425\nNssS'summary_default'\np17426\n(dp17427\nS'editable'\np17428\nI01\nsS'value'\np17429\nS'none'\np17430\nssS'valid_types'\np17431\n(dp17432\nS'editable'\np17433\nI01\nsS'value'\np17434\n(lp17435\nS'Note'\np17436\nasssS'description'\np17437\n(dp17438\nS'editable'\np17439\nI01\nsS'value'\np17440\ng47\nsssS'addressings_cc'\np17441\n(dp17442\nS'mandatory'\np17443\n(dp17444\nS'editable'\np17445\nI00\nsS'value'\np17446\nI00\nssS'name'\np17447\n(dp17448\nS'editable'\np17449\nI01\nsS'value'\np17450\nS'Cc'\np17451\nssS'data_type'\np17452\n(dp17453\nS'editable'\np17454\nI00\nsS'value'\np17455\nS'multi_entity'\np17456\nssS'entity_type'\np17457\n(dp17458\nS'editable'\np17459\nI00\nsS'value'\np17460\nS'Task'\np17461\nssS'editable'\np17462\n(dp17463\nS'editable'\np17464\nI00\nsS'value'\np17465\nI01\nssS'unique'\np17466\n(dp17467\nS'editable'\np17468\nI00\nsS'value'\np17469\nI00\nssS'properties'\np17470\n(dp17471\nS'default_value'\np17472\n(dp17473\nS'editable'\np17474\nI00\nsS'value'\np17475\nNssS'summary_default'\np17476\n(dp17477\nS'editable'\np17478\nI01\nsS'value'\np17479\nS'none'\np17480\nssS'valid_types'\np17481\n(dp17482\nS'editable'\np17483\nI01\nsS'value'\np17484\n(lp17485\nS'Group'\np17486\naS'HumanUser'\np17487\nasssS'description'\np17488\n(dp17489\nS'editable'\np17490\nI01\nsS'value'\np17491\ng47\nsssS'inventory_date'\np17492\n(dp17493\nS'mandatory'\np17494\n(dp17495\nS'editable'\np17496\nI00\nsS'value'\np17497\nI00\nssS'name'\np17498\n(dp17499\nS'editable'\np17500\nI01\nsS'value'\np17501\nS'Inventory Date'\np17502\nssS'data_type'\np17503\n(dp17504\nS'editable'\np17505\nI00\nsS'value'\np17506\nS'date'\np17507\nssS'entity_type'\np17508\n(dp17509\nS'editable'\np17510\nI00\nsS'value'\np17511\nS'Task'\np17512\nssS'editable'\np17513\n(dp17514\nS'editable'\np17515\nI00\nsS'value'\np17516\nI00\nssS'unique'\np17517\n(dp17518\nS'editable'\np17519\nI00\nsS'value'\np17520\nI00\nssS'properties'\np17521\n(dp17522\nS'default_value'\np17523\n(dp17524\nS'editable'\np17525\nI00\nsS'value'\np17526\nNssS'summary_default'\np17527\n(dp17528\nS'editable'\np17529\nI00\nsS'value'\np17530\nS'none'\np17531\nsssS'description'\np17532\n(dp17533\nS'editable'\np17534\nI01\nsS'value'\np17535\ng47\nsssS'task_template'\np17536\n(dp17537\nS'mandatory'\np17538\n(dp17539\nS'editable'\np17540\nI00\nsS'value'\np17541\nI00\nssS'name'\np17542\n(dp17543\nS'editable'\np17544\nI01\nsS'value'\np17545\nS'Task Template'\np17546\nssS'data_type'\np17547\n(dp17548\nS'editable'\np17549\nI00\nsS'value'\np17550\nS'entity'\np17551\nssS'entity_type'\np17552\n(dp17553\nS'editable'\np17554\nI00\nsS'value'\np17555\nS'Task'\np17556\nssS'editable'\np17557\n(dp17558\nS'editable'\np17559\nI00\nsS'value'\np17560\nI01\nssS'unique'\np17561\n(dp17562\nS'editable'\np17563\nI00\nsS'value'\np17564\nI00\nssS'properties'\np17565\n(dp17566\nS'default_value'\np17567\n(dp17568\nS'editable'\np17569\nI00\nsS'value'\np17570\nNssS'summary_default'\np17571\n(dp17572\nS'editable'\np17573\nI01\nsS'value'\np17574\nS'none'\np17575\nssS'valid_types'\np17576\n(dp17577\nS'editable'\np17578\nI01\nsS'value'\np17579\n(lp17580\nS'TaskTemplate'\np17581\nasssS'description'\np17582\n(dp17583\nS'editable'\np17584\nI01\nsS'value'\np17585\ng47\nsssS'created_by'\np17586\n(dp17587\nS'mandatory'\np17588\n(dp17589\nS'editable'\np17590\nI00\nsS'value'\np17591\nI00\nssS'name'\np17592\n(dp17593\nS'editable'\np17594\nI01\nsS'value'\np17595\nS'Created by'\np17596\nssS'data_type'\np17597\n(dp17598\nS'editable'\np17599\nI00\nsS'value'\np17600\nS'entity'\np17601\nssS'entity_type'\np17602\n(dp17603\nS'editable'\np17604\nI00\nsS'value'\np17605\nS'Task'\np17606\nssS'editable'\np17607\n(dp17608\nS'editable'\np17609\nI00\nsS'value'\np17610\nI00\nssS'unique'\np17611\n(dp17612\nS'editable'\np17613\nI00\nsS'value'\np17614\nI00\nssS'properties'\np17615\n(dp17616\nS'default_value'\np17617\n(dp17618\nS'editable'\np17619\nI00\nsS'value'\np17620\nNssS'summary_default'\np17621\n(dp17622\nS'editable'\np17623\nI01\nsS'value'\np17624\nS'none'\np17625\nssS'valid_types'\np17626\n(dp17627\nS'editable'\np17628\nI01\nsS'value'\np17629\n(lp17630\nS'HumanUser'\np17631\naS'ApiUser'\np17632\nasssS'description'\np17633\n(dp17634\nS'editable'\np17635\nI01\nsS'value'\np17636\ng47\nsssS'content'\np17637\n(dp17638\nS'mandatory'\np17639\n(dp17640\nS'editable'\np17641\nI00\nsS'value'\np17642\nI01\nssS'name'\np17643\n(dp17644\nS'editable'\np17645\nI01\nsS'value'\np17646\nS'Task Name'\np17647\nssS'data_type'\np17648\n(dp17649\nS'editable'\np17650\nI00\nsS'value'\np17651\nS'text'\np17652\nssS'entity_type'\np17653\n(dp17654\nS'editable'\np17655\nI00\nsS'value'\np17656\nS'Task'\np17657\nssS'editable'\np17658\n(dp17659\nS'editable'\np17660\nI00\nsS'value'\np17661\nI01\nssS'unique'\np17662\n(dp17663\nS'editable'\np17664\nI00\nsS'value'\np17665\nI00\nssS'properties'\np17666\n(dp17667\nS'default_value'\np17668\n(dp17669\nS'editable'\np17670\nI00\nsS'value'\np17671\nNssS'summary_default'\np17672\n(dp17673\nS'editable'\np17674\nI01\nsS'value'\np17675\nS'record_count'\np17676\nsssS'description'\np17677\n(dp17678\nS'editable'\np17679\nI01\nsS'value'\np17680\ng47\nsssS'sg_status_list'\np17681\n(dp17682\nS'mandatory'\np17683\n(dp17684\nS'editable'\np17685\nI00\nsS'value'\np17686\nI00\nssS'name'\np17687\n(dp17688\nS'editable'\np17689\nI01\nsS'value'\np17690\nS'Status'\np17691\nssS'data_type'\np17692\n(dp17693\nS'editable'\np17694\nI00\nsS'value'\np17695\nS'status_list'\np17696\nssS'entity_type'\np17697\n(dp17698\nS'editable'\np17699\nI00\nsS'value'\np17700\nS'Task'\np17701\nssS'editable'\np17702\n(dp17703\nS'editable'\np17704\nI00\nsS'value'\np17705\nI01\nssS'unique'\np17706\n(dp17707\nS'editable'\np17708\nI00\nsS'value'\np17709\nI00\nssS'properties'\np17710\n(dp17711\nS'default_value'\np17712\n(dp17713\nS'editable'\np17714\nI01\nsS'value'\np17715\nS'wtg'\np17716\nssS'valid_values'\np17717\n(dp17718\nS'editable'\np17719\nI01\nsS'value'\np17720\n(lp17721\nS'fin'\np17722\naS'ip'\np17723\naS'hld'\np17724\naS'rdy'\np17725\naS'wtg'\np17726\nassS'summary_default'\np17727\n(dp17728\nS'editable'\np17729\nI01\nsS'value'\np17730\nS'status_percentage'\np17731\nsssS'description'\np17732\n(dp17733\nS'editable'\np17734\nI01\nsS'value'\np17735\ng47\nsssS'time_logs_sum'\np17736\n(dp17737\nS'mandatory'\np17738\n(dp17739\nS'editable'\np17740\nI00\nsS'value'\np17741\nI00\nssS'name'\np17742\n(dp17743\nS'editable'\np17744\nI01\nsS'value'\np17745\nS'Time Logged'\np17746\nssS'data_type'\np17747\n(dp17748\nS'editable'\np17749\nI00\nsS'value'\np17750\nS'duration'\np17751\nssS'entity_type'\np17752\n(dp17753\nS'editable'\np17754\nI00\nsS'value'\np17755\nS'Task'\np17756\nssS'editable'\np17757\n(dp17758\nS'editable'\np17759\nI00\nsS'value'\np17760\nI00\nssS'unique'\np17761\n(dp17762\nS'editable'\np17763\nI00\nsS'value'\np17764\nI00\nssS'properties'\np17765\n(dp17766\nS'default_value'\np17767\n(dp17768\nS'editable'\np17769\nI00\nsS'value'\np17770\nI0\nssS'summary_default'\np17771\n(dp17772\nS'editable'\np17773\nI01\nsS'value'\np17774\nS'sum'\np17775\nsssS'description'\np17776\n(dp17777\nS'editable'\np17778\nI01\nsS'value'\np17779\ng47\nsssS'start_date'\np17780\n(dp17781\nS'mandatory'\np17782\n(dp17783\nS'editable'\np17784\nI00\nsS'value'\np17785\nI00\nssS'name'\np17786\n(dp17787\nS'editable'\np17788\nI01\nsS'value'\np17789\nS'Start Date'\np17790\nssS'data_type'\np17791\n(dp17792\nS'editable'\np17793\nI00\nsS'value'\np17794\nS'date'\np17795\nssS'entity_type'\np17796\n(dp17797\nS'editable'\np17798\nI00\nsS'value'\np17799\nS'Task'\np17800\nssS'editable'\np17801\n(dp17802\nS'editable'\np17803\nI00\nsS'value'\np17804\nI01\nssS'unique'\np17805\n(dp17806\nS'editable'\np17807\nI00\nsS'value'\np17808\nI00\nssS'properties'\np17809\n(dp17810\nS'default_value'\np17811\n(dp17812\nS'editable'\np17813\nI00\nsS'value'\np17814\nNssS'summary_default'\np17815\n(dp17816\nS'editable'\np17817\nI01\nsS'value'\np17818\nS'earliest'\np17819\nsssS'description'\np17820\n(dp17821\nS'editable'\np17822\nI01\nsS'value'\np17823\ng47\nsssS'sibling_tasks'\np17824\n(dp17825\nS'mandatory'\np17826\n(dp17827\nS'editable'\np17828\nI00\nsS'value'\np17829\nI00\nssS'name'\np17830\n(dp17831\nS'editable'\np17832\nI01\nsS'value'\np17833\nS'Sibling Tasks'\np17834\nssS'data_type'\np17835\n(dp17836\nS'editable'\np17837\nI00\nsS'value'\np17838\nS'multi_entity'\np17839\nssS'entity_type'\np17840\n(dp17841\nS'editable'\np17842\nI00\nsS'value'\np17843\nS'Task'\np17844\nssS'editable'\np17845\n(dp17846\nS'editable'\np17847\nI00\nsS'value'\np17848\nI00\nssS'unique'\np17849\n(dp17850\nS'editable'\np17851\nI00\nsS'value'\np17852\nI00\nssS'properties'\np17853\n(dp17854\nS'default_value'\np17855\n(dp17856\nS'editable'\np17857\nI00\nsS'value'\np17858\nNssS'summary_default'\np17859\n(dp17860\nS'editable'\np17861\nI01\nsS'value'\np17862\nS'none'\np17863\nssS'valid_types'\np17864\n(dp17865\nS'editable'\np17866\nI01\nsS'value'\np17867\n(lp17868\nS'Task'\np17869\nasssS'description'\np17870\n(dp17871\nS'editable'\np17872\nI01\nsS'value'\np17873\ng47\nsssS'due_date'\np17874\n(dp17875\nS'mandatory'\np17876\n(dp17877\nS'editable'\np17878\nI00\nsS'value'\np17879\nI00\nssS'name'\np17880\n(dp17881\nS'editable'\np17882\nI01\nsS'value'\np17883\nS'Due Date'\np17884\nssS'data_type'\np17885\n(dp17886\nS'editable'\np17887\nI00\nsS'value'\np17888\nS'date'\np17889\nssS'entity_type'\np17890\n(dp17891\nS'editable'\np17892\nI00\nsS'value'\np17893\nS'Task'\np17894\nssS'editable'\np17895\n(dp17896\nS'editable'\np17897\nI00\nsS'value'\np17898\nI01\nssS'unique'\np17899\n(dp17900\nS'editable'\np17901\nI00\nsS'value'\np17902\nI00\nssS'properties'\np17903\n(dp17904\nS'default_value'\np17905\n(dp17906\nS'editable'\np17907\nI00\nsS'value'\np17908\nNssS'summary_default'\np17909\n(dp17910\nS'editable'\np17911\nI01\nsS'value'\np17912\nS'latest'\np17913\nsssS'description'\np17914\n(dp17915\nS'editable'\np17916\nI01\nsS'value'\np17917\ng47\nsssS'updated_by'\np17918\n(dp17919\nS'mandatory'\np17920\n(dp17921\nS'editable'\np17922\nI00\nsS'value'\np17923\nI00\nssS'name'\np17924\n(dp17925\nS'editable'\np17926\nI01\nsS'value'\np17927\nS'Updated by'\np17928\nssS'data_type'\np17929\n(dp17930\nS'editable'\np17931\nI00\nsS'value'\np17932\nS'entity'\np17933\nssS'entity_type'\np17934\n(dp17935\nS'editable'\np17936\nI00\nsS'value'\np17937\nS'Task'\np17938\nssS'editable'\np17939\n(dp17940\nS'editable'\np17941\nI00\nsS'value'\np17942\nI00\nssS'unique'\np17943\n(dp17944\nS'editable'\np17945\nI00\nsS'value'\np17946\nI00\nssS'properties'\np17947\n(dp17948\nS'default_value'\np17949\n(dp17950\nS'editable'\np17951\nI00\nsS'value'\np17952\nNssS'summary_default'\np17953\n(dp17954\nS'editable'\np17955\nI01\nsS'value'\np17956\nS'none'\np17957\nssS'valid_types'\np17958\n(dp17959\nS'editable'\np17960\nI01\nsS'value'\np17961\n(lp17962\nS'HumanUser'\np17963\naS'ApiUser'\np17964\nasssS'description'\np17965\n(dp17966\nS'editable'\np17967\nI01\nsS'value'\np17968\ng47\nsssS'upstream_tasks'\np17969\n(dp17970\nS'mandatory'\np17971\n(dp17972\nS'editable'\np17973\nI00\nsS'value'\np17974\nI00\nssS'name'\np17975\n(dp17976\nS'editable'\np17977\nI01\nsS'value'\np17978\nS'Upstream Dependency'\np17979\nssS'data_type'\np17980\n(dp17981\nS'editable'\np17982\nI00\nsS'value'\np17983\nS'multi_entity'\np17984\nssS'entity_type'\np17985\n(dp17986\nS'editable'\np17987\nI00\nsS'value'\np17988\nS'Task'\np17989\nssS'editable'\np17990\n(dp17991\nS'editable'\np17992\nI00\nsS'value'\np17993\nI01\nssS'unique'\np17994\n(dp17995\nS'editable'\np17996\nI00\nsS'value'\np17997\nI00\nssS'properties'\np17998\n(dp17999\nS'default_value'\np18000\n(dp18001\nS'editable'\np18002\nI00\nsS'value'\np18003\nNssS'summary_default'\np18004\n(dp18005\nS'editable'\np18006\nI00\nsS'value'\np18007\nS'none'\np18008\nssS'valid_types'\np18009\n(dp18010\nS'editable'\np18011\nI00\nsS'value'\np18012\n(lp18013\nS'Task'\np18014\nasssS'description'\np18015\n(dp18016\nS'editable'\np18017\nI01\nsS'value'\np18018\ng47\nsssS'dependency_violation'\np18019\n(dp18020\nS'mandatory'\np18021\n(dp18022\nS'editable'\np18023\nI00\nsS'value'\np18024\nI00\nssS'name'\np18025\n(dp18026\nS'editable'\np18027\nI01\nsS'value'\np18028\nS'Dependency Violation'\np18029\nssS'data_type'\np18030\n(dp18031\nS'editable'\np18032\nI00\nsS'value'\np18033\nS'checkbox'\np18034\nssS'entity_type'\np18035\n(dp18036\nS'editable'\np18037\nI00\nsS'value'\np18038\nS'Task'\np18039\nssS'editable'\np18040\n(dp18041\nS'editable'\np18042\nI00\nsS'value'\np18043\nI00\nssS'unique'\np18044\n(dp18045\nS'editable'\np18046\nI00\nsS'value'\np18047\nI00\nssS'properties'\np18048\n(dp18049\nS'default_value'\np18050\n(dp18051\nS'editable'\np18052\nI00\nsS'value'\np18053\nI00\nssS'summary_default'\np18054\n(dp18055\nS'editable'\np18056\nI00\nsS'value'\np18057\nS'none'\np18058\nsssS'description'\np18059\n(dp18060\nS'editable'\np18061\nI01\nsS'value'\np18062\ng47\nsssS'time_vs_est'\np18063\n(dp18064\nS'mandatory'\np18065\n(dp18066\nS'editable'\np18067\nI00\nsS'value'\np18068\nI00\nssS'name'\np18069\n(dp18070\nS'editable'\np18071\nI01\nsS'value'\np18072\nS'Time Logged - Over/Under Bid'\np18073\nssS'data_type'\np18074\n(dp18075\nS'editable'\np18076\nI00\nsS'value'\np18077\nS'duration'\np18078\nssS'entity_type'\np18079\n(dp18080\nS'editable'\np18081\nI00\nsS'value'\np18082\nS'Task'\np18083\nssS'editable'\np18084\n(dp18085\nS'editable'\np18086\nI00\nsS'value'\np18087\nI00\nssS'unique'\np18088\n(dp18089\nS'editable'\np18090\nI00\nsS'value'\np18091\nI00\nssS'properties'\np18092\n(dp18093\nS'default_value'\np18094\n(dp18095\nS'editable'\np18096\nI00\nsS'value'\np18097\nNssS'summary_default'\np18098\n(dp18099\nS'editable'\np18100\nI01\nsS'value'\np18101\nS'sum'\np18102\nsssS'description'\np18103\n(dp18104\nS'editable'\np18105\nI01\nsS'value'\np18106\ng47\nsssS'template_task'\np18107\n(dp18108\nS'mandatory'\np18109\n(dp18110\nS'editable'\np18111\nI00\nsS'value'\np18112\nI00\nssS'name'\np18113\n(dp18114\nS'editable'\np18115\nI01\nsS'value'\np18116\nS'Template Task'\np18117\nssS'data_type'\np18118\n(dp18119\nS'editable'\np18120\nI00\nsS'value'\np18121\nS'entity'\np18122\nssS'entity_type'\np18123\n(dp18124\nS'editable'\np18125\nI00\nsS'value'\np18126\nS'Task'\np18127\nssS'editable'\np18128\n(dp18129\nS'editable'\np18130\nI00\nsS'value'\np18131\nI00\nssS'unique'\np18132\n(dp18133\nS'editable'\np18134\nI00\nsS'value'\np18135\nI00\nssS'properties'\np18136\n(dp18137\nS'default_value'\np18138\n(dp18139\nS'editable'\np18140\nI00\nsS'value'\np18141\nNssS'summary_default'\np18142\n(dp18143\nS'editable'\np18144\nI01\nsS'value'\np18145\nS'none'\np18146\nssS'valid_types'\np18147\n(dp18148\nS'editable'\np18149\nI01\nsS'value'\np18150\n(lp18151\nS'Task'\np18152\nasssS'description'\np18153\n(dp18154\nS'editable'\np18155\nI01\nsS'value'\np18156\ng47\nsssS'step'\np18157\n(dp18158\nS'mandatory'\np18159\n(dp18160\nS'editable'\np18161\nI00\nsS'value'\np18162\nI00\nssS'name'\np18163\n(dp18164\nS'editable'\np18165\nI01\nsS'value'\np18166\nS'Pipeline Step'\np18167\nssS'data_type'\np18168\n(dp18169\nS'editable'\np18170\nI00\nsS'value'\np18171\nS'entity'\np18172\nssS'entity_type'\np18173\n(dp18174\nS'editable'\np18175\nI00\nsS'value'\np18176\nS'Task'\np18177\nssS'editable'\np18178\n(dp18179\nS'editable'\np18180\nI00\nsS'value'\np18181\nI01\nssS'unique'\np18182\n(dp18183\nS'editable'\np18184\nI00\nsS'value'\np18185\nI00\nssS'properties'\np18186\n(dp18187\nS'default_value'\np18188\n(dp18189\nS'editable'\np18190\nI00\nsS'value'\np18191\nNssS'summary_default'\np18192\n(dp18193\nS'editable'\np18194\nI01\nsS'value'\np18195\nS'none'\np18196\nssS'valid_types'\np18197\n(dp18198\nS'editable'\np18199\nI01\nsS'value'\np18200\n(lp18201\nS'Step'\np18202\nasssS'description'\np18203\n(dp18204\nS'editable'\np18205\nI01\nsS'value'\np18206\ng47\nsssS'milestone'\np18207\n(dp18208\nS'mandatory'\np18209\n(dp18210\nS'editable'\np18211\nI00\nsS'value'\np18212\nI00\nssS'name'\np18213\n(dp18214\nS'editable'\np18215\nI01\nsS'value'\np18216\nS'Milestone'\np18217\nssS'data_type'\np18218\n(dp18219\nS'editable'\np18220\nI00\nsS'value'\np18221\nS'checkbox'\np18222\nssS'entity_type'\np18223\n(dp18224\nS'editable'\np18225\nI00\nsS'value'\np18226\nS'Task'\np18227\nssS'editable'\np18228\n(dp18229\nS'editable'\np18230\nI00\nsS'value'\np18231\nI01\nssS'unique'\np18232\n(dp18233\nS'editable'\np18234\nI00\nsS'value'\np18235\nI00\nssS'properties'\np18236\n(dp18237\nS'default_value'\np18238\n(dp18239\nS'editable'\np18240\nI00\nsS'value'\np18241\nI00\nssS'summary_default'\np18242\n(dp18243\nS'editable'\np18244\nI01\nsS'value'\np18245\nS'none'\np18246\nsssS'description'\np18247\n(dp18248\nS'editable'\np18249\nI01\nsS'value'\np18250\ng47\nsssS'time_percent_of_est'\np18251\n(dp18252\nS'mandatory'\np18253\n(dp18254\nS'editable'\np18255\nI00\nsS'value'\np18256\nI00\nssS'name'\np18257\n(dp18258\nS'editable'\np18259\nI01\nsS'value'\np18260\nS'Time Logged - % of Bid'\np18261\nssS'data_type'\np18262\n(dp18263\nS'editable'\np18264\nI00\nsS'value'\np18265\nS'percent'\np18266\nssS'entity_type'\np18267\n(dp18268\nS'editable'\np18269\nI00\nsS'value'\np18270\nS'Task'\np18271\nssS'editable'\np18272\n(dp18273\nS'editable'\np18274\nI00\nsS'value'\np18275\nI00\nssS'unique'\np18276\n(dp18277\nS'editable'\np18278\nI00\nsS'value'\np18279\nI00\nssS'properties'\np18280\n(dp18281\nS'default_value'\np18282\n(dp18283\nS'editable'\np18284\nI00\nsS'value'\np18285\nNssS'summary_default'\np18286\n(dp18287\nS'editable'\np18288\nI01\nsS'value'\np18289\nS'none'\np18290\nsssS'description'\np18291\n(dp18292\nS'editable'\np18293\nI01\nsS'value'\np18294\ng47\nsssS'splits'\np18295\n(dp18296\nS'mandatory'\np18297\n(dp18298\nS'editable'\np18299\nI00\nsS'value'\np18300\nI00\nssS'name'\np18301\n(dp18302\nS'editable'\np18303\nI01\nsS'value'\np18304\nS'Splits'\np18305\nssS'data_type'\np18306\n(dp18307\nS'editable'\np18308\nI00\nsS'value'\np18309\nS'serializable'\np18310\nssS'entity_type'\np18311\n(dp18312\nS'editable'\np18313\nI00\nsS'value'\np18314\nS'Task'\np18315\nssS'editable'\np18316\n(dp18317\nS'editable'\np18318\nI00\nsS'value'\np18319\nI01\nssS'unique'\np18320\n(dp18321\nS'editable'\np18322\nI00\nsS'value'\np18323\nI00\nssS'properties'\np18324\n(dp18325\nS'default_value'\np18326\n(dp18327\nS'editable'\np18328\nI00\nsS'value'\np18329\nNssS'summary_default'\np18330\n(dp18331\nS'editable'\np18332\nI00\nsS'value'\np18333\nS'none'\np18334\nsssS'description'\np18335\n(dp18336\nS'editable'\np18337\nI01\nsS'value'\np18338\ng47\nsssS'created_at'\np18339\n(dp18340\nS'mandatory'\np18341\n(dp18342\nS'editable'\np18343\nI00\nsS'value'\np18344\nI00\nssS'name'\np18345\n(dp18346\nS'editable'\np18347\nI01\nsS'value'\np18348\nS'Date Created'\np18349\nssS'data_type'\np18350\n(dp18351\nS'editable'\np18352\nI00\nsS'value'\np18353\nS'date_time'\np18354\nssS'entity_type'\np18355\n(dp18356\nS'editable'\np18357\nI00\nsS'value'\np18358\nS'Task'\np18359\nssS'editable'\np18360\n(dp18361\nS'editable'\np18362\nI00\nsS'value'\np18363\nI00\nssS'unique'\np18364\n(dp18365\nS'editable'\np18366\nI00\nsS'value'\np18367\nI00\nssS'properties'\np18368\n(dp18369\nS'default_value'\np18370\n(dp18371\nS'editable'\np18372\nI00\nsS'value'\np18373\nNssS'summary_default'\np18374\n(dp18375\nS'editable'\np18376\nI01\nsS'value'\np18377\nS'none'\np18378\nsssS'description'\np18379\n(dp18380\nS'editable'\np18381\nI01\nsS'value'\np18382\ng47\nsssS'project'\np18383\n(dp18384\nS'mandatory'\np18385\n(dp18386\nS'editable'\np18387\nI00\nsS'value'\np18388\nI00\nssS'name'\np18389\n(dp18390\nS'editable'\np18391\nI01\nsS'value'\np18392\nS'Project'\np18393\nssS'data_type'\np18394\n(dp18395\nS'editable'\np18396\nI00\nsS'value'\np18397\nS'entity'\np18398\nssS'entity_type'\np18399\n(dp18400\nS'editable'\np18401\nI00\nsS'value'\np18402\nS'Task'\np18403\nssS'editable'\np18404\n(dp18405\nS'editable'\np18406\nI00\nsS'value'\np18407\nI01\nssS'unique'\np18408\n(dp18409\nS'editable'\np18410\nI00\nsS'value'\np18411\nI00\nssS'properties'\np18412\n(dp18413\nS'default_value'\np18414\n(dp18415\nS'editable'\np18416\nI00\nsS'value'\np18417\nNssS'summary_default'\np18418\n(dp18419\nS'editable'\np18420\nI01\nsS'value'\np18421\nS'none'\np18422\nssS'valid_types'\np18423\n(dp18424\nS'editable'\np18425\nI01\nsS'value'\np18426\n(lp18427\nS'Project'\np18428\nasssS'description'\np18429\n(dp18430\nS'editable'\np18431\nI01\nsS'value'\np18432\ng47\nsssS'filmstrip_image'\np18433\n(dp18434\nS'mandatory'\np18435\n(dp18436\nS'editable'\np18437\nI00\nsS'value'\np18438\nI00\nssS'name'\np18439\n(dp18440\nS'editable'\np18441\nI01\nsS'value'\np18442\nS'Filmstrip Thumbnail'\np18443\nssS'data_type'\np18444\n(dp18445\nS'editable'\np18446\nI00\nsS'value'\np18447\nS'image'\np18448\nssS'entity_type'\np18449\n(dp18450\nS'editable'\np18451\nI00\nsS'value'\np18452\nS'Task'\np18453\nssS'editable'\np18454\n(dp18455\nS'editable'\np18456\nI00\nsS'value'\np18457\nI01\nssS'unique'\np18458\n(dp18459\nS'editable'\np18460\nI00\nsS'value'\np18461\nI00\nssS'properties'\np18462\n(dp18463\nS'default_value'\np18464\n(dp18465\nS'editable'\np18466\nI00\nsS'value'\np18467\nNssS'summary_default'\np18468\n(dp18469\nS'editable'\np18470\nI01\nsS'value'\np18471\nS'none'\np18472\nsssS'description'\np18473\n(dp18474\nS'editable'\np18475\nI01\nsS'value'\np18476\ng47\nsssS'est_in_mins'\np18477\n(dp18478\nS'mandatory'\np18479\n(dp18480\nS'editable'\np18481\nI00\nsS'value'\np18482\nI00\nssS'name'\np18483\n(dp18484\nS'editable'\np18485\nI01\nsS'value'\np18486\nS'Bid'\np18487\nssS'data_type'\np18488\n(dp18489\nS'editable'\np18490\nI00\nsS'value'\np18491\nS'duration'\np18492\nssS'entity_type'\np18493\n(dp18494\nS'editable'\np18495\nI00\nsS'value'\np18496\nS'Task'\np18497\nssS'editable'\np18498\n(dp18499\nS'editable'\np18500\nI00\nsS'value'\np18501\nI01\nssS'unique'\np18502\n(dp18503\nS'editable'\np18504\nI00\nsS'value'\np18505\nI00\nssS'properties'\np18506\n(dp18507\nS'default_value'\np18508\n(dp18509\nS'editable'\np18510\nI00\nsS'value'\np18511\nNssS'summary_default'\np18512\n(dp18513\nS'editable'\np18514\nI01\nsS'value'\np18515\nS'sum'\np18516\nsssS'description'\np18517\n(dp18518\nS'editable'\np18519\nI01\nsS'value'\np18520\ng47\nsssS'tag_list'\np18521\n(dp18522\nS'mandatory'\np18523\n(dp18524\nS'editable'\np18525\nI00\nsS'value'\np18526\nI00\nssS'name'\np18527\n(dp18528\nS'editable'\np18529\nI01\nsS'value'\np18530\nS'Tags'\np18531\nssS'data_type'\np18532\n(dp18533\nS'editable'\np18534\nI00\nsS'value'\np18535\nS'tag_list'\np18536\nssS'entity_type'\np18537\n(dp18538\nS'editable'\np18539\nI00\nsS'value'\np18540\nS'Task'\np18541\nssS'editable'\np18542\n(dp18543\nS'editable'\np18544\nI00\nsS'value'\np18545\nI01\nssS'unique'\np18546\n(dp18547\nS'editable'\np18548\nI00\nsS'value'\np18549\nI00\nssS'properties'\np18550\n(dp18551\nS'default_value'\np18552\n(dp18553\nS'editable'\np18554\nI00\nsS'value'\np18555\nNssS'summary_default'\np18556\n(dp18557\nS'editable'\np18558\nI01\nsS'value'\np18559\nS'none'\np18560\nssS'valid_types'\np18561\n(dp18562\nS'editable'\np18563\nI01\nsS'value'\np18564\n(lp18565\nS'Tag'\np18566\nasssS'description'\np18567\n(dp18568\nS'editable'\np18569\nI01\nsS'value'\np18570\ng47\nsssS'notes'\np18571\n(dp18572\nS'mandatory'\np18573\n(dp18574\nS'editable'\np18575\nI00\nsS'value'\np18576\nI00\nssS'name'\np18577\n(dp18578\nS'editable'\np18579\nI01\nsS'value'\np18580\nS'Notes'\np18581\nssS'data_type'\np18582\n(dp18583\nS'editable'\np18584\nI00\nsS'value'\np18585\nS'multi_entity'\np18586\nssS'entity_type'\np18587\n(dp18588\nS'editable'\np18589\nI00\nsS'value'\np18590\nS'Task'\np18591\nssS'editable'\np18592\n(dp18593\nS'editable'\np18594\nI00\nsS'value'\np18595\nI01\nssS'unique'\np18596\n(dp18597\nS'editable'\np18598\nI00\nsS'value'\np18599\nI00\nssS'properties'\np18600\n(dp18601\nS'default_value'\np18602\n(dp18603\nS'editable'\np18604\nI00\nsS'value'\np18605\nNssS'summary_default'\np18606\n(dp18607\nS'editable'\np18608\nI01\nsS'value'\np18609\nS'none'\np18610\nssS'valid_types'\np18611\n(dp18612\nS'editable'\np18613\nI01\nsS'value'\np18614\n(lp18615\nS'Note'\np18616\nasssS'description'\np18617\n(dp18618\nS'editable'\np18619\nI01\nsS'value'\np18620\ng47\nssssS'CustomNonProjectEntity01'\np18621\n(dp18622\nS'created_at'\np18623\n(dp18624\nS'mandatory'\np18625\n(dp18626\nS'editable'\np18627\nI00\nsS'value'\np18628\nI00\nssS'name'\np18629\n(dp18630\nS'editable'\np18631\nI01\nsS'value'\np18632\nS'Date Created'\np18633\nssS'data_type'\np18634\n(dp18635\nS'editable'\np18636\nI00\nsS'value'\np18637\nS'date_time'\np18638\nssS'entity_type'\np18639\n(dp18640\nS'editable'\np18641\nI00\nsS'value'\np18642\nS'CustomNonProjectEntity01'\np18643\nssS'editable'\np18644\n(dp18645\nS'editable'\np18646\nI00\nsS'value'\np18647\nI00\nssS'unique'\np18648\n(dp18649\nS'editable'\np18650\nI00\nsS'value'\np18651\nI00\nssS'properties'\np18652\n(dp18653\nS'default_value'\np18654\n(dp18655\nS'editable'\np18656\nI00\nsS'value'\np18657\nNssS'summary_default'\np18658\n(dp18659\nS'editable'\np18660\nI01\nsS'value'\np18661\nS'none'\np18662\nsssS'description'\np18663\n(dp18664\nS'editable'\np18665\nI01\nsS'value'\np18666\ng47\nsssS'open_notes_count'\np18667\n(dp18668\nS'mandatory'\np18669\n(dp18670\nS'editable'\np18671\nI00\nsS'value'\np18672\nI00\nssS'name'\np18673\n(dp18674\nS'editable'\np18675\nI01\nsS'value'\np18676\nS'Open Notes Count'\np18677\nssS'data_type'\np18678\n(dp18679\nS'editable'\np18680\nI00\nsS'value'\np18681\nS'text'\np18682\nssS'entity_type'\np18683\n(dp18684\nS'editable'\np18685\nI00\nsS'value'\np18686\nS'CustomNonProjectEntity01'\np18687\nssS'editable'\np18688\n(dp18689\nS'editable'\np18690\nI00\nsS'value'\np18691\nI00\nssS'unique'\np18692\n(dp18693\nS'editable'\np18694\nI00\nsS'value'\np18695\nI00\nssS'properties'\np18696\n(dp18697\nS'default_value'\np18698\n(dp18699\nS'editable'\np18700\nI00\nsS'value'\np18701\nNssS'summary_default'\np18702\n(dp18703\nS'editable'\np18704\nI01\nsS'value'\np18705\nS'none'\np18706\nsssS'description'\np18707\n(dp18708\nS'editable'\np18709\nI01\nsS'value'\np18710\ng47\nsssS'code'\np18711\n(dp18712\nS'mandatory'\np18713\n(dp18714\nS'editable'\np18715\nI00\nsS'value'\np18716\nI01\nssS'name'\np18717\n(dp18718\nS'editable'\np18719\nI01\nsS'value'\np18720\nS'Custom Non Project Entity01 Name'\np18721\nssS'data_type'\np18722\n(dp18723\nS'editable'\np18724\nI00\nsS'value'\np18725\nS'text'\np18726\nssS'entity_type'\np18727\n(dp18728\nS'editable'\np18729\nI00\nsS'value'\np18730\nS'CustomNonProjectEntity01'\np18731\nssS'editable'\np18732\n(dp18733\nS'editable'\np18734\nI00\nsS'value'\np18735\nI01\nssS'unique'\np18736\n(dp18737\nS'editable'\np18738\nI00\nsS'value'\np18739\nI00\nssS'properties'\np18740\n(dp18741\nS'default_value'\np18742\n(dp18743\nS'editable'\np18744\nI00\nsS'value'\np18745\nNssS'summary_default'\np18746\n(dp18747\nS'editable'\np18748\nI01\nsS'value'\np18749\nS'none'\np18750\nsssS'description'\np18751\n(dp18752\nS'editable'\np18753\nI01\nsS'value'\np18754\ng47\nsssS'open_notes'\np18755\n(dp18756\nS'mandatory'\np18757\n(dp18758\nS'editable'\np18759\nI00\nsS'value'\np18760\nI00\nssS'name'\np18761\n(dp18762\nS'editable'\np18763\nI01\nsS'value'\np18764\nS'Open Notes'\np18765\nssS'data_type'\np18766\n(dp18767\nS'editable'\np18768\nI00\nsS'value'\np18769\nS'multi_entity'\np18770\nssS'entity_type'\np18771\n(dp18772\nS'editable'\np18773\nI00\nsS'value'\np18774\nS'CustomNonProjectEntity01'\np18775\nssS'editable'\np18776\n(dp18777\nS'editable'\np18778\nI00\nsS'value'\np18779\nI00\nssS'unique'\np18780\n(dp18781\nS'editable'\np18782\nI00\nsS'value'\np18783\nI00\nssS'properties'\np18784\n(dp18785\nS'default_value'\np18786\n(dp18787\nS'editable'\np18788\nI00\nsS'value'\np18789\nNssS'summary_default'\np18790\n(dp18791\nS'editable'\np18792\nI01\nsS'value'\np18793\nS'none'\np18794\nssS'valid_types'\np18795\n(dp18796\nS'editable'\np18797\nI01\nsS'value'\np18798\n(lp18799\nS'Note'\np18800\nasssS'description'\np18801\n(dp18802\nS'editable'\np18803\nI01\nsS'value'\np18804\ng47\nsssS'description'\np18805\n(dp18806\nS'mandatory'\np18807\n(dp18808\nS'editable'\np18809\nI00\nsS'value'\np18810\nI00\nssS'name'\np18811\n(dp18812\nS'editable'\np18813\nI01\nsS'value'\np18814\nS'Description'\np18815\nssS'data_type'\np18816\n(dp18817\nS'editable'\np18818\nI00\nsS'value'\np18819\nS'text'\np18820\nssS'entity_type'\np18821\n(dp18822\nS'editable'\np18823\nI00\nsS'value'\np18824\nS'CustomNonProjectEntity01'\np18825\nssS'editable'\np18826\n(dp18827\nS'editable'\np18828\nI00\nsS'value'\np18829\nI01\nssS'unique'\np18830\n(dp18831\nS'editable'\np18832\nI00\nsS'value'\np18833\nI00\nssS'properties'\np18834\n(dp18835\nS'default_value'\np18836\n(dp18837\nS'editable'\np18838\nI00\nsS'value'\np18839\nNssS'summary_default'\np18840\n(dp18841\nS'editable'\np18842\nI01\nsS'value'\np18843\nS'none'\np18844\nsssS'description'\np18845\n(dp18846\nS'editable'\np18847\nI01\nsS'value'\np18848\ng47\nsssS'notes'\np18849\n(dp18850\nS'mandatory'\np18851\n(dp18852\nS'editable'\np18853\nI00\nsS'value'\np18854\nI00\nssS'name'\np18855\n(dp18856\nS'editable'\np18857\nI01\nsS'value'\np18858\nS'Notes'\np18859\nssS'data_type'\np18860\n(dp18861\nS'editable'\np18862\nI00\nsS'value'\np18863\nS'multi_entity'\np18864\nssS'entity_type'\np18865\n(dp18866\nS'editable'\np18867\nI00\nsS'value'\np18868\nS'CustomNonProjectEntity01'\np18869\nssS'editable'\np18870\n(dp18871\nS'editable'\np18872\nI00\nsS'value'\np18873\nI01\nssS'unique'\np18874\n(dp18875\nS'editable'\np18876\nI00\nsS'value'\np18877\nI00\nssS'properties'\np18878\n(dp18879\nS'default_value'\np18880\n(dp18881\nS'editable'\np18882\nI00\nsS'value'\np18883\nNssS'summary_default'\np18884\n(dp18885\nS'editable'\np18886\nI01\nsS'value'\np18887\nS'none'\np18888\nssS'valid_types'\np18889\n(dp18890\nS'editable'\np18891\nI01\nsS'value'\np18892\n(lp18893\nS'Note'\np18894\nasssS'description'\np18895\n(dp18896\nS'editable'\np18897\nI01\nsS'value'\np18898\ng47\nsssS'updated_at'\np18899\n(dp18900\nS'mandatory'\np18901\n(dp18902\nS'editable'\np18903\nI00\nsS'value'\np18904\nI00\nssS'name'\np18905\n(dp18906\nS'editable'\np18907\nI01\nsS'value'\np18908\nS'Date Updated'\np18909\nssS'data_type'\np18910\n(dp18911\nS'editable'\np18912\nI00\nsS'value'\np18913\nS'date_time'\np18914\nssS'entity_type'\np18915\n(dp18916\nS'editable'\np18917\nI00\nsS'value'\np18918\nS'CustomNonProjectEntity01'\np18919\nssS'editable'\np18920\n(dp18921\nS'editable'\np18922\nI00\nsS'value'\np18923\nI00\nssS'unique'\np18924\n(dp18925\nS'editable'\np18926\nI00\nsS'value'\np18927\nI00\nssS'properties'\np18928\n(dp18929\nS'default_value'\np18930\n(dp18931\nS'editable'\np18932\nI00\nsS'value'\np18933\nNssS'summary_default'\np18934\n(dp18935\nS'editable'\np18936\nI01\nsS'value'\np18937\nS'none'\np18938\nsssS'description'\np18939\n(dp18940\nS'editable'\np18941\nI01\nsS'value'\np18942\ng47\nsssS'created_by'\np18943\n(dp18944\nS'mandatory'\np18945\n(dp18946\nS'editable'\np18947\nI00\nsS'value'\np18948\nI00\nssS'name'\np18949\n(dp18950\nS'editable'\np18951\nI01\nsS'value'\np18952\nS'Created by'\np18953\nssS'data_type'\np18954\n(dp18955\nS'editable'\np18956\nI00\nsS'value'\np18957\nS'entity'\np18958\nssS'entity_type'\np18959\n(dp18960\nS'editable'\np18961\nI00\nsS'value'\np18962\nS'CustomNonProjectEntity01'\np18963\nssS'editable'\np18964\n(dp18965\nS'editable'\np18966\nI00\nsS'value'\np18967\nI00\nssS'unique'\np18968\n(dp18969\nS'editable'\np18970\nI00\nsS'value'\np18971\nI00\nssS'properties'\np18972\n(dp18973\nS'default_value'\np18974\n(dp18975\nS'editable'\np18976\nI00\nsS'value'\np18977\nNssS'summary_default'\np18978\n(dp18979\nS'editable'\np18980\nI01\nsS'value'\np18981\nS'none'\np18982\nssS'valid_types'\np18983\n(dp18984\nS'editable'\np18985\nI01\nsS'value'\np18986\n(lp18987\nS'HumanUser'\np18988\naS'ApiUser'\np18989\nasssS'description'\np18990\n(dp18991\nS'editable'\np18992\nI01\nsS'value'\np18993\ng47\nsssS'filmstrip_image'\np18994\n(dp18995\nS'mandatory'\np18996\n(dp18997\nS'editable'\np18998\nI00\nsS'value'\np18999\nI00\nssS'name'\np19000\n(dp19001\nS'editable'\np19002\nI01\nsS'value'\np19003\nS'Filmstrip Thumbnail'\np19004\nssS'data_type'\np19005\n(dp19006\nS'editable'\np19007\nI00\nsS'value'\np19008\nS'image'\np19009\nssS'entity_type'\np19010\n(dp19011\nS'editable'\np19012\nI00\nsS'value'\np19013\nS'CustomNonProjectEntity01'\np19014\nssS'editable'\np19015\n(dp19016\nS'editable'\np19017\nI00\nsS'value'\np19018\nI01\nssS'unique'\np19019\n(dp19020\nS'editable'\np19021\nI00\nsS'value'\np19022\nI00\nssS'properties'\np19023\n(dp19024\nS'default_value'\np19025\n(dp19026\nS'editable'\np19027\nI00\nsS'value'\np19028\nNssS'summary_default'\np19029\n(dp19030\nS'editable'\np19031\nI01\nsS'value'\np19032\nS'none'\np19033\nsssS'description'\np19034\n(dp19035\nS'editable'\np19036\nI01\nsS'value'\np19037\ng47\nsssS'sg_status_list'\np19038\n(dp19039\nS'mandatory'\np19040\n(dp19041\nS'editable'\np19042\nI00\nsS'value'\np19043\nI00\nssS'name'\np19044\n(dp19045\nS'editable'\np19046\nI01\nsS'value'\np19047\nS'Status'\np19048\nssS'data_type'\np19049\n(dp19050\nS'editable'\np19051\nI00\nsS'value'\np19052\nS'status_list'\np19053\nssS'entity_type'\np19054\n(dp19055\nS'editable'\np19056\nI00\nsS'value'\np19057\nS'CustomNonProjectEntity01'\np19058\nssS'editable'\np19059\n(dp19060\nS'editable'\np19061\nI00\nsS'value'\np19062\nI01\nssS'unique'\np19063\n(dp19064\nS'editable'\np19065\nI00\nsS'value'\np19066\nI00\nssS'properties'\np19067\n(dp19068\nS'default_value'\np19069\n(dp19070\nS'editable'\np19071\nI01\nsS'value'\np19072\nS'wtg'\np19073\nssS'valid_values'\np19074\n(dp19075\nS'editable'\np19076\nI01\nsS'value'\np19077\n(lp19078\nS'cmpt'\np19079\naS'ip'\np19080\naS'wtg'\np19081\nassS'summary_default'\np19082\n(dp19083\nS'editable'\np19084\nI01\nsS'value'\np19085\nS'none'\np19086\nsssS'description'\np19087\n(dp19088\nS'editable'\np19089\nI01\nsS'value'\np19090\ng47\nsssS'image'\np19091\n(dp19092\nS'mandatory'\np19093\n(dp19094\nS'editable'\np19095\nI00\nsS'value'\np19096\nI00\nssS'name'\np19097\n(dp19098\nS'editable'\np19099\nI01\nsS'value'\np19100\nS'Thumbnail'\np19101\nssS'data_type'\np19102\n(dp19103\nS'editable'\np19104\nI00\nsS'value'\np19105\nS'image'\np19106\nssS'entity_type'\np19107\n(dp19108\nS'editable'\np19109\nI00\nsS'value'\np19110\nS'CustomNonProjectEntity01'\np19111\nssS'editable'\np19112\n(dp19113\nS'editable'\np19114\nI00\nsS'value'\np19115\nI01\nssS'unique'\np19116\n(dp19117\nS'editable'\np19118\nI00\nsS'value'\np19119\nI00\nssS'properties'\np19120\n(dp19121\nS'default_value'\np19122\n(dp19123\nS'editable'\np19124\nI00\nsS'value'\np19125\nNssS'summary_default'\np19126\n(dp19127\nS'editable'\np19128\nI01\nsS'value'\np19129\nS'none'\np19130\nsssS'description'\np19131\n(dp19132\nS'editable'\np19133\nI01\nsS'value'\np19134\ng47\nsssS'cached_display_name'\np19135\n(dp19136\nS'mandatory'\np19137\n(dp19138\nS'editable'\np19139\nI00\nsS'value'\np19140\nI00\nssS'name'\np19141\n(dp19142\nS'editable'\np19143\nI01\nsS'value'\np19144\nS'Cached Display Name'\np19145\nssS'data_type'\np19146\n(dp19147\nS'editable'\np19148\nI00\nsS'value'\np19149\nS'text'\np19150\nssS'entity_type'\np19151\n(dp19152\nS'editable'\np19153\nI00\nsS'value'\np19154\nS'CustomNonProjectEntity01'\np19155\nssS'editable'\np19156\n(dp19157\nS'editable'\np19158\nI00\nsS'value'\np19159\nI01\nssS'unique'\np19160\n(dp19161\nS'editable'\np19162\nI00\nsS'value'\np19163\nI00\nssS'properties'\np19164\n(dp19165\nS'default_value'\np19166\n(dp19167\nS'editable'\np19168\nI00\nsS'value'\np19169\nNssS'summary_default'\np19170\n(dp19171\nS'editable'\np19172\nI00\nsS'value'\np19173\nS'none'\np19174\nsssS'description'\np19175\n(dp19176\nS'editable'\np19177\nI01\nsS'value'\np19178\ng47\nsssS'tag_list'\np19179\n(dp19180\nS'mandatory'\np19181\n(dp19182\nS'editable'\np19183\nI00\nsS'value'\np19184\nI00\nssS'name'\np19185\n(dp19186\nS'editable'\np19187\nI01\nsS'value'\np19188\nS'Tags'\np19189\nssS'data_type'\np19190\n(dp19191\nS'editable'\np19192\nI00\nsS'value'\np19193\nS'tag_list'\np19194\nssS'entity_type'\np19195\n(dp19196\nS'editable'\np19197\nI00\nsS'value'\np19198\nS'CustomNonProjectEntity01'\np19199\nssS'editable'\np19200\n(dp19201\nS'editable'\np19202\nI00\nsS'value'\np19203\nI01\nssS'unique'\np19204\n(dp19205\nS'editable'\np19206\nI00\nsS'value'\np19207\nI00\nssS'properties'\np19208\n(dp19209\nS'default_value'\np19210\n(dp19211\nS'editable'\np19212\nI00\nsS'value'\np19213\nNssS'summary_default'\np19214\n(dp19215\nS'editable'\np19216\nI01\nsS'value'\np19217\nS'none'\np19218\nssS'valid_types'\np19219\n(dp19220\nS'editable'\np19221\nI01\nsS'value'\np19222\n(lp19223\nS'Tag'\np19224\nasssS'description'\np19225\n(dp19226\nS'editable'\np19227\nI01\nsS'value'\np19228\ng47\nsssS'id'\np19229\n(dp19230\nS'mandatory'\np19231\n(dp19232\nS'editable'\np19233\nI00\nsS'value'\np19234\nI00\nssS'name'\np19235\n(dp19236\nS'editable'\np19237\nI01\nsS'value'\np19238\nS'Id'\np19239\nssS'data_type'\np19240\n(dp19241\nS'editable'\np19242\nI00\nsS'value'\np19243\nS'number'\np19244\nssS'entity_type'\np19245\n(dp19246\nS'editable'\np19247\nI00\nsS'value'\np19248\nS'CustomNonProjectEntity01'\np19249\nssS'editable'\np19250\n(dp19251\nS'editable'\np19252\nI00\nsS'value'\np19253\nI00\nssS'unique'\np19254\n(dp19255\nS'editable'\np19256\nI00\nsS'value'\np19257\nI00\nssS'properties'\np19258\n(dp19259\nS'default_value'\np19260\n(dp19261\nS'editable'\np19262\nI00\nsS'value'\np19263\nNssS'summary_default'\np19264\n(dp19265\nS'editable'\np19266\nI01\nsS'value'\np19267\nS'none'\np19268\nsssS'description'\np19269\n(dp19270\nS'editable'\np19271\nI01\nsS'value'\np19272\ng47\nsssS'updated_by'\np19273\n(dp19274\nS'mandatory'\np19275\n(dp19276\nS'editable'\np19277\nI00\nsS'value'\np19278\nI00\nssS'name'\np19279\n(dp19280\nS'editable'\np19281\nI01\nsS'value'\np19282\nS'Updated by'\np19283\nssS'data_type'\np19284\n(dp19285\nS'editable'\np19286\nI00\nsS'value'\np19287\nS'entity'\np19288\nssS'entity_type'\np19289\n(dp19290\nS'editable'\np19291\nI00\nsS'value'\np19292\nS'CustomNonProjectEntity01'\np19293\nssS'editable'\np19294\n(dp19295\nS'editable'\np19296\nI00\nsS'value'\np19297\nI00\nssS'unique'\np19298\n(dp19299\nS'editable'\np19300\nI00\nsS'value'\np19301\nI00\nssS'properties'\np19302\n(dp19303\nS'default_value'\np19304\n(dp19305\nS'editable'\np19306\nI00\nsS'value'\np19307\nNssS'summary_default'\np19308\n(dp19309\nS'editable'\np19310\nI01\nsS'value'\np19311\nS'none'\np19312\nssS'valid_types'\np19313\n(dp19314\nS'editable'\np19315\nI01\nsS'value'\np19316\n(lp19317\nS'HumanUser'\np19318\naS'ApiUser'\np19319\nasssS'description'\np19320\n(dp19321\nS'editable'\np19322\nI01\nsS'value'\np19323\ng47\nssssS'ApiUser'\np19324\n(dp19325\nS'description'\np19326\n(dp19327\nS'mandatory'\np19328\n(dp19329\nS'editable'\np19330\nI00\nsS'value'\np19331\nI00\nssS'name'\np19332\n(dp19333\nS'editable'\np19334\nI01\nsS'value'\np19335\nS'Description'\np19336\nssS'data_type'\np19337\n(dp19338\nS'editable'\np19339\nI00\nsS'value'\np19340\nS'text'\np19341\nssS'entity_type'\np19342\n(dp19343\nS'editable'\np19344\nI00\nsS'value'\np19345\nS'ApiUser'\np19346\nssS'editable'\np19347\n(dp19348\nS'editable'\np19349\nI00\nsS'value'\np19350\nI01\nssS'unique'\np19351\n(dp19352\nS'editable'\np19353\nI00\nsS'value'\np19354\nI00\nssS'properties'\np19355\n(dp19356\nS'default_value'\np19357\n(dp19358\nS'editable'\np19359\nI00\nsS'value'\np19360\nNssS'summary_default'\np19361\n(dp19362\nS'editable'\np19363\nI01\nsS'value'\np19364\nS'none'\np19365\nsssS'description'\np19366\n(dp19367\nS'editable'\np19368\nI01\nsS'value'\np19369\ng47\nsssS'firstname'\np19370\n(dp19371\nS'mandatory'\np19372\n(dp19373\nS'editable'\np19374\nI00\nsS'value'\np19375\nI01\nssS'name'\np19376\n(dp19377\nS'editable'\np19378\nI01\nsS'value'\np19379\nS'Script Name'\np19380\nssS'data_type'\np19381\n(dp19382\nS'editable'\np19383\nI00\nsS'value'\np19384\nS'text'\np19385\nssS'entity_type'\np19386\n(dp19387\nS'editable'\np19388\nI00\nsS'value'\np19389\nS'ApiUser'\np19390\nssS'editable'\np19391\n(dp19392\nS'editable'\np19393\nI00\nsS'value'\np19394\nI01\nssS'unique'\np19395\n(dp19396\nS'editable'\np19397\nI00\nsS'value'\np19398\nI00\nssS'properties'\np19399\n(dp19400\nS'default_value'\np19401\n(dp19402\nS'editable'\np19403\nI00\nsS'value'\np19404\nNssS'summary_default'\np19405\n(dp19406\nS'editable'\np19407\nI01\nsS'value'\np19408\nS'none'\np19409\nsssS'description'\np19410\n(dp19411\nS'editable'\np19412\nI01\nsS'value'\np19413\ng47\nsssS'lastname'\np19414\n(dp19415\nS'mandatory'\np19416\n(dp19417\nS'editable'\np19418\nI00\nsS'value'\np19419\nI00\nssS'name'\np19420\n(dp19421\nS'editable'\np19422\nI01\nsS'value'\np19423\nS'Version'\np19424\nssS'data_type'\np19425\n(dp19426\nS'editable'\np19427\nI00\nsS'value'\np19428\nS'text'\np19429\nssS'entity_type'\np19430\n(dp19431\nS'editable'\np19432\nI00\nsS'value'\np19433\nS'ApiUser'\np19434\nssS'editable'\np19435\n(dp19436\nS'editable'\np19437\nI00\nsS'value'\np19438\nI01\nssS'unique'\np19439\n(dp19440\nS'editable'\np19441\nI00\nsS'value'\np19442\nI00\nssS'properties'\np19443\n(dp19444\nS'default_value'\np19445\n(dp19446\nS'editable'\np19447\nI00\nsS'value'\np19448\nNssS'summary_default'\np19449\n(dp19450\nS'editable'\np19451\nI01\nsS'value'\np19452\nS'none'\np19453\nsssS'description'\np19454\n(dp19455\nS'editable'\np19456\nI01\nsS'value'\np19457\ng47\nsssS'created_at'\np19458\n(dp19459\nS'mandatory'\np19460\n(dp19461\nS'editable'\np19462\nI00\nsS'value'\np19463\nI00\nssS'name'\np19464\n(dp19465\nS'editable'\np19466\nI01\nsS'value'\np19467\nS'Date Created'\np19468\nssS'data_type'\np19469\n(dp19470\nS'editable'\np19471\nI00\nsS'value'\np19472\nS'date_time'\np19473\nssS'entity_type'\np19474\n(dp19475\nS'editable'\np19476\nI00\nsS'value'\np19477\nS'ApiUser'\np19478\nssS'editable'\np19479\n(dp19480\nS'editable'\np19481\nI00\nsS'value'\np19482\nI00\nssS'unique'\np19483\n(dp19484\nS'editable'\np19485\nI00\nsS'value'\np19486\nI00\nssS'properties'\np19487\n(dp19488\nS'default_value'\np19489\n(dp19490\nS'editable'\np19491\nI00\nsS'value'\np19492\nNssS'summary_default'\np19493\n(dp19494\nS'editable'\np19495\nI01\nsS'value'\np19496\nS'none'\np19497\nsssS'description'\np19498\n(dp19499\nS'editable'\np19500\nI01\nsS'value'\np19501\ng47\nsssS'generate_event_log_entries'\np19502\n(dp19503\nS'mandatory'\np19504\n(dp19505\nS'editable'\np19506\nI00\nsS'value'\np19507\nI00\nssS'name'\np19508\n(dp19509\nS'editable'\np19510\nI01\nsS'value'\np19511\nS'Generate Events'\np19512\nssS'data_type'\np19513\n(dp19514\nS'editable'\np19515\nI00\nsS'value'\np19516\nS'checkbox'\np19517\nssS'entity_type'\np19518\n(dp19519\nS'editable'\np19520\nI00\nsS'value'\np19521\nS'ApiUser'\np19522\nssS'editable'\np19523\n(dp19524\nS'editable'\np19525\nI00\nsS'value'\np19526\nI01\nssS'unique'\np19527\n(dp19528\nS'editable'\np19529\nI00\nsS'value'\np19530\nI00\nssS'properties'\np19531\n(dp19532\nS'default_value'\np19533\n(dp19534\nS'editable'\np19535\nI00\nsS'value'\np19536\nI01\nssS'summary_default'\np19537\n(dp19538\nS'editable'\np19539\nI01\nsS'value'\np19540\nS'none'\np19541\nsssS'description'\np19542\n(dp19543\nS'editable'\np19544\nI01\nsS'value'\np19545\ng47\nsssS'updated_at'\np19546\n(dp19547\nS'mandatory'\np19548\n(dp19549\nS'editable'\np19550\nI00\nsS'value'\np19551\nI00\nssS'name'\np19552\n(dp19553\nS'editable'\np19554\nI01\nsS'value'\np19555\nS'Date Updated'\np19556\nssS'data_type'\np19557\n(dp19558\nS'editable'\np19559\nI00\nsS'value'\np19560\nS'date_time'\np19561\nssS'entity_type'\np19562\n(dp19563\nS'editable'\np19564\nI00\nsS'value'\np19565\nS'ApiUser'\np19566\nssS'editable'\np19567\n(dp19568\nS'editable'\np19569\nI00\nsS'value'\np19570\nI00\nssS'unique'\np19571\n(dp19572\nS'editable'\np19573\nI00\nsS'value'\np19574\nI00\nssS'properties'\np19575\n(dp19576\nS'default_value'\np19577\n(dp19578\nS'editable'\np19579\nI00\nsS'value'\np19580\nNssS'summary_default'\np19581\n(dp19582\nS'editable'\np19583\nI01\nsS'value'\np19584\nS'none'\np19585\nsssS'description'\np19586\n(dp19587\nS'editable'\np19588\nI01\nsS'value'\np19589\ng47\nsssS'created_by'\np19590\n(dp19591\nS'mandatory'\np19592\n(dp19593\nS'editable'\np19594\nI00\nsS'value'\np19595\nI00\nssS'name'\np19596\n(dp19597\nS'editable'\np19598\nI01\nsS'value'\np19599\nS'Created by'\np19600\nssS'data_type'\np19601\n(dp19602\nS'editable'\np19603\nI00\nsS'value'\np19604\nS'entity'\np19605\nssS'entity_type'\np19606\n(dp19607\nS'editable'\np19608\nI00\nsS'value'\np19609\nS'ApiUser'\np19610\nssS'editable'\np19611\n(dp19612\nS'editable'\np19613\nI00\nsS'value'\np19614\nI00\nssS'unique'\np19615\n(dp19616\nS'editable'\np19617\nI00\nsS'value'\np19618\nI00\nssS'properties'\np19619\n(dp19620\nS'default_value'\np19621\n(dp19622\nS'editable'\np19623\nI00\nsS'value'\np19624\nNssS'summary_default'\np19625\n(dp19626\nS'editable'\np19627\nI01\nsS'value'\np19628\nS'none'\np19629\nssS'valid_types'\np19630\n(dp19631\nS'editable'\np19632\nI01\nsS'value'\np19633\n(lp19634\nS'HumanUser'\np19635\naS'ApiUser'\np19636\nasssS'description'\np19637\n(dp19638\nS'editable'\np19639\nI01\nsS'value'\np19640\ng47\nsssS'email'\np19641\n(dp19642\nS'mandatory'\np19643\n(dp19644\nS'editable'\np19645\nI00\nsS'value'\np19646\nI00\nssS'name'\np19647\n(dp19648\nS'editable'\np19649\nI01\nsS'value'\np19650\nS'Maintainer'\np19651\nssS'data_type'\np19652\n(dp19653\nS'editable'\np19654\nI00\nsS'value'\np19655\nS'text'\np19656\nssS'entity_type'\np19657\n(dp19658\nS'editable'\np19659\nI00\nsS'value'\np19660\nS'ApiUser'\np19661\nssS'editable'\np19662\n(dp19663\nS'editable'\np19664\nI00\nsS'value'\np19665\nI01\nssS'unique'\np19666\n(dp19667\nS'editable'\np19668\nI00\nsS'value'\np19669\nI00\nssS'properties'\np19670\n(dp19671\nS'default_value'\np19672\n(dp19673\nS'editable'\np19674\nI00\nsS'value'\np19675\ng47\nssS'summary_default'\np19676\n(dp19677\nS'editable'\np19678\nI01\nsS'value'\np19679\nS'none'\np19680\nsssS'description'\np19681\n(dp19682\nS'editable'\np19683\nI01\nsS'value'\np19684\ng47\nsssS'permission_rule_set'\np19685\n(dp19686\nS'mandatory'\np19687\n(dp19688\nS'editable'\np19689\nI00\nsS'value'\np19690\nI00\nssS'name'\np19691\n(dp19692\nS'editable'\np19693\nI01\nsS'value'\np19694\nS'Permission Group'\np19695\nssS'data_type'\np19696\n(dp19697\nS'editable'\np19698\nI00\nsS'value'\np19699\nS'entity'\np19700\nssS'entity_type'\np19701\n(dp19702\nS'editable'\np19703\nI00\nsS'value'\np19704\nS'ApiUser'\np19705\nssS'editable'\np19706\n(dp19707\nS'editable'\np19708\nI00\nsS'value'\np19709\nI00\nssS'unique'\np19710\n(dp19711\nS'editable'\np19712\nI00\nsS'value'\np19713\nI00\nssS'properties'\np19714\n(dp19715\nS'default_value'\np19716\n(dp19717\nS'editable'\np19718\nI00\nsS'value'\np19719\nNssS'summary_default'\np19720\n(dp19721\nS'editable'\np19722\nI01\nsS'value'\np19723\nS'none'\np19724\nssS'valid_types'\np19725\n(dp19726\nS'editable'\np19727\nI01\nsS'value'\np19728\n(lp19729\nS'PermissionRuleSet'\np19730\nasssS'description'\np19731\n(dp19732\nS'editable'\np19733\nI01\nsS'value'\np19734\ng47\nsssS'filmstrip_image'\np19735\n(dp19736\nS'mandatory'\np19737\n(dp19738\nS'editable'\np19739\nI00\nsS'value'\np19740\nI00\nssS'name'\np19741\n(dp19742\nS'editable'\np19743\nI01\nsS'value'\np19744\nS'Filmstrip Thumbnail'\np19745\nssS'data_type'\np19746\n(dp19747\nS'editable'\np19748\nI00\nsS'value'\np19749\nS'image'\np19750\nssS'entity_type'\np19751\n(dp19752\nS'editable'\np19753\nI00\nsS'value'\np19754\nS'ApiUser'\np19755\nssS'editable'\np19756\n(dp19757\nS'editable'\np19758\nI00\nsS'value'\np19759\nI01\nssS'unique'\np19760\n(dp19761\nS'editable'\np19762\nI00\nsS'value'\np19763\nI00\nssS'properties'\np19764\n(dp19765\nS'default_value'\np19766\n(dp19767\nS'editable'\np19768\nI00\nsS'value'\np19769\nNssS'summary_default'\np19770\n(dp19771\nS'editable'\np19772\nI01\nsS'value'\np19773\nS'none'\np19774\nsssS'description'\np19775\n(dp19776\nS'editable'\np19777\nI01\nsS'value'\np19778\ng47\nsssS'image'\np19779\n(dp19780\nS'mandatory'\np19781\n(dp19782\nS'editable'\np19783\nI00\nsS'value'\np19784\nI00\nssS'name'\np19785\n(dp19786\nS'editable'\np19787\nI01\nsS'value'\np19788\nS'Thumbnail'\np19789\nssS'data_type'\np19790\n(dp19791\nS'editable'\np19792\nI00\nsS'value'\np19793\nS'image'\np19794\nssS'entity_type'\np19795\n(dp19796\nS'editable'\np19797\nI00\nsS'value'\np19798\nS'ApiUser'\np19799\nssS'editable'\np19800\n(dp19801\nS'editable'\np19802\nI00\nsS'value'\np19803\nI01\nssS'unique'\np19804\n(dp19805\nS'editable'\np19806\nI00\nsS'value'\np19807\nI00\nssS'properties'\np19808\n(dp19809\nS'default_value'\np19810\n(dp19811\nS'editable'\np19812\nI00\nsS'value'\np19813\nNssS'summary_default'\np19814\n(dp19815\nS'editable'\np19816\nI01\nsS'value'\np19817\nS'none'\np19818\nsssS'description'\np19819\n(dp19820\nS'editable'\np19821\nI01\nsS'value'\np19822\ng47\nsssS'cached_display_name'\np19823\n(dp19824\nS'mandatory'\np19825\n(dp19826\nS'editable'\np19827\nI00\nsS'value'\np19828\nI00\nssS'name'\np19829\n(dp19830\nS'editable'\np19831\nI01\nsS'value'\np19832\nS'Cached Display Name'\np19833\nssS'data_type'\np19834\n(dp19835\nS'editable'\np19836\nI00\nsS'value'\np19837\nS'text'\np19838\nssS'entity_type'\np19839\n(dp19840\nS'editable'\np19841\nI00\nsS'value'\np19842\nS'ApiUser'\np19843\nssS'editable'\np19844\n(dp19845\nS'editable'\np19846\nI00\nsS'value'\np19847\nI01\nssS'unique'\np19848\n(dp19849\nS'editable'\np19850\nI00\nsS'value'\np19851\nI00\nssS'properties'\np19852\n(dp19853\nS'default_value'\np19854\n(dp19855\nS'editable'\np19856\nI00\nsS'value'\np19857\nNssS'summary_default'\np19858\n(dp19859\nS'editable'\np19860\nI00\nsS'value'\np19861\nS'none'\np19862\nsssS'description'\np19863\n(dp19864\nS'editable'\np19865\nI01\nsS'value'\np19866\ng47\nsssS'tag_list'\np19867\n(dp19868\nS'mandatory'\np19869\n(dp19870\nS'editable'\np19871\nI00\nsS'value'\np19872\nI00\nssS'name'\np19873\n(dp19874\nS'editable'\np19875\nI01\nsS'value'\np19876\nS'Tags'\np19877\nssS'data_type'\np19878\n(dp19879\nS'editable'\np19880\nI00\nsS'value'\np19881\nS'tag_list'\np19882\nssS'entity_type'\np19883\n(dp19884\nS'editable'\np19885\nI00\nsS'value'\np19886\nS'ApiUser'\np19887\nssS'editable'\np19888\n(dp19889\nS'editable'\np19890\nI00\nsS'value'\np19891\nI01\nssS'unique'\np19892\n(dp19893\nS'editable'\np19894\nI00\nsS'value'\np19895\nI00\nssS'properties'\np19896\n(dp19897\nS'default_value'\np19898\n(dp19899\nS'editable'\np19900\nI00\nsS'value'\np19901\nNssS'summary_default'\np19902\n(dp19903\nS'editable'\np19904\nI01\nsS'value'\np19905\nS'none'\np19906\nssS'valid_types'\np19907\n(dp19908\nS'editable'\np19909\nI01\nsS'value'\np19910\n(lp19911\nS'Tag'\np19912\nasssS'description'\np19913\n(dp19914\nS'editable'\np19915\nI01\nsS'value'\np19916\ng47\nsssS'id'\np19917\n(dp19918\nS'mandatory'\np19919\n(dp19920\nS'editable'\np19921\nI00\nsS'value'\np19922\nI00\nssS'name'\np19923\n(dp19924\nS'editable'\np19925\nI01\nsS'value'\np19926\nS'Id'\np19927\nssS'data_type'\np19928\n(dp19929\nS'editable'\np19930\nI00\nsS'value'\np19931\nS'number'\np19932\nssS'entity_type'\np19933\n(dp19934\nS'editable'\np19935\nI00\nsS'value'\np19936\nS'ApiUser'\np19937\nssS'editable'\np19938\n(dp19939\nS'editable'\np19940\nI00\nsS'value'\np19941\nI00\nssS'unique'\np19942\n(dp19943\nS'editable'\np19944\nI00\nsS'value'\np19945\nI00\nssS'properties'\np19946\n(dp19947\nS'default_value'\np19948\n(dp19949\nS'editable'\np19950\nI00\nsS'value'\np19951\nNssS'summary_default'\np19952\n(dp19953\nS'editable'\np19954\nI01\nsS'value'\np19955\nS'none'\np19956\nsssS'description'\np19957\n(dp19958\nS'editable'\np19959\nI01\nsS'value'\np19960\ng47\nsssS'salted_password'\np19961\n(dp19962\nS'mandatory'\np19963\n(dp19964\nS'editable'\np19965\nI00\nsS'value'\np19966\nI00\nssS'name'\np19967\n(dp19968\nS'editable'\np19969\nI01\nsS'value'\np19970\nS'Application Key'\np19971\nssS'data_type'\np19972\n(dp19973\nS'editable'\np19974\nI00\nsS'value'\np19975\nS'text'\np19976\nssS'entity_type'\np19977\n(dp19978\nS'editable'\np19979\nI00\nsS'value'\np19980\nS'ApiUser'\np19981\nssS'editable'\np19982\n(dp19983\nS'editable'\np19984\nI00\nsS'value'\np19985\nI00\nssS'unique'\np19986\n(dp19987\nS'editable'\np19988\nI00\nsS'value'\np19989\nI00\nssS'properties'\np19990\n(dp19991\nS'default_value'\np19992\n(dp19993\nS'editable'\np19994\nI00\nsS'value'\np19995\ng47\nssS'summary_default'\np19996\n(dp19997\nS'editable'\np19998\nI01\nsS'value'\np19999\nS'none'\np20000\nsssS'description'\np20001\n(dp20002\nS'editable'\np20003\nI01\nsS'value'\np20004\ng47\nsssS'updated_by'\np20005\n(dp20006\nS'mandatory'\np20007\n(dp20008\nS'editable'\np20009\nI00\nsS'value'\np20010\nI00\nssS'name'\np20011\n(dp20012\nS'editable'\np20013\nI01\nsS'value'\np20014\nS'Updated by'\np20015\nssS'data_type'\np20016\n(dp20017\nS'editable'\np20018\nI00\nsS'value'\np20019\nS'entity'\np20020\nssS'entity_type'\np20021\n(dp20022\nS'editable'\np20023\nI00\nsS'value'\np20024\nS'ApiUser'\np20025\nssS'editable'\np20026\n(dp20027\nS'editable'\np20028\nI00\nsS'value'\np20029\nI00\nssS'unique'\np20030\n(dp20031\nS'editable'\np20032\nI00\nsS'value'\np20033\nI00\nssS'properties'\np20034\n(dp20035\nS'default_value'\np20036\n(dp20037\nS'editable'\np20038\nI00\nsS'value'\np20039\nNssS'summary_default'\np20040\n(dp20041\nS'editable'\np20042\nI01\nsS'value'\np20043\nS'none'\np20044\nssS'valid_types'\np20045\n(dp20046\nS'editable'\np20047\nI01\nsS'value'\np20048\n(lp20049\nS'HumanUser'\np20050\naS'ApiUser'\np20051\nasssS'description'\np20052\n(dp20053\nS'editable'\np20054\nI01\nsS'value'\np20055\ng47\nssssS'CustomNonProjectEntity03'\np20056\n(dp20057\nS'open_notes_count'\np20058\n(dp20059\nS'mandatory'\np20060\n(dp20061\nS'editable'\np20062\nI00\nsS'value'\np20063\nI00\nssS'name'\np20064\n(dp20065\nS'editable'\np20066\nI01\nsS'value'\np20067\nS'Open Notes Count'\np20068\nssS'data_type'\np20069\n(dp20070\nS'editable'\np20071\nI00\nsS'value'\np20072\nS'text'\np20073\nssS'entity_type'\np20074\n(dp20075\nS'editable'\np20076\nI00\nsS'value'\np20077\nS'CustomNonProjectEntity03'\np20078\nssS'editable'\np20079\n(dp20080\nS'editable'\np20081\nI00\nsS'value'\np20082\nI00\nssS'unique'\np20083\n(dp20084\nS'editable'\np20085\nI00\nsS'value'\np20086\nI00\nssS'properties'\np20087\n(dp20088\nS'default_value'\np20089\n(dp20090\nS'editable'\np20091\nI00\nsS'value'\np20092\nNssS'summary_default'\np20093\n(dp20094\nS'editable'\np20095\nI01\nsS'value'\np20096\nS'none'\np20097\nsssS'description'\np20098\n(dp20099\nS'editable'\np20100\nI01\nsS'value'\np20101\ng47\nsssS'code'\np20102\n(dp20103\nS'mandatory'\np20104\n(dp20105\nS'editable'\np20106\nI00\nsS'value'\np20107\nI01\nssS'name'\np20108\n(dp20109\nS'editable'\np20110\nI01\nsS'value'\np20111\nS'Custom Non Project Entity03 Name'\np20112\nssS'data_type'\np20113\n(dp20114\nS'editable'\np20115\nI00\nsS'value'\np20116\nS'text'\np20117\nssS'entity_type'\np20118\n(dp20119\nS'editable'\np20120\nI00\nsS'value'\np20121\nS'CustomNonProjectEntity03'\np20122\nssS'editable'\np20123\n(dp20124\nS'editable'\np20125\nI00\nsS'value'\np20126\nI01\nssS'unique'\np20127\n(dp20128\nS'editable'\np20129\nI00\nsS'value'\np20130\nI00\nssS'properties'\np20131\n(dp20132\nS'default_value'\np20133\n(dp20134\nS'editable'\np20135\nI00\nsS'value'\np20136\nNssS'summary_default'\np20137\n(dp20138\nS'editable'\np20139\nI01\nsS'value'\np20140\nS'none'\np20141\nsssS'description'\np20142\n(dp20143\nS'editable'\np20144\nI01\nsS'value'\np20145\ng47\nsssS'open_notes'\np20146\n(dp20147\nS'mandatory'\np20148\n(dp20149\nS'editable'\np20150\nI00\nsS'value'\np20151\nI00\nssS'name'\np20152\n(dp20153\nS'editable'\np20154\nI01\nsS'value'\np20155\nS'Open Notes'\np20156\nssS'data_type'\np20157\n(dp20158\nS'editable'\np20159\nI00\nsS'value'\np20160\nS'multi_entity'\np20161\nssS'entity_type'\np20162\n(dp20163\nS'editable'\np20164\nI00\nsS'value'\np20165\nS'CustomNonProjectEntity03'\np20166\nssS'editable'\np20167\n(dp20168\nS'editable'\np20169\nI00\nsS'value'\np20170\nI00\nssS'unique'\np20171\n(dp20172\nS'editable'\np20173\nI00\nsS'value'\np20174\nI00\nssS'properties'\np20175\n(dp20176\nS'default_value'\np20177\n(dp20178\nS'editable'\np20179\nI00\nsS'value'\np20180\nNssS'summary_default'\np20181\n(dp20182\nS'editable'\np20183\nI01\nsS'value'\np20184\nS'none'\np20185\nssS'valid_types'\np20186\n(dp20187\nS'editable'\np20188\nI01\nsS'value'\np20189\n(lp20190\nS'Note'\np20191\nasssS'description'\np20192\n(dp20193\nS'editable'\np20194\nI01\nsS'value'\np20195\ng47\nsssS'description'\np20196\n(dp20197\nS'mandatory'\np20198\n(dp20199\nS'editable'\np20200\nI00\nsS'value'\np20201\nI00\nssS'name'\np20202\n(dp20203\nS'editable'\np20204\nI01\nsS'value'\np20205\nS'Description'\np20206\nssS'data_type'\np20207\n(dp20208\nS'editable'\np20209\nI00\nsS'value'\np20210\nS'text'\np20211\nssS'entity_type'\np20212\n(dp20213\nS'editable'\np20214\nI00\nsS'value'\np20215\nS'CustomNonProjectEntity03'\np20216\nssS'editable'\np20217\n(dp20218\nS'editable'\np20219\nI00\nsS'value'\np20220\nI01\nssS'unique'\np20221\n(dp20222\nS'editable'\np20223\nI00\nsS'value'\np20224\nI00\nssS'properties'\np20225\n(dp20226\nS'default_value'\np20227\n(dp20228\nS'editable'\np20229\nI00\nsS'value'\np20230\nNssS'summary_default'\np20231\n(dp20232\nS'editable'\np20233\nI01\nsS'value'\np20234\nS'none'\np20235\nsssS'description'\np20236\n(dp20237\nS'editable'\np20238\nI01\nsS'value'\np20239\ng47\nsssS'created_at'\np20240\n(dp20241\nS'mandatory'\np20242\n(dp20243\nS'editable'\np20244\nI00\nsS'value'\np20245\nI00\nssS'name'\np20246\n(dp20247\nS'editable'\np20248\nI01\nsS'value'\np20249\nS'Date Created'\np20250\nssS'data_type'\np20251\n(dp20252\nS'editable'\np20253\nI00\nsS'value'\np20254\nS'date_time'\np20255\nssS'entity_type'\np20256\n(dp20257\nS'editable'\np20258\nI00\nsS'value'\np20259\nS'CustomNonProjectEntity03'\np20260\nssS'editable'\np20261\n(dp20262\nS'editable'\np20263\nI00\nsS'value'\np20264\nI00\nssS'unique'\np20265\n(dp20266\nS'editable'\np20267\nI00\nsS'value'\np20268\nI00\nssS'properties'\np20269\n(dp20270\nS'default_value'\np20271\n(dp20272\nS'editable'\np20273\nI00\nsS'value'\np20274\nNssS'summary_default'\np20275\n(dp20276\nS'editable'\np20277\nI01\nsS'value'\np20278\nS'none'\np20279\nsssS'description'\np20280\n(dp20281\nS'editable'\np20282\nI01\nsS'value'\np20283\ng47\nsssS'updated_at'\np20284\n(dp20285\nS'mandatory'\np20286\n(dp20287\nS'editable'\np20288\nI00\nsS'value'\np20289\nI00\nssS'name'\np20290\n(dp20291\nS'editable'\np20292\nI01\nsS'value'\np20293\nS'Date Updated'\np20294\nssS'data_type'\np20295\n(dp20296\nS'editable'\np20297\nI00\nsS'value'\np20298\nS'date_time'\np20299\nssS'entity_type'\np20300\n(dp20301\nS'editable'\np20302\nI00\nsS'value'\np20303\nS'CustomNonProjectEntity03'\np20304\nssS'editable'\np20305\n(dp20306\nS'editable'\np20307\nI00\nsS'value'\np20308\nI00\nssS'unique'\np20309\n(dp20310\nS'editable'\np20311\nI00\nsS'value'\np20312\nI00\nssS'properties'\np20313\n(dp20314\nS'default_value'\np20315\n(dp20316\nS'editable'\np20317\nI00\nsS'value'\np20318\nNssS'summary_default'\np20319\n(dp20320\nS'editable'\np20321\nI01\nsS'value'\np20322\nS'none'\np20323\nsssS'description'\np20324\n(dp20325\nS'editable'\np20326\nI01\nsS'value'\np20327\ng47\nsssS'created_by'\np20328\n(dp20329\nS'mandatory'\np20330\n(dp20331\nS'editable'\np20332\nI00\nsS'value'\np20333\nI00\nssS'name'\np20334\n(dp20335\nS'editable'\np20336\nI01\nsS'value'\np20337\nS'Created by'\np20338\nssS'data_type'\np20339\n(dp20340\nS'editable'\np20341\nI00\nsS'value'\np20342\nS'entity'\np20343\nssS'entity_type'\np20344\n(dp20345\nS'editable'\np20346\nI00\nsS'value'\np20347\nS'CustomNonProjectEntity03'\np20348\nssS'editable'\np20349\n(dp20350\nS'editable'\np20351\nI00\nsS'value'\np20352\nI00\nssS'unique'\np20353\n(dp20354\nS'editable'\np20355\nI00\nsS'value'\np20356\nI00\nssS'properties'\np20357\n(dp20358\nS'default_value'\np20359\n(dp20360\nS'editable'\np20361\nI00\nsS'value'\np20362\nNssS'summary_default'\np20363\n(dp20364\nS'editable'\np20365\nI01\nsS'value'\np20366\nS'none'\np20367\nssS'valid_types'\np20368\n(dp20369\nS'editable'\np20370\nI01\nsS'value'\np20371\n(lp20372\nS'HumanUser'\np20373\naS'ApiUser'\np20374\nasssS'description'\np20375\n(dp20376\nS'editable'\np20377\nI01\nsS'value'\np20378\ng47\nsssS'filmstrip_image'\np20379\n(dp20380\nS'mandatory'\np20381\n(dp20382\nS'editable'\np20383\nI00\nsS'value'\np20384\nI00\nssS'name'\np20385\n(dp20386\nS'editable'\np20387\nI01\nsS'value'\np20388\nS'Filmstrip Thumbnail'\np20389\nssS'data_type'\np20390\n(dp20391\nS'editable'\np20392\nI00\nsS'value'\np20393\nS'image'\np20394\nssS'entity_type'\np20395\n(dp20396\nS'editable'\np20397\nI00\nsS'value'\np20398\nS'CustomNonProjectEntity03'\np20399\nssS'editable'\np20400\n(dp20401\nS'editable'\np20402\nI00\nsS'value'\np20403\nI01\nssS'unique'\np20404\n(dp20405\nS'editable'\np20406\nI00\nsS'value'\np20407\nI00\nssS'properties'\np20408\n(dp20409\nS'default_value'\np20410\n(dp20411\nS'editable'\np20412\nI00\nsS'value'\np20413\nNssS'summary_default'\np20414\n(dp20415\nS'editable'\np20416\nI01\nsS'value'\np20417\nS'none'\np20418\nsssS'description'\np20419\n(dp20420\nS'editable'\np20421\nI01\nsS'value'\np20422\ng47\nsssS'sg_status_list'\np20423\n(dp20424\nS'mandatory'\np20425\n(dp20426\nS'editable'\np20427\nI00\nsS'value'\np20428\nI00\nssS'name'\np20429\n(dp20430\nS'editable'\np20431\nI01\nsS'value'\np20432\nS'Status'\np20433\nssS'data_type'\np20434\n(dp20435\nS'editable'\np20436\nI00\nsS'value'\np20437\nS'status_list'\np20438\nssS'entity_type'\np20439\n(dp20440\nS'editable'\np20441\nI00\nsS'value'\np20442\nS'CustomNonProjectEntity03'\np20443\nssS'editable'\np20444\n(dp20445\nS'editable'\np20446\nI00\nsS'value'\np20447\nI01\nssS'unique'\np20448\n(dp20449\nS'editable'\np20450\nI00\nsS'value'\np20451\nI00\nssS'properties'\np20452\n(dp20453\nS'default_value'\np20454\n(dp20455\nS'editable'\np20456\nI01\nsS'value'\np20457\nS'wtg'\np20458\nssS'valid_values'\np20459\n(dp20460\nS'editable'\np20461\nI01\nsS'value'\np20462\n(lp20463\nS'cmpt'\np20464\naS'ip'\np20465\naS'wtg'\np20466\nassS'summary_default'\np20467\n(dp20468\nS'editable'\np20469\nI01\nsS'value'\np20470\nS'none'\np20471\nsssS'description'\np20472\n(dp20473\nS'editable'\np20474\nI01\nsS'value'\np20475\ng47\nsssS'notes'\np20476\n(dp20477\nS'mandatory'\np20478\n(dp20479\nS'editable'\np20480\nI00\nsS'value'\np20481\nI00\nssS'name'\np20482\n(dp20483\nS'editable'\np20484\nI01\nsS'value'\np20485\nS'Notes'\np20486\nssS'data_type'\np20487\n(dp20488\nS'editable'\np20489\nI00\nsS'value'\np20490\nS'multi_entity'\np20491\nssS'entity_type'\np20492\n(dp20493\nS'editable'\np20494\nI00\nsS'value'\np20495\nS'CustomNonProjectEntity03'\np20496\nssS'editable'\np20497\n(dp20498\nS'editable'\np20499\nI00\nsS'value'\np20500\nI01\nssS'unique'\np20501\n(dp20502\nS'editable'\np20503\nI00\nsS'value'\np20504\nI00\nssS'properties'\np20505\n(dp20506\nS'default_value'\np20507\n(dp20508\nS'editable'\np20509\nI00\nsS'value'\np20510\nNssS'summary_default'\np20511\n(dp20512\nS'editable'\np20513\nI01\nsS'value'\np20514\nS'none'\np20515\nssS'valid_types'\np20516\n(dp20517\nS'editable'\np20518\nI01\nsS'value'\np20519\n(lp20520\nS'Note'\np20521\nasssS'description'\np20522\n(dp20523\nS'editable'\np20524\nI01\nsS'value'\np20525\ng47\nsssS'image'\np20526\n(dp20527\nS'mandatory'\np20528\n(dp20529\nS'editable'\np20530\nI00\nsS'value'\np20531\nI00\nssS'name'\np20532\n(dp20533\nS'editable'\np20534\nI01\nsS'value'\np20535\nS'Thumbnail'\np20536\nssS'data_type'\np20537\n(dp20538\nS'editable'\np20539\nI00\nsS'value'\np20540\nS'image'\np20541\nssS'entity_type'\np20542\n(dp20543\nS'editable'\np20544\nI00\nsS'value'\np20545\nS'CustomNonProjectEntity03'\np20546\nssS'editable'\np20547\n(dp20548\nS'editable'\np20549\nI00\nsS'value'\np20550\nI01\nssS'unique'\np20551\n(dp20552\nS'editable'\np20553\nI00\nsS'value'\np20554\nI00\nssS'properties'\np20555\n(dp20556\nS'default_value'\np20557\n(dp20558\nS'editable'\np20559\nI00\nsS'value'\np20560\nNssS'summary_default'\np20561\n(dp20562\nS'editable'\np20563\nI01\nsS'value'\np20564\nS'none'\np20565\nsssS'description'\np20566\n(dp20567\nS'editable'\np20568\nI01\nsS'value'\np20569\ng47\nsssS'cached_display_name'\np20570\n(dp20571\nS'mandatory'\np20572\n(dp20573\nS'editable'\np20574\nI00\nsS'value'\np20575\nI00\nssS'name'\np20576\n(dp20577\nS'editable'\np20578\nI01\nsS'value'\np20579\nS'Cached Display Name'\np20580\nssS'data_type'\np20581\n(dp20582\nS'editable'\np20583\nI00\nsS'value'\np20584\nS'text'\np20585\nssS'entity_type'\np20586\n(dp20587\nS'editable'\np20588\nI00\nsS'value'\np20589\nS'CustomNonProjectEntity03'\np20590\nssS'editable'\np20591\n(dp20592\nS'editable'\np20593\nI00\nsS'value'\np20594\nI01\nssS'unique'\np20595\n(dp20596\nS'editable'\np20597\nI00\nsS'value'\np20598\nI00\nssS'properties'\np20599\n(dp20600\nS'default_value'\np20601\n(dp20602\nS'editable'\np20603\nI00\nsS'value'\np20604\nNssS'summary_default'\np20605\n(dp20606\nS'editable'\np20607\nI00\nsS'value'\np20608\nS'none'\np20609\nsssS'description'\np20610\n(dp20611\nS'editable'\np20612\nI01\nsS'value'\np20613\ng47\nsssS'tag_list'\np20614\n(dp20615\nS'mandatory'\np20616\n(dp20617\nS'editable'\np20618\nI00\nsS'value'\np20619\nI00\nssS'name'\np20620\n(dp20621\nS'editable'\np20622\nI01\nsS'value'\np20623\nS'Tags'\np20624\nssS'data_type'\np20625\n(dp20626\nS'editable'\np20627\nI00\nsS'value'\np20628\nS'tag_list'\np20629\nssS'entity_type'\np20630\n(dp20631\nS'editable'\np20632\nI00\nsS'value'\np20633\nS'CustomNonProjectEntity03'\np20634\nssS'editable'\np20635\n(dp20636\nS'editable'\np20637\nI00\nsS'value'\np20638\nI01\nssS'unique'\np20639\n(dp20640\nS'editable'\np20641\nI00\nsS'value'\np20642\nI00\nssS'properties'\np20643\n(dp20644\nS'default_value'\np20645\n(dp20646\nS'editable'\np20647\nI00\nsS'value'\np20648\nNssS'summary_default'\np20649\n(dp20650\nS'editable'\np20651\nI01\nsS'value'\np20652\nS'none'\np20653\nssS'valid_types'\np20654\n(dp20655\nS'editable'\np20656\nI01\nsS'value'\np20657\n(lp20658\nS'Tag'\np20659\nasssS'description'\np20660\n(dp20661\nS'editable'\np20662\nI01\nsS'value'\np20663\ng47\nsssS'id'\np20664\n(dp20665\nS'mandatory'\np20666\n(dp20667\nS'editable'\np20668\nI00\nsS'value'\np20669\nI00\nssS'name'\np20670\n(dp20671\nS'editable'\np20672\nI01\nsS'value'\np20673\nS'Id'\np20674\nssS'data_type'\np20675\n(dp20676\nS'editable'\np20677\nI00\nsS'value'\np20678\nS'number'\np20679\nssS'entity_type'\np20680\n(dp20681\nS'editable'\np20682\nI00\nsS'value'\np20683\nS'CustomNonProjectEntity03'\np20684\nssS'editable'\np20685\n(dp20686\nS'editable'\np20687\nI00\nsS'value'\np20688\nI00\nssS'unique'\np20689\n(dp20690\nS'editable'\np20691\nI00\nsS'value'\np20692\nI00\nssS'properties'\np20693\n(dp20694\nS'default_value'\np20695\n(dp20696\nS'editable'\np20697\nI00\nsS'value'\np20698\nNssS'summary_default'\np20699\n(dp20700\nS'editable'\np20701\nI01\nsS'value'\np20702\nS'none'\np20703\nsssS'description'\np20704\n(dp20705\nS'editable'\np20706\nI01\nsS'value'\np20707\ng47\nsssS'updated_by'\np20708\n(dp20709\nS'mandatory'\np20710\n(dp20711\nS'editable'\np20712\nI00\nsS'value'\np20713\nI00\nssS'name'\np20714\n(dp20715\nS'editable'\np20716\nI01\nsS'value'\np20717\nS'Updated by'\np20718\nssS'data_type'\np20719\n(dp20720\nS'editable'\np20721\nI00\nsS'value'\np20722\nS'entity'\np20723\nssS'entity_type'\np20724\n(dp20725\nS'editable'\np20726\nI00\nsS'value'\np20727\nS'CustomNonProjectEntity03'\np20728\nssS'editable'\np20729\n(dp20730\nS'editable'\np20731\nI00\nsS'value'\np20732\nI00\nssS'unique'\np20733\n(dp20734\nS'editable'\np20735\nI00\nsS'value'\np20736\nI00\nssS'properties'\np20737\n(dp20738\nS'default_value'\np20739\n(dp20740\nS'editable'\np20741\nI00\nsS'value'\np20742\nNssS'summary_default'\np20743\n(dp20744\nS'editable'\np20745\nI01\nsS'value'\np20746\nS'none'\np20747\nssS'valid_types'\np20748\n(dp20749\nS'editable'\np20750\nI01\nsS'value'\np20751\n(lp20752\nS'HumanUser'\np20753\naS'ApiUser'\np20754\nasssS'description'\np20755\n(dp20756\nS'editable'\np20757\nI01\nsS'value'\np20758\ng47\nssssS'LaunchShotConnection'\np20759\n(dp20760\nS'cached_display_name'\np20761\n(dp20762\nS'mandatory'\np20763\n(dp20764\nS'editable'\np20765\nI00\nsS'value'\np20766\nI00\nssS'name'\np20767\n(dp20768\nS'editable'\np20769\nI01\nsS'value'\np20770\nS'Cached Display Name'\np20771\nssS'data_type'\np20772\n(dp20773\nS'editable'\np20774\nI00\nsS'value'\np20775\nS'text'\np20776\nssS'entity_type'\np20777\n(dp20778\nS'editable'\np20779\nI00\nsS'value'\np20780\nS'LaunchShotConnection'\np20781\nssS'editable'\np20782\n(dp20783\nS'editable'\np20784\nI00\nsS'value'\np20785\nI01\nssS'unique'\np20786\n(dp20787\nS'editable'\np20788\nI00\nsS'value'\np20789\nI00\nssS'properties'\np20790\n(dp20791\nS'default_value'\np20792\n(dp20793\nS'editable'\np20794\nI00\nsS'value'\np20795\nNssS'summary_default'\np20796\n(dp20797\nS'editable'\np20798\nI00\nsS'value'\np20799\nS'none'\np20800\nsssS'description'\np20801\n(dp20802\nS'editable'\np20803\nI01\nsS'value'\np20804\ng47\nsssS'shot'\np20805\n(dp20806\nS'mandatory'\np20807\n(dp20808\nS'editable'\np20809\nI00\nsS'value'\np20810\nI00\nssS'name'\np20811\n(dp20812\nS'editable'\np20813\nI01\nsS'value'\np20814\nS'Shot'\np20815\nssS'data_type'\np20816\n(dp20817\nS'editable'\np20818\nI00\nsS'value'\np20819\nS'entity'\np20820\nssS'entity_type'\np20821\n(dp20822\nS'editable'\np20823\nI00\nsS'value'\np20824\nS'LaunchShotConnection'\np20825\nssS'editable'\np20826\n(dp20827\nS'editable'\np20828\nI00\nsS'value'\np20829\nI00\nssS'unique'\np20830\n(dp20831\nS'editable'\np20832\nI00\nsS'value'\np20833\nI00\nssS'properties'\np20834\n(dp20835\nS'default_value'\np20836\n(dp20837\nS'editable'\np20838\nI00\nsS'value'\np20839\nNssS'summary_default'\np20840\n(dp20841\nS'editable'\np20842\nI00\nsS'value'\np20843\nS'none'\np20844\nssS'valid_types'\np20845\n(dp20846\nS'editable'\np20847\nI00\nsS'value'\np20848\n(lp20849\nS'Shot'\np20850\nasssS'description'\np20851\n(dp20852\nS'editable'\np20853\nI01\nsS'value'\np20854\ng47\nsssS'id'\np20855\n(dp20856\nS'mandatory'\np20857\n(dp20858\nS'editable'\np20859\nI00\nsS'value'\np20860\nI01\nssS'name'\np20861\n(dp20862\nS'editable'\np20863\nI01\nsS'value'\np20864\nS'Id'\np20865\nssS'data_type'\np20866\n(dp20867\nS'editable'\np20868\nI00\nsS'value'\np20869\nS'number'\np20870\nssS'entity_type'\np20871\n(dp20872\nS'editable'\np20873\nI00\nsS'value'\np20874\nS'LaunchShotConnection'\np20875\nssS'editable'\np20876\n(dp20877\nS'editable'\np20878\nI00\nsS'value'\np20879\nI00\nssS'unique'\np20880\n(dp20881\nS'editable'\np20882\nI00\nsS'value'\np20883\nI00\nssS'properties'\np20884\n(dp20885\nS'default_value'\np20886\n(dp20887\nS'editable'\np20888\nI00\nsS'value'\np20889\nNssS'summary_default'\np20890\n(dp20891\nS'editable'\np20892\nI00\nsS'value'\np20893\nS'none'\np20894\nsssS'description'\np20895\n(dp20896\nS'editable'\np20897\nI01\nsS'value'\np20898\ng47\nsssS'launch'\np20899\n(dp20900\nS'mandatory'\np20901\n(dp20902\nS'editable'\np20903\nI00\nsS'value'\np20904\nI00\nssS'name'\np20905\n(dp20906\nS'editable'\np20907\nI01\nsS'value'\np20908\nS'Launch'\np20909\nssS'data_type'\np20910\n(dp20911\nS'editable'\np20912\nI00\nsS'value'\np20913\nS'entity'\np20914\nssS'entity_type'\np20915\n(dp20916\nS'editable'\np20917\nI00\nsS'value'\np20918\nS'LaunchShotConnection'\np20919\nssS'editable'\np20920\n(dp20921\nS'editable'\np20922\nI00\nsS'value'\np20923\nI00\nssS'unique'\np20924\n(dp20925\nS'editable'\np20926\nI00\nsS'value'\np20927\nI00\nssS'properties'\np20928\n(dp20929\nS'default_value'\np20930\n(dp20931\nS'editable'\np20932\nI00\nsS'value'\np20933\nNssS'summary_default'\np20934\n(dp20935\nS'editable'\np20936\nI00\nsS'value'\np20937\nS'none'\np20938\nssS'valid_types'\np20939\n(dp20940\nS'editable'\np20941\nI00\nsS'value'\np20942\n(lp20943\nS'Launch'\np20944\nasssS'description'\np20945\n(dp20946\nS'editable'\np20947\nI01\nsS'value'\np20948\ng47\nssssS'ShotShotConnection'\np20949\n(dp20950\nS'shot'\np20951\n(dp20952\nS'mandatory'\np20953\n(dp20954\nS'editable'\np20955\nI00\nsS'value'\np20956\nI00\nssS'name'\np20957\n(dp20958\nS'editable'\np20959\nI01\nsS'value'\np20960\nS'Shot'\np20961\nssS'data_type'\np20962\n(dp20963\nS'editable'\np20964\nI00\nsS'value'\np20965\nS'entity'\np20966\nssS'entity_type'\np20967\n(dp20968\nS'editable'\np20969\nI00\nsS'value'\np20970\nS'ShotShotConnection'\np20971\nssS'editable'\np20972\n(dp20973\nS'editable'\np20974\nI00\nsS'value'\np20975\nI00\nssS'unique'\np20976\n(dp20977\nS'editable'\np20978\nI00\nsS'value'\np20979\nI00\nssS'properties'\np20980\n(dp20981\nS'default_value'\np20982\n(dp20983\nS'editable'\np20984\nI00\nsS'value'\np20985\nNssS'summary_default'\np20986\n(dp20987\nS'editable'\np20988\nI00\nsS'value'\np20989\nS'none'\np20990\nssS'valid_types'\np20991\n(dp20992\nS'editable'\np20993\nI00\nsS'value'\np20994\n(lp20995\nS'Shot'\np20996\nasssS'description'\np20997\n(dp20998\nS'editable'\np20999\nI01\nsS'value'\np21000\ng47\nsssS'cached_display_name'\np21001\n(dp21002\nS'mandatory'\np21003\n(dp21004\nS'editable'\np21005\nI00\nsS'value'\np21006\nI00\nssS'name'\np21007\n(dp21008\nS'editable'\np21009\nI01\nsS'value'\np21010\nS'Cached Display Name'\np21011\nssS'data_type'\np21012\n(dp21013\nS'editable'\np21014\nI00\nsS'value'\np21015\nS'text'\np21016\nssS'entity_type'\np21017\n(dp21018\nS'editable'\np21019\nI00\nsS'value'\np21020\nS'ShotShotConnection'\np21021\nssS'editable'\np21022\n(dp21023\nS'editable'\np21024\nI00\nsS'value'\np21025\nI01\nssS'unique'\np21026\n(dp21027\nS'editable'\np21028\nI00\nsS'value'\np21029\nI00\nssS'properties'\np21030\n(dp21031\nS'default_value'\np21032\n(dp21033\nS'editable'\np21034\nI00\nsS'value'\np21035\nNssS'summary_default'\np21036\n(dp21037\nS'editable'\np21038\nI00\nsS'value'\np21039\nS'none'\np21040\nsssS'description'\np21041\n(dp21042\nS'editable'\np21043\nI01\nsS'value'\np21044\ng47\nsssS'parent_shot'\np21045\n(dp21046\nS'mandatory'\np21047\n(dp21048\nS'editable'\np21049\nI00\nsS'value'\np21050\nI00\nssS'name'\np21051\n(dp21052\nS'editable'\np21053\nI01\nsS'value'\np21054\nS'Shot'\np21055\nssS'data_type'\np21056\n(dp21057\nS'editable'\np21058\nI00\nsS'value'\np21059\nS'entity'\np21060\nssS'entity_type'\np21061\n(dp21062\nS'editable'\np21063\nI00\nsS'value'\np21064\nS'ShotShotConnection'\np21065\nssS'editable'\np21066\n(dp21067\nS'editable'\np21068\nI00\nsS'value'\np21069\nI00\nssS'unique'\np21070\n(dp21071\nS'editable'\np21072\nI00\nsS'value'\np21073\nI00\nssS'properties'\np21074\n(dp21075\nS'default_value'\np21076\n(dp21077\nS'editable'\np21078\nI00\nsS'value'\np21079\nNssS'summary_default'\np21080\n(dp21081\nS'editable'\np21082\nI00\nsS'value'\np21083\nS'none'\np21084\nssS'valid_types'\np21085\n(dp21086\nS'editable'\np21087\nI00\nsS'value'\np21088\n(lp21089\nS'Shot'\np21090\nasssS'description'\np21091\n(dp21092\nS'editable'\np21093\nI01\nsS'value'\np21094\ng47\nsssS'id'\np21095\n(dp21096\nS'mandatory'\np21097\n(dp21098\nS'editable'\np21099\nI00\nsS'value'\np21100\nI01\nssS'name'\np21101\n(dp21102\nS'editable'\np21103\nI01\nsS'value'\np21104\nS'Id'\np21105\nssS'data_type'\np21106\n(dp21107\nS'editable'\np21108\nI00\nsS'value'\np21109\nS'number'\np21110\nssS'entity_type'\np21111\n(dp21112\nS'editable'\np21113\nI00\nsS'value'\np21114\nS'ShotShotConnection'\np21115\nssS'editable'\np21116\n(dp21117\nS'editable'\np21118\nI00\nsS'value'\np21119\nI00\nssS'unique'\np21120\n(dp21121\nS'editable'\np21122\nI00\nsS'value'\np21123\nI00\nssS'properties'\np21124\n(dp21125\nS'default_value'\np21126\n(dp21127\nS'editable'\np21128\nI00\nsS'value'\np21129\nNssS'summary_default'\np21130\n(dp21131\nS'editable'\np21132\nI00\nsS'value'\np21133\nS'none'\np21134\nsssS'description'\np21135\n(dp21136\nS'editable'\np21137\nI01\nsS'value'\np21138\ng47\nssssS'PerformerRoutineConnection'\np21139\n(dp21140\nS'cached_display_name'\np21141\n(dp21142\nS'mandatory'\np21143\n(dp21144\nS'editable'\np21145\nI00\nsS'value'\np21146\nI00\nssS'name'\np21147\n(dp21148\nS'editable'\np21149\nI01\nsS'value'\np21150\nS'Cached Display Name'\np21151\nssS'data_type'\np21152\n(dp21153\nS'editable'\np21154\nI00\nsS'value'\np21155\nS'text'\np21156\nssS'entity_type'\np21157\n(dp21158\nS'editable'\np21159\nI00\nsS'value'\np21160\nS'PerformerRoutineConnection'\np21161\nssS'editable'\np21162\n(dp21163\nS'editable'\np21164\nI00\nsS'value'\np21165\nI01\nssS'unique'\np21166\n(dp21167\nS'editable'\np21168\nI00\nsS'value'\np21169\nI00\nssS'properties'\np21170\n(dp21171\nS'default_value'\np21172\n(dp21173\nS'editable'\np21174\nI00\nsS'value'\np21175\nNssS'summary_default'\np21176\n(dp21177\nS'editable'\np21178\nI00\nsS'value'\np21179\nS'none'\np21180\nsssS'description'\np21181\n(dp21182\nS'editable'\np21183\nI01\nsS'value'\np21184\ng47\nsssS'performer'\np21185\n(dp21186\nS'mandatory'\np21187\n(dp21188\nS'editable'\np21189\nI00\nsS'value'\np21190\nI00\nssS'name'\np21191\n(dp21192\nS'editable'\np21193\nI01\nsS'value'\np21194\nS'Performer'\np21195\nssS'data_type'\np21196\n(dp21197\nS'editable'\np21198\nI00\nsS'value'\np21199\nS'entity'\np21200\nssS'entity_type'\np21201\n(dp21202\nS'editable'\np21203\nI00\nsS'value'\np21204\nS'PerformerRoutineConnection'\np21205\nssS'editable'\np21206\n(dp21207\nS'editable'\np21208\nI00\nsS'value'\np21209\nI00\nssS'unique'\np21210\n(dp21211\nS'editable'\np21212\nI00\nsS'value'\np21213\nI00\nssS'properties'\np21214\n(dp21215\nS'default_value'\np21216\n(dp21217\nS'editable'\np21218\nI00\nsS'value'\np21219\nNssS'summary_default'\np21220\n(dp21221\nS'editable'\np21222\nI00\nsS'value'\np21223\nS'none'\np21224\nssS'valid_types'\np21225\n(dp21226\nS'editable'\np21227\nI00\nsS'value'\np21228\n(lp21229\nS'Performer'\np21230\nasssS'description'\np21231\n(dp21232\nS'editable'\np21233\nI01\nsS'value'\np21234\ng47\nsssS'id'\np21235\n(dp21236\nS'mandatory'\np21237\n(dp21238\nS'editable'\np21239\nI00\nsS'value'\np21240\nI01\nssS'name'\np21241\n(dp21242\nS'editable'\np21243\nI01\nsS'value'\np21244\nS'Id'\np21245\nssS'data_type'\np21246\n(dp21247\nS'editable'\np21248\nI00\nsS'value'\np21249\nS'number'\np21250\nssS'entity_type'\np21251\n(dp21252\nS'editable'\np21253\nI00\nsS'value'\np21254\nS'PerformerRoutineConnection'\np21255\nssS'editable'\np21256\n(dp21257\nS'editable'\np21258\nI00\nsS'value'\np21259\nI00\nssS'unique'\np21260\n(dp21261\nS'editable'\np21262\nI00\nsS'value'\np21263\nI00\nssS'properties'\np21264\n(dp21265\nS'default_value'\np21266\n(dp21267\nS'editable'\np21268\nI00\nsS'value'\np21269\nNssS'summary_default'\np21270\n(dp21271\nS'editable'\np21272\nI00\nsS'value'\np21273\nS'none'\np21274\nsssS'description'\np21275\n(dp21276\nS'editable'\np21277\nI01\nsS'value'\np21278\ng47\nsssS'routine'\np21279\n(dp21280\nS'mandatory'\np21281\n(dp21282\nS'editable'\np21283\nI00\nsS'value'\np21284\nI00\nssS'name'\np21285\n(dp21286\nS'editable'\np21287\nI01\nsS'value'\np21288\nS'Mocap Routine'\np21289\nssS'data_type'\np21290\n(dp21291\nS'editable'\np21292\nI00\nsS'value'\np21293\nS'entity'\np21294\nssS'entity_type'\np21295\n(dp21296\nS'editable'\np21297\nI00\nsS'value'\np21298\nS'PerformerRoutineConnection'\np21299\nssS'editable'\np21300\n(dp21301\nS'editable'\np21302\nI00\nsS'value'\np21303\nI00\nssS'unique'\np21304\n(dp21305\nS'editable'\np21306\nI00\nsS'value'\np21307\nI00\nssS'properties'\np21308\n(dp21309\nS'default_value'\np21310\n(dp21311\nS'editable'\np21312\nI00\nsS'value'\np21313\nNssS'summary_default'\np21314\n(dp21315\nS'editable'\np21316\nI00\nsS'value'\np21317\nS'none'\np21318\nssS'valid_types'\np21319\n(dp21320\nS'editable'\np21321\nI00\nsS'value'\np21322\n(lp21323\nS'Routine'\np21324\nasssS'description'\np21325\n(dp21326\nS'editable'\np21327\nI01\nsS'value'\np21328\ng47\nssssS'PublishedFileType'\np21329\n(dp21330\nS'code'\np21331\n(dp21332\nS'mandatory'\np21333\n(dp21334\nS'editable'\np21335\nI00\nsS'value'\np21336\nI01\nssS'name'\np21337\n(dp21338\nS'editable'\np21339\nI01\nsS'value'\np21340\nS'Published File Type Name'\np21341\nssS'data_type'\np21342\n(dp21343\nS'editable'\np21344\nI00\nsS'value'\np21345\nS'text'\np21346\nssS'entity_type'\np21347\n(dp21348\nS'editable'\np21349\nI00\nsS'value'\np21350\nS'PublishedFileType'\np21351\nssS'editable'\np21352\n(dp21353\nS'editable'\np21354\nI00\nsS'value'\np21355\nI01\nssS'unique'\np21356\n(dp21357\nS'editable'\np21358\nI00\nsS'value'\np21359\nI00\nssS'properties'\np21360\n(dp21361\nS'default_value'\np21362\n(dp21363\nS'editable'\np21364\nI00\nsS'value'\np21365\nNssS'summary_default'\np21366\n(dp21367\nS'editable'\np21368\nI01\nsS'value'\np21369\nS'none'\np21370\nsssS'description'\np21371\n(dp21372\nS'editable'\np21373\nI01\nsS'value'\np21374\ng47\nsssS'description'\np21375\n(dp21376\nS'mandatory'\np21377\n(dp21378\nS'editable'\np21379\nI00\nsS'value'\np21380\nI00\nssS'name'\np21381\n(dp21382\nS'editable'\np21383\nI01\nsS'value'\np21384\nS'Description'\np21385\nssS'data_type'\np21386\n(dp21387\nS'editable'\np21388\nI00\nsS'value'\np21389\nS'text'\np21390\nssS'entity_type'\np21391\n(dp21392\nS'editable'\np21393\nI00\nsS'value'\np21394\nS'PublishedFileType'\np21395\nssS'editable'\np21396\n(dp21397\nS'editable'\np21398\nI00\nsS'value'\np21399\nI01\nssS'unique'\np21400\n(dp21401\nS'editable'\np21402\nI00\nsS'value'\np21403\nI00\nssS'properties'\np21404\n(dp21405\nS'default_value'\np21406\n(dp21407\nS'editable'\np21408\nI00\nsS'value'\np21409\nNssS'summary_default'\np21410\n(dp21411\nS'editable'\np21412\nI01\nsS'value'\np21413\nS'none'\np21414\nsssS'description'\np21415\n(dp21416\nS'editable'\np21417\nI01\nsS'value'\np21418\ng47\nsssS'short_name'\np21419\n(dp21420\nS'mandatory'\np21421\n(dp21422\nS'editable'\np21423\nI00\nsS'value'\np21424\nI00\nssS'name'\np21425\n(dp21426\nS'editable'\np21427\nI01\nsS'value'\np21428\nS'Short Name'\np21429\nssS'data_type'\np21430\n(dp21431\nS'editable'\np21432\nI00\nsS'value'\np21433\nS'text'\np21434\nssS'entity_type'\np21435\n(dp21436\nS'editable'\np21437\nI00\nsS'value'\np21438\nS'PublishedFileType'\np21439\nssS'editable'\np21440\n(dp21441\nS'editable'\np21442\nI00\nsS'value'\np21443\nI01\nssS'unique'\np21444\n(dp21445\nS'editable'\np21446\nI00\nsS'value'\np21447\nI00\nssS'properties'\np21448\n(dp21449\nS'default_value'\np21450\n(dp21451\nS'editable'\np21452\nI00\nsS'value'\np21453\nNssS'summary_default'\np21454\n(dp21455\nS'editable'\np21456\nI01\nsS'value'\np21457\nS'none'\np21458\nsssS'description'\np21459\n(dp21460\nS'editable'\np21461\nI01\nsS'value'\np21462\ng47\nsssS'created_at'\np21463\n(dp21464\nS'mandatory'\np21465\n(dp21466\nS'editable'\np21467\nI00\nsS'value'\np21468\nI00\nssS'name'\np21469\n(dp21470\nS'editable'\np21471\nI01\nsS'value'\np21472\nS'Date Created'\np21473\nssS'data_type'\np21474\n(dp21475\nS'editable'\np21476\nI00\nsS'value'\np21477\nS'date_time'\np21478\nssS'entity_type'\np21479\n(dp21480\nS'editable'\np21481\nI00\nsS'value'\np21482\nS'PublishedFileType'\np21483\nssS'editable'\np21484\n(dp21485\nS'editable'\np21486\nI00\nsS'value'\np21487\nI00\nssS'unique'\np21488\n(dp21489\nS'editable'\np21490\nI00\nsS'value'\np21491\nI00\nssS'properties'\np21492\n(dp21493\nS'default_value'\np21494\n(dp21495\nS'editable'\np21496\nI00\nsS'value'\np21497\nNssS'summary_default'\np21498\n(dp21499\nS'editable'\np21500\nI01\nsS'value'\np21501\nS'none'\np21502\nsssS'description'\np21503\n(dp21504\nS'editable'\np21505\nI01\nsS'value'\np21506\ng47\nsssS'updated_at'\np21507\n(dp21508\nS'mandatory'\np21509\n(dp21510\nS'editable'\np21511\nI00\nsS'value'\np21512\nI00\nssS'name'\np21513\n(dp21514\nS'editable'\np21515\nI01\nsS'value'\np21516\nS'Date Updated'\np21517\nssS'data_type'\np21518\n(dp21519\nS'editable'\np21520\nI00\nsS'value'\np21521\nS'date_time'\np21522\nssS'entity_type'\np21523\n(dp21524\nS'editable'\np21525\nI00\nsS'value'\np21526\nS'PublishedFileType'\np21527\nssS'editable'\np21528\n(dp21529\nS'editable'\np21530\nI00\nsS'value'\np21531\nI00\nssS'unique'\np21532\n(dp21533\nS'editable'\np21534\nI00\nsS'value'\np21535\nI00\nssS'properties'\np21536\n(dp21537\nS'default_value'\np21538\n(dp21539\nS'editable'\np21540\nI00\nsS'value'\np21541\nNssS'summary_default'\np21542\n(dp21543\nS'editable'\np21544\nI01\nsS'value'\np21545\nS'none'\np21546\nsssS'description'\np21547\n(dp21548\nS'editable'\np21549\nI01\nsS'value'\np21550\ng47\nsssS'created_by'\np21551\n(dp21552\nS'mandatory'\np21553\n(dp21554\nS'editable'\np21555\nI00\nsS'value'\np21556\nI00\nssS'name'\np21557\n(dp21558\nS'editable'\np21559\nI01\nsS'value'\np21560\nS'Created by'\np21561\nssS'data_type'\np21562\n(dp21563\nS'editable'\np21564\nI00\nsS'value'\np21565\nS'entity'\np21566\nssS'entity_type'\np21567\n(dp21568\nS'editable'\np21569\nI00\nsS'value'\np21570\nS'PublishedFileType'\np21571\nssS'editable'\np21572\n(dp21573\nS'editable'\np21574\nI00\nsS'value'\np21575\nI00\nssS'unique'\np21576\n(dp21577\nS'editable'\np21578\nI00\nsS'value'\np21579\nI00\nssS'properties'\np21580\n(dp21581\nS'default_value'\np21582\n(dp21583\nS'editable'\np21584\nI00\nsS'value'\np21585\nNssS'summary_default'\np21586\n(dp21587\nS'editable'\np21588\nI01\nsS'value'\np21589\nS'none'\np21590\nssS'valid_types'\np21591\n(dp21592\nS'editable'\np21593\nI01\nsS'value'\np21594\n(lp21595\nS'HumanUser'\np21596\naS'ApiUser'\np21597\nasssS'description'\np21598\n(dp21599\nS'editable'\np21600\nI01\nsS'value'\np21601\ng47\nsssS'sg_status_list'\np21602\n(dp21603\nS'mandatory'\np21604\n(dp21605\nS'editable'\np21606\nI00\nsS'value'\np21607\nI00\nssS'name'\np21608\n(dp21609\nS'editable'\np21610\nI01\nsS'value'\np21611\nS'Status'\np21612\nssS'data_type'\np21613\n(dp21614\nS'editable'\np21615\nI00\nsS'value'\np21616\nS'status_list'\np21617\nssS'entity_type'\np21618\n(dp21619\nS'editable'\np21620\nI00\nsS'value'\np21621\nS'PublishedFileType'\np21622\nssS'editable'\np21623\n(dp21624\nS'editable'\np21625\nI00\nsS'value'\np21626\nI01\nssS'unique'\np21627\n(dp21628\nS'editable'\np21629\nI00\nsS'value'\np21630\nI00\nssS'properties'\np21631\n(dp21632\nS'default_value'\np21633\n(dp21634\nS'editable'\np21635\nI01\nsS'value'\np21636\nS'wtg'\np21637\nssS'valid_values'\np21638\n(dp21639\nS'editable'\np21640\nI01\nsS'value'\np21641\n(lp21642\nS'wtg'\np21643\naS'ip'\np21644\naS'cmpt'\np21645\nassS'summary_default'\np21646\n(dp21647\nS'editable'\np21648\nI01\nsS'value'\np21649\nS'none'\np21650\nsssS'description'\np21651\n(dp21652\nS'editable'\np21653\nI01\nsS'value'\np21654\ng47\nsssS'image'\np21655\n(dp21656\nS'mandatory'\np21657\n(dp21658\nS'editable'\np21659\nI00\nsS'value'\np21660\nI00\nssS'name'\np21661\n(dp21662\nS'editable'\np21663\nI01\nsS'value'\np21664\nS'Thumbnail'\np21665\nssS'data_type'\np21666\n(dp21667\nS'editable'\np21668\nI00\nsS'value'\np21669\nS'image'\np21670\nssS'entity_type'\np21671\n(dp21672\nS'editable'\np21673\nI00\nsS'value'\np21674\nS'PublishedFileType'\np21675\nssS'editable'\np21676\n(dp21677\nS'editable'\np21678\nI00\nsS'value'\np21679\nI01\nssS'unique'\np21680\n(dp21681\nS'editable'\np21682\nI00\nsS'value'\np21683\nI00\nssS'properties'\np21684\n(dp21685\nS'default_value'\np21686\n(dp21687\nS'editable'\np21688\nI00\nsS'value'\np21689\nNssS'summary_default'\np21690\n(dp21691\nS'editable'\np21692\nI01\nsS'value'\np21693\nS'none'\np21694\nsssS'description'\np21695\n(dp21696\nS'editable'\np21697\nI01\nsS'value'\np21698\ng47\nsssS'cached_display_name'\np21699\n(dp21700\nS'mandatory'\np21701\n(dp21702\nS'editable'\np21703\nI00\nsS'value'\np21704\nI00\nssS'name'\np21705\n(dp21706\nS'editable'\np21707\nI01\nsS'value'\np21708\nS'Cached Display Name'\np21709\nssS'data_type'\np21710\n(dp21711\nS'editable'\np21712\nI00\nsS'value'\np21713\nS'text'\np21714\nssS'entity_type'\np21715\n(dp21716\nS'editable'\np21717\nI00\nsS'value'\np21718\nS'PublishedFileType'\np21719\nssS'editable'\np21720\n(dp21721\nS'editable'\np21722\nI00\nsS'value'\np21723\nI01\nssS'unique'\np21724\n(dp21725\nS'editable'\np21726\nI00\nsS'value'\np21727\nI00\nssS'properties'\np21728\n(dp21729\nS'default_value'\np21730\n(dp21731\nS'editable'\np21732\nI00\nsS'value'\np21733\nNssS'summary_default'\np21734\n(dp21735\nS'editable'\np21736\nI00\nsS'value'\np21737\nS'none'\np21738\nsssS'description'\np21739\n(dp21740\nS'editable'\np21741\nI01\nsS'value'\np21742\ng47\nsssS'tag_list'\np21743\n(dp21744\nS'mandatory'\np21745\n(dp21746\nS'editable'\np21747\nI00\nsS'value'\np21748\nI00\nssS'name'\np21749\n(dp21750\nS'editable'\np21751\nI01\nsS'value'\np21752\nS'Tags'\np21753\nssS'data_type'\np21754\n(dp21755\nS'editable'\np21756\nI00\nsS'value'\np21757\nS'tag_list'\np21758\nssS'entity_type'\np21759\n(dp21760\nS'editable'\np21761\nI00\nsS'value'\np21762\nS'PublishedFileType'\np21763\nssS'editable'\np21764\n(dp21765\nS'editable'\np21766\nI00\nsS'value'\np21767\nI01\nssS'unique'\np21768\n(dp21769\nS'editable'\np21770\nI00\nsS'value'\np21771\nI00\nssS'properties'\np21772\n(dp21773\nS'default_value'\np21774\n(dp21775\nS'editable'\np21776\nI00\nsS'value'\np21777\nNssS'summary_default'\np21778\n(dp21779\nS'editable'\np21780\nI01\nsS'value'\np21781\nS'none'\np21782\nssS'valid_types'\np21783\n(dp21784\nS'editable'\np21785\nI01\nsS'value'\np21786\n(lp21787\nS'Tag'\np21788\nasssS'description'\np21789\n(dp21790\nS'editable'\np21791\nI01\nsS'value'\np21792\ng47\nsssS'id'\np21793\n(dp21794\nS'mandatory'\np21795\n(dp21796\nS'editable'\np21797\nI00\nsS'value'\np21798\nI00\nssS'name'\np21799\n(dp21800\nS'editable'\np21801\nI01\nsS'value'\np21802\nS'Id'\np21803\nssS'data_type'\np21804\n(dp21805\nS'editable'\np21806\nI00\nsS'value'\np21807\nS'number'\np21808\nssS'entity_type'\np21809\n(dp21810\nS'editable'\np21811\nI00\nsS'value'\np21812\nS'PublishedFileType'\np21813\nssS'editable'\np21814\n(dp21815\nS'editable'\np21816\nI00\nsS'value'\np21817\nI00\nssS'unique'\np21818\n(dp21819\nS'editable'\np21820\nI00\nsS'value'\np21821\nI00\nssS'properties'\np21822\n(dp21823\nS'default_value'\np21824\n(dp21825\nS'editable'\np21826\nI00\nsS'value'\np21827\nNssS'summary_default'\np21828\n(dp21829\nS'editable'\np21830\nI01\nsS'value'\np21831\nS'none'\np21832\nsssS'description'\np21833\n(dp21834\nS'editable'\np21835\nI01\nsS'value'\np21836\ng47\nsssS'updated_by'\np21837\n(dp21838\nS'mandatory'\np21839\n(dp21840\nS'editable'\np21841\nI00\nsS'value'\np21842\nI00\nssS'name'\np21843\n(dp21844\nS'editable'\np21845\nI01\nsS'value'\np21846\nS'Updated by'\np21847\nssS'data_type'\np21848\n(dp21849\nS'editable'\np21850\nI00\nsS'value'\np21851\nS'entity'\np21852\nssS'entity_type'\np21853\n(dp21854\nS'editable'\np21855\nI00\nsS'value'\np21856\nS'PublishedFileType'\np21857\nssS'editable'\np21858\n(dp21859\nS'editable'\np21860\nI00\nsS'value'\np21861\nI00\nssS'unique'\np21862\n(dp21863\nS'editable'\np21864\nI00\nsS'value'\np21865\nI00\nssS'properties'\np21866\n(dp21867\nS'default_value'\np21868\n(dp21869\nS'editable'\np21870\nI00\nsS'value'\np21871\nNssS'summary_default'\np21872\n(dp21873\nS'editable'\np21874\nI01\nsS'value'\np21875\nS'none'\np21876\nssS'valid_types'\np21877\n(dp21878\nS'editable'\np21879\nI01\nsS'value'\np21880\n(lp21881\nS'HumanUser'\np21882\naS'ApiUser'\np21883\nasssS'description'\np21884\n(dp21885\nS'editable'\np21886\nI01\nsS'value'\np21887\ng47\nssssS'Element'\np21888\n(dp21889\nS'sg_element_type'\np21890\n(dp21891\nS'mandatory'\np21892\n(dp21893\nS'editable'\np21894\nI00\nsS'value'\np21895\nI00\nssS'name'\np21896\n(dp21897\nS'editable'\np21898\nI01\nsS'value'\np21899\nS'Type'\np21900\nssS'data_type'\np21901\n(dp21902\nS'editable'\np21903\nI00\nsS'value'\np21904\nS'list'\np21905\nssS'entity_type'\np21906\n(dp21907\nS'editable'\np21908\nI00\nsS'value'\np21909\nS'Element'\np21910\nssS'editable'\np21911\n(dp21912\nS'editable'\np21913\nI00\nsS'value'\np21914\nI01\nssS'unique'\np21915\n(dp21916\nS'editable'\np21917\nI00\nsS'value'\np21918\nI00\nssS'properties'\np21919\n(dp21920\nS'default_value'\np21921\n(dp21922\nS'editable'\np21923\nI00\nsS'value'\np21924\nNssS'valid_values'\np21925\n(dp21926\nS'editable'\np21927\nI01\nsS'value'\np21928\n(lp21929\nssS'summary_default'\np21930\n(dp21931\nS'editable'\np21932\nI01\nsS'value'\np21933\nS'none'\np21934\nsssS'description'\np21935\n(dp21936\nS'editable'\np21937\nI01\nsS'value'\np21938\ng47\nsssS'open_notes_count'\np21939\n(dp21940\nS'mandatory'\np21941\n(dp21942\nS'editable'\np21943\nI00\nsS'value'\np21944\nI00\nssS'name'\np21945\n(dp21946\nS'editable'\np21947\nI01\nsS'value'\np21948\nS'Open Notes Count'\np21949\nssS'data_type'\np21950\n(dp21951\nS'editable'\np21952\nI00\nsS'value'\np21953\nS'text'\np21954\nssS'entity_type'\np21955\n(dp21956\nS'editable'\np21957\nI00\nsS'value'\np21958\nS'Element'\np21959\nssS'editable'\np21960\n(dp21961\nS'editable'\np21962\nI00\nsS'value'\np21963\nI00\nssS'unique'\np21964\n(dp21965\nS'editable'\np21966\nI00\nsS'value'\np21967\nI00\nssS'properties'\np21968\n(dp21969\nS'default_value'\np21970\n(dp21971\nS'editable'\np21972\nI00\nsS'value'\np21973\nNssS'summary_default'\np21974\n(dp21975\nS'editable'\np21976\nI01\nsS'value'\np21977\nS'none'\np21978\nsssS'description'\np21979\n(dp21980\nS'editable'\np21981\nI01\nsS'value'\np21982\ng47\nsssS'code'\np21983\n(dp21984\nS'mandatory'\np21985\n(dp21986\nS'editable'\np21987\nI00\nsS'value'\np21988\nI01\nssS'name'\np21989\n(dp21990\nS'editable'\np21991\nI01\nsS'value'\np21992\nS'Element Name'\np21993\nssS'data_type'\np21994\n(dp21995\nS'editable'\np21996\nI00\nsS'value'\np21997\nS'text'\np21998\nssS'entity_type'\np21999\n(dp22000\nS'editable'\np22001\nI00\nsS'value'\np22002\nS'Element'\np22003\nssS'editable'\np22004\n(dp22005\nS'editable'\np22006\nI00\nsS'value'\np22007\nI01\nssS'unique'\np22008\n(dp22009\nS'editable'\np22010\nI00\nsS'value'\np22011\nI00\nssS'properties'\np22012\n(dp22013\nS'default_value'\np22014\n(dp22015\nS'editable'\np22016\nI00\nsS'value'\np22017\nNssS'summary_default'\np22018\n(dp22019\nS'editable'\np22020\nI01\nsS'value'\np22021\nS'none'\np22022\nsssS'description'\np22023\n(dp22024\nS'editable'\np22025\nI01\nsS'value'\np22026\ng47\nsssS'image'\np22027\n(dp22028\nS'mandatory'\np22029\n(dp22030\nS'editable'\np22031\nI00\nsS'value'\np22032\nI00\nssS'name'\np22033\n(dp22034\nS'editable'\np22035\nI01\nsS'value'\np22036\nS'Thumbnail'\np22037\nssS'data_type'\np22038\n(dp22039\nS'editable'\np22040\nI00\nsS'value'\np22041\nS'image'\np22042\nssS'entity_type'\np22043\n(dp22044\nS'editable'\np22045\nI00\nsS'value'\np22046\nS'Element'\np22047\nssS'editable'\np22048\n(dp22049\nS'editable'\np22050\nI00\nsS'value'\np22051\nI01\nssS'unique'\np22052\n(dp22053\nS'editable'\np22054\nI00\nsS'value'\np22055\nI00\nssS'properties'\np22056\n(dp22057\nS'default_value'\np22058\n(dp22059\nS'editable'\np22060\nI00\nsS'value'\np22061\nNssS'summary_default'\np22062\n(dp22063\nS'editable'\np22064\nI01\nsS'value'\np22065\nS'none'\np22066\nsssS'description'\np22067\n(dp22068\nS'editable'\np22069\nI01\nsS'value'\np22070\ng47\nsssS'tag_list'\np22071\n(dp22072\nS'mandatory'\np22073\n(dp22074\nS'editable'\np22075\nI00\nsS'value'\np22076\nI00\nssS'name'\np22077\n(dp22078\nS'editable'\np22079\nI01\nsS'value'\np22080\nS'Tags'\np22081\nssS'data_type'\np22082\n(dp22083\nS'editable'\np22084\nI00\nsS'value'\np22085\nS'tag_list'\np22086\nssS'entity_type'\np22087\n(dp22088\nS'editable'\np22089\nI00\nsS'value'\np22090\nS'Element'\np22091\nssS'editable'\np22092\n(dp22093\nS'editable'\np22094\nI00\nsS'value'\np22095\nI01\nssS'unique'\np22096\n(dp22097\nS'editable'\np22098\nI00\nsS'value'\np22099\nI00\nssS'properties'\np22100\n(dp22101\nS'default_value'\np22102\n(dp22103\nS'editable'\np22104\nI00\nsS'value'\np22105\nNssS'summary_default'\np22106\n(dp22107\nS'editable'\np22108\nI01\nsS'value'\np22109\nS'none'\np22110\nssS'valid_types'\np22111\n(dp22112\nS'editable'\np22113\nI01\nsS'value'\np22114\n(lp22115\nS'Tag'\np22116\nasssS'description'\np22117\n(dp22118\nS'editable'\np22119\nI01\nsS'value'\np22120\ng47\nsssS'head_duration'\np22121\n(dp22122\nS'mandatory'\np22123\n(dp22124\nS'editable'\np22125\nI00\nsS'value'\np22126\nI00\nssS'name'\np22127\n(dp22128\nS'editable'\np22129\nI01\nsS'value'\np22130\nS'Raw Head Duration'\np22131\nssS'data_type'\np22132\n(dp22133\nS'editable'\np22134\nI00\nsS'value'\np22135\nS'number'\np22136\nssS'entity_type'\np22137\n(dp22138\nS'editable'\np22139\nI00\nsS'value'\np22140\nS'Element'\np22141\nssS'editable'\np22142\n(dp22143\nS'editable'\np22144\nI00\nsS'value'\np22145\nI01\nssS'unique'\np22146\n(dp22147\nS'editable'\np22148\nI00\nsS'value'\np22149\nI00\nssS'properties'\np22150\n(dp22151\nS'default_value'\np22152\n(dp22153\nS'editable'\np22154\nI00\nsS'value'\np22155\nNssS'summary_default'\np22156\n(dp22157\nS'editable'\np22158\nI01\nsS'value'\np22159\nS'none'\np22160\nsssS'description'\np22161\n(dp22162\nS'editable'\np22163\nI01\nsS'value'\np22164\ng47\nsssS'updated_at'\np22165\n(dp22166\nS'mandatory'\np22167\n(dp22168\nS'editable'\np22169\nI00\nsS'value'\np22170\nI00\nssS'name'\np22171\n(dp22172\nS'editable'\np22173\nI01\nsS'value'\np22174\nS'Date Updated'\np22175\nssS'data_type'\np22176\n(dp22177\nS'editable'\np22178\nI00\nsS'value'\np22179\nS'date_time'\np22180\nssS'entity_type'\np22181\n(dp22182\nS'editable'\np22183\nI00\nsS'value'\np22184\nS'Element'\np22185\nssS'editable'\np22186\n(dp22187\nS'editable'\np22188\nI00\nsS'value'\np22189\nI00\nssS'unique'\np22190\n(dp22191\nS'editable'\np22192\nI00\nsS'value'\np22193\nI00\nssS'properties'\np22194\n(dp22195\nS'default_value'\np22196\n(dp22197\nS'editable'\np22198\nI00\nsS'value'\np22199\nNssS'summary_default'\np22200\n(dp22201\nS'editable'\np22202\nI01\nsS'value'\np22203\nS'none'\np22204\nsssS'description'\np22205\n(dp22206\nS'editable'\np22207\nI01\nsS'value'\np22208\ng47\nsssS'tasks'\np22209\n(dp22210\nS'mandatory'\np22211\n(dp22212\nS'editable'\np22213\nI00\nsS'value'\np22214\nI00\nssS'name'\np22215\n(dp22216\nS'editable'\np22217\nI01\nsS'value'\np22218\nS'Tasks'\np22219\nssS'data_type'\np22220\n(dp22221\nS'editable'\np22222\nI00\nsS'value'\np22223\nS'multi_entity'\np22224\nssS'entity_type'\np22225\n(dp22226\nS'editable'\np22227\nI00\nsS'value'\np22228\nS'Element'\np22229\nssS'editable'\np22230\n(dp22231\nS'editable'\np22232\nI00\nsS'value'\np22233\nI01\nssS'unique'\np22234\n(dp22235\nS'editable'\np22236\nI00\nsS'value'\np22237\nI00\nssS'properties'\np22238\n(dp22239\nS'default_value'\np22240\n(dp22241\nS'editable'\np22242\nI00\nsS'value'\np22243\nNssS'summary_default'\np22244\n(dp22245\nS'editable'\np22246\nI01\nsS'value'\np22247\nS'none'\np22248\nssS'valid_types'\np22249\n(dp22250\nS'editable'\np22251\nI01\nsS'value'\np22252\n(lp22253\nS'Task'\np22254\nasssS'description'\np22255\n(dp22256\nS'editable'\np22257\nI01\nsS'value'\np22258\ng47\nsssS'cached_display_name'\np22259\n(dp22260\nS'mandatory'\np22261\n(dp22262\nS'editable'\np22263\nI00\nsS'value'\np22264\nI00\nssS'name'\np22265\n(dp22266\nS'editable'\np22267\nI01\nsS'value'\np22268\nS'Cached Display Name'\np22269\nssS'data_type'\np22270\n(dp22271\nS'editable'\np22272\nI00\nsS'value'\np22273\nS'text'\np22274\nssS'entity_type'\np22275\n(dp22276\nS'editable'\np22277\nI00\nsS'value'\np22278\nS'Element'\np22279\nssS'editable'\np22280\n(dp22281\nS'editable'\np22282\nI00\nsS'value'\np22283\nI01\nssS'unique'\np22284\n(dp22285\nS'editable'\np22286\nI00\nsS'value'\np22287\nI00\nssS'properties'\np22288\n(dp22289\nS'default_value'\np22290\n(dp22291\nS'editable'\np22292\nI00\nsS'value'\np22293\nNssS'summary_default'\np22294\n(dp22295\nS'editable'\np22296\nI00\nsS'value'\np22297\nS'none'\np22298\nsssS'description'\np22299\n(dp22300\nS'editable'\np22301\nI01\nsS'value'\np22302\ng47\nsssS'smart_cut_duration'\np22303\n(dp22304\nS'mandatory'\np22305\n(dp22306\nS'editable'\np22307\nI00\nsS'value'\np22308\nI00\nssS'name'\np22309\n(dp22310\nS'editable'\np22311\nI01\nsS'value'\np22312\nS'Cut Duration'\np22313\nssS'data_type'\np22314\n(dp22315\nS'editable'\np22316\nI00\nsS'value'\np22317\nS'number'\np22318\nssS'entity_type'\np22319\n(dp22320\nS'editable'\np22321\nI00\nsS'value'\np22322\nS'Element'\np22323\nssS'editable'\np22324\n(dp22325\nS'editable'\np22326\nI00\nsS'value'\np22327\nI01\nssS'unique'\np22328\n(dp22329\nS'editable'\np22330\nI00\nsS'value'\np22331\nI00\nssS'properties'\np22332\n(dp22333\nS'default_value'\np22334\n(dp22335\nS'editable'\np22336\nI00\nsS'value'\np22337\nNssS'summary_default'\np22338\n(dp22339\nS'editable'\np22340\nI01\nsS'value'\np22341\nS'none'\np22342\nsssS'description'\np22343\n(dp22344\nS'editable'\np22345\nI01\nsS'value'\np22346\ng47\nsssS'id'\np22347\n(dp22348\nS'mandatory'\np22349\n(dp22350\nS'editable'\np22351\nI00\nsS'value'\np22352\nI00\nssS'name'\np22353\n(dp22354\nS'editable'\np22355\nI01\nsS'value'\np22356\nS'Id'\np22357\nssS'data_type'\np22358\n(dp22359\nS'editable'\np22360\nI00\nsS'value'\np22361\nS'number'\np22362\nssS'entity_type'\np22363\n(dp22364\nS'editable'\np22365\nI00\nsS'value'\np22366\nS'Element'\np22367\nssS'editable'\np22368\n(dp22369\nS'editable'\np22370\nI00\nsS'value'\np22371\nI00\nssS'unique'\np22372\n(dp22373\nS'editable'\np22374\nI00\nsS'value'\np22375\nI00\nssS'properties'\np22376\n(dp22377\nS'default_value'\np22378\n(dp22379\nS'editable'\np22380\nI00\nsS'value'\np22381\nNssS'summary_default'\np22382\n(dp22383\nS'editable'\np22384\nI01\nsS'value'\np22385\nS'none'\np22386\nsssS'description'\np22387\n(dp22388\nS'editable'\np22389\nI01\nsS'value'\np22390\ng47\nsssS'updated_by'\np22391\n(dp22392\nS'mandatory'\np22393\n(dp22394\nS'editable'\np22395\nI00\nsS'value'\np22396\nI00\nssS'name'\np22397\n(dp22398\nS'editable'\np22399\nI01\nsS'value'\np22400\nS'Updated by'\np22401\nssS'data_type'\np22402\n(dp22403\nS'editable'\np22404\nI00\nsS'value'\np22405\nS'entity'\np22406\nssS'entity_type'\np22407\n(dp22408\nS'editable'\np22409\nI00\nsS'value'\np22410\nS'Element'\np22411\nssS'editable'\np22412\n(dp22413\nS'editable'\np22414\nI00\nsS'value'\np22415\nI00\nssS'unique'\np22416\n(dp22417\nS'editable'\np22418\nI00\nsS'value'\np22419\nI00\nssS'properties'\np22420\n(dp22421\nS'default_value'\np22422\n(dp22423\nS'editable'\np22424\nI00\nsS'value'\np22425\nNssS'summary_default'\np22426\n(dp22427\nS'editable'\np22428\nI01\nsS'value'\np22429\nS'none'\np22430\nssS'valid_types'\np22431\n(dp22432\nS'editable'\np22433\nI01\nsS'value'\np22434\n(lp22435\nS'HumanUser'\np22436\naS'ApiUser'\np22437\nasssS'description'\np22438\n(dp22439\nS'editable'\np22440\nI01\nsS'value'\np22441\ng47\nsssS'open_notes'\np22442\n(dp22443\nS'mandatory'\np22444\n(dp22445\nS'editable'\np22446\nI00\nsS'value'\np22447\nI00\nssS'name'\np22448\n(dp22449\nS'editable'\np22450\nI01\nsS'value'\np22451\nS'Open Notes'\np22452\nssS'data_type'\np22453\n(dp22454\nS'editable'\np22455\nI00\nsS'value'\np22456\nS'multi_entity'\np22457\nssS'entity_type'\np22458\n(dp22459\nS'editable'\np22460\nI00\nsS'value'\np22461\nS'Element'\np22462\nssS'editable'\np22463\n(dp22464\nS'editable'\np22465\nI00\nsS'value'\np22466\nI00\nssS'unique'\np22467\n(dp22468\nS'editable'\np22469\nI00\nsS'value'\np22470\nI00\nssS'properties'\np22471\n(dp22472\nS'default_value'\np22473\n(dp22474\nS'editable'\np22475\nI00\nsS'value'\np22476\nNssS'summary_default'\np22477\n(dp22478\nS'editable'\np22479\nI01\nsS'value'\np22480\nS'none'\np22481\nssS'valid_types'\np22482\n(dp22483\nS'editable'\np22484\nI01\nsS'value'\np22485\n(lp22486\nS'Note'\np22487\nasssS'description'\np22488\n(dp22489\nS'editable'\np22490\nI01\nsS'value'\np22491\ng47\nsssS'task_template'\np22492\n(dp22493\nS'mandatory'\np22494\n(dp22495\nS'editable'\np22496\nI00\nsS'value'\np22497\nI00\nssS'name'\np22498\n(dp22499\nS'editable'\np22500\nI01\nsS'value'\np22501\nS'Task Template'\np22502\nssS'data_type'\np22503\n(dp22504\nS'editable'\np22505\nI00\nsS'value'\np22506\nS'entity'\np22507\nssS'entity_type'\np22508\n(dp22509\nS'editable'\np22510\nI00\nsS'value'\np22511\nS'Element'\np22512\nssS'editable'\np22513\n(dp22514\nS'editable'\np22515\nI00\nsS'value'\np22516\nI01\nssS'unique'\np22517\n(dp22518\nS'editable'\np22519\nI00\nsS'value'\np22520\nI00\nssS'properties'\np22521\n(dp22522\nS'default_value'\np22523\n(dp22524\nS'editable'\np22525\nI00\nsS'value'\np22526\nNssS'summary_default'\np22527\n(dp22528\nS'editable'\np22529\nI01\nsS'value'\np22530\nS'none'\np22531\nssS'valid_types'\np22532\n(dp22533\nS'editable'\np22534\nI01\nsS'value'\np22535\n(lp22536\nS'TaskTemplate'\np22537\nasssS'description'\np22538\n(dp22539\nS'editable'\np22540\nI01\nsS'value'\np22541\ng47\nsssS'created_by'\np22542\n(dp22543\nS'mandatory'\np22544\n(dp22545\nS'editable'\np22546\nI00\nsS'value'\np22547\nI00\nssS'name'\np22548\n(dp22549\nS'editable'\np22550\nI01\nsS'value'\np22551\nS'Created by'\np22552\nssS'data_type'\np22553\n(dp22554\nS'editable'\np22555\nI00\nsS'value'\np22556\nS'entity'\np22557\nssS'entity_type'\np22558\n(dp22559\nS'editable'\np22560\nI00\nsS'value'\np22561\nS'Element'\np22562\nssS'editable'\np22563\n(dp22564\nS'editable'\np22565\nI00\nsS'value'\np22566\nI00\nssS'unique'\np22567\n(dp22568\nS'editable'\np22569\nI00\nsS'value'\np22570\nI00\nssS'properties'\np22571\n(dp22572\nS'default_value'\np22573\n(dp22574\nS'editable'\np22575\nI00\nsS'value'\np22576\nNssS'summary_default'\np22577\n(dp22578\nS'editable'\np22579\nI01\nsS'value'\np22580\nS'none'\np22581\nssS'valid_types'\np22582\n(dp22583\nS'editable'\np22584\nI01\nsS'value'\np22585\n(lp22586\nS'HumanUser'\np22587\naS'ApiUser'\np22588\nasssS'description'\np22589\n(dp22590\nS'editable'\np22591\nI01\nsS'value'\np22592\ng47\nsssS'smart_tail_duration'\np22593\n(dp22594\nS'mandatory'\np22595\n(dp22596\nS'editable'\np22597\nI00\nsS'value'\np22598\nI00\nssS'name'\np22599\n(dp22600\nS'editable'\np22601\nI01\nsS'value'\np22602\nS'Tail Duration'\np22603\nssS'data_type'\np22604\n(dp22605\nS'editable'\np22606\nI00\nsS'value'\np22607\nS'number'\np22608\nssS'entity_type'\np22609\n(dp22610\nS'editable'\np22611\nI00\nsS'value'\np22612\nS'Element'\np22613\nssS'editable'\np22614\n(dp22615\nS'editable'\np22616\nI00\nsS'value'\np22617\nI01\nssS'unique'\np22618\n(dp22619\nS'editable'\np22620\nI00\nsS'value'\np22621\nI00\nssS'properties'\np22622\n(dp22623\nS'default_value'\np22624\n(dp22625\nS'editable'\np22626\nI00\nsS'value'\np22627\nNssS'summary_default'\np22628\n(dp22629\nS'editable'\np22630\nI01\nsS'value'\np22631\nS'none'\np22632\nsssS'description'\np22633\n(dp22634\nS'editable'\np22635\nI01\nsS'value'\np22636\ng47\nsssS'sg_status_list'\np22637\n(dp22638\nS'mandatory'\np22639\n(dp22640\nS'editable'\np22641\nI00\nsS'value'\np22642\nI00\nssS'name'\np22643\n(dp22644\nS'editable'\np22645\nI01\nsS'value'\np22646\nS'Status'\np22647\nssS'data_type'\np22648\n(dp22649\nS'editable'\np22650\nI00\nsS'value'\np22651\nS'status_list'\np22652\nssS'entity_type'\np22653\n(dp22654\nS'editable'\np22655\nI00\nsS'value'\np22656\nS'Element'\np22657\nssS'editable'\np22658\n(dp22659\nS'editable'\np22660\nI00\nsS'value'\np22661\nI01\nssS'unique'\np22662\n(dp22663\nS'editable'\np22664\nI00\nsS'value'\np22665\nI00\nssS'properties'\np22666\n(dp22667\nS'default_value'\np22668\n(dp22669\nS'editable'\np22670\nI01\nsS'value'\np22671\nS'na'\np22672\nssS'valid_values'\np22673\n(dp22674\nS'editable'\np22675\nI01\nsS'value'\np22676\n(lp22677\nS'na'\np22678\nassS'summary_default'\np22679\n(dp22680\nS'editable'\np22681\nI01\nsS'value'\np22682\nS'status_list'\np22683\nsssS'description'\np22684\n(dp22685\nS'editable'\np22686\nI01\nsS'value'\np22687\ng47\nsssS'smart_head_in'\np22688\n(dp22689\nS'mandatory'\np22690\n(dp22691\nS'editable'\np22692\nI00\nsS'value'\np22693\nI00\nssS'name'\np22694\n(dp22695\nS'editable'\np22696\nI01\nsS'value'\np22697\nS'Head In'\np22698\nssS'data_type'\np22699\n(dp22700\nS'editable'\np22701\nI00\nsS'value'\np22702\nS'number'\np22703\nssS'entity_type'\np22704\n(dp22705\nS'editable'\np22706\nI00\nsS'value'\np22707\nS'Element'\np22708\nssS'editable'\np22709\n(dp22710\nS'editable'\np22711\nI00\nsS'value'\np22712\nI01\nssS'unique'\np22713\n(dp22714\nS'editable'\np22715\nI00\nsS'value'\np22716\nI00\nssS'properties'\np22717\n(dp22718\nS'default_value'\np22719\n(dp22720\nS'editable'\np22721\nI00\nsS'value'\np22722\nNssS'summary_default'\np22723\n(dp22724\nS'editable'\np22725\nI01\nsS'value'\np22726\nS'none'\np22727\nsssS'description'\np22728\n(dp22729\nS'editable'\np22730\nI01\nsS'value'\np22731\ng47\nsssS'smart_working_duration'\np22732\n(dp22733\nS'mandatory'\np22734\n(dp22735\nS'editable'\np22736\nI00\nsS'value'\np22737\nI00\nssS'name'\np22738\n(dp22739\nS'editable'\np22740\nI01\nsS'value'\np22741\nS'Working Duration'\np22742\nssS'data_type'\np22743\n(dp22744\nS'editable'\np22745\nI00\nsS'value'\np22746\nS'number'\np22747\nssS'entity_type'\np22748\n(dp22749\nS'editable'\np22750\nI00\nsS'value'\np22751\nS'Element'\np22752\nssS'editable'\np22753\n(dp22754\nS'editable'\np22755\nI00\nsS'value'\np22756\nI00\nssS'unique'\np22757\n(dp22758\nS'editable'\np22759\nI00\nsS'value'\np22760\nI00\nssS'properties'\np22761\n(dp22762\nS'default_value'\np22763\n(dp22764\nS'editable'\np22765\nI00\nsS'value'\np22766\nNssS'summary_default'\np22767\n(dp22768\nS'editable'\np22769\nI01\nsS'value'\np22770\nS'none'\np22771\nsssS'description'\np22772\n(dp22773\nS'editable'\np22774\nI01\nsS'value'\np22775\ng47\nsssS'head_in'\np22776\n(dp22777\nS'mandatory'\np22778\n(dp22779\nS'editable'\np22780\nI00\nsS'value'\np22781\nI00\nssS'name'\np22782\n(dp22783\nS'editable'\np22784\nI01\nsS'value'\np22785\nS'Raw Head In'\np22786\nssS'data_type'\np22787\n(dp22788\nS'editable'\np22789\nI00\nsS'value'\np22790\nS'number'\np22791\nssS'entity_type'\np22792\n(dp22793\nS'editable'\np22794\nI00\nsS'value'\np22795\nS'Element'\np22796\nssS'editable'\np22797\n(dp22798\nS'editable'\np22799\nI00\nsS'value'\np22800\nI01\nssS'unique'\np22801\n(dp22802\nS'editable'\np22803\nI00\nsS'value'\np22804\nI00\nssS'properties'\np22805\n(dp22806\nS'default_value'\np22807\n(dp22808\nS'editable'\np22809\nI00\nsS'value'\np22810\nNssS'summary_default'\np22811\n(dp22812\nS'editable'\np22813\nI01\nsS'value'\np22814\nS'none'\np22815\nsssS'description'\np22816\n(dp22817\nS'editable'\np22818\nI01\nsS'value'\np22819\ng47\nsssS'description'\np22820\n(dp22821\nS'mandatory'\np22822\n(dp22823\nS'editable'\np22824\nI00\nsS'value'\np22825\nI00\nssS'name'\np22826\n(dp22827\nS'editable'\np22828\nI01\nsS'value'\np22829\nS'Description'\np22830\nssS'data_type'\np22831\n(dp22832\nS'editable'\np22833\nI00\nsS'value'\np22834\nS'text'\np22835\nssS'entity_type'\np22836\n(dp22837\nS'editable'\np22838\nI00\nsS'value'\np22839\nS'Element'\np22840\nssS'editable'\np22841\n(dp22842\nS'editable'\np22843\nI00\nsS'value'\np22844\nI01\nssS'unique'\np22845\n(dp22846\nS'editable'\np22847\nI00\nsS'value'\np22848\nI00\nssS'properties'\np22849\n(dp22850\nS'default_value'\np22851\n(dp22852\nS'editable'\np22853\nI00\nsS'value'\np22854\nNssS'summary_default'\np22855\n(dp22856\nS'editable'\np22857\nI01\nsS'value'\np22858\nS'none'\np22859\nsssS'description'\np22860\n(dp22861\nS'editable'\np22862\nI01\nsS'value'\np22863\ng47\nsssS'smart_cut_out'\np22864\n(dp22865\nS'mandatory'\np22866\n(dp22867\nS'editable'\np22868\nI00\nsS'value'\np22869\nI00\nssS'name'\np22870\n(dp22871\nS'editable'\np22872\nI01\nsS'value'\np22873\nS'Cut Out'\np22874\nssS'data_type'\np22875\n(dp22876\nS'editable'\np22877\nI00\nsS'value'\np22878\nS'number'\np22879\nssS'entity_type'\np22880\n(dp22881\nS'editable'\np22882\nI00\nsS'value'\np22883\nS'Element'\np22884\nssS'editable'\np22885\n(dp22886\nS'editable'\np22887\nI00\nsS'value'\np22888\nI01\nssS'unique'\np22889\n(dp22890\nS'editable'\np22891\nI00\nsS'value'\np22892\nI00\nssS'properties'\np22893\n(dp22894\nS'default_value'\np22895\n(dp22896\nS'editable'\np22897\nI00\nsS'value'\np22898\nNssS'summary_default'\np22899\n(dp22900\nS'editable'\np22901\nI01\nsS'value'\np22902\nS'none'\np22903\nsssS'description'\np22904\n(dp22905\nS'editable'\np22906\nI01\nsS'value'\np22907\ng47\nsssS'tail_out'\np22908\n(dp22909\nS'mandatory'\np22910\n(dp22911\nS'editable'\np22912\nI00\nsS'value'\np22913\nI00\nssS'name'\np22914\n(dp22915\nS'editable'\np22916\nI01\nsS'value'\np22917\nS'Raw Tail Out'\np22918\nssS'data_type'\np22919\n(dp22920\nS'editable'\np22921\nI00\nsS'value'\np22922\nS'number'\np22923\nssS'entity_type'\np22924\n(dp22925\nS'editable'\np22926\nI00\nsS'value'\np22927\nS'Element'\np22928\nssS'editable'\np22929\n(dp22930\nS'editable'\np22931\nI00\nsS'value'\np22932\nI01\nssS'unique'\np22933\n(dp22934\nS'editable'\np22935\nI00\nsS'value'\np22936\nI00\nssS'properties'\np22937\n(dp22938\nS'default_value'\np22939\n(dp22940\nS'editable'\np22941\nI00\nsS'value'\np22942\nNssS'summary_default'\np22943\n(dp22944\nS'editable'\np22945\nI01\nsS'value'\np22946\nS'none'\np22947\nsssS'description'\np22948\n(dp22949\nS'editable'\np22950\nI01\nsS'value'\np22951\ng47\nsssS'smart_cut_in'\np22952\n(dp22953\nS'mandatory'\np22954\n(dp22955\nS'editable'\np22956\nI00\nsS'value'\np22957\nI00\nssS'name'\np22958\n(dp22959\nS'editable'\np22960\nI01\nsS'value'\np22961\nS'Cut In'\np22962\nssS'data_type'\np22963\n(dp22964\nS'editable'\np22965\nI00\nsS'value'\np22966\nS'number'\np22967\nssS'entity_type'\np22968\n(dp22969\nS'editable'\np22970\nI00\nsS'value'\np22971\nS'Element'\np22972\nssS'editable'\np22973\n(dp22974\nS'editable'\np22975\nI00\nsS'value'\np22976\nI01\nssS'unique'\np22977\n(dp22978\nS'editable'\np22979\nI00\nsS'value'\np22980\nI00\nssS'properties'\np22981\n(dp22982\nS'default_value'\np22983\n(dp22984\nS'editable'\np22985\nI00\nsS'value'\np22986\nNssS'summary_default'\np22987\n(dp22988\nS'editable'\np22989\nI01\nsS'value'\np22990\nS'none'\np22991\nsssS'description'\np22992\n(dp22993\nS'editable'\np22994\nI01\nsS'value'\np22995\ng47\nsssS'smart_cut_summary_display'\np22996\n(dp22997\nS'mandatory'\np22998\n(dp22999\nS'editable'\np23000\nI00\nsS'value'\np23001\nI00\nssS'name'\np23002\n(dp23003\nS'editable'\np23004\nI01\nsS'value'\np23005\nS'Cut Summary'\np23006\nssS'data_type'\np23007\n(dp23008\nS'editable'\np23009\nI00\nsS'value'\np23010\nS'text'\np23011\nssS'entity_type'\np23012\n(dp23013\nS'editable'\np23014\nI00\nsS'value'\np23015\nS'Element'\np23016\nssS'editable'\np23017\n(dp23018\nS'editable'\np23019\nI00\nsS'value'\np23020\nI00\nssS'unique'\np23021\n(dp23022\nS'editable'\np23023\nI00\nsS'value'\np23024\nI00\nssS'properties'\np23025\n(dp23026\nS'default_value'\np23027\n(dp23028\nS'editable'\np23029\nI00\nsS'value'\np23030\nNssS'summary_default'\np23031\n(dp23032\nS'editable'\np23033\nI01\nsS'value'\np23034\nS'none'\np23035\nsssS'description'\np23036\n(dp23037\nS'editable'\np23038\nI01\nsS'value'\np23039\ng47\nsssS'cut_in'\np23040\n(dp23041\nS'mandatory'\np23042\n(dp23043\nS'editable'\np23044\nI00\nsS'value'\np23045\nI00\nssS'name'\np23046\n(dp23047\nS'editable'\np23048\nI01\nsS'value'\np23049\nS'Raw Cut In'\np23050\nssS'data_type'\np23051\n(dp23052\nS'editable'\np23053\nI00\nsS'value'\np23054\nS'number'\np23055\nssS'entity_type'\np23056\n(dp23057\nS'editable'\np23058\nI00\nsS'value'\np23059\nS'Element'\np23060\nssS'editable'\np23061\n(dp23062\nS'editable'\np23063\nI00\nsS'value'\np23064\nI01\nssS'unique'\np23065\n(dp23066\nS'editable'\np23067\nI00\nsS'value'\np23068\nI00\nssS'properties'\np23069\n(dp23070\nS'default_value'\np23071\n(dp23072\nS'editable'\np23073\nI00\nsS'value'\np23074\nNssS'summary_default'\np23075\n(dp23076\nS'editable'\np23077\nI01\nsS'value'\np23078\nS'none'\np23079\nsssS'description'\np23080\n(dp23081\nS'editable'\np23082\nI01\nsS'value'\np23083\ng47\nsssS'smart_duration_summary_display'\np23084\n(dp23085\nS'mandatory'\np23086\n(dp23087\nS'editable'\np23088\nI00\nsS'value'\np23089\nI00\nssS'name'\np23090\n(dp23091\nS'editable'\np23092\nI01\nsS'value'\np23093\nS'Duration Summary'\np23094\nssS'data_type'\np23095\n(dp23096\nS'editable'\np23097\nI00\nsS'value'\np23098\nS'text'\np23099\nssS'entity_type'\np23100\n(dp23101\nS'editable'\np23102\nI00\nsS'value'\np23103\nS'Element'\np23104\nssS'editable'\np23105\n(dp23106\nS'editable'\np23107\nI00\nsS'value'\np23108\nI00\nssS'unique'\np23109\n(dp23110\nS'editable'\np23111\nI00\nsS'value'\np23112\nI00\nssS'properties'\np23113\n(dp23114\nS'default_value'\np23115\n(dp23116\nS'editable'\np23117\nI00\nsS'value'\np23118\nNssS'summary_default'\np23119\n(dp23120\nS'editable'\np23121\nI01\nsS'value'\np23122\nS'none'\np23123\nsssS'description'\np23124\n(dp23125\nS'editable'\np23126\nI01\nsS'value'\np23127\ng47\nsssS'tail_duration'\np23128\n(dp23129\nS'mandatory'\np23130\n(dp23131\nS'editable'\np23132\nI00\nsS'value'\np23133\nI00\nssS'name'\np23134\n(dp23135\nS'editable'\np23136\nI01\nsS'value'\np23137\nS'Raw Tail Duration'\np23138\nssS'data_type'\np23139\n(dp23140\nS'editable'\np23141\nI00\nsS'value'\np23142\nS'number'\np23143\nssS'entity_type'\np23144\n(dp23145\nS'editable'\np23146\nI00\nsS'value'\np23147\nS'Element'\np23148\nssS'editable'\np23149\n(dp23150\nS'editable'\np23151\nI00\nsS'value'\np23152\nI01\nssS'unique'\np23153\n(dp23154\nS'editable'\np23155\nI00\nsS'value'\np23156\nI00\nssS'properties'\np23157\n(dp23158\nS'default_value'\np23159\n(dp23160\nS'editable'\np23161\nI00\nsS'value'\np23162\nNssS'summary_default'\np23163\n(dp23164\nS'editable'\np23165\nI01\nsS'value'\np23166\nS'none'\np23167\nsssS'description'\np23168\n(dp23169\nS'editable'\np23170\nI01\nsS'value'\np23171\ng47\nsssS'smart_tail_out'\np23172\n(dp23173\nS'mandatory'\np23174\n(dp23175\nS'editable'\np23176\nI00\nsS'value'\np23177\nI00\nssS'name'\np23178\n(dp23179\nS'editable'\np23180\nI01\nsS'value'\np23181\nS'Tail Out'\np23182\nssS'data_type'\np23183\n(dp23184\nS'editable'\np23185\nI00\nsS'value'\np23186\nS'number'\np23187\nssS'entity_type'\np23188\n(dp23189\nS'editable'\np23190\nI00\nsS'value'\np23191\nS'Element'\np23192\nssS'editable'\np23193\n(dp23194\nS'editable'\np23195\nI00\nsS'value'\np23196\nI01\nssS'unique'\np23197\n(dp23198\nS'editable'\np23199\nI00\nsS'value'\np23200\nI00\nssS'properties'\np23201\n(dp23202\nS'default_value'\np23203\n(dp23204\nS'editable'\np23205\nI00\nsS'value'\np23206\nNssS'summary_default'\np23207\n(dp23208\nS'editable'\np23209\nI01\nsS'value'\np23210\nS'none'\np23211\nsssS'description'\np23212\n(dp23213\nS'editable'\np23214\nI01\nsS'value'\np23215\ng47\nsssS'step_0'\np23216\n(dp23217\nS'mandatory'\np23218\n(dp23219\nS'editable'\np23220\nI00\nsS'value'\np23221\nI00\nssS'name'\np23222\n(dp23223\nS'editable'\np23224\nI01\nsS'value'\np23225\nS'ALL TASKS'\np23226\nssS'data_type'\np23227\n(dp23228\nS'editable'\np23229\nI00\nsS'value'\np23230\nS'pivot_column'\np23231\nssS'entity_type'\np23232\n(dp23233\nS'editable'\np23234\nI00\nsS'value'\np23235\nS'Element'\np23236\nssS'editable'\np23237\n(dp23238\nS'editable'\np23239\nI00\nsS'value'\np23240\nI00\nssS'unique'\np23241\n(dp23242\nS'editable'\np23243\nI00\nsS'value'\np23244\nI00\nssS'properties'\np23245\n(dp23246\nS'default_value'\np23247\n(dp23248\nS'editable'\np23249\nI00\nsS'value'\np23250\nNssS'summary_default'\np23251\n(dp23252\nS'editable'\np23253\nI00\nsS'value'\np23254\nS'none'\np23255\nsssS'description'\np23256\n(dp23257\nS'editable'\np23258\nI01\nsS'value'\np23259\ng47\nsssS'cut_duration'\np23260\n(dp23261\nS'mandatory'\np23262\n(dp23263\nS'editable'\np23264\nI00\nsS'value'\np23265\nI00\nssS'name'\np23266\n(dp23267\nS'editable'\np23268\nI01\nsS'value'\np23269\nS'Raw Cut Duration'\np23270\nssS'data_type'\np23271\n(dp23272\nS'editable'\np23273\nI00\nsS'value'\np23274\nS'number'\np23275\nssS'entity_type'\np23276\n(dp23277\nS'editable'\np23278\nI00\nsS'value'\np23279\nS'Element'\np23280\nssS'editable'\np23281\n(dp23282\nS'editable'\np23283\nI00\nsS'value'\np23284\nI01\nssS'unique'\np23285\n(dp23286\nS'editable'\np23287\nI00\nsS'value'\np23288\nI00\nssS'properties'\np23289\n(dp23290\nS'default_value'\np23291\n(dp23292\nS'editable'\np23293\nI00\nsS'value'\np23294\nNssS'summary_default'\np23295\n(dp23296\nS'editable'\np23297\nI01\nsS'value'\np23298\nS'none'\np23299\nsssS'description'\np23300\n(dp23301\nS'editable'\np23302\nI01\nsS'value'\np23303\ng47\nsssS'smart_tail_in'\np23304\n(dp23305\nS'mandatory'\np23306\n(dp23307\nS'editable'\np23308\nI00\nsS'value'\np23309\nI00\nssS'name'\np23310\n(dp23311\nS'editable'\np23312\nI01\nsS'value'\np23313\nS'Tail In'\np23314\nssS'data_type'\np23315\n(dp23316\nS'editable'\np23317\nI00\nsS'value'\np23318\nS'number'\np23319\nssS'entity_type'\np23320\n(dp23321\nS'editable'\np23322\nI00\nsS'value'\np23323\nS'Element'\np23324\nssS'editable'\np23325\n(dp23326\nS'editable'\np23327\nI00\nsS'value'\np23328\nI01\nssS'unique'\np23329\n(dp23330\nS'editable'\np23331\nI00\nsS'value'\np23332\nI00\nssS'properties'\np23333\n(dp23334\nS'default_value'\np23335\n(dp23336\nS'editable'\np23337\nI00\nsS'value'\np23338\nNssS'summary_default'\np23339\n(dp23340\nS'editable'\np23341\nI01\nsS'value'\np23342\nS'none'\np23343\nsssS'description'\np23344\n(dp23345\nS'editable'\np23346\nI01\nsS'value'\np23347\ng47\nsssS'assets'\np23348\n(dp23349\nS'mandatory'\np23350\n(dp23351\nS'editable'\np23352\nI00\nsS'value'\np23353\nI00\nssS'name'\np23354\n(dp23355\nS'editable'\np23356\nI01\nsS'value'\np23357\nS'Assets'\np23358\nssS'data_type'\np23359\n(dp23360\nS'editable'\np23361\nI00\nsS'value'\np23362\nS'multi_entity'\np23363\nssS'entity_type'\np23364\n(dp23365\nS'editable'\np23366\nI00\nsS'value'\np23367\nS'Element'\np23368\nssS'editable'\np23369\n(dp23370\nS'editable'\np23371\nI00\nsS'value'\np23372\nI01\nssS'unique'\np23373\n(dp23374\nS'editable'\np23375\nI00\nsS'value'\np23376\nI00\nssS'properties'\np23377\n(dp23378\nS'default_value'\np23379\n(dp23380\nS'editable'\np23381\nI00\nsS'value'\np23382\nNssS'summary_default'\np23383\n(dp23384\nS'editable'\np23385\nI01\nsS'value'\np23386\nS'none'\np23387\nssS'valid_types'\np23388\n(dp23389\nS'editable'\np23390\nI01\nsS'value'\np23391\n(lp23392\nS'Asset'\np23393\nasssS'description'\np23394\n(dp23395\nS'editable'\np23396\nI01\nsS'value'\np23397\ng47\nsssS'smart_head_out'\np23398\n(dp23399\nS'mandatory'\np23400\n(dp23401\nS'editable'\np23402\nI00\nsS'value'\np23403\nI00\nssS'name'\np23404\n(dp23405\nS'editable'\np23406\nI01\nsS'value'\np23407\nS'Head Out'\np23408\nssS'data_type'\np23409\n(dp23410\nS'editable'\np23411\nI00\nsS'value'\np23412\nS'number'\np23413\nssS'entity_type'\np23414\n(dp23415\nS'editable'\np23416\nI00\nsS'value'\np23417\nS'Element'\np23418\nssS'editable'\np23419\n(dp23420\nS'editable'\np23421\nI00\nsS'value'\np23422\nI01\nssS'unique'\np23423\n(dp23424\nS'editable'\np23425\nI00\nsS'value'\np23426\nI00\nssS'properties'\np23427\n(dp23428\nS'default_value'\np23429\n(dp23430\nS'editable'\np23431\nI00\nsS'value'\np23432\nNssS'summary_default'\np23433\n(dp23434\nS'editable'\np23435\nI01\nsS'value'\np23436\nS'none'\np23437\nsssS'description'\np23438\n(dp23439\nS'editable'\np23440\nI01\nsS'value'\np23441\ng47\nsssS'created_at'\np23442\n(dp23443\nS'mandatory'\np23444\n(dp23445\nS'editable'\np23446\nI00\nsS'value'\np23447\nI00\nssS'name'\np23448\n(dp23449\nS'editable'\np23450\nI01\nsS'value'\np23451\nS'Date Created'\np23452\nssS'data_type'\np23453\n(dp23454\nS'editable'\np23455\nI00\nsS'value'\np23456\nS'date_time'\np23457\nssS'entity_type'\np23458\n(dp23459\nS'editable'\np23460\nI00\nsS'value'\np23461\nS'Element'\np23462\nssS'editable'\np23463\n(dp23464\nS'editable'\np23465\nI00\nsS'value'\np23466\nI00\nssS'unique'\np23467\n(dp23468\nS'editable'\np23469\nI00\nsS'value'\np23470\nI00\nssS'properties'\np23471\n(dp23472\nS'default_value'\np23473\n(dp23474\nS'editable'\np23475\nI00\nsS'value'\np23476\nNssS'summary_default'\np23477\n(dp23478\nS'editable'\np23479\nI01\nsS'value'\np23480\nS'none'\np23481\nsssS'description'\np23482\n(dp23483\nS'editable'\np23484\nI01\nsS'value'\np23485\ng47\nsssS'project'\np23486\n(dp23487\nS'mandatory'\np23488\n(dp23489\nS'editable'\np23490\nI00\nsS'value'\np23491\nI00\nssS'name'\np23492\n(dp23493\nS'editable'\np23494\nI01\nsS'value'\np23495\nS'Project'\np23496\nssS'data_type'\np23497\n(dp23498\nS'editable'\np23499\nI00\nsS'value'\np23500\nS'entity'\np23501\nssS'entity_type'\np23502\n(dp23503\nS'editable'\np23504\nI00\nsS'value'\np23505\nS'Element'\np23506\nssS'editable'\np23507\n(dp23508\nS'editable'\np23509\nI00\nsS'value'\np23510\nI01\nssS'unique'\np23511\n(dp23512\nS'editable'\np23513\nI00\nsS'value'\np23514\nI00\nssS'properties'\np23515\n(dp23516\nS'default_value'\np23517\n(dp23518\nS'editable'\np23519\nI00\nsS'value'\np23520\nNssS'summary_default'\np23521\n(dp23522\nS'editable'\np23523\nI01\nsS'value'\np23524\nS'none'\np23525\nssS'valid_types'\np23526\n(dp23527\nS'editable'\np23528\nI01\nsS'value'\np23529\n(lp23530\nS'Project'\np23531\nasssS'description'\np23532\n(dp23533\nS'editable'\np23534\nI01\nsS'value'\np23535\ng47\nsssS'filmstrip_image'\np23536\n(dp23537\nS'mandatory'\np23538\n(dp23539\nS'editable'\np23540\nI00\nsS'value'\np23541\nI00\nssS'name'\np23542\n(dp23543\nS'editable'\np23544\nI01\nsS'value'\np23545\nS'Filmstrip Thumbnail'\np23546\nssS'data_type'\np23547\n(dp23548\nS'editable'\np23549\nI00\nsS'value'\np23550\nS'image'\np23551\nssS'entity_type'\np23552\n(dp23553\nS'editable'\np23554\nI00\nsS'value'\np23555\nS'Element'\np23556\nssS'editable'\np23557\n(dp23558\nS'editable'\np23559\nI00\nsS'value'\np23560\nI01\nssS'unique'\np23561\n(dp23562\nS'editable'\np23563\nI00\nsS'value'\np23564\nI00\nssS'properties'\np23565\n(dp23566\nS'default_value'\np23567\n(dp23568\nS'editable'\np23569\nI00\nsS'value'\np23570\nNssS'summary_default'\np23571\n(dp23572\nS'editable'\np23573\nI01\nsS'value'\np23574\nS'none'\np23575\nsssS'description'\np23576\n(dp23577\nS'editable'\np23578\nI01\nsS'value'\np23579\ng47\nsssS'tail_in'\np23580\n(dp23581\nS'mandatory'\np23582\n(dp23583\nS'editable'\np23584\nI00\nsS'value'\np23585\nI00\nssS'name'\np23586\n(dp23587\nS'editable'\np23588\nI01\nsS'value'\np23589\nS'Raw Tail In'\np23590\nssS'data_type'\np23591\n(dp23592\nS'editable'\np23593\nI00\nsS'value'\np23594\nS'number'\np23595\nssS'entity_type'\np23596\n(dp23597\nS'editable'\np23598\nI00\nsS'value'\np23599\nS'Element'\np23600\nssS'editable'\np23601\n(dp23602\nS'editable'\np23603\nI00\nsS'value'\np23604\nI01\nssS'unique'\np23605\n(dp23606\nS'editable'\np23607\nI00\nsS'value'\np23608\nI00\nssS'properties'\np23609\n(dp23610\nS'default_value'\np23611\n(dp23612\nS'editable'\np23613\nI00\nsS'value'\np23614\nNssS'summary_default'\np23615\n(dp23616\nS'editable'\np23617\nI01\nsS'value'\np23618\nS'none'\np23619\nsssS'description'\np23620\n(dp23621\nS'editable'\np23622\nI01\nsS'value'\np23623\ng47\nsssS'shots'\np23624\n(dp23625\nS'mandatory'\np23626\n(dp23627\nS'editable'\np23628\nI00\nsS'value'\np23629\nI00\nssS'name'\np23630\n(dp23631\nS'editable'\np23632\nI01\nsS'value'\np23633\nS'Shots'\np23634\nssS'data_type'\np23635\n(dp23636\nS'editable'\np23637\nI00\nsS'value'\np23638\nS'multi_entity'\np23639\nssS'entity_type'\np23640\n(dp23641\nS'editable'\np23642\nI00\nsS'value'\np23643\nS'Element'\np23644\nssS'editable'\np23645\n(dp23646\nS'editable'\np23647\nI00\nsS'value'\np23648\nI01\nssS'unique'\np23649\n(dp23650\nS'editable'\np23651\nI00\nsS'value'\np23652\nI00\nssS'properties'\np23653\n(dp23654\nS'default_value'\np23655\n(dp23656\nS'editable'\np23657\nI00\nsS'value'\np23658\nNssS'summary_default'\np23659\n(dp23660\nS'editable'\np23661\nI01\nsS'value'\np23662\nS'none'\np23663\nssS'valid_types'\np23664\n(dp23665\nS'editable'\np23666\nI01\nsS'value'\np23667\n(lp23668\nS'Shot'\np23669\nasssS'description'\np23670\n(dp23671\nS'editable'\np23672\nI01\nsS'value'\np23673\ng47\nsssS'smart_head_duration'\np23674\n(dp23675\nS'mandatory'\np23676\n(dp23677\nS'editable'\np23678\nI00\nsS'value'\np23679\nI00\nssS'name'\np23680\n(dp23681\nS'editable'\np23682\nI01\nsS'value'\np23683\nS'Head Duration'\np23684\nssS'data_type'\np23685\n(dp23686\nS'editable'\np23687\nI00\nsS'value'\np23688\nS'number'\np23689\nssS'entity_type'\np23690\n(dp23691\nS'editable'\np23692\nI00\nsS'value'\np23693\nS'Element'\np23694\nssS'editable'\np23695\n(dp23696\nS'editable'\np23697\nI00\nsS'value'\np23698\nI01\nssS'unique'\np23699\n(dp23700\nS'editable'\np23701\nI00\nsS'value'\np23702\nI00\nssS'properties'\np23703\n(dp23704\nS'default_value'\np23705\n(dp23706\nS'editable'\np23707\nI00\nsS'value'\np23708\nNssS'summary_default'\np23709\n(dp23710\nS'editable'\np23711\nI01\nsS'value'\np23712\nS'none'\np23713\nsssS'description'\np23714\n(dp23715\nS'editable'\np23716\nI01\nsS'value'\np23717\ng47\nsssS'cut_out'\np23718\n(dp23719\nS'mandatory'\np23720\n(dp23721\nS'editable'\np23722\nI00\nsS'value'\np23723\nI00\nssS'name'\np23724\n(dp23725\nS'editable'\np23726\nI01\nsS'value'\np23727\nS'Raw Cut Out'\np23728\nssS'data_type'\np23729\n(dp23730\nS'editable'\np23731\nI00\nsS'value'\np23732\nS'number'\np23733\nssS'entity_type'\np23734\n(dp23735\nS'editable'\np23736\nI00\nsS'value'\np23737\nS'Element'\np23738\nssS'editable'\np23739\n(dp23740\nS'editable'\np23741\nI00\nsS'value'\np23742\nI01\nssS'unique'\np23743\n(dp23744\nS'editable'\np23745\nI00\nsS'value'\np23746\nI00\nssS'properties'\np23747\n(dp23748\nS'default_value'\np23749\n(dp23750\nS'editable'\np23751\nI00\nsS'value'\np23752\nNssS'summary_default'\np23753\n(dp23754\nS'editable'\np23755\nI01\nsS'value'\np23756\nS'none'\np23757\nsssS'description'\np23758\n(dp23759\nS'editable'\np23760\nI01\nsS'value'\np23761\ng47\nsssS'head_out'\np23762\n(dp23763\nS'mandatory'\np23764\n(dp23765\nS'editable'\np23766\nI00\nsS'value'\np23767\nI00\nssS'name'\np23768\n(dp23769\nS'editable'\np23770\nI01\nsS'value'\np23771\nS'Raw Head Out'\np23772\nssS'data_type'\np23773\n(dp23774\nS'editable'\np23775\nI00\nsS'value'\np23776\nS'number'\np23777\nssS'entity_type'\np23778\n(dp23779\nS'editable'\np23780\nI00\nsS'value'\np23781\nS'Element'\np23782\nssS'editable'\np23783\n(dp23784\nS'editable'\np23785\nI00\nsS'value'\np23786\nI01\nssS'unique'\np23787\n(dp23788\nS'editable'\np23789\nI00\nsS'value'\np23790\nI00\nssS'properties'\np23791\n(dp23792\nS'default_value'\np23793\n(dp23794\nS'editable'\np23795\nI00\nsS'value'\np23796\nNssS'summary_default'\np23797\n(dp23798\nS'editable'\np23799\nI01\nsS'value'\np23800\nS'none'\np23801\nsssS'description'\np23802\n(dp23803\nS'editable'\np23804\nI01\nsS'value'\np23805\ng47\nsssS'notes'\np23806\n(dp23807\nS'mandatory'\np23808\n(dp23809\nS'editable'\np23810\nI00\nsS'value'\np23811\nI00\nssS'name'\np23812\n(dp23813\nS'editable'\np23814\nI01\nsS'value'\np23815\nS'Notes'\np23816\nssS'data_type'\np23817\n(dp23818\nS'editable'\np23819\nI00\nsS'value'\np23820\nS'multi_entity'\np23821\nssS'entity_type'\np23822\n(dp23823\nS'editable'\np23824\nI00\nsS'value'\np23825\nS'Element'\np23826\nssS'editable'\np23827\n(dp23828\nS'editable'\np23829\nI00\nsS'value'\np23830\nI01\nssS'unique'\np23831\n(dp23832\nS'editable'\np23833\nI00\nsS'value'\np23834\nI00\nssS'properties'\np23835\n(dp23836\nS'default_value'\np23837\n(dp23838\nS'editable'\np23839\nI00\nsS'value'\np23840\nNssS'summary_default'\np23841\n(dp23842\nS'editable'\np23843\nI01\nsS'value'\np23844\nS'none'\np23845\nssS'valid_types'\np23846\n(dp23847\nS'editable'\np23848\nI01\nsS'value'\np23849\n(lp23850\nS'Note'\np23851\nasssS'description'\np23852\n(dp23853\nS'editable'\np23854\nI01\nsS'value'\np23855\ng47\nssssS'TankType'\np23856\n(dp23857\nS'code'\np23858\n(dp23859\nS'mandatory'\np23860\n(dp23861\nS'editable'\np23862\nI00\nsS'value'\np23863\nI01\nssS'name'\np23864\n(dp23865\nS'editable'\np23866\nI01\nsS'value'\np23867\nS'Tank Type Name'\np23868\nssS'data_type'\np23869\n(dp23870\nS'editable'\np23871\nI00\nsS'value'\np23872\nS'text'\np23873\nssS'entity_type'\np23874\n(dp23875\nS'editable'\np23876\nI00\nsS'value'\np23877\nS'TankType'\np23878\nssS'editable'\np23879\n(dp23880\nS'editable'\np23881\nI00\nsS'value'\np23882\nI01\nssS'unique'\np23883\n(dp23884\nS'editable'\np23885\nI00\nsS'value'\np23886\nI01\nssS'properties'\np23887\n(dp23888\nS'default_value'\np23889\n(dp23890\nS'editable'\np23891\nI00\nsS'value'\np23892\nNssS'summary_default'\np23893\n(dp23894\nS'editable'\np23895\nI01\nsS'value'\np23896\nS'none'\np23897\nsssS'description'\np23898\n(dp23899\nS'editable'\np23900\nI01\nsS'value'\np23901\ng47\nsssS'description'\np23902\n(dp23903\nS'mandatory'\np23904\n(dp23905\nS'editable'\np23906\nI00\nsS'value'\np23907\nI00\nssS'name'\np23908\n(dp23909\nS'editable'\np23910\nI01\nsS'value'\np23911\nS'Description'\np23912\nssS'data_type'\np23913\n(dp23914\nS'editable'\np23915\nI00\nsS'value'\np23916\nS'text'\np23917\nssS'entity_type'\np23918\n(dp23919\nS'editable'\np23920\nI00\nsS'value'\np23921\nS'TankType'\np23922\nssS'editable'\np23923\n(dp23924\nS'editable'\np23925\nI00\nsS'value'\np23926\nI01\nssS'unique'\np23927\n(dp23928\nS'editable'\np23929\nI00\nsS'value'\np23930\nI00\nssS'properties'\np23931\n(dp23932\nS'default_value'\np23933\n(dp23934\nS'editable'\np23935\nI00\nsS'value'\np23936\nNssS'summary_default'\np23937\n(dp23938\nS'editable'\np23939\nI01\nsS'value'\np23940\nS'none'\np23941\nsssS'description'\np23942\n(dp23943\nS'editable'\np23944\nI01\nsS'value'\np23945\ng47\nsssS'created_at'\np23946\n(dp23947\nS'mandatory'\np23948\n(dp23949\nS'editable'\np23950\nI00\nsS'value'\np23951\nI00\nssS'name'\np23952\n(dp23953\nS'editable'\np23954\nI01\nsS'value'\np23955\nS'Date Created'\np23956\nssS'data_type'\np23957\n(dp23958\nS'editable'\np23959\nI00\nsS'value'\np23960\nS'date_time'\np23961\nssS'entity_type'\np23962\n(dp23963\nS'editable'\np23964\nI00\nsS'value'\np23965\nS'TankType'\np23966\nssS'editable'\np23967\n(dp23968\nS'editable'\np23969\nI00\nsS'value'\np23970\nI00\nssS'unique'\np23971\n(dp23972\nS'editable'\np23973\nI00\nsS'value'\np23974\nI00\nssS'properties'\np23975\n(dp23976\nS'default_value'\np23977\n(dp23978\nS'editable'\np23979\nI00\nsS'value'\np23980\nNssS'summary_default'\np23981\n(dp23982\nS'editable'\np23983\nI01\nsS'value'\np23984\nS'none'\np23985\nsssS'description'\np23986\n(dp23987\nS'editable'\np23988\nI01\nsS'value'\np23989\ng47\nsssS'updated_at'\np23990\n(dp23991\nS'mandatory'\np23992\n(dp23993\nS'editable'\np23994\nI00\nsS'value'\np23995\nI00\nssS'name'\np23996\n(dp23997\nS'editable'\np23998\nI01\nsS'value'\np23999\nS'Date Updated'\np24000\nssS'data_type'\np24001\n(dp24002\nS'editable'\np24003\nI00\nsS'value'\np24004\nS'date_time'\np24005\nssS'entity_type'\np24006\n(dp24007\nS'editable'\np24008\nI00\nsS'value'\np24009\nS'TankType'\np24010\nssS'editable'\np24011\n(dp24012\nS'editable'\np24013\nI00\nsS'value'\np24014\nI00\nssS'unique'\np24015\n(dp24016\nS'editable'\np24017\nI00\nsS'value'\np24018\nI00\nssS'properties'\np24019\n(dp24020\nS'default_value'\np24021\n(dp24022\nS'editable'\np24023\nI00\nsS'value'\np24024\nNssS'summary_default'\np24025\n(dp24026\nS'editable'\np24027\nI01\nsS'value'\np24028\nS'none'\np24029\nsssS'description'\np24030\n(dp24031\nS'editable'\np24032\nI01\nsS'value'\np24033\ng47\nsssS'created_by'\np24034\n(dp24035\nS'mandatory'\np24036\n(dp24037\nS'editable'\np24038\nI00\nsS'value'\np24039\nI00\nssS'name'\np24040\n(dp24041\nS'editable'\np24042\nI01\nsS'value'\np24043\nS'Created by'\np24044\nssS'data_type'\np24045\n(dp24046\nS'editable'\np24047\nI00\nsS'value'\np24048\nS'entity'\np24049\nssS'entity_type'\np24050\n(dp24051\nS'editable'\np24052\nI00\nsS'value'\np24053\nS'TankType'\np24054\nssS'editable'\np24055\n(dp24056\nS'editable'\np24057\nI00\nsS'value'\np24058\nI00\nssS'unique'\np24059\n(dp24060\nS'editable'\np24061\nI00\nsS'value'\np24062\nI00\nssS'properties'\np24063\n(dp24064\nS'default_value'\np24065\n(dp24066\nS'editable'\np24067\nI00\nsS'value'\np24068\nNssS'summary_default'\np24069\n(dp24070\nS'editable'\np24071\nI01\nsS'value'\np24072\nS'none'\np24073\nssS'valid_types'\np24074\n(dp24075\nS'editable'\np24076\nI01\nsS'value'\np24077\n(lp24078\nS'HumanUser'\np24079\naS'ApiUser'\np24080\nasssS'description'\np24081\n(dp24082\nS'editable'\np24083\nI01\nsS'value'\np24084\ng47\nsssS'project'\np24085\n(dp24086\nS'mandatory'\np24087\n(dp24088\nS'editable'\np24089\nI00\nsS'value'\np24090\nI00\nssS'name'\np24091\n(dp24092\nS'editable'\np24093\nI01\nsS'value'\np24094\nS'Project'\np24095\nssS'data_type'\np24096\n(dp24097\nS'editable'\np24098\nI00\nsS'value'\np24099\nS'entity'\np24100\nssS'entity_type'\np24101\n(dp24102\nS'editable'\np24103\nI00\nsS'value'\np24104\nS'TankType'\np24105\nssS'editable'\np24106\n(dp24107\nS'editable'\np24108\nI00\nsS'value'\np24109\nI01\nssS'unique'\np24110\n(dp24111\nS'editable'\np24112\nI00\nsS'value'\np24113\nI00\nssS'properties'\np24114\n(dp24115\nS'default_value'\np24116\n(dp24117\nS'editable'\np24118\nI00\nsS'value'\np24119\nNssS'summary_default'\np24120\n(dp24121\nS'editable'\np24122\nI01\nsS'value'\np24123\nS'none'\np24124\nssS'valid_types'\np24125\n(dp24126\nS'editable'\np24127\nI01\nsS'value'\np24128\n(lp24129\nS'Project'\np24130\nasssS'description'\np24131\n(dp24132\nS'editable'\np24133\nI01\nsS'value'\np24134\ng47\nsssS'sg_status_list'\np24135\n(dp24136\nS'mandatory'\np24137\n(dp24138\nS'editable'\np24139\nI00\nsS'value'\np24140\nI00\nssS'name'\np24141\n(dp24142\nS'editable'\np24143\nI01\nsS'value'\np24144\nS'Status'\np24145\nssS'data_type'\np24146\n(dp24147\nS'editable'\np24148\nI00\nsS'value'\np24149\nS'status_list'\np24150\nssS'entity_type'\np24151\n(dp24152\nS'editable'\np24153\nI00\nsS'value'\np24154\nS'TankType'\np24155\nssS'editable'\np24156\n(dp24157\nS'editable'\np24158\nI00\nsS'value'\np24159\nI01\nssS'unique'\np24160\n(dp24161\nS'editable'\np24162\nI00\nsS'value'\np24163\nI00\nssS'properties'\np24164\n(dp24165\nS'default_value'\np24166\n(dp24167\nS'editable'\np24168\nI01\nsS'value'\np24169\nS'wtg'\np24170\nssS'valid_values'\np24171\n(dp24172\nS'editable'\np24173\nI01\nsS'value'\np24174\n(lp24175\nS'wtg'\np24176\naS'ip'\np24177\naS'cmpt'\np24178\nassS'summary_default'\np24179\n(dp24180\nS'editable'\np24181\nI01\nsS'value'\np24182\nS'none'\np24183\nsssS'description'\np24184\n(dp24185\nS'editable'\np24186\nI01\nsS'value'\np24187\ng47\nsssS'image'\np24188\n(dp24189\nS'mandatory'\np24190\n(dp24191\nS'editable'\np24192\nI00\nsS'value'\np24193\nI00\nssS'name'\np24194\n(dp24195\nS'editable'\np24196\nI01\nsS'value'\np24197\nS'Thumbnail'\np24198\nssS'data_type'\np24199\n(dp24200\nS'editable'\np24201\nI00\nsS'value'\np24202\nS'image'\np24203\nssS'entity_type'\np24204\n(dp24205\nS'editable'\np24206\nI00\nsS'value'\np24207\nS'TankType'\np24208\nssS'editable'\np24209\n(dp24210\nS'editable'\np24211\nI00\nsS'value'\np24212\nI01\nssS'unique'\np24213\n(dp24214\nS'editable'\np24215\nI00\nsS'value'\np24216\nI00\nssS'properties'\np24217\n(dp24218\nS'default_value'\np24219\n(dp24220\nS'editable'\np24221\nI00\nsS'value'\np24222\nNssS'summary_default'\np24223\n(dp24224\nS'editable'\np24225\nI01\nsS'value'\np24226\nS'none'\np24227\nsssS'description'\np24228\n(dp24229\nS'editable'\np24230\nI01\nsS'value'\np24231\ng47\nsssS'cached_display_name'\np24232\n(dp24233\nS'mandatory'\np24234\n(dp24235\nS'editable'\np24236\nI00\nsS'value'\np24237\nI00\nssS'name'\np24238\n(dp24239\nS'editable'\np24240\nI01\nsS'value'\np24241\nS'Cached Display Name'\np24242\nssS'data_type'\np24243\n(dp24244\nS'editable'\np24245\nI00\nsS'value'\np24246\nS'text'\np24247\nssS'entity_type'\np24248\n(dp24249\nS'editable'\np24250\nI00\nsS'value'\np24251\nS'TankType'\np24252\nssS'editable'\np24253\n(dp24254\nS'editable'\np24255\nI00\nsS'value'\np24256\nI01\nssS'unique'\np24257\n(dp24258\nS'editable'\np24259\nI00\nsS'value'\np24260\nI00\nssS'properties'\np24261\n(dp24262\nS'default_value'\np24263\n(dp24264\nS'editable'\np24265\nI00\nsS'value'\np24266\nNssS'summary_default'\np24267\n(dp24268\nS'editable'\np24269\nI00\nsS'value'\np24270\nS'none'\np24271\nsssS'description'\np24272\n(dp24273\nS'editable'\np24274\nI01\nsS'value'\np24275\ng47\nsssS'tag_list'\np24276\n(dp24277\nS'mandatory'\np24278\n(dp24279\nS'editable'\np24280\nI00\nsS'value'\np24281\nI00\nssS'name'\np24282\n(dp24283\nS'editable'\np24284\nI01\nsS'value'\np24285\nS'Tags'\np24286\nssS'data_type'\np24287\n(dp24288\nS'editable'\np24289\nI00\nsS'value'\np24290\nS'tag_list'\np24291\nssS'entity_type'\np24292\n(dp24293\nS'editable'\np24294\nI00\nsS'value'\np24295\nS'TankType'\np24296\nssS'editable'\np24297\n(dp24298\nS'editable'\np24299\nI00\nsS'value'\np24300\nI01\nssS'unique'\np24301\n(dp24302\nS'editable'\np24303\nI00\nsS'value'\np24304\nI00\nssS'properties'\np24305\n(dp24306\nS'default_value'\np24307\n(dp24308\nS'editable'\np24309\nI00\nsS'value'\np24310\nNssS'summary_default'\np24311\n(dp24312\nS'editable'\np24313\nI01\nsS'value'\np24314\nS'none'\np24315\nssS'valid_types'\np24316\n(dp24317\nS'editable'\np24318\nI01\nsS'value'\np24319\n(lp24320\nS'Tag'\np24321\nasssS'description'\np24322\n(dp24323\nS'editable'\np24324\nI01\nsS'value'\np24325\ng47\nsssS'id'\np24326\n(dp24327\nS'mandatory'\np24328\n(dp24329\nS'editable'\np24330\nI00\nsS'value'\np24331\nI00\nssS'name'\np24332\n(dp24333\nS'editable'\np24334\nI01\nsS'value'\np24335\nS'Id'\np24336\nssS'data_type'\np24337\n(dp24338\nS'editable'\np24339\nI00\nsS'value'\np24340\nS'number'\np24341\nssS'entity_type'\np24342\n(dp24343\nS'editable'\np24344\nI00\nsS'value'\np24345\nS'TankType'\np24346\nssS'editable'\np24347\n(dp24348\nS'editable'\np24349\nI00\nsS'value'\np24350\nI00\nssS'unique'\np24351\n(dp24352\nS'editable'\np24353\nI00\nsS'value'\np24354\nI00\nssS'properties'\np24355\n(dp24356\nS'default_value'\np24357\n(dp24358\nS'editable'\np24359\nI00\nsS'value'\np24360\nNssS'summary_default'\np24361\n(dp24362\nS'editable'\np24363\nI01\nsS'value'\np24364\nS'none'\np24365\nsssS'description'\np24366\n(dp24367\nS'editable'\np24368\nI01\nsS'value'\np24369\ng47\nsssS'updated_by'\np24370\n(dp24371\nS'mandatory'\np24372\n(dp24373\nS'editable'\np24374\nI00\nsS'value'\np24375\nI00\nssS'name'\np24376\n(dp24377\nS'editable'\np24378\nI01\nsS'value'\np24379\nS'Updated by'\np24380\nssS'data_type'\np24381\n(dp24382\nS'editable'\np24383\nI00\nsS'value'\np24384\nS'entity'\np24385\nssS'entity_type'\np24386\n(dp24387\nS'editable'\np24388\nI00\nsS'value'\np24389\nS'TankType'\np24390\nssS'editable'\np24391\n(dp24392\nS'editable'\np24393\nI00\nsS'value'\np24394\nI00\nssS'unique'\np24395\n(dp24396\nS'editable'\np24397\nI00\nsS'value'\np24398\nI00\nssS'properties'\np24399\n(dp24400\nS'default_value'\np24401\n(dp24402\nS'editable'\np24403\nI00\nsS'value'\np24404\nNssS'summary_default'\np24405\n(dp24406\nS'editable'\np24407\nI01\nsS'value'\np24408\nS'none'\np24409\nssS'valid_types'\np24410\n(dp24411\nS'editable'\np24412\nI01\nsS'value'\np24413\n(lp24414\nS'HumanUser'\np24415\naS'ApiUser'\np24416\nasssS'description'\np24417\n(dp24418\nS'editable'\np24419\nI01\nsS'value'\np24420\ng47\nssssS'Icon'\np24421\n(dp24422\nS'image_map_key'\np24423\n(dp24424\nS'mandatory'\np24425\n(dp24426\nS'editable'\np24427\nI00\nsS'value'\np24428\nI00\nssS'name'\np24429\n(dp24430\nS'editable'\np24431\nI01\nsS'value'\np24432\nS'Image Map Key'\np24433\nssS'data_type'\np24434\n(dp24435\nS'editable'\np24436\nI00\nsS'value'\np24437\nS'text'\np24438\nssS'entity_type'\np24439\n(dp24440\nS'editable'\np24441\nI00\nsS'value'\np24442\nS'Icon'\np24443\nssS'editable'\np24444\n(dp24445\nS'editable'\np24446\nI00\nsS'value'\np24447\nI00\nssS'unique'\np24448\n(dp24449\nS'editable'\np24450\nI00\nsS'value'\np24451\nI00\nssS'properties'\np24452\n(dp24453\nS'default_value'\np24454\n(dp24455\nS'editable'\np24456\nI00\nsS'value'\np24457\nNssS'summary_default'\np24458\n(dp24459\nS'editable'\np24460\nI01\nsS'value'\np24461\nS'none'\np24462\nsssS'description'\np24463\n(dp24464\nS'editable'\np24465\nI01\nsS'value'\np24466\ng47\nsssS'uuid'\np24467\n(dp24468\nS'mandatory'\np24469\n(dp24470\nS'editable'\np24471\nI00\nsS'value'\np24472\nI00\nssS'name'\np24473\n(dp24474\nS'editable'\np24475\nI01\nsS'value'\np24476\nS'UUID'\np24477\nssS'data_type'\np24478\n(dp24479\nS'editable'\np24480\nI00\nsS'value'\np24481\nS'uuid'\np24482\nssS'entity_type'\np24483\n(dp24484\nS'editable'\np24485\nI00\nsS'value'\np24486\nS'Icon'\np24487\nssS'editable'\np24488\n(dp24489\nS'editable'\np24490\nI00\nsS'value'\np24491\nI00\nssS'unique'\np24492\n(dp24493\nS'editable'\np24494\nI00\nsS'value'\np24495\nI00\nssS'properties'\np24496\n(dp24497\nS'default_value'\np24498\n(dp24499\nS'editable'\np24500\nI00\nsS'value'\np24501\nNssS'summary_default'\np24502\n(dp24503\nS'editable'\np24504\nI00\nsS'value'\np24505\nS'none'\np24506\nsssS'description'\np24507\n(dp24508\nS'editable'\np24509\nI01\nsS'value'\np24510\ng47\nsssS'icon_type'\np24511\n(dp24512\nS'mandatory'\np24513\n(dp24514\nS'editable'\np24515\nI00\nsS'value'\np24516\nI00\nssS'name'\np24517\n(dp24518\nS'editable'\np24519\nI01\nsS'value'\np24520\nS'Icon Type'\np24521\nssS'data_type'\np24522\n(dp24523\nS'editable'\np24524\nI00\nsS'value'\np24525\nS'list'\np24526\nssS'entity_type'\np24527\n(dp24528\nS'editable'\np24529\nI00\nsS'value'\np24530\nS'Icon'\np24531\nssS'editable'\np24532\n(dp24533\nS'editable'\np24534\nI00\nsS'value'\np24535\nI00\nssS'unique'\np24536\n(dp24537\nS'editable'\np24538\nI00\nsS'value'\np24539\nI00\nssS'properties'\np24540\n(dp24541\nS'default_value'\np24542\n(dp24543\nS'editable'\np24544\nI00\nsS'value'\np24545\nNssS'valid_values'\np24546\n(dp24547\nS'editable'\np24548\nI01\nsS'value'\np24549\n(lp24550\nS'permanent_status'\np24551\naS'custom_status'\np24552\nassS'summary_default'\np24553\n(dp24554\nS'editable'\np24555\nI01\nsS'value'\np24556\nS'none'\np24557\nsssS'description'\np24558\n(dp24559\nS'editable'\np24560\nI01\nsS'value'\np24561\ng47\nsssS'url'\np24562\n(dp24563\nS'mandatory'\np24564\n(dp24565\nS'editable'\np24566\nI00\nsS'value'\np24567\nI00\nssS'name'\np24568\n(dp24569\nS'editable'\np24570\nI01\nsS'value'\np24571\nS'Icon URL'\np24572\nssS'data_type'\np24573\n(dp24574\nS'editable'\np24575\nI00\nsS'value'\np24576\nS'text'\np24577\nssS'entity_type'\np24578\n(dp24579\nS'editable'\np24580\nI00\nsS'value'\np24581\nS'Icon'\np24582\nssS'editable'\np24583\n(dp24584\nS'editable'\np24585\nI00\nsS'value'\np24586\nI00\nssS'unique'\np24587\n(dp24588\nS'editable'\np24589\nI00\nsS'value'\np24590\nI00\nssS'properties'\np24591\n(dp24592\nS'default_value'\np24593\n(dp24594\nS'editable'\np24595\nI00\nsS'value'\np24596\nNssS'summary_default'\np24597\n(dp24598\nS'editable'\np24599\nI00\nsS'value'\np24600\nS'none'\np24601\nsssS'description'\np24602\n(dp24603\nS'editable'\np24604\nI01\nsS'value'\np24605\ng47\nsssS'html'\np24606\n(dp24607\nS'mandatory'\np24608\n(dp24609\nS'editable'\np24610\nI00\nsS'value'\np24611\nI00\nssS'name'\np24612\n(dp24613\nS'editable'\np24614\nI01\nsS'value'\np24615\nS'Icon HTML'\np24616\nssS'data_type'\np24617\n(dp24618\nS'editable'\np24619\nI00\nsS'value'\np24620\nS'text'\np24621\nssS'entity_type'\np24622\n(dp24623\nS'editable'\np24624\nI00\nsS'value'\np24625\nS'Icon'\np24626\nssS'editable'\np24627\n(dp24628\nS'editable'\np24629\nI00\nsS'value'\np24630\nI00\nssS'unique'\np24631\n(dp24632\nS'editable'\np24633\nI00\nsS'value'\np24634\nI00\nssS'properties'\np24635\n(dp24636\nS'default_value'\np24637\n(dp24638\nS'editable'\np24639\nI00\nsS'value'\np24640\nNssS'summary_default'\np24641\n(dp24642\nS'editable'\np24643\nI01\nsS'value'\np24644\nS'none'\np24645\nsssS'description'\np24646\n(dp24647\nS'editable'\np24648\nI01\nsS'value'\np24649\ng47\nsssS'display_type'\np24650\n(dp24651\nS'mandatory'\np24652\n(dp24653\nS'editable'\np24654\nI00\nsS'value'\np24655\nI00\nssS'name'\np24656\n(dp24657\nS'editable'\np24658\nI01\nsS'value'\np24659\nS'Display Type'\np24660\nssS'data_type'\np24661\n(dp24662\nS'editable'\np24663\nI00\nsS'value'\np24664\nS'list'\np24665\nssS'entity_type'\np24666\n(dp24667\nS'editable'\np24668\nI00\nsS'value'\np24669\nS'Icon'\np24670\nssS'editable'\np24671\n(dp24672\nS'editable'\np24673\nI00\nsS'value'\np24674\nI00\nssS'unique'\np24675\n(dp24676\nS'editable'\np24677\nI00\nsS'value'\np24678\nI00\nssS'properties'\np24679\n(dp24680\nS'default_value'\np24681\n(dp24682\nS'editable'\np24683\nI00\nsS'value'\np24684\nNssS'valid_values'\np24685\n(dp24686\nS'editable'\np24687\nI01\nsS'value'\np24688\n(lp24689\nS'html'\np24690\naS'image'\np24691\naS'image_map'\np24692\nassS'summary_default'\np24693\n(dp24694\nS'editable'\np24695\nI01\nsS'value'\np24696\nS'none'\np24697\nsssS'description'\np24698\n(dp24699\nS'editable'\np24700\nI01\nsS'value'\np24701\ng47\nsssS'image_data'\np24702\n(dp24703\nS'mandatory'\np24704\n(dp24705\nS'editable'\np24706\nI00\nsS'value'\np24707\nI00\nssS'name'\np24708\n(dp24709\nS'editable'\np24710\nI01\nsS'value'\np24711\nS'Image Data'\np24712\nssS'data_type'\np24713\n(dp24714\nS'editable'\np24715\nI00\nsS'value'\np24716\nS'text'\np24717\nssS'entity_type'\np24718\n(dp24719\nS'editable'\np24720\nI00\nsS'value'\np24721\nS'Icon'\np24722\nssS'editable'\np24723\n(dp24724\nS'editable'\np24725\nI00\nsS'value'\np24726\nI00\nssS'unique'\np24727\n(dp24728\nS'editable'\np24729\nI00\nsS'value'\np24730\nI00\nssS'properties'\np24731\n(dp24732\nS'default_value'\np24733\n(dp24734\nS'editable'\np24735\nI00\nsS'value'\np24736\nNssS'summary_default'\np24737\n(dp24738\nS'editable'\np24739\nI01\nsS'value'\np24740\nS'none'\np24741\nsssS'description'\np24742\n(dp24743\nS'editable'\np24744\nI01\nsS'value'\np24745\ng47\nsssS'cached_display_name'\np24746\n(dp24747\nS'mandatory'\np24748\n(dp24749\nS'editable'\np24750\nI00\nsS'value'\np24751\nI00\nssS'name'\np24752\n(dp24753\nS'editable'\np24754\nI01\nsS'value'\np24755\nS'Cached Display Name'\np24756\nssS'data_type'\np24757\n(dp24758\nS'editable'\np24759\nI00\nsS'value'\np24760\nS'text'\np24761\nssS'entity_type'\np24762\n(dp24763\nS'editable'\np24764\nI00\nsS'value'\np24765\nS'Icon'\np24766\nssS'editable'\np24767\n(dp24768\nS'editable'\np24769\nI00\nsS'value'\np24770\nI00\nssS'unique'\np24771\n(dp24772\nS'editable'\np24773\nI00\nsS'value'\np24774\nI00\nssS'properties'\np24775\n(dp24776\nS'default_value'\np24777\n(dp24778\nS'editable'\np24779\nI00\nsS'value'\np24780\nNssS'summary_default'\np24781\n(dp24782\nS'editable'\np24783\nI00\nsS'value'\np24784\nS'none'\np24785\nsssS'description'\np24786\n(dp24787\nS'editable'\np24788\nI01\nsS'value'\np24789\ng47\nsssS'id'\np24790\n(dp24791\nS'mandatory'\np24792\n(dp24793\nS'editable'\np24794\nI00\nsS'value'\np24795\nI00\nssS'name'\np24796\n(dp24797\nS'editable'\np24798\nI01\nsS'value'\np24799\nS'Id'\np24800\nssS'data_type'\np24801\n(dp24802\nS'editable'\np24803\nI00\nsS'value'\np24804\nS'number'\np24805\nssS'entity_type'\np24806\n(dp24807\nS'editable'\np24808\nI00\nsS'value'\np24809\nS'Icon'\np24810\nssS'editable'\np24811\n(dp24812\nS'editable'\np24813\nI00\nsS'value'\np24814\nI00\nssS'unique'\np24815\n(dp24816\nS'editable'\np24817\nI00\nsS'value'\np24818\nI00\nssS'properties'\np24819\n(dp24820\nS'default_value'\np24821\n(dp24822\nS'editable'\np24823\nI00\nsS'value'\np24824\nNssS'summary_default'\np24825\n(dp24826\nS'editable'\np24827\nI00\nsS'value'\np24828\nS'none'\np24829\nsssS'description'\np24830\n(dp24831\nS'editable'\np24832\nI01\nsS'value'\np24833\ng47\nsssS'name'\np24834\n(dp24835\nS'mandatory'\np24836\n(dp24837\nS'editable'\np24838\nI00\nsS'value'\np24839\nI00\nssS'name'\np24840\n(dp24841\nS'editable'\np24842\nI01\nsS'value'\np24843\nS'Status Name'\np24844\nssS'data_type'\np24845\n(dp24846\nS'editable'\np24847\nI00\nsS'value'\np24848\nS'text'\np24849\nssS'entity_type'\np24850\n(dp24851\nS'editable'\np24852\nI00\nsS'value'\np24853\nS'Icon'\np24854\nssS'editable'\np24855\n(dp24856\nS'editable'\np24857\nI00\nsS'value'\np24858\nI00\nssS'unique'\np24859\n(dp24860\nS'editable'\np24861\nI00\nsS'value'\np24862\nI00\nssS'properties'\np24863\n(dp24864\nS'default_value'\np24865\n(dp24866\nS'editable'\np24867\nI00\nsS'value'\np24868\nNssS'summary_default'\np24869\n(dp24870\nS'editable'\np24871\nI01\nsS'value'\np24872\nS'none'\np24873\nsssS'description'\np24874\n(dp24875\nS'editable'\np24876\nI01\nsS'value'\np24877\ng47\nssssS'LocalStorage'\np24878\n(dp24879\nS'code'\np24880\n(dp24881\nS'mandatory'\np24882\n(dp24883\nS'editable'\np24884\nI00\nsS'value'\np24885\nI01\nssS'name'\np24886\n(dp24887\nS'editable'\np24888\nI01\nsS'value'\np24889\nS'Local Storage Name'\np24890\nssS'data_type'\np24891\n(dp24892\nS'editable'\np24893\nI00\nsS'value'\np24894\nS'text'\np24895\nssS'entity_type'\np24896\n(dp24897\nS'editable'\np24898\nI00\nsS'value'\np24899\nS'LocalStorage'\np24900\nssS'editable'\np24901\n(dp24902\nS'editable'\np24903\nI00\nsS'value'\np24904\nI01\nssS'unique'\np24905\n(dp24906\nS'editable'\np24907\nI00\nsS'value'\np24908\nI00\nssS'properties'\np24909\n(dp24910\nS'default_value'\np24911\n(dp24912\nS'editable'\np24913\nI00\nsS'value'\np24914\nNssS'summary_default'\np24915\n(dp24916\nS'editable'\np24917\nI00\nsS'value'\np24918\nS'none'\np24919\nsssS'description'\np24920\n(dp24921\nS'editable'\np24922\nI01\nsS'value'\np24923\ng47\nsssS'uuid'\np24924\n(dp24925\nS'mandatory'\np24926\n(dp24927\nS'editable'\np24928\nI00\nsS'value'\np24929\nI00\nssS'name'\np24930\n(dp24931\nS'editable'\np24932\nI01\nsS'value'\np24933\nS'UUID'\np24934\nssS'data_type'\np24935\n(dp24936\nS'editable'\np24937\nI00\nsS'value'\np24938\nS'uuid'\np24939\nssS'entity_type'\np24940\n(dp24941\nS'editable'\np24942\nI00\nsS'value'\np24943\nS'LocalStorage'\np24944\nssS'editable'\np24945\n(dp24946\nS'editable'\np24947\nI00\nsS'value'\np24948\nI00\nssS'unique'\np24949\n(dp24950\nS'editable'\np24951\nI00\nsS'value'\np24952\nI00\nssS'properties'\np24953\n(dp24954\nS'default_value'\np24955\n(dp24956\nS'editable'\np24957\nI00\nsS'value'\np24958\nNssS'summary_default'\np24959\n(dp24960\nS'editable'\np24961\nI00\nsS'value'\np24962\nS'none'\np24963\nsssS'description'\np24964\n(dp24965\nS'editable'\np24966\nI01\nsS'value'\np24967\ng47\nsssS'mac_path'\np24968\n(dp24969\nS'mandatory'\np24970\n(dp24971\nS'editable'\np24972\nI00\nsS'value'\np24973\nI00\nssS'name'\np24974\n(dp24975\nS'editable'\np24976\nI01\nsS'value'\np24977\nS'Mac Path'\np24978\nssS'data_type'\np24979\n(dp24980\nS'editable'\np24981\nI00\nsS'value'\np24982\nS'text'\np24983\nssS'entity_type'\np24984\n(dp24985\nS'editable'\np24986\nI00\nsS'value'\np24987\nS'LocalStorage'\np24988\nssS'editable'\np24989\n(dp24990\nS'editable'\np24991\nI00\nsS'value'\np24992\nI01\nssS'unique'\np24993\n(dp24994\nS'editable'\np24995\nI00\nsS'value'\np24996\nI00\nssS'properties'\np24997\n(dp24998\nS'default_value'\np24999\n(dp25000\nS'editable'\np25001\nI00\nsS'value'\np25002\nNssS'summary_default'\np25003\n(dp25004\nS'editable'\np25005\nI00\nsS'value'\np25006\nS'none'\np25007\nsssS'description'\np25008\n(dp25009\nS'editable'\np25010\nI01\nsS'value'\np25011\ng47\nsssS'created_at'\np25012\n(dp25013\nS'mandatory'\np25014\n(dp25015\nS'editable'\np25016\nI00\nsS'value'\np25017\nI00\nssS'name'\np25018\n(dp25019\nS'editable'\np25020\nI01\nsS'value'\np25021\nS'Date Created'\np25022\nssS'data_type'\np25023\n(dp25024\nS'editable'\np25025\nI00\nsS'value'\np25026\nS'date_time'\np25027\nssS'entity_type'\np25028\n(dp25029\nS'editable'\np25030\nI00\nsS'value'\np25031\nS'LocalStorage'\np25032\nssS'editable'\np25033\n(dp25034\nS'editable'\np25035\nI00\nsS'value'\np25036\nI00\nssS'unique'\np25037\n(dp25038\nS'editable'\np25039\nI00\nsS'value'\np25040\nI00\nssS'properties'\np25041\n(dp25042\nS'default_value'\np25043\n(dp25044\nS'editable'\np25045\nI00\nsS'value'\np25046\nNssS'summary_default'\np25047\n(dp25048\nS'editable'\np25049\nI00\nsS'value'\np25050\nS'none'\np25051\nsssS'description'\np25052\n(dp25053\nS'editable'\np25054\nI01\nsS'value'\np25055\ng47\nsssS'updated_at'\np25056\n(dp25057\nS'mandatory'\np25058\n(dp25059\nS'editable'\np25060\nI00\nsS'value'\np25061\nI00\nssS'name'\np25062\n(dp25063\nS'editable'\np25064\nI01\nsS'value'\np25065\nS'Date Updated'\np25066\nssS'data_type'\np25067\n(dp25068\nS'editable'\np25069\nI00\nsS'value'\np25070\nS'date_time'\np25071\nssS'entity_type'\np25072\n(dp25073\nS'editable'\np25074\nI00\nsS'value'\np25075\nS'LocalStorage'\np25076\nssS'editable'\np25077\n(dp25078\nS'editable'\np25079\nI00\nsS'value'\np25080\nI00\nssS'unique'\np25081\n(dp25082\nS'editable'\np25083\nI00\nsS'value'\np25084\nI00\nssS'properties'\np25085\n(dp25086\nS'default_value'\np25087\n(dp25088\nS'editable'\np25089\nI00\nsS'value'\np25090\nNssS'summary_default'\np25091\n(dp25092\nS'editable'\np25093\nI00\nsS'value'\np25094\nS'none'\np25095\nsssS'description'\np25096\n(dp25097\nS'editable'\np25098\nI01\nsS'value'\np25099\ng47\nsssS'created_by'\np25100\n(dp25101\nS'mandatory'\np25102\n(dp25103\nS'editable'\np25104\nI00\nsS'value'\np25105\nI00\nssS'name'\np25106\n(dp25107\nS'editable'\np25108\nI01\nsS'value'\np25109\nS'Created by'\np25110\nssS'data_type'\np25111\n(dp25112\nS'editable'\np25113\nI00\nsS'value'\np25114\nS'entity'\np25115\nssS'entity_type'\np25116\n(dp25117\nS'editable'\np25118\nI00\nsS'value'\np25119\nS'LocalStorage'\np25120\nssS'editable'\np25121\n(dp25122\nS'editable'\np25123\nI00\nsS'value'\np25124\nI00\nssS'unique'\np25125\n(dp25126\nS'editable'\np25127\nI00\nsS'value'\np25128\nI00\nssS'properties'\np25129\n(dp25130\nS'default_value'\np25131\n(dp25132\nS'editable'\np25133\nI00\nsS'value'\np25134\nNssS'summary_default'\np25135\n(dp25136\nS'editable'\np25137\nI00\nsS'value'\np25138\nS'none'\np25139\nssS'valid_types'\np25140\n(dp25141\nS'editable'\np25142\nI00\nsS'value'\np25143\n(lp25144\nS'HumanUser'\np25145\naS'ApiUser'\np25146\nasssS'description'\np25147\n(dp25148\nS'editable'\np25149\nI01\nsS'value'\np25150\ng47\nsssS'windows_path'\np25151\n(dp25152\nS'mandatory'\np25153\n(dp25154\nS'editable'\np25155\nI00\nsS'value'\np25156\nI00\nssS'name'\np25157\n(dp25158\nS'editable'\np25159\nI01\nsS'value'\np25160\nS'Windows Path'\np25161\nssS'data_type'\np25162\n(dp25163\nS'editable'\np25164\nI00\nsS'value'\np25165\nS'text'\np25166\nssS'entity_type'\np25167\n(dp25168\nS'editable'\np25169\nI00\nsS'value'\np25170\nS'LocalStorage'\np25171\nssS'editable'\np25172\n(dp25173\nS'editable'\np25174\nI00\nsS'value'\np25175\nI01\nssS'unique'\np25176\n(dp25177\nS'editable'\np25178\nI00\nsS'value'\np25179\nI00\nssS'properties'\np25180\n(dp25181\nS'default_value'\np25182\n(dp25183\nS'editable'\np25184\nI00\nsS'value'\np25185\nNssS'summary_default'\np25186\n(dp25187\nS'editable'\np25188\nI00\nsS'value'\np25189\nS'none'\np25190\nsssS'description'\np25191\n(dp25192\nS'editable'\np25193\nI01\nsS'value'\np25194\ng47\nsssS'updated_by'\np25195\n(dp25196\nS'mandatory'\np25197\n(dp25198\nS'editable'\np25199\nI00\nsS'value'\np25200\nI00\nssS'name'\np25201\n(dp25202\nS'editable'\np25203\nI01\nsS'value'\np25204\nS'Updated by'\np25205\nssS'data_type'\np25206\n(dp25207\nS'editable'\np25208\nI00\nsS'value'\np25209\nS'entity'\np25210\nssS'entity_type'\np25211\n(dp25212\nS'editable'\np25213\nI00\nsS'value'\np25214\nS'LocalStorage'\np25215\nssS'editable'\np25216\n(dp25217\nS'editable'\np25218\nI00\nsS'value'\np25219\nI00\nssS'unique'\np25220\n(dp25221\nS'editable'\np25222\nI00\nsS'value'\np25223\nI00\nssS'properties'\np25224\n(dp25225\nS'default_value'\np25226\n(dp25227\nS'editable'\np25228\nI00\nsS'value'\np25229\nNssS'summary_default'\np25230\n(dp25231\nS'editable'\np25232\nI00\nsS'value'\np25233\nS'none'\np25234\nssS'valid_types'\np25235\n(dp25236\nS'editable'\np25237\nI00\nsS'value'\np25238\n(lp25239\nS'HumanUser'\np25240\naS'ApiUser'\np25241\nasssS'description'\np25242\n(dp25243\nS'editable'\np25244\nI01\nsS'value'\np25245\ng47\nsssS'cached_display_name'\np25246\n(dp25247\nS'mandatory'\np25248\n(dp25249\nS'editable'\np25250\nI00\nsS'value'\np25251\nI00\nssS'name'\np25252\n(dp25253\nS'editable'\np25254\nI01\nsS'value'\np25255\nS'Cached Display Name'\np25256\nssS'data_type'\np25257\n(dp25258\nS'editable'\np25259\nI00\nsS'value'\np25260\nS'text'\np25261\nssS'entity_type'\np25262\n(dp25263\nS'editable'\np25264\nI00\nsS'value'\np25265\nS'LocalStorage'\np25266\nssS'editable'\np25267\n(dp25268\nS'editable'\np25269\nI00\nsS'value'\np25270\nI01\nssS'unique'\np25271\n(dp25272\nS'editable'\np25273\nI00\nsS'value'\np25274\nI00\nssS'properties'\np25275\n(dp25276\nS'default_value'\np25277\n(dp25278\nS'editable'\np25279\nI00\nsS'value'\np25280\nNssS'summary_default'\np25281\n(dp25282\nS'editable'\np25283\nI00\nsS'value'\np25284\nS'none'\np25285\nsssS'description'\np25286\n(dp25287\nS'editable'\np25288\nI01\nsS'value'\np25289\ng47\nsssS'id'\np25290\n(dp25291\nS'mandatory'\np25292\n(dp25293\nS'editable'\np25294\nI00\nsS'value'\np25295\nI00\nssS'name'\np25296\n(dp25297\nS'editable'\np25298\nI01\nsS'value'\np25299\nS'Id'\np25300\nssS'data_type'\np25301\n(dp25302\nS'editable'\np25303\nI00\nsS'value'\np25304\nS'number'\np25305\nssS'entity_type'\np25306\n(dp25307\nS'editable'\np25308\nI00\nsS'value'\np25309\nS'LocalStorage'\np25310\nssS'editable'\np25311\n(dp25312\nS'editable'\np25313\nI00\nsS'value'\np25314\nI00\nssS'unique'\np25315\n(dp25316\nS'editable'\np25317\nI00\nsS'value'\np25318\nI00\nssS'properties'\np25319\n(dp25320\nS'default_value'\np25321\n(dp25322\nS'editable'\np25323\nI00\nsS'value'\np25324\nNssS'summary_default'\np25325\n(dp25326\nS'editable'\np25327\nI00\nsS'value'\np25328\nS'none'\np25329\nsssS'description'\np25330\n(dp25331\nS'editable'\np25332\nI01\nsS'value'\np25333\ng47\nsssS'linux_path'\np25334\n(dp25335\nS'mandatory'\np25336\n(dp25337\nS'editable'\np25338\nI00\nsS'value'\np25339\nI00\nssS'name'\np25340\n(dp25341\nS'editable'\np25342\nI01\nsS'value'\np25343\nS'Linux Path'\np25344\nssS'data_type'\np25345\n(dp25346\nS'editable'\np25347\nI00\nsS'value'\np25348\nS'text'\np25349\nssS'entity_type'\np25350\n(dp25351\nS'editable'\np25352\nI00\nsS'value'\np25353\nS'LocalStorage'\np25354\nssS'editable'\np25355\n(dp25356\nS'editable'\np25357\nI00\nsS'value'\np25358\nI01\nssS'unique'\np25359\n(dp25360\nS'editable'\np25361\nI00\nsS'value'\np25362\nI00\nssS'properties'\np25363\n(dp25364\nS'default_value'\np25365\n(dp25366\nS'editable'\np25367\nI00\nsS'value'\np25368\nNssS'summary_default'\np25369\n(dp25370\nS'editable'\np25371\nI00\nsS'value'\np25372\nS'none'\np25373\nsssS'description'\np25374\n(dp25375\nS'editable'\np25376\nI01\nsS'value'\np25377\ng47\nsssS'description'\np25378\n(dp25379\nS'mandatory'\np25380\n(dp25381\nS'editable'\np25382\nI00\nsS'value'\np25383\nI00\nssS'name'\np25384\n(dp25385\nS'editable'\np25386\nI01\nsS'value'\np25387\nS'Description'\np25388\nssS'data_type'\np25389\n(dp25390\nS'editable'\np25391\nI00\nsS'value'\np25392\nS'text'\np25393\nssS'entity_type'\np25394\n(dp25395\nS'editable'\np25396\nI00\nsS'value'\np25397\nS'LocalStorage'\np25398\nssS'editable'\np25399\n(dp25400\nS'editable'\np25401\nI00\nsS'value'\np25402\nI01\nssS'unique'\np25403\n(dp25404\nS'editable'\np25405\nI00\nsS'value'\np25406\nI00\nssS'properties'\np25407\n(dp25408\nS'default_value'\np25409\n(dp25410\nS'editable'\np25411\nI00\nsS'value'\np25412\nNssS'summary_default'\np25413\n(dp25414\nS'editable'\np25415\nI00\nsS'value'\np25416\nS'none'\np25417\nsssS'description'\np25418\n(dp25419\nS'editable'\np25420\nI01\nsS'value'\np25421\ng47\nssssS'TaskTemplate'\np25422\n(dp25423\nS'open_notes_count'\np25424\n(dp25425\nS'mandatory'\np25426\n(dp25427\nS'editable'\np25428\nI00\nsS'value'\np25429\nI00\nssS'name'\np25430\n(dp25431\nS'editable'\np25432\nI01\nsS'value'\np25433\nS'Open Notes Count'\np25434\nssS'data_type'\np25435\n(dp25436\nS'editable'\np25437\nI00\nsS'value'\np25438\nS'text'\np25439\nssS'entity_type'\np25440\n(dp25441\nS'editable'\np25442\nI00\nsS'value'\np25443\nS'TaskTemplate'\np25444\nssS'editable'\np25445\n(dp25446\nS'editable'\np25447\nI00\nsS'value'\np25448\nI00\nssS'unique'\np25449\n(dp25450\nS'editable'\np25451\nI00\nsS'value'\np25452\nI00\nssS'properties'\np25453\n(dp25454\nS'default_value'\np25455\n(dp25456\nS'editable'\np25457\nI00\nsS'value'\np25458\nNssS'summary_default'\np25459\n(dp25460\nS'editable'\np25461\nI01\nsS'value'\np25462\nS'none'\np25463\nsssS'description'\np25464\n(dp25465\nS'editable'\np25466\nI01\nsS'value'\np25467\ng47\nsssS'code'\np25468\n(dp25469\nS'mandatory'\np25470\n(dp25471\nS'editable'\np25472\nI00\nsS'value'\np25473\nI01\nssS'name'\np25474\n(dp25475\nS'editable'\np25476\nI01\nsS'value'\np25477\nS'Task Template Name'\np25478\nssS'data_type'\np25479\n(dp25480\nS'editable'\np25481\nI00\nsS'value'\np25482\nS'text'\np25483\nssS'entity_type'\np25484\n(dp25485\nS'editable'\np25486\nI00\nsS'value'\np25487\nS'TaskTemplate'\np25488\nssS'editable'\np25489\n(dp25490\nS'editable'\np25491\nI00\nsS'value'\np25492\nI01\nssS'unique'\np25493\n(dp25494\nS'editable'\np25495\nI00\nsS'value'\np25496\nI00\nssS'properties'\np25497\n(dp25498\nS'default_value'\np25499\n(dp25500\nS'editable'\np25501\nI00\nsS'value'\np25502\nNssS'summary_default'\np25503\n(dp25504\nS'editable'\np25505\nI01\nsS'value'\np25506\nS'none'\np25507\nsssS'description'\np25508\n(dp25509\nS'editable'\np25510\nI01\nsS'value'\np25511\ng47\nsssS'open_notes'\np25512\n(dp25513\nS'mandatory'\np25514\n(dp25515\nS'editable'\np25516\nI00\nsS'value'\np25517\nI00\nssS'name'\np25518\n(dp25519\nS'editable'\np25520\nI01\nsS'value'\np25521\nS'Open Notes'\np25522\nssS'data_type'\np25523\n(dp25524\nS'editable'\np25525\nI00\nsS'value'\np25526\nS'multi_entity'\np25527\nssS'entity_type'\np25528\n(dp25529\nS'editable'\np25530\nI00\nsS'value'\np25531\nS'TaskTemplate'\np25532\nssS'editable'\np25533\n(dp25534\nS'editable'\np25535\nI00\nsS'value'\np25536\nI00\nssS'unique'\np25537\n(dp25538\nS'editable'\np25539\nI00\nsS'value'\np25540\nI00\nssS'properties'\np25541\n(dp25542\nS'default_value'\np25543\n(dp25544\nS'editable'\np25545\nI00\nsS'value'\np25546\nNssS'summary_default'\np25547\n(dp25548\nS'editable'\np25549\nI01\nsS'value'\np25550\nS'none'\np25551\nssS'valid_types'\np25552\n(dp25553\nS'editable'\np25554\nI01\nsS'value'\np25555\n(lp25556\nS'Note'\np25557\nasssS'description'\np25558\n(dp25559\nS'editable'\np25560\nI01\nsS'value'\np25561\ng47\nsssS'description'\np25562\n(dp25563\nS'mandatory'\np25564\n(dp25565\nS'editable'\np25566\nI00\nsS'value'\np25567\nI00\nssS'name'\np25568\n(dp25569\nS'editable'\np25570\nI01\nsS'value'\np25571\nS'Description'\np25572\nssS'data_type'\np25573\n(dp25574\nS'editable'\np25575\nI00\nsS'value'\np25576\nS'text'\np25577\nssS'entity_type'\np25578\n(dp25579\nS'editable'\np25580\nI00\nsS'value'\np25581\nS'TaskTemplate'\np25582\nssS'editable'\np25583\n(dp25584\nS'editable'\np25585\nI00\nsS'value'\np25586\nI01\nssS'unique'\np25587\n(dp25588\nS'editable'\np25589\nI00\nsS'value'\np25590\nI00\nssS'properties'\np25591\n(dp25592\nS'default_value'\np25593\n(dp25594\nS'editable'\np25595\nI00\nsS'value'\np25596\nNssS'summary_default'\np25597\n(dp25598\nS'editable'\np25599\nI01\nsS'value'\np25600\nS'none'\np25601\nsssS'description'\np25602\n(dp25603\nS'editable'\np25604\nI01\nsS'value'\np25605\ng47\nsssS'entity_type'\np25606\n(dp25607\nS'mandatory'\np25608\n(dp25609\nS'editable'\np25610\nI00\nsS'value'\np25611\nI00\nssS'name'\np25612\n(dp25613\nS'editable'\np25614\nI01\nsS'value'\np25615\nS'Entity Type'\np25616\nssS'data_type'\np25617\n(dp25618\nS'editable'\np25619\nI00\nsS'value'\np25620\nS'entity_type'\np25621\nssS'entity_type'\np25622\n(dp25623\nS'editable'\np25624\nI00\nsS'value'\np25625\nS'TaskTemplate'\np25626\nssS'editable'\np25627\n(dp25628\nS'editable'\np25629\nI00\nsS'value'\np25630\nI00\nssS'unique'\np25631\n(dp25632\nS'editable'\np25633\nI00\nsS'value'\np25634\nI00\nssS'properties'\np25635\n(dp25636\nS'default_value'\np25637\n(dp25638\nS'editable'\np25639\nI00\nsS'value'\np25640\nNssS'summary_default'\np25641\n(dp25642\nS'editable'\np25643\nI01\nsS'value'\np25644\nS'none'\np25645\nsssS'description'\np25646\n(dp25647\nS'editable'\np25648\nI01\nsS'value'\np25649\ng47\nsssS'notes'\np25650\n(dp25651\nS'mandatory'\np25652\n(dp25653\nS'editable'\np25654\nI00\nsS'value'\np25655\nI00\nssS'name'\np25656\n(dp25657\nS'editable'\np25658\nI01\nsS'value'\np25659\nS'Notes'\np25660\nssS'data_type'\np25661\n(dp25662\nS'editable'\np25663\nI00\nsS'value'\np25664\nS'multi_entity'\np25665\nssS'entity_type'\np25666\n(dp25667\nS'editable'\np25668\nI00\nsS'value'\np25669\nS'TaskTemplate'\np25670\nssS'editable'\np25671\n(dp25672\nS'editable'\np25673\nI00\nsS'value'\np25674\nI01\nssS'unique'\np25675\n(dp25676\nS'editable'\np25677\nI00\nsS'value'\np25678\nI00\nssS'properties'\np25679\n(dp25680\nS'default_value'\np25681\n(dp25682\nS'editable'\np25683\nI00\nsS'value'\np25684\nNssS'summary_default'\np25685\n(dp25686\nS'editable'\np25687\nI01\nsS'value'\np25688\nS'none'\np25689\nssS'valid_types'\np25690\n(dp25691\nS'editable'\np25692\nI01\nsS'value'\np25693\n(lp25694\nS'Note'\np25695\nasssS'description'\np25696\n(dp25697\nS'editable'\np25698\nI01\nsS'value'\np25699\ng47\nsssS'created_at'\np25700\n(dp25701\nS'mandatory'\np25702\n(dp25703\nS'editable'\np25704\nI00\nsS'value'\np25705\nI00\nssS'name'\np25706\n(dp25707\nS'editable'\np25708\nI01\nsS'value'\np25709\nS'Date Created'\np25710\nssS'data_type'\np25711\n(dp25712\nS'editable'\np25713\nI00\nsS'value'\np25714\nS'date_time'\np25715\nssS'entity_type'\np25716\n(dp25717\nS'editable'\np25718\nI00\nsS'value'\np25719\nS'TaskTemplate'\np25720\nssS'editable'\np25721\n(dp25722\nS'editable'\np25723\nI00\nsS'value'\np25724\nI00\nssS'unique'\np25725\n(dp25726\nS'editable'\np25727\nI00\nsS'value'\np25728\nI00\nssS'properties'\np25729\n(dp25730\nS'default_value'\np25731\n(dp25732\nS'editable'\np25733\nI00\nsS'value'\np25734\nNssS'summary_default'\np25735\n(dp25736\nS'editable'\np25737\nI01\nsS'value'\np25738\nS'none'\np25739\nsssS'description'\np25740\n(dp25741\nS'editable'\np25742\nI01\nsS'value'\np25743\ng47\nsssS'updated_at'\np25744\n(dp25745\nS'mandatory'\np25746\n(dp25747\nS'editable'\np25748\nI00\nsS'value'\np25749\nI00\nssS'name'\np25750\n(dp25751\nS'editable'\np25752\nI01\nsS'value'\np25753\nS'Date Updated'\np25754\nssS'data_type'\np25755\n(dp25756\nS'editable'\np25757\nI00\nsS'value'\np25758\nS'date_time'\np25759\nssS'entity_type'\np25760\n(dp25761\nS'editable'\np25762\nI00\nsS'value'\np25763\nS'TaskTemplate'\np25764\nssS'editable'\np25765\n(dp25766\nS'editable'\np25767\nI00\nsS'value'\np25768\nI00\nssS'unique'\np25769\n(dp25770\nS'editable'\np25771\nI00\nsS'value'\np25772\nI00\nssS'properties'\np25773\n(dp25774\nS'default_value'\np25775\n(dp25776\nS'editable'\np25777\nI00\nsS'value'\np25778\nNssS'summary_default'\np25779\n(dp25780\nS'editable'\np25781\nI01\nsS'value'\np25782\nS'none'\np25783\nsssS'description'\np25784\n(dp25785\nS'editable'\np25786\nI01\nsS'value'\np25787\ng47\nsssS'created_by'\np25788\n(dp25789\nS'mandatory'\np25790\n(dp25791\nS'editable'\np25792\nI00\nsS'value'\np25793\nI00\nssS'name'\np25794\n(dp25795\nS'editable'\np25796\nI01\nsS'value'\np25797\nS'Created by'\np25798\nssS'data_type'\np25799\n(dp25800\nS'editable'\np25801\nI00\nsS'value'\np25802\nS'entity'\np25803\nssS'entity_type'\np25804\n(dp25805\nS'editable'\np25806\nI00\nsS'value'\np25807\nS'TaskTemplate'\np25808\nssS'editable'\np25809\n(dp25810\nS'editable'\np25811\nI00\nsS'value'\np25812\nI00\nssS'unique'\np25813\n(dp25814\nS'editable'\np25815\nI00\nsS'value'\np25816\nI00\nssS'properties'\np25817\n(dp25818\nS'default_value'\np25819\n(dp25820\nS'editable'\np25821\nI00\nsS'value'\np25822\nNssS'summary_default'\np25823\n(dp25824\nS'editable'\np25825\nI01\nsS'value'\np25826\nS'none'\np25827\nssS'valid_types'\np25828\n(dp25829\nS'editable'\np25830\nI01\nsS'value'\np25831\n(lp25832\nS'HumanUser'\np25833\naS'ApiUser'\np25834\nasssS'description'\np25835\n(dp25836\nS'editable'\np25837\nI01\nsS'value'\np25838\ng47\nsssS'task_count'\np25839\n(dp25840\nS'mandatory'\np25841\n(dp25842\nS'editable'\np25843\nI00\nsS'value'\np25844\nI00\nssS'name'\np25845\n(dp25846\nS'editable'\np25847\nI01\nsS'value'\np25848\nS'Tasks'\np25849\nssS'data_type'\np25850\n(dp25851\nS'editable'\np25852\nI00\nsS'value'\np25853\nS'number'\np25854\nssS'entity_type'\np25855\n(dp25856\nS'editable'\np25857\nI00\nsS'value'\np25858\nS'TaskTemplate'\np25859\nssS'editable'\np25860\n(dp25861\nS'editable'\np25862\nI00\nsS'value'\np25863\nI00\nssS'unique'\np25864\n(dp25865\nS'editable'\np25866\nI00\nsS'value'\np25867\nI00\nssS'properties'\np25868\n(dp25869\nS'default_value'\np25870\n(dp25871\nS'editable'\np25872\nI00\nsS'value'\np25873\nNssS'summary_default'\np25874\n(dp25875\nS'editable'\np25876\nI01\nsS'value'\np25877\nS'none'\np25878\nsssS'description'\np25879\n(dp25880\nS'editable'\np25881\nI01\nsS'value'\np25882\ng47\nsssS'cached_display_name'\np25883\n(dp25884\nS'mandatory'\np25885\n(dp25886\nS'editable'\np25887\nI00\nsS'value'\np25888\nI00\nssS'name'\np25889\n(dp25890\nS'editable'\np25891\nI01\nsS'value'\np25892\nS'Cached Display Name'\np25893\nssS'data_type'\np25894\n(dp25895\nS'editable'\np25896\nI00\nsS'value'\np25897\nS'text'\np25898\nssS'entity_type'\np25899\n(dp25900\nS'editable'\np25901\nI00\nsS'value'\np25902\nS'TaskTemplate'\np25903\nssS'editable'\np25904\n(dp25905\nS'editable'\np25906\nI00\nsS'value'\np25907\nI01\nssS'unique'\np25908\n(dp25909\nS'editable'\np25910\nI00\nsS'value'\np25911\nI00\nssS'properties'\np25912\n(dp25913\nS'default_value'\np25914\n(dp25915\nS'editable'\np25916\nI00\nsS'value'\np25917\nNssS'summary_default'\np25918\n(dp25919\nS'editable'\np25920\nI00\nsS'value'\np25921\nS'none'\np25922\nsssS'description'\np25923\n(dp25924\nS'editable'\np25925\nI01\nsS'value'\np25926\ng47\nsssS'id'\np25927\n(dp25928\nS'mandatory'\np25929\n(dp25930\nS'editable'\np25931\nI00\nsS'value'\np25932\nI00\nssS'name'\np25933\n(dp25934\nS'editable'\np25935\nI01\nsS'value'\np25936\nS'Id'\np25937\nssS'data_type'\np25938\n(dp25939\nS'editable'\np25940\nI00\nsS'value'\np25941\nS'number'\np25942\nssS'entity_type'\np25943\n(dp25944\nS'editable'\np25945\nI00\nsS'value'\np25946\nS'TaskTemplate'\np25947\nssS'editable'\np25948\n(dp25949\nS'editable'\np25950\nI00\nsS'value'\np25951\nI00\nssS'unique'\np25952\n(dp25953\nS'editable'\np25954\nI00\nsS'value'\np25955\nI00\nssS'properties'\np25956\n(dp25957\nS'default_value'\np25958\n(dp25959\nS'editable'\np25960\nI00\nsS'value'\np25961\nNssS'summary_default'\np25962\n(dp25963\nS'editable'\np25964\nI01\nsS'value'\np25965\nS'none'\np25966\nsssS'description'\np25967\n(dp25968\nS'editable'\np25969\nI01\nsS'value'\np25970\ng47\nsssS'updated_by'\np25971\n(dp25972\nS'mandatory'\np25973\n(dp25974\nS'editable'\np25975\nI00\nsS'value'\np25976\nI00\nssS'name'\np25977\n(dp25978\nS'editable'\np25979\nI01\nsS'value'\np25980\nS'Updated by'\np25981\nssS'data_type'\np25982\n(dp25983\nS'editable'\np25984\nI00\nsS'value'\np25985\nS'entity'\np25986\nssS'entity_type'\np25987\n(dp25988\nS'editable'\np25989\nI00\nsS'value'\np25990\nS'TaskTemplate'\np25991\nssS'editable'\np25992\n(dp25993\nS'editable'\np25994\nI00\nsS'value'\np25995\nI00\nssS'unique'\np25996\n(dp25997\nS'editable'\np25998\nI00\nsS'value'\np25999\nI00\nssS'properties'\np26000\n(dp26001\nS'default_value'\np26002\n(dp26003\nS'editable'\np26004\nI00\nsS'value'\np26005\nNssS'summary_default'\np26006\n(dp26007\nS'editable'\np26008\nI01\nsS'value'\np26009\nS'none'\np26010\nssS'valid_types'\np26011\n(dp26012\nS'editable'\np26013\nI01\nsS'value'\np26014\n(lp26015\nS'HumanUser'\np26016\naS'ApiUser'\np26017\nasssS'description'\np26018\n(dp26019\nS'editable'\np26020\nI01\nsS'value'\np26021\ng47\nssssS'RevisionTicketConnection'\np26022\n(dp26023\nS'id'\np26024\n(dp26025\nS'mandatory'\np26026\n(dp26027\nS'editable'\np26028\nI00\nsS'value'\np26029\nI01\nssS'name'\np26030\n(dp26031\nS'editable'\np26032\nI01\nsS'value'\np26033\nS'Id'\np26034\nssS'data_type'\np26035\n(dp26036\nS'editable'\np26037\nI00\nsS'value'\np26038\nS'number'\np26039\nssS'entity_type'\np26040\n(dp26041\nS'editable'\np26042\nI00\nsS'value'\np26043\nS'RevisionTicketConnection'\np26044\nssS'editable'\np26045\n(dp26046\nS'editable'\np26047\nI00\nsS'value'\np26048\nI00\nssS'unique'\np26049\n(dp26050\nS'editable'\np26051\nI00\nsS'value'\np26052\nI00\nssS'properties'\np26053\n(dp26054\nS'default_value'\np26055\n(dp26056\nS'editable'\np26057\nI00\nsS'value'\np26058\nNssS'summary_default'\np26059\n(dp26060\nS'editable'\np26061\nI00\nsS'value'\np26062\nS'none'\np26063\nsssS'description'\np26064\n(dp26065\nS'editable'\np26066\nI01\nsS'value'\np26067\ng47\nsssS'cached_display_name'\np26068\n(dp26069\nS'mandatory'\np26070\n(dp26071\nS'editable'\np26072\nI00\nsS'value'\np26073\nI00\nssS'name'\np26074\n(dp26075\nS'editable'\np26076\nI01\nsS'value'\np26077\nS'Cached Display Name'\np26078\nssS'data_type'\np26079\n(dp26080\nS'editable'\np26081\nI00\nsS'value'\np26082\nS'text'\np26083\nssS'entity_type'\np26084\n(dp26085\nS'editable'\np26086\nI00\nsS'value'\np26087\nS'RevisionTicketConnection'\np26088\nssS'editable'\np26089\n(dp26090\nS'editable'\np26091\nI00\nsS'value'\np26092\nI01\nssS'unique'\np26093\n(dp26094\nS'editable'\np26095\nI00\nsS'value'\np26096\nI00\nssS'properties'\np26097\n(dp26098\nS'default_value'\np26099\n(dp26100\nS'editable'\np26101\nI00\nsS'value'\np26102\nNssS'summary_default'\np26103\n(dp26104\nS'editable'\np26105\nI00\nsS'value'\np26106\nS'none'\np26107\nsssS'description'\np26108\n(dp26109\nS'editable'\np26110\nI01\nsS'value'\np26111\ng47\nsssS'ticket'\np26112\n(dp26113\nS'mandatory'\np26114\n(dp26115\nS'editable'\np26116\nI00\nsS'value'\np26117\nI00\nssS'name'\np26118\n(dp26119\nS'editable'\np26120\nI01\nsS'value'\np26121\nS'Ticket'\np26122\nssS'data_type'\np26123\n(dp26124\nS'editable'\np26125\nI00\nsS'value'\np26126\nS'entity'\np26127\nssS'entity_type'\np26128\n(dp26129\nS'editable'\np26130\nI00\nsS'value'\np26131\nS'RevisionTicketConnection'\np26132\nssS'editable'\np26133\n(dp26134\nS'editable'\np26135\nI00\nsS'value'\np26136\nI00\nssS'unique'\np26137\n(dp26138\nS'editable'\np26139\nI00\nsS'value'\np26140\nI00\nssS'properties'\np26141\n(dp26142\nS'default_value'\np26143\n(dp26144\nS'editable'\np26145\nI00\nsS'value'\np26146\nNssS'summary_default'\np26147\n(dp26148\nS'editable'\np26149\nI00\nsS'value'\np26150\nS'none'\np26151\nssS'valid_types'\np26152\n(dp26153\nS'editable'\np26154\nI00\nsS'value'\np26155\n(lp26156\nS'Ticket'\np26157\nasssS'description'\np26158\n(dp26159\nS'editable'\np26160\nI01\nsS'value'\np26161\ng47\nsssS'revision'\np26162\n(dp26163\nS'mandatory'\np26164\n(dp26165\nS'editable'\np26166\nI00\nsS'value'\np26167\nI00\nssS'name'\np26168\n(dp26169\nS'editable'\np26170\nI01\nsS'value'\np26171\nS'Revision'\np26172\nssS'data_type'\np26173\n(dp26174\nS'editable'\np26175\nI00\nsS'value'\np26176\nS'entity'\np26177\nssS'entity_type'\np26178\n(dp26179\nS'editable'\np26180\nI00\nsS'value'\np26181\nS'RevisionTicketConnection'\np26182\nssS'editable'\np26183\n(dp26184\nS'editable'\np26185\nI00\nsS'value'\np26186\nI00\nssS'unique'\np26187\n(dp26188\nS'editable'\np26189\nI00\nsS'value'\np26190\nI00\nssS'properties'\np26191\n(dp26192\nS'default_value'\np26193\n(dp26194\nS'editable'\np26195\nI00\nsS'value'\np26196\nNssS'summary_default'\np26197\n(dp26198\nS'editable'\np26199\nI00\nsS'value'\np26200\nS'none'\np26201\nssS'valid_types'\np26202\n(dp26203\nS'editable'\np26204\nI00\nsS'value'\np26205\n(lp26206\nS'Revision'\np26207\nasssS'description'\np26208\n(dp26209\nS'editable'\np26210\nI01\nsS'value'\np26211\ng47\nssssS'PerformerShootDayConnection'\np26212\n(dp26213\nS'cached_display_name'\np26214\n(dp26215\nS'mandatory'\np26216\n(dp26217\nS'editable'\np26218\nI00\nsS'value'\np26219\nI00\nssS'name'\np26220\n(dp26221\nS'editable'\np26222\nI01\nsS'value'\np26223\nS'Cached Display Name'\np26224\nssS'data_type'\np26225\n(dp26226\nS'editable'\np26227\nI00\nsS'value'\np26228\nS'text'\np26229\nssS'entity_type'\np26230\n(dp26231\nS'editable'\np26232\nI00\nsS'value'\np26233\nS'PerformerShootDayConnection'\np26234\nssS'editable'\np26235\n(dp26236\nS'editable'\np26237\nI00\nsS'value'\np26238\nI01\nssS'unique'\np26239\n(dp26240\nS'editable'\np26241\nI00\nsS'value'\np26242\nI00\nssS'properties'\np26243\n(dp26244\nS'default_value'\np26245\n(dp26246\nS'editable'\np26247\nI00\nsS'value'\np26248\nNssS'summary_default'\np26249\n(dp26250\nS'editable'\np26251\nI00\nsS'value'\np26252\nS'none'\np26253\nsssS'description'\np26254\n(dp26255\nS'editable'\np26256\nI01\nsS'value'\np26257\ng47\nsssS'performer'\np26258\n(dp26259\nS'mandatory'\np26260\n(dp26261\nS'editable'\np26262\nI00\nsS'value'\np26263\nI00\nssS'name'\np26264\n(dp26265\nS'editable'\np26266\nI01\nsS'value'\np26267\nS'Performer'\np26268\nssS'data_type'\np26269\n(dp26270\nS'editable'\np26271\nI00\nsS'value'\np26272\nS'entity'\np26273\nssS'entity_type'\np26274\n(dp26275\nS'editable'\np26276\nI00\nsS'value'\np26277\nS'PerformerShootDayConnection'\np26278\nssS'editable'\np26279\n(dp26280\nS'editable'\np26281\nI00\nsS'value'\np26282\nI00\nssS'unique'\np26283\n(dp26284\nS'editable'\np26285\nI00\nsS'value'\np26286\nI00\nssS'properties'\np26287\n(dp26288\nS'default_value'\np26289\n(dp26290\nS'editable'\np26291\nI00\nsS'value'\np26292\nNssS'summary_default'\np26293\n(dp26294\nS'editable'\np26295\nI00\nsS'value'\np26296\nS'none'\np26297\nssS'valid_types'\np26298\n(dp26299\nS'editable'\np26300\nI00\nsS'value'\np26301\n(lp26302\nS'Performer'\np26303\nasssS'description'\np26304\n(dp26305\nS'editable'\np26306\nI01\nsS'value'\np26307\ng47\nsssS'id'\np26308\n(dp26309\nS'mandatory'\np26310\n(dp26311\nS'editable'\np26312\nI00\nsS'value'\np26313\nI01\nssS'name'\np26314\n(dp26315\nS'editable'\np26316\nI01\nsS'value'\np26317\nS'Id'\np26318\nssS'data_type'\np26319\n(dp26320\nS'editable'\np26321\nI00\nsS'value'\np26322\nS'number'\np26323\nssS'entity_type'\np26324\n(dp26325\nS'editable'\np26326\nI00\nsS'value'\np26327\nS'PerformerShootDayConnection'\np26328\nssS'editable'\np26329\n(dp26330\nS'editable'\np26331\nI00\nsS'value'\np26332\nI00\nssS'unique'\np26333\n(dp26334\nS'editable'\np26335\nI00\nsS'value'\np26336\nI00\nssS'properties'\np26337\n(dp26338\nS'default_value'\np26339\n(dp26340\nS'editable'\np26341\nI00\nsS'value'\np26342\nNssS'summary_default'\np26343\n(dp26344\nS'editable'\np26345\nI00\nsS'value'\np26346\nS'none'\np26347\nsssS'description'\np26348\n(dp26349\nS'editable'\np26350\nI01\nsS'value'\np26351\ng47\nsssS'shoot_day'\np26352\n(dp26353\nS'mandatory'\np26354\n(dp26355\nS'editable'\np26356\nI00\nsS'value'\np26357\nI00\nssS'name'\np26358\n(dp26359\nS'editable'\np26360\nI01\nsS'value'\np26361\nS'Shoot Day'\np26362\nssS'data_type'\np26363\n(dp26364\nS'editable'\np26365\nI00\nsS'value'\np26366\nS'entity'\np26367\nssS'entity_type'\np26368\n(dp26369\nS'editable'\np26370\nI00\nsS'value'\np26371\nS'PerformerShootDayConnection'\np26372\nssS'editable'\np26373\n(dp26374\nS'editable'\np26375\nI00\nsS'value'\np26376\nI00\nssS'unique'\np26377\n(dp26378\nS'editable'\np26379\nI00\nsS'value'\np26380\nI00\nssS'properties'\np26381\n(dp26382\nS'default_value'\np26383\n(dp26384\nS'editable'\np26385\nI00\nsS'value'\np26386\nNssS'summary_default'\np26387\n(dp26388\nS'editable'\np26389\nI00\nsS'value'\np26390\nS'none'\np26391\nssS'valid_types'\np26392\n(dp26393\nS'editable'\np26394\nI00\nsS'value'\np26395\n(lp26396\nS'ShootDay'\np26397\nasssS'description'\np26398\n(dp26399\nS'editable'\np26400\nI01\nsS'value'\np26401\ng47\nssssS'PipelineConfiguration'\np26402\n(dp26403\nS'code'\np26404\n(dp26405\nS'mandatory'\np26406\n(dp26407\nS'editable'\np26408\nI00\nsS'value'\np26409\nI01\nssS'name'\np26410\n(dp26411\nS'editable'\np26412\nI01\nsS'value'\np26413\nS'Config Name'\np26414\nssS'data_type'\np26415\n(dp26416\nS'editable'\np26417\nI00\nsS'value'\np26418\nS'text'\np26419\nssS'entity_type'\np26420\n(dp26421\nS'editable'\np26422\nI00\nsS'value'\np26423\nS'PipelineConfiguration'\np26424\nssS'editable'\np26425\n(dp26426\nS'editable'\np26427\nI00\nsS'value'\np26428\nI01\nssS'unique'\np26429\n(dp26430\nS'editable'\np26431\nI00\nsS'value'\np26432\nI00\nssS'properties'\np26433\n(dp26434\nS'default_value'\np26435\n(dp26436\nS'editable'\np26437\nI00\nsS'value'\np26438\nNssS'summary_default'\np26439\n(dp26440\nS'editable'\np26441\nI00\nsS'value'\np26442\nS'none'\np26443\nsssS'description'\np26444\n(dp26445\nS'editable'\np26446\nI01\nsS'value'\np26447\ng47\nsssS'users'\np26448\n(dp26449\nS'mandatory'\np26450\n(dp26451\nS'editable'\np26452\nI00\nsS'value'\np26453\nI00\nssS'name'\np26454\n(dp26455\nS'editable'\np26456\nI01\nsS'value'\np26457\nS'User Restrictions'\np26458\nssS'data_type'\np26459\n(dp26460\nS'editable'\np26461\nI00\nsS'value'\np26462\nS'multi_entity'\np26463\nssS'entity_type'\np26464\n(dp26465\nS'editable'\np26466\nI00\nsS'value'\np26467\nS'PipelineConfiguration'\np26468\nssS'editable'\np26469\n(dp26470\nS'editable'\np26471\nI00\nsS'value'\np26472\nI01\nssS'unique'\np26473\n(dp26474\nS'editable'\np26475\nI00\nsS'value'\np26476\nI00\nssS'properties'\np26477\n(dp26478\nS'default_value'\np26479\n(dp26480\nS'editable'\np26481\nI00\nsS'value'\np26482\nNssS'summary_default'\np26483\n(dp26484\nS'editable'\np26485\nI00\nsS'value'\np26486\nS'none'\np26487\nssS'valid_types'\np26488\n(dp26489\nS'editable'\np26490\nI00\nsS'value'\np26491\n(lp26492\nS'HumanUser'\np26493\nasssS'description'\np26494\n(dp26495\nS'editable'\np26496\nI01\nsS'value'\np26497\ng47\nsssS'mac_path'\np26498\n(dp26499\nS'mandatory'\np26500\n(dp26501\nS'editable'\np26502\nI00\nsS'value'\np26503\nI00\nssS'name'\np26504\n(dp26505\nS'editable'\np26506\nI01\nsS'value'\np26507\nS'Mac Path'\np26508\nssS'data_type'\np26509\n(dp26510\nS'editable'\np26511\nI00\nsS'value'\np26512\nS'text'\np26513\nssS'entity_type'\np26514\n(dp26515\nS'editable'\np26516\nI00\nsS'value'\np26517\nS'PipelineConfiguration'\np26518\nssS'editable'\np26519\n(dp26520\nS'editable'\np26521\nI00\nsS'value'\np26522\nI01\nssS'unique'\np26523\n(dp26524\nS'editable'\np26525\nI00\nsS'value'\np26526\nI00\nssS'properties'\np26527\n(dp26528\nS'default_value'\np26529\n(dp26530\nS'editable'\np26531\nI00\nsS'value'\np26532\nNssS'summary_default'\np26533\n(dp26534\nS'editable'\np26535\nI00\nsS'value'\np26536\nS'none'\np26537\nsssS'description'\np26538\n(dp26539\nS'editable'\np26540\nI01\nsS'value'\np26541\ng47\nsssS'created_at'\np26542\n(dp26543\nS'mandatory'\np26544\n(dp26545\nS'editable'\np26546\nI00\nsS'value'\np26547\nI00\nssS'name'\np26548\n(dp26549\nS'editable'\np26550\nI01\nsS'value'\np26551\nS'Date Created'\np26552\nssS'data_type'\np26553\n(dp26554\nS'editable'\np26555\nI00\nsS'value'\np26556\nS'date_time'\np26557\nssS'entity_type'\np26558\n(dp26559\nS'editable'\np26560\nI00\nsS'value'\np26561\nS'PipelineConfiguration'\np26562\nssS'editable'\np26563\n(dp26564\nS'editable'\np26565\nI00\nsS'value'\np26566\nI00\nssS'unique'\np26567\n(dp26568\nS'editable'\np26569\nI00\nsS'value'\np26570\nI00\nssS'properties'\np26571\n(dp26572\nS'default_value'\np26573\n(dp26574\nS'editable'\np26575\nI00\nsS'value'\np26576\nNssS'summary_default'\np26577\n(dp26578\nS'editable'\np26579\nI01\nsS'value'\np26580\nS'none'\np26581\nsssS'description'\np26582\n(dp26583\nS'editable'\np26584\nI01\nsS'value'\np26585\ng47\nsssS'updated_at'\np26586\n(dp26587\nS'mandatory'\np26588\n(dp26589\nS'editable'\np26590\nI00\nsS'value'\np26591\nI00\nssS'name'\np26592\n(dp26593\nS'editable'\np26594\nI01\nsS'value'\np26595\nS'Date Updated'\np26596\nssS'data_type'\np26597\n(dp26598\nS'editable'\np26599\nI00\nsS'value'\np26600\nS'date_time'\np26601\nssS'entity_type'\np26602\n(dp26603\nS'editable'\np26604\nI00\nsS'value'\np26605\nS'PipelineConfiguration'\np26606\nssS'editable'\np26607\n(dp26608\nS'editable'\np26609\nI00\nsS'value'\np26610\nI00\nssS'unique'\np26611\n(dp26612\nS'editable'\np26613\nI00\nsS'value'\np26614\nI00\nssS'properties'\np26615\n(dp26616\nS'default_value'\np26617\n(dp26618\nS'editable'\np26619\nI00\nsS'value'\np26620\nNssS'summary_default'\np26621\n(dp26622\nS'editable'\np26623\nI01\nsS'value'\np26624\nS'none'\np26625\nsssS'description'\np26626\n(dp26627\nS'editable'\np26628\nI01\nsS'value'\np26629\ng47\nsssS'created_by'\np26630\n(dp26631\nS'mandatory'\np26632\n(dp26633\nS'editable'\np26634\nI00\nsS'value'\np26635\nI00\nssS'name'\np26636\n(dp26637\nS'editable'\np26638\nI01\nsS'value'\np26639\nS'Created by'\np26640\nssS'data_type'\np26641\n(dp26642\nS'editable'\np26643\nI00\nsS'value'\np26644\nS'entity'\np26645\nssS'entity_type'\np26646\n(dp26647\nS'editable'\np26648\nI00\nsS'value'\np26649\nS'PipelineConfiguration'\np26650\nssS'editable'\np26651\n(dp26652\nS'editable'\np26653\nI00\nsS'value'\np26654\nI00\nssS'unique'\np26655\n(dp26656\nS'editable'\np26657\nI00\nsS'value'\np26658\nI00\nssS'properties'\np26659\n(dp26660\nS'default_value'\np26661\n(dp26662\nS'editable'\np26663\nI00\nsS'value'\np26664\nNssS'summary_default'\np26665\n(dp26666\nS'editable'\np26667\nI01\nsS'value'\np26668\nS'none'\np26669\nssS'valid_types'\np26670\n(dp26671\nS'editable'\np26672\nI01\nsS'value'\np26673\n(lp26674\nS'HumanUser'\np26675\naS'ApiUser'\np26676\nasssS'description'\np26677\n(dp26678\nS'editable'\np26679\nI01\nsS'value'\np26680\ng47\nsssS'project'\np26681\n(dp26682\nS'mandatory'\np26683\n(dp26684\nS'editable'\np26685\nI00\nsS'value'\np26686\nI00\nssS'name'\np26687\n(dp26688\nS'editable'\np26689\nI01\nsS'value'\np26690\nS'Project'\np26691\nssS'data_type'\np26692\n(dp26693\nS'editable'\np26694\nI00\nsS'value'\np26695\nS'entity'\np26696\nssS'entity_type'\np26697\n(dp26698\nS'editable'\np26699\nI00\nsS'value'\np26700\nS'PipelineConfiguration'\np26701\nssS'editable'\np26702\n(dp26703\nS'editable'\np26704\nI00\nsS'value'\np26705\nI01\nssS'unique'\np26706\n(dp26707\nS'editable'\np26708\nI00\nsS'value'\np26709\nI00\nssS'properties'\np26710\n(dp26711\nS'default_value'\np26712\n(dp26713\nS'editable'\np26714\nI00\nsS'value'\np26715\nNssS'summary_default'\np26716\n(dp26717\nS'editable'\np26718\nI00\nsS'value'\np26719\nS'none'\np26720\nssS'valid_types'\np26721\n(dp26722\nS'editable'\np26723\nI00\nsS'value'\np26724\n(lp26725\nS'Project'\np26726\nasssS'description'\np26727\n(dp26728\nS'editable'\np26729\nI01\nsS'value'\np26730\ng47\nsssS'windows_path'\np26731\n(dp26732\nS'mandatory'\np26733\n(dp26734\nS'editable'\np26735\nI00\nsS'value'\np26736\nI00\nssS'name'\np26737\n(dp26738\nS'editable'\np26739\nI01\nsS'value'\np26740\nS'Windows Path'\np26741\nssS'data_type'\np26742\n(dp26743\nS'editable'\np26744\nI00\nsS'value'\np26745\nS'text'\np26746\nssS'entity_type'\np26747\n(dp26748\nS'editable'\np26749\nI00\nsS'value'\np26750\nS'PipelineConfiguration'\np26751\nssS'editable'\np26752\n(dp26753\nS'editable'\np26754\nI00\nsS'value'\np26755\nI01\nssS'unique'\np26756\n(dp26757\nS'editable'\np26758\nI00\nsS'value'\np26759\nI00\nssS'properties'\np26760\n(dp26761\nS'default_value'\np26762\n(dp26763\nS'editable'\np26764\nI00\nsS'value'\np26765\nNssS'summary_default'\np26766\n(dp26767\nS'editable'\np26768\nI00\nsS'value'\np26769\nS'none'\np26770\nsssS'description'\np26771\n(dp26772\nS'editable'\np26773\nI01\nsS'value'\np26774\ng47\nsssS'image'\np26775\n(dp26776\nS'mandatory'\np26777\n(dp26778\nS'editable'\np26779\nI00\nsS'value'\np26780\nI00\nssS'name'\np26781\n(dp26782\nS'editable'\np26783\nI01\nsS'value'\np26784\nS'Thumbnail'\np26785\nssS'data_type'\np26786\n(dp26787\nS'editable'\np26788\nI00\nsS'value'\np26789\nS'image'\np26790\nssS'entity_type'\np26791\n(dp26792\nS'editable'\np26793\nI00\nsS'value'\np26794\nS'PipelineConfiguration'\np26795\nssS'editable'\np26796\n(dp26797\nS'editable'\np26798\nI00\nsS'value'\np26799\nI01\nssS'unique'\np26800\n(dp26801\nS'editable'\np26802\nI00\nsS'value'\np26803\nI00\nssS'properties'\np26804\n(dp26805\nS'default_value'\np26806\n(dp26807\nS'editable'\np26808\nI00\nsS'value'\np26809\nNssS'summary_default'\np26810\n(dp26811\nS'editable'\np26812\nI01\nsS'value'\np26813\nS'none'\np26814\nsssS'description'\np26815\n(dp26816\nS'editable'\np26817\nI01\nsS'value'\np26818\ng47\nsssS'updated_by'\np26819\n(dp26820\nS'mandatory'\np26821\n(dp26822\nS'editable'\np26823\nI00\nsS'value'\np26824\nI00\nssS'name'\np26825\n(dp26826\nS'editable'\np26827\nI01\nsS'value'\np26828\nS'Updated by'\np26829\nssS'data_type'\np26830\n(dp26831\nS'editable'\np26832\nI00\nsS'value'\np26833\nS'entity'\np26834\nssS'entity_type'\np26835\n(dp26836\nS'editable'\np26837\nI00\nsS'value'\np26838\nS'PipelineConfiguration'\np26839\nssS'editable'\np26840\n(dp26841\nS'editable'\np26842\nI00\nsS'value'\np26843\nI00\nssS'unique'\np26844\n(dp26845\nS'editable'\np26846\nI00\nsS'value'\np26847\nI00\nssS'properties'\np26848\n(dp26849\nS'default_value'\np26850\n(dp26851\nS'editable'\np26852\nI00\nsS'value'\np26853\nNssS'summary_default'\np26854\n(dp26855\nS'editable'\np26856\nI01\nsS'value'\np26857\nS'none'\np26858\nssS'valid_types'\np26859\n(dp26860\nS'editable'\np26861\nI01\nsS'value'\np26862\n(lp26863\nS'HumanUser'\np26864\naS'ApiUser'\np26865\nasssS'description'\np26866\n(dp26867\nS'editable'\np26868\nI01\nsS'value'\np26869\ng47\nsssS'cached_display_name'\np26870\n(dp26871\nS'mandatory'\np26872\n(dp26873\nS'editable'\np26874\nI00\nsS'value'\np26875\nI00\nssS'name'\np26876\n(dp26877\nS'editable'\np26878\nI01\nsS'value'\np26879\nS'Cached Display Name'\np26880\nssS'data_type'\np26881\n(dp26882\nS'editable'\np26883\nI00\nsS'value'\np26884\nS'text'\np26885\nssS'entity_type'\np26886\n(dp26887\nS'editable'\np26888\nI00\nsS'value'\np26889\nS'PipelineConfiguration'\np26890\nssS'editable'\np26891\n(dp26892\nS'editable'\np26893\nI00\nsS'value'\np26894\nI01\nssS'unique'\np26895\n(dp26896\nS'editable'\np26897\nI00\nsS'value'\np26898\nI00\nssS'properties'\np26899\n(dp26900\nS'default_value'\np26901\n(dp26902\nS'editable'\np26903\nI00\nsS'value'\np26904\nNssS'summary_default'\np26905\n(dp26906\nS'editable'\np26907\nI00\nsS'value'\np26908\nS'none'\np26909\nsssS'description'\np26910\n(dp26911\nS'editable'\np26912\nI01\nsS'value'\np26913\ng47\nsssS'tag_list'\np26914\n(dp26915\nS'mandatory'\np26916\n(dp26917\nS'editable'\np26918\nI00\nsS'value'\np26919\nI00\nssS'name'\np26920\n(dp26921\nS'editable'\np26922\nI01\nsS'value'\np26923\nS'Tags'\np26924\nssS'data_type'\np26925\n(dp26926\nS'editable'\np26927\nI00\nsS'value'\np26928\nS'tag_list'\np26929\nssS'entity_type'\np26930\n(dp26931\nS'editable'\np26932\nI00\nsS'value'\np26933\nS'PipelineConfiguration'\np26934\nssS'editable'\np26935\n(dp26936\nS'editable'\np26937\nI00\nsS'value'\np26938\nI01\nssS'unique'\np26939\n(dp26940\nS'editable'\np26941\nI00\nsS'value'\np26942\nI00\nssS'properties'\np26943\n(dp26944\nS'default_value'\np26945\n(dp26946\nS'editable'\np26947\nI00\nsS'value'\np26948\nNssS'summary_default'\np26949\n(dp26950\nS'editable'\np26951\nI01\nsS'value'\np26952\nS'none'\np26953\nssS'valid_types'\np26954\n(dp26955\nS'editable'\np26956\nI01\nsS'value'\np26957\n(lp26958\nS'Tag'\np26959\nasssS'description'\np26960\n(dp26961\nS'editable'\np26962\nI01\nsS'value'\np26963\ng47\nsssS'id'\np26964\n(dp26965\nS'mandatory'\np26966\n(dp26967\nS'editable'\np26968\nI00\nsS'value'\np26969\nI00\nssS'name'\np26970\n(dp26971\nS'editable'\np26972\nI01\nsS'value'\np26973\nS'Id'\np26974\nssS'data_type'\np26975\n(dp26976\nS'editable'\np26977\nI00\nsS'value'\np26978\nS'number'\np26979\nssS'entity_type'\np26980\n(dp26981\nS'editable'\np26982\nI00\nsS'value'\np26983\nS'PipelineConfiguration'\np26984\nssS'editable'\np26985\n(dp26986\nS'editable'\np26987\nI00\nsS'value'\np26988\nI00\nssS'unique'\np26989\n(dp26990\nS'editable'\np26991\nI00\nsS'value'\np26992\nI00\nssS'properties'\np26993\n(dp26994\nS'default_value'\np26995\n(dp26996\nS'editable'\np26997\nI00\nsS'value'\np26998\nNssS'summary_default'\np26999\n(dp27000\nS'editable'\np27001\nI01\nsS'value'\np27002\nS'none'\np27003\nsssS'description'\np27004\n(dp27005\nS'editable'\np27006\nI01\nsS'value'\np27007\ng47\nsssS'linux_path'\np27008\n(dp27009\nS'mandatory'\np27010\n(dp27011\nS'editable'\np27012\nI00\nsS'value'\np27013\nI00\nssS'name'\np27014\n(dp27015\nS'editable'\np27016\nI01\nsS'value'\np27017\nS'Linux Path'\np27018\nssS'data_type'\np27019\n(dp27020\nS'editable'\np27021\nI00\nsS'value'\np27022\nS'text'\np27023\nssS'entity_type'\np27024\n(dp27025\nS'editable'\np27026\nI00\nsS'value'\np27027\nS'PipelineConfiguration'\np27028\nssS'editable'\np27029\n(dp27030\nS'editable'\np27031\nI00\nsS'value'\np27032\nI01\nssS'unique'\np27033\n(dp27034\nS'editable'\np27035\nI00\nsS'value'\np27036\nI00\nssS'properties'\np27037\n(dp27038\nS'default_value'\np27039\n(dp27040\nS'editable'\np27041\nI00\nsS'value'\np27042\nNssS'summary_default'\np27043\n(dp27044\nS'editable'\np27045\nI00\nsS'value'\np27046\nS'none'\np27047\nsssS'description'\np27048\n(dp27049\nS'editable'\np27050\nI01\nsS'value'\np27051\ng47\nsssS'description'\np27052\n(dp27053\nS'mandatory'\np27054\n(dp27055\nS'editable'\np27056\nI00\nsS'value'\np27057\nI00\nssS'name'\np27058\n(dp27059\nS'editable'\np27060\nI01\nsS'value'\np27061\nS'Description'\np27062\nssS'data_type'\np27063\n(dp27064\nS'editable'\np27065\nI00\nsS'value'\np27066\nS'text'\np27067\nssS'entity_type'\np27068\n(dp27069\nS'editable'\np27070\nI00\nsS'value'\np27071\nS'PipelineConfiguration'\np27072\nssS'editable'\np27073\n(dp27074\nS'editable'\np27075\nI00\nsS'value'\np27076\nI01\nssS'unique'\np27077\n(dp27078\nS'editable'\np27079\nI00\nsS'value'\np27080\nI00\nssS'properties'\np27081\n(dp27082\nS'default_value'\np27083\n(dp27084\nS'editable'\np27085\nI00\nsS'value'\np27086\nNssS'summary_default'\np27087\n(dp27088\nS'editable'\np27089\nI00\nsS'value'\np27090\nS'none'\np27091\nsssS'description'\np27092\n(dp27093\nS'editable'\np27094\nI01\nsS'value'\np27095\ng47\nssssS'LaunchSceneConnection'\np27096\n(dp27097\nS'id'\np27098\n(dp27099\nS'mandatory'\np27100\n(dp27101\nS'editable'\np27102\nI00\nsS'value'\np27103\nI01\nssS'name'\np27104\n(dp27105\nS'editable'\np27106\nI01\nsS'value'\np27107\nS'Id'\np27108\nssS'data_type'\np27109\n(dp27110\nS'editable'\np27111\nI00\nsS'value'\np27112\nS'number'\np27113\nssS'entity_type'\np27114\n(dp27115\nS'editable'\np27116\nI00\nsS'value'\np27117\nS'LaunchSceneConnection'\np27118\nssS'editable'\np27119\n(dp27120\nS'editable'\np27121\nI00\nsS'value'\np27122\nI00\nssS'unique'\np27123\n(dp27124\nS'editable'\np27125\nI00\nsS'value'\np27126\nI00\nssS'properties'\np27127\n(dp27128\nS'default_value'\np27129\n(dp27130\nS'editable'\np27131\nI00\nsS'value'\np27132\nNssS'summary_default'\np27133\n(dp27134\nS'editable'\np27135\nI00\nsS'value'\np27136\nS'none'\np27137\nsssS'description'\np27138\n(dp27139\nS'editable'\np27140\nI01\nsS'value'\np27141\ng47\nsssS'cached_display_name'\np27142\n(dp27143\nS'mandatory'\np27144\n(dp27145\nS'editable'\np27146\nI00\nsS'value'\np27147\nI00\nssS'name'\np27148\n(dp27149\nS'editable'\np27150\nI01\nsS'value'\np27151\nS'Cached Display Name'\np27152\nssS'data_type'\np27153\n(dp27154\nS'editable'\np27155\nI00\nsS'value'\np27156\nS'text'\np27157\nssS'entity_type'\np27158\n(dp27159\nS'editable'\np27160\nI00\nsS'value'\np27161\nS'LaunchSceneConnection'\np27162\nssS'editable'\np27163\n(dp27164\nS'editable'\np27165\nI00\nsS'value'\np27166\nI01\nssS'unique'\np27167\n(dp27168\nS'editable'\np27169\nI00\nsS'value'\np27170\nI00\nssS'properties'\np27171\n(dp27172\nS'default_value'\np27173\n(dp27174\nS'editable'\np27175\nI00\nsS'value'\np27176\nNssS'summary_default'\np27177\n(dp27178\nS'editable'\np27179\nI00\nsS'value'\np27180\nS'none'\np27181\nsssS'description'\np27182\n(dp27183\nS'editable'\np27184\nI01\nsS'value'\np27185\ng47\nsssS'scene'\np27186\n(dp27187\nS'mandatory'\np27188\n(dp27189\nS'editable'\np27190\nI00\nsS'value'\np27191\nI00\nssS'name'\np27192\n(dp27193\nS'editable'\np27194\nI01\nsS'value'\np27195\nS'Scene'\np27196\nssS'data_type'\np27197\n(dp27198\nS'editable'\np27199\nI00\nsS'value'\np27200\nS'entity'\np27201\nssS'entity_type'\np27202\n(dp27203\nS'editable'\np27204\nI00\nsS'value'\np27205\nS'LaunchSceneConnection'\np27206\nssS'editable'\np27207\n(dp27208\nS'editable'\np27209\nI00\nsS'value'\np27210\nI00\nssS'unique'\np27211\n(dp27212\nS'editable'\np27213\nI00\nsS'value'\np27214\nI00\nssS'properties'\np27215\n(dp27216\nS'default_value'\np27217\n(dp27218\nS'editable'\np27219\nI00\nsS'value'\np27220\nNssS'summary_default'\np27221\n(dp27222\nS'editable'\np27223\nI00\nsS'value'\np27224\nS'none'\np27225\nssS'valid_types'\np27226\n(dp27227\nS'editable'\np27228\nI00\nsS'value'\np27229\n(lp27230\nS'Scene'\np27231\nasssS'description'\np27232\n(dp27233\nS'editable'\np27234\nI01\nsS'value'\np27235\ng47\nsssS'launch'\np27236\n(dp27237\nS'mandatory'\np27238\n(dp27239\nS'editable'\np27240\nI00\nsS'value'\np27241\nI00\nssS'name'\np27242\n(dp27243\nS'editable'\np27244\nI01\nsS'value'\np27245\nS'Launch'\np27246\nssS'data_type'\np27247\n(dp27248\nS'editable'\np27249\nI00\nsS'value'\np27250\nS'entity'\np27251\nssS'entity_type'\np27252\n(dp27253\nS'editable'\np27254\nI00\nsS'value'\np27255\nS'LaunchSceneConnection'\np27256\nssS'editable'\np27257\n(dp27258\nS'editable'\np27259\nI00\nsS'value'\np27260\nI00\nssS'unique'\np27261\n(dp27262\nS'editable'\np27263\nI00\nsS'value'\np27264\nI00\nssS'properties'\np27265\n(dp27266\nS'default_value'\np27267\n(dp27268\nS'editable'\np27269\nI00\nsS'value'\np27270\nNssS'summary_default'\np27271\n(dp27272\nS'editable'\np27273\nI00\nsS'value'\np27274\nS'none'\np27275\nssS'valid_types'\np27276\n(dp27277\nS'editable'\np27278\nI00\nsS'value'\np27279\n(lp27280\nS'Launch'\np27281\nasssS'description'\np27282\n(dp27283\nS'editable'\np27284\nI01\nsS'value'\np27285\ng47\nssssS'GroupUserConnection'\np27286\n(dp27287\nS'cached_display_name'\np27288\n(dp27289\nS'mandatory'\np27290\n(dp27291\nS'editable'\np27292\nI00\nsS'value'\np27293\nI00\nssS'name'\np27294\n(dp27295\nS'editable'\np27296\nI01\nsS'value'\np27297\nS'Cached Display Name'\np27298\nssS'data_type'\np27299\n(dp27300\nS'editable'\np27301\nI00\nsS'value'\np27302\nS'text'\np27303\nssS'entity_type'\np27304\n(dp27305\nS'editable'\np27306\nI00\nsS'value'\np27307\nS'GroupUserConnection'\np27308\nssS'editable'\np27309\n(dp27310\nS'editable'\np27311\nI00\nsS'value'\np27312\nI01\nssS'unique'\np27313\n(dp27314\nS'editable'\np27315\nI00\nsS'value'\np27316\nI00\nssS'properties'\np27317\n(dp27318\nS'default_value'\np27319\n(dp27320\nS'editable'\np27321\nI00\nsS'value'\np27322\nNssS'summary_default'\np27323\n(dp27324\nS'editable'\np27325\nI00\nsS'value'\np27326\nS'none'\np27327\nsssS'description'\np27328\n(dp27329\nS'editable'\np27330\nI01\nsS'value'\np27331\ng47\nsssS'group'\np27332\n(dp27333\nS'mandatory'\np27334\n(dp27335\nS'editable'\np27336\nI00\nsS'value'\np27337\nI00\nssS'name'\np27338\n(dp27339\nS'editable'\np27340\nI01\nsS'value'\np27341\nS'Group'\np27342\nssS'data_type'\np27343\n(dp27344\nS'editable'\np27345\nI00\nsS'value'\np27346\nS'entity'\np27347\nssS'entity_type'\np27348\n(dp27349\nS'editable'\np27350\nI00\nsS'value'\np27351\nS'GroupUserConnection'\np27352\nssS'editable'\np27353\n(dp27354\nS'editable'\np27355\nI00\nsS'value'\np27356\nI00\nssS'unique'\np27357\n(dp27358\nS'editable'\np27359\nI00\nsS'value'\np27360\nI00\nssS'properties'\np27361\n(dp27362\nS'default_value'\np27363\n(dp27364\nS'editable'\np27365\nI00\nsS'value'\np27366\nNssS'summary_default'\np27367\n(dp27368\nS'editable'\np27369\nI00\nsS'value'\np27370\nS'none'\np27371\nssS'valid_types'\np27372\n(dp27373\nS'editable'\np27374\nI00\nsS'value'\np27375\n(lp27376\nS'Group'\np27377\nasssS'description'\np27378\n(dp27379\nS'editable'\np27380\nI01\nsS'value'\np27381\ng47\nsssS'id'\np27382\n(dp27383\nS'mandatory'\np27384\n(dp27385\nS'editable'\np27386\nI00\nsS'value'\np27387\nI01\nssS'name'\np27388\n(dp27389\nS'editable'\np27390\nI01\nsS'value'\np27391\nS'Id'\np27392\nssS'data_type'\np27393\n(dp27394\nS'editable'\np27395\nI00\nsS'value'\np27396\nS'number'\np27397\nssS'entity_type'\np27398\n(dp27399\nS'editable'\np27400\nI00\nsS'value'\np27401\nS'GroupUserConnection'\np27402\nssS'editable'\np27403\n(dp27404\nS'editable'\np27405\nI00\nsS'value'\np27406\nI00\nssS'unique'\np27407\n(dp27408\nS'editable'\np27409\nI00\nsS'value'\np27410\nI00\nssS'properties'\np27411\n(dp27412\nS'default_value'\np27413\n(dp27414\nS'editable'\np27415\nI00\nsS'value'\np27416\nNssS'summary_default'\np27417\n(dp27418\nS'editable'\np27419\nI00\nsS'value'\np27420\nS'none'\np27421\nsssS'description'\np27422\n(dp27423\nS'editable'\np27424\nI01\nsS'value'\np27425\ng47\nsssS'user'\np27426\n(dp27427\nS'mandatory'\np27428\n(dp27429\nS'editable'\np27430\nI00\nsS'value'\np27431\nI00\nssS'name'\np27432\n(dp27433\nS'editable'\np27434\nI01\nsS'value'\np27435\nS'Person'\np27436\nssS'data_type'\np27437\n(dp27438\nS'editable'\np27439\nI00\nsS'value'\np27440\nS'entity'\np27441\nssS'entity_type'\np27442\n(dp27443\nS'editable'\np27444\nI00\nsS'value'\np27445\nS'GroupUserConnection'\np27446\nssS'editable'\np27447\n(dp27448\nS'editable'\np27449\nI00\nsS'value'\np27450\nI00\nssS'unique'\np27451\n(dp27452\nS'editable'\np27453\nI00\nsS'value'\np27454\nI00\nssS'properties'\np27455\n(dp27456\nS'default_value'\np27457\n(dp27458\nS'editable'\np27459\nI00\nsS'value'\np27460\nNssS'summary_default'\np27461\n(dp27462\nS'editable'\np27463\nI00\nsS'value'\np27464\nS'none'\np27465\nssS'valid_types'\np27466\n(dp27467\nS'editable'\np27468\nI00\nsS'value'\np27469\n(lp27470\nS'HumanUser'\np27471\nasssS'description'\np27472\n(dp27473\nS'editable'\np27474\nI01\nsS'value'\np27475\ng47\nssssS'AssetSequenceConnection'\np27476\n(dp27477\nS'id'\np27478\n(dp27479\nS'mandatory'\np27480\n(dp27481\nS'editable'\np27482\nI00\nsS'value'\np27483\nI01\nssS'name'\np27484\n(dp27485\nS'editable'\np27486\nI01\nsS'value'\np27487\nS'Id'\np27488\nssS'data_type'\np27489\n(dp27490\nS'editable'\np27491\nI00\nsS'value'\np27492\nS'number'\np27493\nssS'entity_type'\np27494\n(dp27495\nS'editable'\np27496\nI00\nsS'value'\np27497\nS'AssetSequenceConnection'\np27498\nssS'editable'\np27499\n(dp27500\nS'editable'\np27501\nI00\nsS'value'\np27502\nI00\nssS'unique'\np27503\n(dp27504\nS'editable'\np27505\nI00\nsS'value'\np27506\nI00\nssS'properties'\np27507\n(dp27508\nS'default_value'\np27509\n(dp27510\nS'editable'\np27511\nI00\nsS'value'\np27512\nNssS'summary_default'\np27513\n(dp27514\nS'editable'\np27515\nI00\nsS'value'\np27516\nS'none'\np27517\nsssS'description'\np27518\n(dp27519\nS'editable'\np27520\nI01\nsS'value'\np27521\ng47\nsssS'cached_display_name'\np27522\n(dp27523\nS'mandatory'\np27524\n(dp27525\nS'editable'\np27526\nI00\nsS'value'\np27527\nI00\nssS'name'\np27528\n(dp27529\nS'editable'\np27530\nI01\nsS'value'\np27531\nS'Cached Display Name'\np27532\nssS'data_type'\np27533\n(dp27534\nS'editable'\np27535\nI00\nsS'value'\np27536\nS'text'\np27537\nssS'entity_type'\np27538\n(dp27539\nS'editable'\np27540\nI00\nsS'value'\np27541\nS'AssetSequenceConnection'\np27542\nssS'editable'\np27543\n(dp27544\nS'editable'\np27545\nI00\nsS'value'\np27546\nI01\nssS'unique'\np27547\n(dp27548\nS'editable'\np27549\nI00\nsS'value'\np27550\nI00\nssS'properties'\np27551\n(dp27552\nS'default_value'\np27553\n(dp27554\nS'editable'\np27555\nI00\nsS'value'\np27556\nNssS'summary_default'\np27557\n(dp27558\nS'editable'\np27559\nI00\nsS'value'\np27560\nS'none'\np27561\nsssS'description'\np27562\n(dp27563\nS'editable'\np27564\nI01\nsS'value'\np27565\ng47\nsssS'asset'\np27566\n(dp27567\nS'mandatory'\np27568\n(dp27569\nS'editable'\np27570\nI00\nsS'value'\np27571\nI00\nssS'name'\np27572\n(dp27573\nS'editable'\np27574\nI01\nsS'value'\np27575\nS'Asset'\np27576\nssS'data_type'\np27577\n(dp27578\nS'editable'\np27579\nI00\nsS'value'\np27580\nS'entity'\np27581\nssS'entity_type'\np27582\n(dp27583\nS'editable'\np27584\nI00\nsS'value'\np27585\nS'AssetSequenceConnection'\np27586\nssS'editable'\np27587\n(dp27588\nS'editable'\np27589\nI00\nsS'value'\np27590\nI00\nssS'unique'\np27591\n(dp27592\nS'editable'\np27593\nI00\nsS'value'\np27594\nI00\nssS'properties'\np27595\n(dp27596\nS'default_value'\np27597\n(dp27598\nS'editable'\np27599\nI00\nsS'value'\np27600\nNssS'summary_default'\np27601\n(dp27602\nS'editable'\np27603\nI00\nsS'value'\np27604\nS'none'\np27605\nssS'valid_types'\np27606\n(dp27607\nS'editable'\np27608\nI00\nsS'value'\np27609\n(lp27610\nS'Asset'\np27611\nasssS'description'\np27612\n(dp27613\nS'editable'\np27614\nI01\nsS'value'\np27615\ng47\nsssS'sequence'\np27616\n(dp27617\nS'mandatory'\np27618\n(dp27619\nS'editable'\np27620\nI00\nsS'value'\np27621\nI00\nssS'name'\np27622\n(dp27623\nS'editable'\np27624\nI01\nsS'value'\np27625\nS'Sequence'\np27626\nssS'data_type'\np27627\n(dp27628\nS'editable'\np27629\nI00\nsS'value'\np27630\nS'entity'\np27631\nssS'entity_type'\np27632\n(dp27633\nS'editable'\np27634\nI00\nsS'value'\np27635\nS'AssetSequenceConnection'\np27636\nssS'editable'\np27637\n(dp27638\nS'editable'\np27639\nI00\nsS'value'\np27640\nI00\nssS'unique'\np27641\n(dp27642\nS'editable'\np27643\nI00\nsS'value'\np27644\nI00\nssS'properties'\np27645\n(dp27646\nS'default_value'\np27647\n(dp27648\nS'editable'\np27649\nI00\nsS'value'\np27650\nNssS'summary_default'\np27651\n(dp27652\nS'editable'\np27653\nI00\nsS'value'\np27654\nS'none'\np27655\nssS'valid_types'\np27656\n(dp27657\nS'editable'\np27658\nI00\nsS'value'\np27659\n(lp27660\nS'Sequence'\np27661\nasssS'description'\np27662\n(dp27663\nS'editable'\np27664\nI01\nsS'value'\np27665\ng47\nssssS'Page'\np27666\n(dp27667\nS'updated_at'\np27668\n(dp27669\nS'mandatory'\np27670\n(dp27671\nS'editable'\np27672\nI00\nsS'value'\np27673\nI00\nssS'name'\np27674\n(dp27675\nS'editable'\np27676\nI01\nsS'value'\np27677\nS'Date Updated'\np27678\nssS'data_type'\np27679\n(dp27680\nS'editable'\np27681\nI00\nsS'value'\np27682\nS'date_time'\np27683\nssS'entity_type'\np27684\n(dp27685\nS'editable'\np27686\nI00\nsS'value'\np27687\nS'Page'\np27688\nssS'editable'\np27689\n(dp27690\nS'editable'\np27691\nI00\nsS'value'\np27692\nI00\nssS'unique'\np27693\n(dp27694\nS'editable'\np27695\nI00\nsS'value'\np27696\nI00\nssS'properties'\np27697\n(dp27698\nS'default_value'\np27699\n(dp27700\nS'editable'\np27701\nI00\nsS'value'\np27702\nNssS'summary_default'\np27703\n(dp27704\nS'editable'\np27705\nI00\nsS'value'\np27706\nS'none'\np27707\nsssS'description'\np27708\n(dp27709\nS'editable'\np27710\nI01\nsS'value'\np27711\ng47\nsssS'cached_display_name'\np27712\n(dp27713\nS'mandatory'\np27714\n(dp27715\nS'editable'\np27716\nI00\nsS'value'\np27717\nI00\nssS'name'\np27718\n(dp27719\nS'editable'\np27720\nI01\nsS'value'\np27721\nS'Cached Display Name'\np27722\nssS'data_type'\np27723\n(dp27724\nS'editable'\np27725\nI00\nsS'value'\np27726\nS'text'\np27727\nssS'entity_type'\np27728\n(dp27729\nS'editable'\np27730\nI00\nsS'value'\np27731\nS'Page'\np27732\nssS'editable'\np27733\n(dp27734\nS'editable'\np27735\nI00\nsS'value'\np27736\nI01\nssS'unique'\np27737\n(dp27738\nS'editable'\np27739\nI00\nsS'value'\np27740\nI00\nssS'properties'\np27741\n(dp27742\nS'default_value'\np27743\n(dp27744\nS'editable'\np27745\nI00\nsS'value'\np27746\nNssS'summary_default'\np27747\n(dp27748\nS'editable'\np27749\nI00\nsS'value'\np27750\nS'none'\np27751\nsssS'description'\np27752\n(dp27753\nS'editable'\np27754\nI01\nsS'value'\np27755\ng47\nsssS'id'\np27756\n(dp27757\nS'mandatory'\np27758\n(dp27759\nS'editable'\np27760\nI00\nsS'value'\np27761\nI00\nssS'name'\np27762\n(dp27763\nS'editable'\np27764\nI01\nsS'value'\np27765\nS'Id'\np27766\nssS'data_type'\np27767\n(dp27768\nS'editable'\np27769\nI00\nsS'value'\np27770\nS'number'\np27771\nssS'entity_type'\np27772\n(dp27773\nS'editable'\np27774\nI00\nsS'value'\np27775\nS'Page'\np27776\nssS'editable'\np27777\n(dp27778\nS'editable'\np27779\nI00\nsS'value'\np27780\nI00\nssS'unique'\np27781\n(dp27782\nS'editable'\np27783\nI00\nsS'value'\np27784\nI00\nssS'properties'\np27785\n(dp27786\nS'default_value'\np27787\n(dp27788\nS'editable'\np27789\nI00\nsS'value'\np27790\nNssS'summary_default'\np27791\n(dp27792\nS'editable'\np27793\nI01\nsS'value'\np27794\nS'none'\np27795\nsssS'description'\np27796\n(dp27797\nS'editable'\np27798\nI01\nsS'value'\np27799\ng47\nsssS'accesses_by_current_user'\np27800\n(dp27801\nS'mandatory'\np27802\n(dp27803\nS'editable'\np27804\nI00\nsS'value'\np27805\nI00\nssS'name'\np27806\n(dp27807\nS'editable'\np27808\nI01\nsS'value'\np27809\nS'Times Accessed'\np27810\nssS'data_type'\np27811\n(dp27812\nS'editable'\np27813\nI00\nsS'value'\np27814\nS'number'\np27815\nssS'entity_type'\np27816\n(dp27817\nS'editable'\np27818\nI00\nsS'value'\np27819\nS'Page'\np27820\nssS'editable'\np27821\n(dp27822\nS'editable'\np27823\nI00\nsS'value'\np27824\nI00\nssS'unique'\np27825\n(dp27826\nS'editable'\np27827\nI00\nsS'value'\np27828\nI00\nssS'properties'\np27829\n(dp27830\nS'default_value'\np27831\n(dp27832\nS'editable'\np27833\nI00\nsS'value'\np27834\nNssS'summary_default'\np27835\n(dp27836\nS'editable'\np27837\nI01\nsS'value'\np27838\nS'none'\np27839\nsssS'description'\np27840\n(dp27841\nS'editable'\np27842\nI01\nsS'value'\np27843\ng47\nsssS'updated_by'\np27844\n(dp27845\nS'mandatory'\np27846\n(dp27847\nS'editable'\np27848\nI00\nsS'value'\np27849\nI00\nssS'name'\np27850\n(dp27851\nS'editable'\np27852\nI01\nsS'value'\np27853\nS'Updated by'\np27854\nssS'data_type'\np27855\n(dp27856\nS'editable'\np27857\nI00\nsS'value'\np27858\nS'entity'\np27859\nssS'entity_type'\np27860\n(dp27861\nS'editable'\np27862\nI00\nsS'value'\np27863\nS'Page'\np27864\nssS'editable'\np27865\n(dp27866\nS'editable'\np27867\nI00\nsS'value'\np27868\nI00\nssS'unique'\np27869\n(dp27870\nS'editable'\np27871\nI00\nsS'value'\np27872\nI00\nssS'properties'\np27873\n(dp27874\nS'default_value'\np27875\n(dp27876\nS'editable'\np27877\nI00\nsS'value'\np27878\nNssS'summary_default'\np27879\n(dp27880\nS'editable'\np27881\nI00\nsS'value'\np27882\nS'none'\np27883\nssS'valid_types'\np27884\n(dp27885\nS'editable'\np27886\nI00\nsS'value'\np27887\n(lp27888\nS'HumanUser'\np27889\naS'ApiUser'\np27890\nasssS'description'\np27891\n(dp27892\nS'editable'\np27893\nI01\nsS'value'\np27894\ng47\nsssS'entity_type'\np27895\n(dp27896\nS'mandatory'\np27897\n(dp27898\nS'editable'\np27899\nI00\nsS'value'\np27900\nI00\nssS'name'\np27901\n(dp27902\nS'editable'\np27903\nI01\nsS'value'\np27904\nS'Entity Type'\np27905\nssS'data_type'\np27906\n(dp27907\nS'editable'\np27908\nI00\nsS'value'\np27909\nS'entity_type'\np27910\nssS'entity_type'\np27911\n(dp27912\nS'editable'\np27913\nI00\nsS'value'\np27914\nS'Page'\np27915\nssS'editable'\np27916\n(dp27917\nS'editable'\np27918\nI00\nsS'value'\np27919\nI00\nssS'unique'\np27920\n(dp27921\nS'editable'\np27922\nI00\nsS'value'\np27923\nI00\nssS'properties'\np27924\n(dp27925\nS'default_value'\np27926\n(dp27927\nS'editable'\np27928\nI00\nsS'value'\np27929\nNssS'summary_default'\np27930\n(dp27931\nS'editable'\np27932\nI01\nsS'value'\np27933\nS'none'\np27934\nsssS'description'\np27935\n(dp27936\nS'editable'\np27937\nI01\nsS'value'\np27938\ng47\nsssS'created_by'\np27939\n(dp27940\nS'mandatory'\np27941\n(dp27942\nS'editable'\np27943\nI00\nsS'value'\np27944\nI00\nssS'name'\np27945\n(dp27946\nS'editable'\np27947\nI01\nsS'value'\np27948\nS'Created by'\np27949\nssS'data_type'\np27950\n(dp27951\nS'editable'\np27952\nI00\nsS'value'\np27953\nS'entity'\np27954\nssS'entity_type'\np27955\n(dp27956\nS'editable'\np27957\nI00\nsS'value'\np27958\nS'Page'\np27959\nssS'editable'\np27960\n(dp27961\nS'editable'\np27962\nI00\nsS'value'\np27963\nI00\nssS'unique'\np27964\n(dp27965\nS'editable'\np27966\nI00\nsS'value'\np27967\nI00\nssS'properties'\np27968\n(dp27969\nS'default_value'\np27970\n(dp27971\nS'editable'\np27972\nI00\nsS'value'\np27973\nNssS'summary_default'\np27974\n(dp27975\nS'editable'\np27976\nI00\nsS'value'\np27977\nS'none'\np27978\nssS'valid_types'\np27979\n(dp27980\nS'editable'\np27981\nI00\nsS'value'\np27982\n(lp27983\nS'HumanUser'\np27984\naS'ApiUser'\np27985\nasssS'description'\np27986\n(dp27987\nS'editable'\np27988\nI01\nsS'value'\np27989\ng47\nsssS'page_type'\np27990\n(dp27991\nS'mandatory'\np27992\n(dp27993\nS'editable'\np27994\nI00\nsS'value'\np27995\nI00\nssS'name'\np27996\n(dp27997\nS'editable'\np27998\nI01\nsS'value'\np27999\nS'Page Type'\np28000\nssS'data_type'\np28001\n(dp28002\nS'editable'\np28003\nI00\nsS'value'\np28004\nS'text'\np28005\nssS'entity_type'\np28006\n(dp28007\nS'editable'\np28008\nI00\nsS'value'\np28009\nS'Page'\np28010\nssS'editable'\np28011\n(dp28012\nS'editable'\np28013\nI00\nsS'value'\np28014\nI00\nssS'unique'\np28015\n(dp28016\nS'editable'\np28017\nI00\nsS'value'\np28018\nI00\nssS'properties'\np28019\n(dp28020\nS'default_value'\np28021\n(dp28022\nS'editable'\np28023\nI00\nsS'value'\np28024\nNssS'summary_default'\np28025\n(dp28026\nS'editable'\np28027\nI01\nsS'value'\np28028\nS'none'\np28029\nsssS'description'\np28030\n(dp28031\nS'editable'\np28032\nI01\nsS'value'\np28033\ng47\nsssS'current_user_favorite'\np28034\n(dp28035\nS'mandatory'\np28036\n(dp28037\nS'editable'\np28038\nI00\nsS'value'\np28039\nI00\nssS'name'\np28040\n(dp28041\nS'editable'\np28042\nI01\nsS'value'\np28043\nS'Favorite'\np28044\nssS'data_type'\np28045\n(dp28046\nS'editable'\np28047\nI00\nsS'value'\np28048\nS'checkbox'\np28049\nssS'entity_type'\np28050\n(dp28051\nS'editable'\np28052\nI00\nsS'value'\np28053\nS'Page'\np28054\nssS'editable'\np28055\n(dp28056\nS'editable'\np28057\nI00\nsS'value'\np28058\nI01\nssS'unique'\np28059\n(dp28060\nS'editable'\np28061\nI00\nsS'value'\np28062\nI00\nssS'properties'\np28063\n(dp28064\nS'default_value'\np28065\n(dp28066\nS'editable'\np28067\nI00\nsS'value'\np28068\nNssS'summary_default'\np28069\n(dp28070\nS'editable'\np28071\nI01\nsS'value'\np28072\nS'none'\np28073\nsssS'description'\np28074\n(dp28075\nS'editable'\np28076\nI01\nsS'value'\np28077\ng47\nsssS'shared'\np28078\n(dp28079\nS'mandatory'\np28080\n(dp28081\nS'editable'\np28082\nI00\nsS'value'\np28083\nI00\nssS'name'\np28084\n(dp28085\nS'editable'\np28086\nI01\nsS'value'\np28087\nS'Shared'\np28088\nssS'data_type'\np28089\n(dp28090\nS'editable'\np28091\nI00\nsS'value'\np28092\nS'checkbox'\np28093\nssS'entity_type'\np28094\n(dp28095\nS'editable'\np28096\nI00\nsS'value'\np28097\nS'Page'\np28098\nssS'editable'\np28099\n(dp28100\nS'editable'\np28101\nI00\nsS'value'\np28102\nI01\nssS'unique'\np28103\n(dp28104\nS'editable'\np28105\nI00\nsS'value'\np28106\nI00\nssS'properties'\np28107\n(dp28108\nS'default_value'\np28109\n(dp28110\nS'editable'\np28111\nI00\nsS'value'\np28112\nI00\nssS'summary_default'\np28113\n(dp28114\nS'editable'\np28115\nI01\nsS'value'\np28116\nS'none'\np28117\nsssS'description'\np28118\n(dp28119\nS'editable'\np28120\nI01\nsS'value'\np28121\ng47\nsssS'folder'\np28122\n(dp28123\nS'mandatory'\np28124\n(dp28125\nS'editable'\np28126\nI00\nsS'value'\np28127\nI00\nssS'name'\np28128\n(dp28129\nS'editable'\np28130\nI01\nsS'value'\np28131\nS'Folder'\np28132\nssS'data_type'\np28133\n(dp28134\nS'editable'\np28135\nI00\nsS'value'\np28136\nS'text'\np28137\nssS'entity_type'\np28138\n(dp28139\nS'editable'\np28140\nI00\nsS'value'\np28141\nS'Page'\np28142\nssS'editable'\np28143\n(dp28144\nS'editable'\np28145\nI00\nsS'value'\np28146\nI01\nssS'unique'\np28147\n(dp28148\nS'editable'\np28149\nI00\nsS'value'\np28150\nI00\nssS'properties'\np28151\n(dp28152\nS'default_value'\np28153\n(dp28154\nS'editable'\np28155\nI00\nsS'value'\np28156\nNssS'summary_default'\np28157\n(dp28158\nS'editable'\np28159\nI01\nsS'value'\np28160\nS'none'\np28161\nsssS'description'\np28162\n(dp28163\nS'editable'\np28164\nI01\nsS'value'\np28165\ng47\nsssS'last_accessed_by_current_user'\np28166\n(dp28167\nS'mandatory'\np28168\n(dp28169\nS'editable'\np28170\nI00\nsS'value'\np28171\nI00\nssS'name'\np28172\n(dp28173\nS'editable'\np28174\nI01\nsS'value'\np28175\nS'Last Accessed by Me'\np28176\nssS'data_type'\np28177\n(dp28178\nS'editable'\np28179\nI00\nsS'value'\np28180\nS'date_time'\np28181\nssS'entity_type'\np28182\n(dp28183\nS'editable'\np28184\nI00\nsS'value'\np28185\nS'Page'\np28186\nssS'editable'\np28187\n(dp28188\nS'editable'\np28189\nI00\nsS'value'\np28190\nI00\nssS'unique'\np28191\n(dp28192\nS'editable'\np28193\nI00\nsS'value'\np28194\nI00\nssS'properties'\np28195\n(dp28196\nS'default_value'\np28197\n(dp28198\nS'editable'\np28199\nI00\nsS'value'\np28200\nNssS'summary_default'\np28201\n(dp28202\nS'editable'\np28203\nI01\nsS'value'\np28204\nS'none'\np28205\nsssS'description'\np28206\n(dp28207\nS'editable'\np28208\nI01\nsS'value'\np28209\ng47\nsssS'description'\np28210\n(dp28211\nS'mandatory'\np28212\n(dp28213\nS'editable'\np28214\nI00\nsS'value'\np28215\nI00\nssS'name'\np28216\n(dp28217\nS'editable'\np28218\nI01\nsS'value'\np28219\nS'Description'\np28220\nssS'data_type'\np28221\n(dp28222\nS'editable'\np28223\nI00\nsS'value'\np28224\nS'text'\np28225\nssS'entity_type'\np28226\n(dp28227\nS'editable'\np28228\nI00\nsS'value'\np28229\nS'Page'\np28230\nssS'editable'\np28231\n(dp28232\nS'editable'\np28233\nI00\nsS'value'\np28234\nI01\nssS'unique'\np28235\n(dp28236\nS'editable'\np28237\nI00\nsS'value'\np28238\nI00\nssS'properties'\np28239\n(dp28240\nS'default_value'\np28241\n(dp28242\nS'editable'\np28243\nI00\nsS'value'\np28244\nNssS'summary_default'\np28245\n(dp28246\nS'editable'\np28247\nI00\nsS'value'\np28248\nS'none'\np28249\nsssS'description'\np28250\n(dp28251\nS'editable'\np28252\nI01\nsS'value'\np28253\ng47\nsssS'last_accessed'\np28254\n(dp28255\nS'mandatory'\np28256\n(dp28257\nS'editable'\np28258\nI00\nsS'value'\np28259\nI00\nssS'name'\np28260\n(dp28261\nS'editable'\np28262\nI01\nsS'value'\np28263\nS'Last Accessed'\np28264\nssS'data_type'\np28265\n(dp28266\nS'editable'\np28267\nI00\nsS'value'\np28268\nS'date_time'\np28269\nssS'entity_type'\np28270\n(dp28271\nS'editable'\np28272\nI00\nsS'value'\np28273\nS'Page'\np28274\nssS'editable'\np28275\n(dp28276\nS'editable'\np28277\nI00\nsS'value'\np28278\nI00\nssS'unique'\np28279\n(dp28280\nS'editable'\np28281\nI00\nsS'value'\np28282\nI00\nssS'properties'\np28283\n(dp28284\nS'default_value'\np28285\n(dp28286\nS'editable'\np28287\nI00\nsS'value'\np28288\nNssS'summary_default'\np28289\n(dp28290\nS'editable'\np28291\nI01\nsS'value'\np28292\nS'none'\np28293\nsssS'description'\np28294\n(dp28295\nS'editable'\np28296\nI01\nsS'value'\np28297\ng47\nsssS'default_type'\np28298\n(dp28299\nS'mandatory'\np28300\n(dp28301\nS'editable'\np28302\nI00\nsS'value'\np28303\nI00\nssS'name'\np28304\n(dp28305\nS'editable'\np28306\nI01\nsS'value'\np28307\nS'Default Type'\np28308\nssS'data_type'\np28309\n(dp28310\nS'editable'\np28311\nI00\nsS'value'\np28312\nS'text'\np28313\nssS'entity_type'\np28314\n(dp28315\nS'editable'\np28316\nI00\nsS'value'\np28317\nS'Page'\np28318\nssS'editable'\np28319\n(dp28320\nS'editable'\np28321\nI00\nsS'value'\np28322\nI00\nssS'unique'\np28323\n(dp28324\nS'editable'\np28325\nI00\nsS'value'\np28326\nI00\nssS'properties'\np28327\n(dp28328\nS'default_value'\np28329\n(dp28330\nS'editable'\np28331\nI00\nsS'value'\np28332\nNssS'summary_default'\np28333\n(dp28334\nS'editable'\np28335\nI01\nsS'value'\np28336\nS'none'\np28337\nsssS'description'\np28338\n(dp28339\nS'editable'\np28340\nI01\nsS'value'\np28341\ng47\nsssS'current_user_can_see'\np28342\n(dp28343\nS'mandatory'\np28344\n(dp28345\nS'editable'\np28346\nI00\nsS'value'\np28347\nI00\nssS'name'\np28348\n(dp28349\nS'editable'\np28350\nI01\nsS'value'\np28351\nS'Current User Can See'\np28352\nssS'data_type'\np28353\n(dp28354\nS'editable'\np28355\nI00\nsS'value'\np28356\nS'checkbox'\np28357\nssS'entity_type'\np28358\n(dp28359\nS'editable'\np28360\nI00\nsS'value'\np28361\nS'Page'\np28362\nssS'editable'\np28363\n(dp28364\nS'editable'\np28365\nI00\nsS'value'\np28366\nI00\nssS'unique'\np28367\n(dp28368\nS'editable'\np28369\nI00\nsS'value'\np28370\nI00\nssS'properties'\np28371\n(dp28372\nS'default_value'\np28373\n(dp28374\nS'editable'\np28375\nI00\nsS'value'\np28376\nNssS'summary_default'\np28377\n(dp28378\nS'editable'\np28379\nI00\nsS'value'\np28380\nS'none'\np28381\nsssS'description'\np28382\n(dp28383\nS'editable'\np28384\nI01\nsS'value'\np28385\ng47\nsssS'name'\np28386\n(dp28387\nS'mandatory'\np28388\n(dp28389\nS'editable'\np28390\nI00\nsS'value'\np28391\nI01\nssS'name'\np28392\n(dp28393\nS'editable'\np28394\nI01\nsS'value'\np28395\nS'Name'\np28396\nssS'data_type'\np28397\n(dp28398\nS'editable'\np28399\nI00\nsS'value'\np28400\nS'text'\np28401\nssS'entity_type'\np28402\n(dp28403\nS'editable'\np28404\nI00\nsS'value'\np28405\nS'Page'\np28406\nssS'editable'\np28407\n(dp28408\nS'editable'\np28409\nI00\nsS'value'\np28410\nI01\nssS'unique'\np28411\n(dp28412\nS'editable'\np28413\nI00\nsS'value'\np28414\nI00\nssS'properties'\np28415\n(dp28416\nS'default_value'\np28417\n(dp28418\nS'editable'\np28419\nI00\nsS'value'\np28420\nNssS'summary_default'\np28421\n(dp28422\nS'editable'\np28423\nI01\nsS'value'\np28424\nS'none'\np28425\nsssS'description'\np28426\n(dp28427\nS'editable'\np28428\nI01\nsS'value'\np28429\ng47\nsssS'admin'\np28430\n(dp28431\nS'mandatory'\np28432\n(dp28433\nS'editable'\np28434\nI00\nsS'value'\np28435\nI00\nssS'name'\np28436\n(dp28437\nS'editable'\np28438\nI01\nsS'value'\np28439\nS'Admin Only'\np28440\nssS'data_type'\np28441\n(dp28442\nS'editable'\np28443\nI00\nsS'value'\np28444\nS'checkbox'\np28445\nssS'entity_type'\np28446\n(dp28447\nS'editable'\np28448\nI00\nsS'value'\np28449\nS'Page'\np28450\nssS'editable'\np28451\n(dp28452\nS'editable'\np28453\nI00\nsS'value'\np28454\nI00\nssS'unique'\np28455\n(dp28456\nS'editable'\np28457\nI00\nsS'value'\np28458\nI00\nssS'properties'\np28459\n(dp28460\nS'default_value'\np28461\n(dp28462\nS'editable'\np28463\nI00\nsS'value'\np28464\nI00\nssS'summary_default'\np28465\n(dp28466\nS'editable'\np28467\nI01\nsS'value'\np28468\nS'none'\np28469\nsssS'description'\np28470\n(dp28471\nS'editable'\np28472\nI01\nsS'value'\np28473\ng47\nsssS'created_at'\np28474\n(dp28475\nS'mandatory'\np28476\n(dp28477\nS'editable'\np28478\nI00\nsS'value'\np28479\nI00\nssS'name'\np28480\n(dp28481\nS'editable'\np28482\nI01\nsS'value'\np28483\nS'Date Created'\np28484\nssS'data_type'\np28485\n(dp28486\nS'editable'\np28487\nI00\nsS'value'\np28488\nS'date_time'\np28489\nssS'entity_type'\np28490\n(dp28491\nS'editable'\np28492\nI00\nsS'value'\np28493\nS'Page'\np28494\nssS'editable'\np28495\n(dp28496\nS'editable'\np28497\nI00\nsS'value'\np28498\nI00\nssS'unique'\np28499\n(dp28500\nS'editable'\np28501\nI00\nsS'value'\np28502\nI00\nssS'properties'\np28503\n(dp28504\nS'default_value'\np28505\n(dp28506\nS'editable'\np28507\nI00\nsS'value'\np28508\nNssS'summary_default'\np28509\n(dp28510\nS'editable'\np28511\nI00\nsS'value'\np28512\nS'none'\np28513\nsssS'description'\np28514\n(dp28515\nS'editable'\np28516\nI01\nsS'value'\np28517\ng47\nsssS'project'\np28518\n(dp28519\nS'mandatory'\np28520\n(dp28521\nS'editable'\np28522\nI00\nsS'value'\np28523\nI00\nssS'name'\np28524\n(dp28525\nS'editable'\np28526\nI01\nsS'value'\np28527\nS'Project'\np28528\nssS'data_type'\np28529\n(dp28530\nS'editable'\np28531\nI00\nsS'value'\np28532\nS'entity'\np28533\nssS'entity_type'\np28534\n(dp28535\nS'editable'\np28536\nI00\nsS'value'\np28537\nS'Page'\np28538\nssS'editable'\np28539\n(dp28540\nS'editable'\np28541\nI00\nsS'value'\np28542\nI01\nssS'unique'\np28543\n(dp28544\nS'editable'\np28545\nI00\nsS'value'\np28546\nI00\nssS'properties'\np28547\n(dp28548\nS'default_value'\np28549\n(dp28550\nS'editable'\np28551\nI00\nsS'value'\np28552\nNssS'summary_default'\np28553\n(dp28554\nS'editable'\np28555\nI01\nsS'value'\np28556\nS'none'\np28557\nssS'valid_types'\np28558\n(dp28559\nS'editable'\np28560\nI01\nsS'value'\np28561\n(lp28562\nS'Project'\np28563\nasssS'description'\np28564\n(dp28565\nS'editable'\np28566\nI01\nsS'value'\np28567\ng47\nsssS'ui_category'\np28568\n(dp28569\nS'mandatory'\np28570\n(dp28571\nS'editable'\np28572\nI00\nsS'value'\np28573\nI00\nssS'name'\np28574\n(dp28575\nS'editable'\np28576\nI01\nsS'value'\np28577\nS'UI Category'\np28578\nssS'data_type'\np28579\n(dp28580\nS'editable'\np28581\nI00\nsS'value'\np28582\nS'text'\np28583\nssS'entity_type'\np28584\n(dp28585\nS'editable'\np28586\nI00\nsS'value'\np28587\nS'Page'\np28588\nssS'editable'\np28589\n(dp28590\nS'editable'\np28591\nI00\nsS'value'\np28592\nI00\nssS'unique'\np28593\n(dp28594\nS'editable'\np28595\nI00\nsS'value'\np28596\nI00\nssS'properties'\np28597\n(dp28598\nS'default_value'\np28599\n(dp28600\nS'editable'\np28601\nI00\nsS'value'\np28602\nNssS'summary_default'\np28603\n(dp28604\nS'editable'\np28605\nI01\nsS'value'\np28606\nS'none'\np28607\nsssS'description'\np28608\n(dp28609\nS'editable'\np28610\nI01\nsS'value'\np28611\ng47\nsssS'tag_list'\np28612\n(dp28613\nS'mandatory'\np28614\n(dp28615\nS'editable'\np28616\nI00\nsS'value'\np28617\nI00\nssS'name'\np28618\n(dp28619\nS'editable'\np28620\nI01\nsS'value'\np28621\nS'Tags'\np28622\nssS'data_type'\np28623\n(dp28624\nS'editable'\np28625\nI00\nsS'value'\np28626\nS'tag_list'\np28627\nssS'entity_type'\np28628\n(dp28629\nS'editable'\np28630\nI00\nsS'value'\np28631\nS'Page'\np28632\nssS'editable'\np28633\n(dp28634\nS'editable'\np28635\nI00\nsS'value'\np28636\nI01\nssS'unique'\np28637\n(dp28638\nS'editable'\np28639\nI00\nsS'value'\np28640\nI00\nssS'properties'\np28641\n(dp28642\nS'default_value'\np28643\n(dp28644\nS'editable'\np28645\nI00\nsS'value'\np28646\nNssS'summary_default'\np28647\n(dp28648\nS'editable'\np28649\nI01\nsS'value'\np28650\nS'none'\np28651\nssS'valid_types'\np28652\n(dp28653\nS'editable'\np28654\nI01\nsS'value'\np28655\n(lp28656\nS'Tag'\np28657\nasssS'description'\np28658\n(dp28659\nS'editable'\np28660\nI01\nsS'value'\np28661\ng47\nsssS'hits_last_month'\np28662\n(dp28663\nS'mandatory'\np28664\n(dp28665\nS'editable'\np28666\nI00\nsS'value'\np28667\nI00\nssS'name'\np28668\n(dp28669\nS'editable'\np28670\nI01\nsS'value'\np28671\nS'Page Hits Last Month'\np28672\nssS'data_type'\np28673\n(dp28674\nS'editable'\np28675\nI00\nsS'value'\np28676\nS'number'\np28677\nssS'entity_type'\np28678\n(dp28679\nS'editable'\np28680\nI00\nsS'value'\np28681\nS'Page'\np28682\nssS'editable'\np28683\n(dp28684\nS'editable'\np28685\nI00\nsS'value'\np28686\nI00\nssS'unique'\np28687\n(dp28688\nS'editable'\np28689\nI00\nsS'value'\np28690\nI00\nssS'properties'\np28691\n(dp28692\nS'default_value'\np28693\n(dp28694\nS'editable'\np28695\nI00\nsS'value'\np28696\nNssS'summary_default'\np28697\n(dp28698\nS'editable'\np28699\nI01\nsS'value'\np28700\nS'none'\np28701\nsssS'description'\np28702\n(dp28703\nS'editable'\np28704\nI01\nsS'value'\np28705\ng47\nssssS'CustomEntity02'\np28706\n(dp28707\nS'open_notes_count'\np28708\n(dp28709\nS'mandatory'\np28710\n(dp28711\nS'editable'\np28712\nI00\nsS'value'\np28713\nI00\nssS'name'\np28714\n(dp28715\nS'editable'\np28716\nI01\nsS'value'\np28717\nS'Open Notes Count'\np28718\nssS'data_type'\np28719\n(dp28720\nS'editable'\np28721\nI00\nsS'value'\np28722\nS'text'\np28723\nssS'entity_type'\np28724\n(dp28725\nS'editable'\np28726\nI00\nsS'value'\np28727\nS'CustomEntity02'\np28728\nssS'editable'\np28729\n(dp28730\nS'editable'\np28731\nI00\nsS'value'\np28732\nI00\nssS'unique'\np28733\n(dp28734\nS'editable'\np28735\nI00\nsS'value'\np28736\nI00\nssS'properties'\np28737\n(dp28738\nS'default_value'\np28739\n(dp28740\nS'editable'\np28741\nI00\nsS'value'\np28742\nNssS'summary_default'\np28743\n(dp28744\nS'editable'\np28745\nI01\nsS'value'\np28746\nS'none'\np28747\nsssS'description'\np28748\n(dp28749\nS'editable'\np28750\nI01\nsS'value'\np28751\ng47\nsssS'code'\np28752\n(dp28753\nS'mandatory'\np28754\n(dp28755\nS'editable'\np28756\nI00\nsS'value'\np28757\nI01\nssS'name'\np28758\n(dp28759\nS'editable'\np28760\nI01\nsS'value'\np28761\nS'Custom Entity02 Name'\np28762\nssS'data_type'\np28763\n(dp28764\nS'editable'\np28765\nI00\nsS'value'\np28766\nS'text'\np28767\nssS'entity_type'\np28768\n(dp28769\nS'editable'\np28770\nI00\nsS'value'\np28771\nS'CustomEntity02'\np28772\nssS'editable'\np28773\n(dp28774\nS'editable'\np28775\nI00\nsS'value'\np28776\nI01\nssS'unique'\np28777\n(dp28778\nS'editable'\np28779\nI00\nsS'value'\np28780\nI00\nssS'properties'\np28781\n(dp28782\nS'default_value'\np28783\n(dp28784\nS'editable'\np28785\nI00\nsS'value'\np28786\nNssS'summary_default'\np28787\n(dp28788\nS'editable'\np28789\nI01\nsS'value'\np28790\nS'none'\np28791\nsssS'description'\np28792\n(dp28793\nS'editable'\np28794\nI01\nsS'value'\np28795\ng47\nsssS'open_notes'\np28796\n(dp28797\nS'mandatory'\np28798\n(dp28799\nS'editable'\np28800\nI00\nsS'value'\np28801\nI00\nssS'name'\np28802\n(dp28803\nS'editable'\np28804\nI01\nsS'value'\np28805\nS'Open Notes'\np28806\nssS'data_type'\np28807\n(dp28808\nS'editable'\np28809\nI00\nsS'value'\np28810\nS'multi_entity'\np28811\nssS'entity_type'\np28812\n(dp28813\nS'editable'\np28814\nI00\nsS'value'\np28815\nS'CustomEntity02'\np28816\nssS'editable'\np28817\n(dp28818\nS'editable'\np28819\nI00\nsS'value'\np28820\nI00\nssS'unique'\np28821\n(dp28822\nS'editable'\np28823\nI00\nsS'value'\np28824\nI00\nssS'properties'\np28825\n(dp28826\nS'default_value'\np28827\n(dp28828\nS'editable'\np28829\nI00\nsS'value'\np28830\nNssS'summary_default'\np28831\n(dp28832\nS'editable'\np28833\nI01\nsS'value'\np28834\nS'none'\np28835\nssS'valid_types'\np28836\n(dp28837\nS'editable'\np28838\nI01\nsS'value'\np28839\n(lp28840\nS'Note'\np28841\nasssS'description'\np28842\n(dp28843\nS'editable'\np28844\nI01\nsS'value'\np28845\ng47\nsssS'description'\np28846\n(dp28847\nS'mandatory'\np28848\n(dp28849\nS'editable'\np28850\nI00\nsS'value'\np28851\nI00\nssS'name'\np28852\n(dp28853\nS'editable'\np28854\nI01\nsS'value'\np28855\nS'Description'\np28856\nssS'data_type'\np28857\n(dp28858\nS'editable'\np28859\nI00\nsS'value'\np28860\nS'text'\np28861\nssS'entity_type'\np28862\n(dp28863\nS'editable'\np28864\nI00\nsS'value'\np28865\nS'CustomEntity02'\np28866\nssS'editable'\np28867\n(dp28868\nS'editable'\np28869\nI00\nsS'value'\np28870\nI01\nssS'unique'\np28871\n(dp28872\nS'editable'\np28873\nI00\nsS'value'\np28874\nI00\nssS'properties'\np28875\n(dp28876\nS'default_value'\np28877\n(dp28878\nS'editable'\np28879\nI00\nsS'value'\np28880\nNssS'summary_default'\np28881\n(dp28882\nS'editable'\np28883\nI01\nsS'value'\np28884\nS'none'\np28885\nsssS'description'\np28886\n(dp28887\nS'editable'\np28888\nI01\nsS'value'\np28889\ng47\nsssS'created_at'\np28890\n(dp28891\nS'mandatory'\np28892\n(dp28893\nS'editable'\np28894\nI00\nsS'value'\np28895\nI00\nssS'name'\np28896\n(dp28897\nS'editable'\np28898\nI01\nsS'value'\np28899\nS'Date Created'\np28900\nssS'data_type'\np28901\n(dp28902\nS'editable'\np28903\nI00\nsS'value'\np28904\nS'date_time'\np28905\nssS'entity_type'\np28906\n(dp28907\nS'editable'\np28908\nI00\nsS'value'\np28909\nS'CustomEntity02'\np28910\nssS'editable'\np28911\n(dp28912\nS'editable'\np28913\nI00\nsS'value'\np28914\nI00\nssS'unique'\np28915\n(dp28916\nS'editable'\np28917\nI00\nsS'value'\np28918\nI00\nssS'properties'\np28919\n(dp28920\nS'default_value'\np28921\n(dp28922\nS'editable'\np28923\nI00\nsS'value'\np28924\nNssS'summary_default'\np28925\n(dp28926\nS'editable'\np28927\nI01\nsS'value'\np28928\nS'none'\np28929\nsssS'description'\np28930\n(dp28931\nS'editable'\np28932\nI01\nsS'value'\np28933\ng47\nsssS'updated_at'\np28934\n(dp28935\nS'mandatory'\np28936\n(dp28937\nS'editable'\np28938\nI00\nsS'value'\np28939\nI00\nssS'name'\np28940\n(dp28941\nS'editable'\np28942\nI01\nsS'value'\np28943\nS'Date Updated'\np28944\nssS'data_type'\np28945\n(dp28946\nS'editable'\np28947\nI00\nsS'value'\np28948\nS'date_time'\np28949\nssS'entity_type'\np28950\n(dp28951\nS'editable'\np28952\nI00\nsS'value'\np28953\nS'CustomEntity02'\np28954\nssS'editable'\np28955\n(dp28956\nS'editable'\np28957\nI00\nsS'value'\np28958\nI00\nssS'unique'\np28959\n(dp28960\nS'editable'\np28961\nI00\nsS'value'\np28962\nI00\nssS'properties'\np28963\n(dp28964\nS'default_value'\np28965\n(dp28966\nS'editable'\np28967\nI00\nsS'value'\np28968\nNssS'summary_default'\np28969\n(dp28970\nS'editable'\np28971\nI01\nsS'value'\np28972\nS'none'\np28973\nsssS'description'\np28974\n(dp28975\nS'editable'\np28976\nI01\nsS'value'\np28977\ng47\nsssS'created_by'\np28978\n(dp28979\nS'mandatory'\np28980\n(dp28981\nS'editable'\np28982\nI00\nsS'value'\np28983\nI00\nssS'name'\np28984\n(dp28985\nS'editable'\np28986\nI01\nsS'value'\np28987\nS'Created by'\np28988\nssS'data_type'\np28989\n(dp28990\nS'editable'\np28991\nI00\nsS'value'\np28992\nS'entity'\np28993\nssS'entity_type'\np28994\n(dp28995\nS'editable'\np28996\nI00\nsS'value'\np28997\nS'CustomEntity02'\np28998\nssS'editable'\np28999\n(dp29000\nS'editable'\np29001\nI00\nsS'value'\np29002\nI00\nssS'unique'\np29003\n(dp29004\nS'editable'\np29005\nI00\nsS'value'\np29006\nI00\nssS'properties'\np29007\n(dp29008\nS'default_value'\np29009\n(dp29010\nS'editable'\np29011\nI00\nsS'value'\np29012\nNssS'summary_default'\np29013\n(dp29014\nS'editable'\np29015\nI01\nsS'value'\np29016\nS'none'\np29017\nssS'valid_types'\np29018\n(dp29019\nS'editable'\np29020\nI01\nsS'value'\np29021\n(lp29022\nS'HumanUser'\np29023\naS'ApiUser'\np29024\nasssS'description'\np29025\n(dp29026\nS'editable'\np29027\nI01\nsS'value'\np29028\ng47\nsssS'id'\np29029\n(dp29030\nS'mandatory'\np29031\n(dp29032\nS'editable'\np29033\nI00\nsS'value'\np29034\nI00\nssS'name'\np29035\n(dp29036\nS'editable'\np29037\nI01\nsS'value'\np29038\nS'Id'\np29039\nssS'data_type'\np29040\n(dp29041\nS'editable'\np29042\nI00\nsS'value'\np29043\nS'number'\np29044\nssS'entity_type'\np29045\n(dp29046\nS'editable'\np29047\nI00\nsS'value'\np29048\nS'CustomEntity02'\np29049\nssS'editable'\np29050\n(dp29051\nS'editable'\np29052\nI00\nsS'value'\np29053\nI00\nssS'unique'\np29054\n(dp29055\nS'editable'\np29056\nI00\nsS'value'\np29057\nI00\nssS'properties'\np29058\n(dp29059\nS'default_value'\np29060\n(dp29061\nS'editable'\np29062\nI00\nsS'value'\np29063\nNssS'summary_default'\np29064\n(dp29065\nS'editable'\np29066\nI01\nsS'value'\np29067\nS'none'\np29068\nsssS'description'\np29069\n(dp29070\nS'editable'\np29071\nI01\nsS'value'\np29072\ng47\nsssS'project'\np29073\n(dp29074\nS'mandatory'\np29075\n(dp29076\nS'editable'\np29077\nI00\nsS'value'\np29078\nI00\nssS'name'\np29079\n(dp29080\nS'editable'\np29081\nI01\nsS'value'\np29082\nS'Project'\np29083\nssS'data_type'\np29084\n(dp29085\nS'editable'\np29086\nI00\nsS'value'\np29087\nS'entity'\np29088\nssS'entity_type'\np29089\n(dp29090\nS'editable'\np29091\nI00\nsS'value'\np29092\nS'CustomEntity02'\np29093\nssS'editable'\np29094\n(dp29095\nS'editable'\np29096\nI00\nsS'value'\np29097\nI01\nssS'unique'\np29098\n(dp29099\nS'editable'\np29100\nI00\nsS'value'\np29101\nI00\nssS'properties'\np29102\n(dp29103\nS'default_value'\np29104\n(dp29105\nS'editable'\np29106\nI00\nsS'value'\np29107\nNssS'summary_default'\np29108\n(dp29109\nS'editable'\np29110\nI01\nsS'value'\np29111\nS'none'\np29112\nssS'valid_types'\np29113\n(dp29114\nS'editable'\np29115\nI01\nsS'value'\np29116\n(lp29117\nS'Project'\np29118\nasssS'description'\np29119\n(dp29120\nS'editable'\np29121\nI01\nsS'value'\np29122\ng47\nsssS'filmstrip_image'\np29123\n(dp29124\nS'mandatory'\np29125\n(dp29126\nS'editable'\np29127\nI00\nsS'value'\np29128\nI00\nssS'name'\np29129\n(dp29130\nS'editable'\np29131\nI01\nsS'value'\np29132\nS'Filmstrip Thumbnail'\np29133\nssS'data_type'\np29134\n(dp29135\nS'editable'\np29136\nI00\nsS'value'\np29137\nS'image'\np29138\nssS'entity_type'\np29139\n(dp29140\nS'editable'\np29141\nI00\nsS'value'\np29142\nS'CustomEntity02'\np29143\nssS'editable'\np29144\n(dp29145\nS'editable'\np29146\nI00\nsS'value'\np29147\nI01\nssS'unique'\np29148\n(dp29149\nS'editable'\np29150\nI00\nsS'value'\np29151\nI00\nssS'properties'\np29152\n(dp29153\nS'default_value'\np29154\n(dp29155\nS'editable'\np29156\nI00\nsS'value'\np29157\nNssS'summary_default'\np29158\n(dp29159\nS'editable'\np29160\nI01\nsS'value'\np29161\nS'none'\np29162\nsssS'description'\np29163\n(dp29164\nS'editable'\np29165\nI01\nsS'value'\np29166\ng47\nsssS'sg_status_list'\np29167\n(dp29168\nS'mandatory'\np29169\n(dp29170\nS'editable'\np29171\nI00\nsS'value'\np29172\nI00\nssS'name'\np29173\n(dp29174\nS'editable'\np29175\nI01\nsS'value'\np29176\nS'Status'\np29177\nssS'data_type'\np29178\n(dp29179\nS'editable'\np29180\nI00\nsS'value'\np29181\nS'status_list'\np29182\nssS'entity_type'\np29183\n(dp29184\nS'editable'\np29185\nI00\nsS'value'\np29186\nS'CustomEntity02'\np29187\nssS'editable'\np29188\n(dp29189\nS'editable'\np29190\nI00\nsS'value'\np29191\nI01\nssS'unique'\np29192\n(dp29193\nS'editable'\np29194\nI00\nsS'value'\np29195\nI00\nssS'properties'\np29196\n(dp29197\nS'default_value'\np29198\n(dp29199\nS'editable'\np29200\nI01\nsS'value'\np29201\nS'wtg'\np29202\nssS'valid_values'\np29203\n(dp29204\nS'editable'\np29205\nI01\nsS'value'\np29206\n(lp29207\nS'cmpt'\np29208\naS'ip'\np29209\naS'wtg'\np29210\nassS'summary_default'\np29211\n(dp29212\nS'editable'\np29213\nI01\nsS'value'\np29214\nS'none'\np29215\nsssS'description'\np29216\n(dp29217\nS'editable'\np29218\nI01\nsS'value'\np29219\ng47\nsssS'image'\np29220\n(dp29221\nS'mandatory'\np29222\n(dp29223\nS'editable'\np29224\nI00\nsS'value'\np29225\nI00\nssS'name'\np29226\n(dp29227\nS'editable'\np29228\nI01\nsS'value'\np29229\nS'Thumbnail'\np29230\nssS'data_type'\np29231\n(dp29232\nS'editable'\np29233\nI00\nsS'value'\np29234\nS'image'\np29235\nssS'entity_type'\np29236\n(dp29237\nS'editable'\np29238\nI00\nsS'value'\np29239\nS'CustomEntity02'\np29240\nssS'editable'\np29241\n(dp29242\nS'editable'\np29243\nI00\nsS'value'\np29244\nI01\nssS'unique'\np29245\n(dp29246\nS'editable'\np29247\nI00\nsS'value'\np29248\nI00\nssS'properties'\np29249\n(dp29250\nS'default_value'\np29251\n(dp29252\nS'editable'\np29253\nI00\nsS'value'\np29254\nNssS'summary_default'\np29255\n(dp29256\nS'editable'\np29257\nI01\nsS'value'\np29258\nS'none'\np29259\nsssS'description'\np29260\n(dp29261\nS'editable'\np29262\nI01\nsS'value'\np29263\ng47\nsssS'cached_display_name'\np29264\n(dp29265\nS'mandatory'\np29266\n(dp29267\nS'editable'\np29268\nI00\nsS'value'\np29269\nI00\nssS'name'\np29270\n(dp29271\nS'editable'\np29272\nI01\nsS'value'\np29273\nS'Cached Display Name'\np29274\nssS'data_type'\np29275\n(dp29276\nS'editable'\np29277\nI00\nsS'value'\np29278\nS'text'\np29279\nssS'entity_type'\np29280\n(dp29281\nS'editable'\np29282\nI00\nsS'value'\np29283\nS'CustomEntity02'\np29284\nssS'editable'\np29285\n(dp29286\nS'editable'\np29287\nI00\nsS'value'\np29288\nI01\nssS'unique'\np29289\n(dp29290\nS'editable'\np29291\nI00\nsS'value'\np29292\nI00\nssS'properties'\np29293\n(dp29294\nS'default_value'\np29295\n(dp29296\nS'editable'\np29297\nI00\nsS'value'\np29298\nNssS'summary_default'\np29299\n(dp29300\nS'editable'\np29301\nI00\nsS'value'\np29302\nS'none'\np29303\nsssS'description'\np29304\n(dp29305\nS'editable'\np29306\nI01\nsS'value'\np29307\ng47\nsssS'tag_list'\np29308\n(dp29309\nS'mandatory'\np29310\n(dp29311\nS'editable'\np29312\nI00\nsS'value'\np29313\nI00\nssS'name'\np29314\n(dp29315\nS'editable'\np29316\nI01\nsS'value'\np29317\nS'Tags'\np29318\nssS'data_type'\np29319\n(dp29320\nS'editable'\np29321\nI00\nsS'value'\np29322\nS'tag_list'\np29323\nssS'entity_type'\np29324\n(dp29325\nS'editable'\np29326\nI00\nsS'value'\np29327\nS'CustomEntity02'\np29328\nssS'editable'\np29329\n(dp29330\nS'editable'\np29331\nI00\nsS'value'\np29332\nI01\nssS'unique'\np29333\n(dp29334\nS'editable'\np29335\nI00\nsS'value'\np29336\nI00\nssS'properties'\np29337\n(dp29338\nS'default_value'\np29339\n(dp29340\nS'editable'\np29341\nI00\nsS'value'\np29342\nNssS'summary_default'\np29343\n(dp29344\nS'editable'\np29345\nI01\nsS'value'\np29346\nS'none'\np29347\nssS'valid_types'\np29348\n(dp29349\nS'editable'\np29350\nI01\nsS'value'\np29351\n(lp29352\nS'Tag'\np29353\nasssS'description'\np29354\n(dp29355\nS'editable'\np29356\nI01\nsS'value'\np29357\ng47\nsssS'notes'\np29358\n(dp29359\nS'mandatory'\np29360\n(dp29361\nS'editable'\np29362\nI00\nsS'value'\np29363\nI00\nssS'name'\np29364\n(dp29365\nS'editable'\np29366\nI01\nsS'value'\np29367\nS'Notes'\np29368\nssS'data_type'\np29369\n(dp29370\nS'editable'\np29371\nI00\nsS'value'\np29372\nS'multi_entity'\np29373\nssS'entity_type'\np29374\n(dp29375\nS'editable'\np29376\nI00\nsS'value'\np29377\nS'CustomEntity02'\np29378\nssS'editable'\np29379\n(dp29380\nS'editable'\np29381\nI00\nsS'value'\np29382\nI01\nssS'unique'\np29383\n(dp29384\nS'editable'\np29385\nI00\nsS'value'\np29386\nI00\nssS'properties'\np29387\n(dp29388\nS'default_value'\np29389\n(dp29390\nS'editable'\np29391\nI00\nsS'value'\np29392\nNssS'summary_default'\np29393\n(dp29394\nS'editable'\np29395\nI01\nsS'value'\np29396\nS'none'\np29397\nssS'valid_types'\np29398\n(dp29399\nS'editable'\np29400\nI01\nsS'value'\np29401\n(lp29402\nS'Note'\np29403\nasssS'description'\np29404\n(dp29405\nS'editable'\np29406\nI01\nsS'value'\np29407\ng47\nsssS'updated_by'\np29408\n(dp29409\nS'mandatory'\np29410\n(dp29411\nS'editable'\np29412\nI00\nsS'value'\np29413\nI00\nssS'name'\np29414\n(dp29415\nS'editable'\np29416\nI01\nsS'value'\np29417\nS'Updated by'\np29418\nssS'data_type'\np29419\n(dp29420\nS'editable'\np29421\nI00\nsS'value'\np29422\nS'entity'\np29423\nssS'entity_type'\np29424\n(dp29425\nS'editable'\np29426\nI00\nsS'value'\np29427\nS'CustomEntity02'\np29428\nssS'editable'\np29429\n(dp29430\nS'editable'\np29431\nI00\nsS'value'\np29432\nI00\nssS'unique'\np29433\n(dp29434\nS'editable'\np29435\nI00\nsS'value'\np29436\nI00\nssS'properties'\np29437\n(dp29438\nS'default_value'\np29439\n(dp29440\nS'editable'\np29441\nI00\nsS'value'\np29442\nNssS'summary_default'\np29443\n(dp29444\nS'editable'\np29445\nI01\nsS'value'\np29446\nS'none'\np29447\nssS'valid_types'\np29448\n(dp29449\nS'editable'\np29450\nI01\nsS'value'\np29451\n(lp29452\nS'HumanUser'\np29453\naS'ApiUser'\np29454\nasssS'description'\np29455\n(dp29456\nS'editable'\np29457\nI01\nsS'value'\np29458\ng47\nssssS'CustomEntity03'\np29459\n(dp29460\nS'open_notes_count'\np29461\n(dp29462\nS'mandatory'\np29463\n(dp29464\nS'editable'\np29465\nI00\nsS'value'\np29466\nI00\nssS'name'\np29467\n(dp29468\nS'editable'\np29469\nI01\nsS'value'\np29470\nS'Open Notes Count'\np29471\nssS'data_type'\np29472\n(dp29473\nS'editable'\np29474\nI00\nsS'value'\np29475\nS'text'\np29476\nssS'entity_type'\np29477\n(dp29478\nS'editable'\np29479\nI00\nsS'value'\np29480\nS'CustomEntity03'\np29481\nssS'editable'\np29482\n(dp29483\nS'editable'\np29484\nI00\nsS'value'\np29485\nI00\nssS'unique'\np29486\n(dp29487\nS'editable'\np29488\nI00\nsS'value'\np29489\nI00\nssS'properties'\np29490\n(dp29491\nS'default_value'\np29492\n(dp29493\nS'editable'\np29494\nI00\nsS'value'\np29495\nNssS'summary_default'\np29496\n(dp29497\nS'editable'\np29498\nI01\nsS'value'\np29499\nS'none'\np29500\nsssS'description'\np29501\n(dp29502\nS'editable'\np29503\nI01\nsS'value'\np29504\ng47\nsssS'code'\np29505\n(dp29506\nS'mandatory'\np29507\n(dp29508\nS'editable'\np29509\nI00\nsS'value'\np29510\nI01\nssS'name'\np29511\n(dp29512\nS'editable'\np29513\nI01\nsS'value'\np29514\nS'Custom Entity03 Name'\np29515\nssS'data_type'\np29516\n(dp29517\nS'editable'\np29518\nI00\nsS'value'\np29519\nS'text'\np29520\nssS'entity_type'\np29521\n(dp29522\nS'editable'\np29523\nI00\nsS'value'\np29524\nS'CustomEntity03'\np29525\nssS'editable'\np29526\n(dp29527\nS'editable'\np29528\nI00\nsS'value'\np29529\nI01\nssS'unique'\np29530\n(dp29531\nS'editable'\np29532\nI00\nsS'value'\np29533\nI00\nssS'properties'\np29534\n(dp29535\nS'default_value'\np29536\n(dp29537\nS'editable'\np29538\nI00\nsS'value'\np29539\nNssS'summary_default'\np29540\n(dp29541\nS'editable'\np29542\nI01\nsS'value'\np29543\nS'none'\np29544\nsssS'description'\np29545\n(dp29546\nS'editable'\np29547\nI01\nsS'value'\np29548\ng47\nsssS'open_notes'\np29549\n(dp29550\nS'mandatory'\np29551\n(dp29552\nS'editable'\np29553\nI00\nsS'value'\np29554\nI00\nssS'name'\np29555\n(dp29556\nS'editable'\np29557\nI01\nsS'value'\np29558\nS'Open Notes'\np29559\nssS'data_type'\np29560\n(dp29561\nS'editable'\np29562\nI00\nsS'value'\np29563\nS'multi_entity'\np29564\nssS'entity_type'\np29565\n(dp29566\nS'editable'\np29567\nI00\nsS'value'\np29568\nS'CustomEntity03'\np29569\nssS'editable'\np29570\n(dp29571\nS'editable'\np29572\nI00\nsS'value'\np29573\nI00\nssS'unique'\np29574\n(dp29575\nS'editable'\np29576\nI00\nsS'value'\np29577\nI00\nssS'properties'\np29578\n(dp29579\nS'default_value'\np29580\n(dp29581\nS'editable'\np29582\nI00\nsS'value'\np29583\nNssS'summary_default'\np29584\n(dp29585\nS'editable'\np29586\nI01\nsS'value'\np29587\nS'none'\np29588\nssS'valid_types'\np29589\n(dp29590\nS'editable'\np29591\nI01\nsS'value'\np29592\n(lp29593\nS'Note'\np29594\nasssS'description'\np29595\n(dp29596\nS'editable'\np29597\nI01\nsS'value'\np29598\ng47\nsssS'description'\np29599\n(dp29600\nS'mandatory'\np29601\n(dp29602\nS'editable'\np29603\nI00\nsS'value'\np29604\nI00\nssS'name'\np29605\n(dp29606\nS'editable'\np29607\nI01\nsS'value'\np29608\nS'Description'\np29609\nssS'data_type'\np29610\n(dp29611\nS'editable'\np29612\nI00\nsS'value'\np29613\nS'text'\np29614\nssS'entity_type'\np29615\n(dp29616\nS'editable'\np29617\nI00\nsS'value'\np29618\nS'CustomEntity03'\np29619\nssS'editable'\np29620\n(dp29621\nS'editable'\np29622\nI00\nsS'value'\np29623\nI01\nssS'unique'\np29624\n(dp29625\nS'editable'\np29626\nI00\nsS'value'\np29627\nI00\nssS'properties'\np29628\n(dp29629\nS'default_value'\np29630\n(dp29631\nS'editable'\np29632\nI00\nsS'value'\np29633\nNssS'summary_default'\np29634\n(dp29635\nS'editable'\np29636\nI01\nsS'value'\np29637\nS'none'\np29638\nsssS'description'\np29639\n(dp29640\nS'editable'\np29641\nI01\nsS'value'\np29642\ng47\nsssS'created_at'\np29643\n(dp29644\nS'mandatory'\np29645\n(dp29646\nS'editable'\np29647\nI00\nsS'value'\np29648\nI00\nssS'name'\np29649\n(dp29650\nS'editable'\np29651\nI01\nsS'value'\np29652\nS'Date Created'\np29653\nssS'data_type'\np29654\n(dp29655\nS'editable'\np29656\nI00\nsS'value'\np29657\nS'date_time'\np29658\nssS'entity_type'\np29659\n(dp29660\nS'editable'\np29661\nI00\nsS'value'\np29662\nS'CustomEntity03'\np29663\nssS'editable'\np29664\n(dp29665\nS'editable'\np29666\nI00\nsS'value'\np29667\nI00\nssS'unique'\np29668\n(dp29669\nS'editable'\np29670\nI00\nsS'value'\np29671\nI00\nssS'properties'\np29672\n(dp29673\nS'default_value'\np29674\n(dp29675\nS'editable'\np29676\nI00\nsS'value'\np29677\nNssS'summary_default'\np29678\n(dp29679\nS'editable'\np29680\nI01\nsS'value'\np29681\nS'none'\np29682\nsssS'description'\np29683\n(dp29684\nS'editable'\np29685\nI01\nsS'value'\np29686\ng47\nsssS'updated_at'\np29687\n(dp29688\nS'mandatory'\np29689\n(dp29690\nS'editable'\np29691\nI00\nsS'value'\np29692\nI00\nssS'name'\np29693\n(dp29694\nS'editable'\np29695\nI01\nsS'value'\np29696\nS'Date Updated'\np29697\nssS'data_type'\np29698\n(dp29699\nS'editable'\np29700\nI00\nsS'value'\np29701\nS'date_time'\np29702\nssS'entity_type'\np29703\n(dp29704\nS'editable'\np29705\nI00\nsS'value'\np29706\nS'CustomEntity03'\np29707\nssS'editable'\np29708\n(dp29709\nS'editable'\np29710\nI00\nsS'value'\np29711\nI00\nssS'unique'\np29712\n(dp29713\nS'editable'\np29714\nI00\nsS'value'\np29715\nI00\nssS'properties'\np29716\n(dp29717\nS'default_value'\np29718\n(dp29719\nS'editable'\np29720\nI00\nsS'value'\np29721\nNssS'summary_default'\np29722\n(dp29723\nS'editable'\np29724\nI01\nsS'value'\np29725\nS'none'\np29726\nsssS'description'\np29727\n(dp29728\nS'editable'\np29729\nI01\nsS'value'\np29730\ng47\nsssS'created_by'\np29731\n(dp29732\nS'mandatory'\np29733\n(dp29734\nS'editable'\np29735\nI00\nsS'value'\np29736\nI00\nssS'name'\np29737\n(dp29738\nS'editable'\np29739\nI01\nsS'value'\np29740\nS'Created by'\np29741\nssS'data_type'\np29742\n(dp29743\nS'editable'\np29744\nI00\nsS'value'\np29745\nS'entity'\np29746\nssS'entity_type'\np29747\n(dp29748\nS'editable'\np29749\nI00\nsS'value'\np29750\nS'CustomEntity03'\np29751\nssS'editable'\np29752\n(dp29753\nS'editable'\np29754\nI00\nsS'value'\np29755\nI00\nssS'unique'\np29756\n(dp29757\nS'editable'\np29758\nI00\nsS'value'\np29759\nI00\nssS'properties'\np29760\n(dp29761\nS'default_value'\np29762\n(dp29763\nS'editable'\np29764\nI00\nsS'value'\np29765\nNssS'summary_default'\np29766\n(dp29767\nS'editable'\np29768\nI01\nsS'value'\np29769\nS'none'\np29770\nssS'valid_types'\np29771\n(dp29772\nS'editable'\np29773\nI01\nsS'value'\np29774\n(lp29775\nS'HumanUser'\np29776\naS'ApiUser'\np29777\nasssS'description'\np29778\n(dp29779\nS'editable'\np29780\nI01\nsS'value'\np29781\ng47\nsssS'project'\np29782\n(dp29783\nS'mandatory'\np29784\n(dp29785\nS'editable'\np29786\nI00\nsS'value'\np29787\nI00\nssS'name'\np29788\n(dp29789\nS'editable'\np29790\nI01\nsS'value'\np29791\nS'Project'\np29792\nssS'data_type'\np29793\n(dp29794\nS'editable'\np29795\nI00\nsS'value'\np29796\nS'entity'\np29797\nssS'entity_type'\np29798\n(dp29799\nS'editable'\np29800\nI00\nsS'value'\np29801\nS'CustomEntity03'\np29802\nssS'editable'\np29803\n(dp29804\nS'editable'\np29805\nI00\nsS'value'\np29806\nI01\nssS'unique'\np29807\n(dp29808\nS'editable'\np29809\nI00\nsS'value'\np29810\nI00\nssS'properties'\np29811\n(dp29812\nS'default_value'\np29813\n(dp29814\nS'editable'\np29815\nI00\nsS'value'\np29816\nNssS'summary_default'\np29817\n(dp29818\nS'editable'\np29819\nI01\nsS'value'\np29820\nS'none'\np29821\nssS'valid_types'\np29822\n(dp29823\nS'editable'\np29824\nI01\nsS'value'\np29825\n(lp29826\nS'Project'\np29827\nasssS'description'\np29828\n(dp29829\nS'editable'\np29830\nI01\nsS'value'\np29831\ng47\nsssS'filmstrip_image'\np29832\n(dp29833\nS'mandatory'\np29834\n(dp29835\nS'editable'\np29836\nI00\nsS'value'\np29837\nI00\nssS'name'\np29838\n(dp29839\nS'editable'\np29840\nI01\nsS'value'\np29841\nS'Filmstrip Thumbnail'\np29842\nssS'data_type'\np29843\n(dp29844\nS'editable'\np29845\nI00\nsS'value'\np29846\nS'image'\np29847\nssS'entity_type'\np29848\n(dp29849\nS'editable'\np29850\nI00\nsS'value'\np29851\nS'CustomEntity03'\np29852\nssS'editable'\np29853\n(dp29854\nS'editable'\np29855\nI00\nsS'value'\np29856\nI01\nssS'unique'\np29857\n(dp29858\nS'editable'\np29859\nI00\nsS'value'\np29860\nI00\nssS'properties'\np29861\n(dp29862\nS'default_value'\np29863\n(dp29864\nS'editable'\np29865\nI00\nsS'value'\np29866\nNssS'summary_default'\np29867\n(dp29868\nS'editable'\np29869\nI01\nsS'value'\np29870\nS'none'\np29871\nsssS'description'\np29872\n(dp29873\nS'editable'\np29874\nI01\nsS'value'\np29875\ng47\nsssS'sg_status_list'\np29876\n(dp29877\nS'mandatory'\np29878\n(dp29879\nS'editable'\np29880\nI00\nsS'value'\np29881\nI00\nssS'name'\np29882\n(dp29883\nS'editable'\np29884\nI01\nsS'value'\np29885\nS'Status'\np29886\nssS'data_type'\np29887\n(dp29888\nS'editable'\np29889\nI00\nsS'value'\np29890\nS'status_list'\np29891\nssS'entity_type'\np29892\n(dp29893\nS'editable'\np29894\nI00\nsS'value'\np29895\nS'CustomEntity03'\np29896\nssS'editable'\np29897\n(dp29898\nS'editable'\np29899\nI00\nsS'value'\np29900\nI01\nssS'unique'\np29901\n(dp29902\nS'editable'\np29903\nI00\nsS'value'\np29904\nI00\nssS'properties'\np29905\n(dp29906\nS'default_value'\np29907\n(dp29908\nS'editable'\np29909\nI01\nsS'value'\np29910\nS'wtg'\np29911\nssS'valid_values'\np29912\n(dp29913\nS'editable'\np29914\nI01\nsS'value'\np29915\n(lp29916\nS'cmpt'\np29917\naS'ip'\np29918\naS'wtg'\np29919\nassS'summary_default'\np29920\n(dp29921\nS'editable'\np29922\nI01\nsS'value'\np29923\nS'none'\np29924\nsssS'description'\np29925\n(dp29926\nS'editable'\np29927\nI01\nsS'value'\np29928\ng47\nsssS'notes'\np29929\n(dp29930\nS'mandatory'\np29931\n(dp29932\nS'editable'\np29933\nI00\nsS'value'\np29934\nI00\nssS'name'\np29935\n(dp29936\nS'editable'\np29937\nI01\nsS'value'\np29938\nS'Notes'\np29939\nssS'data_type'\np29940\n(dp29941\nS'editable'\np29942\nI00\nsS'value'\np29943\nS'multi_entity'\np29944\nssS'entity_type'\np29945\n(dp29946\nS'editable'\np29947\nI00\nsS'value'\np29948\nS'CustomEntity03'\np29949\nssS'editable'\np29950\n(dp29951\nS'editable'\np29952\nI00\nsS'value'\np29953\nI01\nssS'unique'\np29954\n(dp29955\nS'editable'\np29956\nI00\nsS'value'\np29957\nI00\nssS'properties'\np29958\n(dp29959\nS'default_value'\np29960\n(dp29961\nS'editable'\np29962\nI00\nsS'value'\np29963\nNssS'summary_default'\np29964\n(dp29965\nS'editable'\np29966\nI01\nsS'value'\np29967\nS'none'\np29968\nssS'valid_types'\np29969\n(dp29970\nS'editable'\np29971\nI01\nsS'value'\np29972\n(lp29973\nS'Note'\np29974\nasssS'description'\np29975\n(dp29976\nS'editable'\np29977\nI01\nsS'value'\np29978\ng47\nsssS'image'\np29979\n(dp29980\nS'mandatory'\np29981\n(dp29982\nS'editable'\np29983\nI00\nsS'value'\np29984\nI00\nssS'name'\np29985\n(dp29986\nS'editable'\np29987\nI01\nsS'value'\np29988\nS'Thumbnail'\np29989\nssS'data_type'\np29990\n(dp29991\nS'editable'\np29992\nI00\nsS'value'\np29993\nS'image'\np29994\nssS'entity_type'\np29995\n(dp29996\nS'editable'\np29997\nI00\nsS'value'\np29998\nS'CustomEntity03'\np29999\nssS'editable'\np30000\n(dp30001\nS'editable'\np30002\nI00\nsS'value'\np30003\nI01\nssS'unique'\np30004\n(dp30005\nS'editable'\np30006\nI00\nsS'value'\np30007\nI00\nssS'properties'\np30008\n(dp30009\nS'default_value'\np30010\n(dp30011\nS'editable'\np30012\nI00\nsS'value'\np30013\nNssS'summary_default'\np30014\n(dp30015\nS'editable'\np30016\nI01\nsS'value'\np30017\nS'none'\np30018\nsssS'description'\np30019\n(dp30020\nS'editable'\np30021\nI01\nsS'value'\np30022\ng47\nsssS'cached_display_name'\np30023\n(dp30024\nS'mandatory'\np30025\n(dp30026\nS'editable'\np30027\nI00\nsS'value'\np30028\nI00\nssS'name'\np30029\n(dp30030\nS'editable'\np30031\nI01\nsS'value'\np30032\nS'Cached Display Name'\np30033\nssS'data_type'\np30034\n(dp30035\nS'editable'\np30036\nI00\nsS'value'\np30037\nS'text'\np30038\nssS'entity_type'\np30039\n(dp30040\nS'editable'\np30041\nI00\nsS'value'\np30042\nS'CustomEntity03'\np30043\nssS'editable'\np30044\n(dp30045\nS'editable'\np30046\nI00\nsS'value'\np30047\nI01\nssS'unique'\np30048\n(dp30049\nS'editable'\np30050\nI00\nsS'value'\np30051\nI00\nssS'properties'\np30052\n(dp30053\nS'default_value'\np30054\n(dp30055\nS'editable'\np30056\nI00\nsS'value'\np30057\nNssS'summary_default'\np30058\n(dp30059\nS'editable'\np30060\nI00\nsS'value'\np30061\nS'none'\np30062\nsssS'description'\np30063\n(dp30064\nS'editable'\np30065\nI01\nsS'value'\np30066\ng47\nsssS'tag_list'\np30067\n(dp30068\nS'mandatory'\np30069\n(dp30070\nS'editable'\np30071\nI00\nsS'value'\np30072\nI00\nssS'name'\np30073\n(dp30074\nS'editable'\np30075\nI01\nsS'value'\np30076\nS'Tags'\np30077\nssS'data_type'\np30078\n(dp30079\nS'editable'\np30080\nI00\nsS'value'\np30081\nS'tag_list'\np30082\nssS'entity_type'\np30083\n(dp30084\nS'editable'\np30085\nI00\nsS'value'\np30086\nS'CustomEntity03'\np30087\nssS'editable'\np30088\n(dp30089\nS'editable'\np30090\nI00\nsS'value'\np30091\nI01\nssS'unique'\np30092\n(dp30093\nS'editable'\np30094\nI00\nsS'value'\np30095\nI00\nssS'properties'\np30096\n(dp30097\nS'default_value'\np30098\n(dp30099\nS'editable'\np30100\nI00\nsS'value'\np30101\nNssS'summary_default'\np30102\n(dp30103\nS'editable'\np30104\nI01\nsS'value'\np30105\nS'none'\np30106\nssS'valid_types'\np30107\n(dp30108\nS'editable'\np30109\nI01\nsS'value'\np30110\n(lp30111\nS'Tag'\np30112\nasssS'description'\np30113\n(dp30114\nS'editable'\np30115\nI01\nsS'value'\np30116\ng47\nsssS'id'\np30117\n(dp30118\nS'mandatory'\np30119\n(dp30120\nS'editable'\np30121\nI00\nsS'value'\np30122\nI00\nssS'name'\np30123\n(dp30124\nS'editable'\np30125\nI01\nsS'value'\np30126\nS'Id'\np30127\nssS'data_type'\np30128\n(dp30129\nS'editable'\np30130\nI00\nsS'value'\np30131\nS'number'\np30132\nssS'entity_type'\np30133\n(dp30134\nS'editable'\np30135\nI00\nsS'value'\np30136\nS'CustomEntity03'\np30137\nssS'editable'\np30138\n(dp30139\nS'editable'\np30140\nI00\nsS'value'\np30141\nI00\nssS'unique'\np30142\n(dp30143\nS'editable'\np30144\nI00\nsS'value'\np30145\nI00\nssS'properties'\np30146\n(dp30147\nS'default_value'\np30148\n(dp30149\nS'editable'\np30150\nI00\nsS'value'\np30151\nNssS'summary_default'\np30152\n(dp30153\nS'editable'\np30154\nI01\nsS'value'\np30155\nS'none'\np30156\nsssS'description'\np30157\n(dp30158\nS'editable'\np30159\nI01\nsS'value'\np30160\ng47\nsssS'updated_by'\np30161\n(dp30162\nS'mandatory'\np30163\n(dp30164\nS'editable'\np30165\nI00\nsS'value'\np30166\nI00\nssS'name'\np30167\n(dp30168\nS'editable'\np30169\nI01\nsS'value'\np30170\nS'Updated by'\np30171\nssS'data_type'\np30172\n(dp30173\nS'editable'\np30174\nI00\nsS'value'\np30175\nS'entity'\np30176\nssS'entity_type'\np30177\n(dp30178\nS'editable'\np30179\nI00\nsS'value'\np30180\nS'CustomEntity03'\np30181\nssS'editable'\np30182\n(dp30183\nS'editable'\np30184\nI00\nsS'value'\np30185\nI00\nssS'unique'\np30186\n(dp30187\nS'editable'\np30188\nI00\nsS'value'\np30189\nI00\nssS'properties'\np30190\n(dp30191\nS'default_value'\np30192\n(dp30193\nS'editable'\np30194\nI00\nsS'value'\np30195\nNssS'summary_default'\np30196\n(dp30197\nS'editable'\np30198\nI01\nsS'value'\np30199\nS'none'\np30200\nssS'valid_types'\np30201\n(dp30202\nS'editable'\np30203\nI01\nsS'value'\np30204\n(lp30205\nS'HumanUser'\np30206\naS'ApiUser'\np30207\nasssS'description'\np30208\n(dp30209\nS'editable'\np30210\nI01\nsS'value'\np30211\ng47\nssssS'FilesystemLocation'\np30212\n(dp30213\nS'code'\np30214\n(dp30215\nS'mandatory'\np30216\n(dp30217\nS'editable'\np30218\nI00\nsS'value'\np30219\nI01\nssS'name'\np30220\n(dp30221\nS'editable'\np30222\nI01\nsS'value'\np30223\nS'FilesystemLocation Name'\np30224\nssS'data_type'\np30225\n(dp30226\nS'editable'\np30227\nI00\nsS'value'\np30228\nS'text'\np30229\nssS'entity_type'\np30230\n(dp30231\nS'editable'\np30232\nI00\nsS'value'\np30233\nS'FilesystemLocation'\np30234\nssS'editable'\np30235\n(dp30236\nS'editable'\np30237\nI00\nsS'value'\np30238\nI01\nssS'unique'\np30239\n(dp30240\nS'editable'\np30241\nI00\nsS'value'\np30242\nI00\nssS'properties'\np30243\n(dp30244\nS'default_value'\np30245\n(dp30246\nS'editable'\np30247\nI00\nsS'value'\np30248\nNssS'summary_default'\np30249\n(dp30250\nS'editable'\np30251\nI00\nsS'value'\np30252\nS'none'\np30253\nsssS'description'\np30254\n(dp30255\nS'editable'\np30256\nI01\nsS'value'\np30257\ng47\nsssS'linked_entity_type'\np30258\n(dp30259\nS'mandatory'\np30260\n(dp30261\nS'editable'\np30262\nI00\nsS'value'\np30263\nI00\nssS'name'\np30264\n(dp30265\nS'editable'\np30266\nI01\nsS'value'\np30267\nS'Linked Entity Type'\np30268\nssS'data_type'\np30269\n(dp30270\nS'editable'\np30271\nI00\nsS'value'\np30272\nS'text'\np30273\nssS'entity_type'\np30274\n(dp30275\nS'editable'\np30276\nI00\nsS'value'\np30277\nS'FilesystemLocation'\np30278\nssS'editable'\np30279\n(dp30280\nS'editable'\np30281\nI00\nsS'value'\np30282\nI01\nssS'unique'\np30283\n(dp30284\nS'editable'\np30285\nI00\nsS'value'\np30286\nI00\nssS'properties'\np30287\n(dp30288\nS'default_value'\np30289\n(dp30290\nS'editable'\np30291\nI00\nsS'value'\np30292\nNssS'summary_default'\np30293\n(dp30294\nS'editable'\np30295\nI01\nsS'value'\np30296\nS'none'\np30297\nsssS'description'\np30298\n(dp30299\nS'editable'\np30300\nI01\nsS'value'\np30301\ng47\nsssS'linked_entity_id'\np30302\n(dp30303\nS'mandatory'\np30304\n(dp30305\nS'editable'\np30306\nI00\nsS'value'\np30307\nI00\nssS'name'\np30308\n(dp30309\nS'editable'\np30310\nI01\nsS'value'\np30311\nS'Linked Entity Id'\np30312\nssS'data_type'\np30313\n(dp30314\nS'editable'\np30315\nI00\nsS'value'\np30316\nS'number'\np30317\nssS'entity_type'\np30318\n(dp30319\nS'editable'\np30320\nI00\nsS'value'\np30321\nS'FilesystemLocation'\np30322\nssS'editable'\np30323\n(dp30324\nS'editable'\np30325\nI00\nsS'value'\np30326\nI01\nssS'unique'\np30327\n(dp30328\nS'editable'\np30329\nI00\nsS'value'\np30330\nI00\nssS'properties'\np30331\n(dp30332\nS'default_value'\np30333\n(dp30334\nS'editable'\np30335\nI00\nsS'value'\np30336\nNssS'summary_default'\np30337\n(dp30338\nS'editable'\np30339\nI01\nsS'value'\np30340\nS'none'\np30341\nsssS'description'\np30342\n(dp30343\nS'editable'\np30344\nI01\nsS'value'\np30345\ng47\nsssS'is_primary'\np30346\n(dp30347\nS'mandatory'\np30348\n(dp30349\nS'editable'\np30350\nI00\nsS'value'\np30351\nI00\nssS'name'\np30352\n(dp30353\nS'editable'\np30354\nI01\nsS'value'\np30355\nS'Primary'\np30356\nssS'data_type'\np30357\n(dp30358\nS'editable'\np30359\nI00\nsS'value'\np30360\nS'checkbox'\np30361\nssS'entity_type'\np30362\n(dp30363\nS'editable'\np30364\nI00\nsS'value'\np30365\nS'FilesystemLocation'\np30366\nssS'editable'\np30367\n(dp30368\nS'editable'\np30369\nI00\nsS'value'\np30370\nI01\nssS'unique'\np30371\n(dp30372\nS'editable'\np30373\nI00\nsS'value'\np30374\nI00\nssS'properties'\np30375\n(dp30376\nS'default_value'\np30377\n(dp30378\nS'editable'\np30379\nI00\nsS'value'\np30380\nNssS'summary_default'\np30381\n(dp30382\nS'editable'\np30383\nI01\nsS'value'\np30384\nS'none'\np30385\nsssS'description'\np30386\n(dp30387\nS'editable'\np30388\nI01\nsS'value'\np30389\ng47\nsssS'created_at'\np30390\n(dp30391\nS'mandatory'\np30392\n(dp30393\nS'editable'\np30394\nI00\nsS'value'\np30395\nI00\nssS'name'\np30396\n(dp30397\nS'editable'\np30398\nI01\nsS'value'\np30399\nS'Date Created'\np30400\nssS'data_type'\np30401\n(dp30402\nS'editable'\np30403\nI00\nsS'value'\np30404\nS'date_time'\np30405\nssS'entity_type'\np30406\n(dp30407\nS'editable'\np30408\nI00\nsS'value'\np30409\nS'FilesystemLocation'\np30410\nssS'editable'\np30411\n(dp30412\nS'editable'\np30413\nI00\nsS'value'\np30414\nI00\nssS'unique'\np30415\n(dp30416\nS'editable'\np30417\nI00\nsS'value'\np30418\nI00\nssS'properties'\np30419\n(dp30420\nS'default_value'\np30421\n(dp30422\nS'editable'\np30423\nI00\nsS'value'\np30424\nNssS'summary_default'\np30425\n(dp30426\nS'editable'\np30427\nI01\nsS'value'\np30428\nS'none'\np30429\nsssS'description'\np30430\n(dp30431\nS'editable'\np30432\nI01\nsS'value'\np30433\ng47\nsssS'updated_at'\np30434\n(dp30435\nS'mandatory'\np30436\n(dp30437\nS'editable'\np30438\nI00\nsS'value'\np30439\nI00\nssS'name'\np30440\n(dp30441\nS'editable'\np30442\nI01\nsS'value'\np30443\nS'Date Updated'\np30444\nssS'data_type'\np30445\n(dp30446\nS'editable'\np30447\nI00\nsS'value'\np30448\nS'date_time'\np30449\nssS'entity_type'\np30450\n(dp30451\nS'editable'\np30452\nI00\nsS'value'\np30453\nS'FilesystemLocation'\np30454\nssS'editable'\np30455\n(dp30456\nS'editable'\np30457\nI00\nsS'value'\np30458\nI00\nssS'unique'\np30459\n(dp30460\nS'editable'\np30461\nI00\nsS'value'\np30462\nI00\nssS'properties'\np30463\n(dp30464\nS'default_value'\np30465\n(dp30466\nS'editable'\np30467\nI00\nsS'value'\np30468\nNssS'summary_default'\np30469\n(dp30470\nS'editable'\np30471\nI01\nsS'value'\np30472\nS'none'\np30473\nsssS'description'\np30474\n(dp30475\nS'editable'\np30476\nI01\nsS'value'\np30477\ng47\nsssS'created_by'\np30478\n(dp30479\nS'mandatory'\np30480\n(dp30481\nS'editable'\np30482\nI00\nsS'value'\np30483\nI00\nssS'name'\np30484\n(dp30485\nS'editable'\np30486\nI01\nsS'value'\np30487\nS'Created by'\np30488\nssS'data_type'\np30489\n(dp30490\nS'editable'\np30491\nI00\nsS'value'\np30492\nS'entity'\np30493\nssS'entity_type'\np30494\n(dp30495\nS'editable'\np30496\nI00\nsS'value'\np30497\nS'FilesystemLocation'\np30498\nssS'editable'\np30499\n(dp30500\nS'editable'\np30501\nI00\nsS'value'\np30502\nI00\nssS'unique'\np30503\n(dp30504\nS'editable'\np30505\nI00\nsS'value'\np30506\nI00\nssS'properties'\np30507\n(dp30508\nS'default_value'\np30509\n(dp30510\nS'editable'\np30511\nI00\nsS'value'\np30512\nNssS'summary_default'\np30513\n(dp30514\nS'editable'\np30515\nI01\nsS'value'\np30516\nS'none'\np30517\nssS'valid_types'\np30518\n(dp30519\nS'editable'\np30520\nI01\nsS'value'\np30521\n(lp30522\nS'HumanUser'\np30523\naS'ApiUser'\np30524\nasssS'description'\np30525\n(dp30526\nS'editable'\np30527\nI01\nsS'value'\np30528\ng47\nsssS'entity'\np30529\n(dp30530\nS'mandatory'\np30531\n(dp30532\nS'editable'\np30533\nI00\nsS'value'\np30534\nI00\nssS'name'\np30535\n(dp30536\nS'editable'\np30537\nI01\nsS'value'\np30538\nS'Link'\np30539\nssS'data_type'\np30540\n(dp30541\nS'editable'\np30542\nI00\nsS'value'\np30543\nS'entity'\np30544\nssS'entity_type'\np30545\n(dp30546\nS'editable'\np30547\nI00\nsS'value'\np30548\nS'FilesystemLocation'\np30549\nssS'editable'\np30550\n(dp30551\nS'editable'\np30552\nI00\nsS'value'\np30553\nI01\nssS'unique'\np30554\n(dp30555\nS'editable'\np30556\nI00\nsS'value'\np30557\nI00\nssS'properties'\np30558\n(dp30559\nS'default_value'\np30560\n(dp30561\nS'editable'\np30562\nI00\nsS'value'\np30563\nNssS'summary_default'\np30564\n(dp30565\nS'editable'\np30566\nI01\nsS'value'\np30567\nS'none'\np30568\nssS'valid_types'\np30569\n(dp30570\nS'editable'\np30571\nI01\nsS'value'\np30572\n(lp30573\nS'Asset'\np30574\naS'Shot'\np30575\naS'Sequence'\np30576\nasssS'description'\np30577\n(dp30578\nS'editable'\np30579\nI01\nsS'value'\np30580\ng47\nsssS'project'\np30581\n(dp30582\nS'mandatory'\np30583\n(dp30584\nS'editable'\np30585\nI00\nsS'value'\np30586\nI00\nssS'name'\np30587\n(dp30588\nS'editable'\np30589\nI01\nsS'value'\np30590\nS'Project'\np30591\nssS'data_type'\np30592\n(dp30593\nS'editable'\np30594\nI00\nsS'value'\np30595\nS'entity'\np30596\nssS'entity_type'\np30597\n(dp30598\nS'editable'\np30599\nI00\nsS'value'\np30600\nS'FilesystemLocation'\np30601\nssS'editable'\np30602\n(dp30603\nS'editable'\np30604\nI00\nsS'value'\np30605\nI01\nssS'unique'\np30606\n(dp30607\nS'editable'\np30608\nI00\nsS'value'\np30609\nI00\nssS'properties'\np30610\n(dp30611\nS'default_value'\np30612\n(dp30613\nS'editable'\np30614\nI00\nsS'value'\np30615\nNssS'summary_default'\np30616\n(dp30617\nS'editable'\np30618\nI01\nsS'value'\np30619\nS'none'\np30620\nssS'valid_types'\np30621\n(dp30622\nS'editable'\np30623\nI01\nsS'value'\np30624\n(lp30625\nS'Project'\np30626\nasssS'description'\np30627\n(dp30628\nS'editable'\np30629\nI01\nsS'value'\np30630\ng47\nsssS'updated_by'\np30631\n(dp30632\nS'mandatory'\np30633\n(dp30634\nS'editable'\np30635\nI00\nsS'value'\np30636\nI00\nssS'name'\np30637\n(dp30638\nS'editable'\np30639\nI01\nsS'value'\np30640\nS'Updated by'\np30641\nssS'data_type'\np30642\n(dp30643\nS'editable'\np30644\nI00\nsS'value'\np30645\nS'entity'\np30646\nssS'entity_type'\np30647\n(dp30648\nS'editable'\np30649\nI00\nsS'value'\np30650\nS'FilesystemLocation'\np30651\nssS'editable'\np30652\n(dp30653\nS'editable'\np30654\nI00\nsS'value'\np30655\nI00\nssS'unique'\np30656\n(dp30657\nS'editable'\np30658\nI00\nsS'value'\np30659\nI00\nssS'properties'\np30660\n(dp30661\nS'default_value'\np30662\n(dp30663\nS'editable'\np30664\nI00\nsS'value'\np30665\nNssS'summary_default'\np30666\n(dp30667\nS'editable'\np30668\nI01\nsS'value'\np30669\nS'none'\np30670\nssS'valid_types'\np30671\n(dp30672\nS'editable'\np30673\nI01\nsS'value'\np30674\n(lp30675\nS'HumanUser'\np30676\naS'ApiUser'\np30677\nasssS'description'\np30678\n(dp30679\nS'editable'\np30680\nI01\nsS'value'\np30681\ng47\nsssS'configuration_metadata'\np30682\n(dp30683\nS'mandatory'\np30684\n(dp30685\nS'editable'\np30686\nI00\nsS'value'\np30687\nI00\nssS'name'\np30688\n(dp30689\nS'editable'\np30690\nI01\nsS'value'\np30691\nS'Configuration Metadata'\np30692\nssS'data_type'\np30693\n(dp30694\nS'editable'\np30695\nI00\nsS'value'\np30696\nS'text'\np30697\nssS'entity_type'\np30698\n(dp30699\nS'editable'\np30700\nI00\nsS'value'\np30701\nS'FilesystemLocation'\np30702\nssS'editable'\np30703\n(dp30704\nS'editable'\np30705\nI00\nsS'value'\np30706\nI01\nssS'unique'\np30707\n(dp30708\nS'editable'\np30709\nI00\nsS'value'\np30710\nI00\nssS'properties'\np30711\n(dp30712\nS'default_value'\np30713\n(dp30714\nS'editable'\np30715\nI00\nsS'value'\np30716\nNssS'summary_default'\np30717\n(dp30718\nS'editable'\np30719\nI01\nsS'value'\np30720\nS'none'\np30721\nsssS'description'\np30722\n(dp30723\nS'editable'\np30724\nI01\nsS'value'\np30725\ng47\nsssS'path'\np30726\n(dp30727\nS'mandatory'\np30728\n(dp30729\nS'editable'\np30730\nI00\nsS'value'\np30731\nI00\nssS'name'\np30732\n(dp30733\nS'editable'\np30734\nI01\nsS'value'\np30735\nS'Path'\np30736\nssS'data_type'\np30737\n(dp30738\nS'editable'\np30739\nI00\nsS'value'\np30740\nS'url'\np30741\nssS'entity_type'\np30742\n(dp30743\nS'editable'\np30744\nI00\nsS'value'\np30745\nS'FilesystemLocation'\np30746\nssS'editable'\np30747\n(dp30748\nS'editable'\np30749\nI00\nsS'value'\np30750\nI01\nssS'unique'\np30751\n(dp30752\nS'editable'\np30753\nI00\nsS'value'\np30754\nI00\nssS'properties'\np30755\n(dp30756\nS'default_value'\np30757\n(dp30758\nS'editable'\np30759\nI00\nsS'value'\np30760\nNssS'open_in_new_window'\np30761\n(dp30762\nS'editable'\np30763\nI01\nsS'value'\np30764\nI01\nssS'summary_default'\np30765\n(dp30766\nS'editable'\np30767\nI01\nsS'value'\np30768\nS'none'\np30769\nsssS'description'\np30770\n(dp30771\nS'editable'\np30772\nI01\nsS'value'\np30773\ng47\nsssS'id'\np30774\n(dp30775\nS'mandatory'\np30776\n(dp30777\nS'editable'\np30778\nI00\nsS'value'\np30779\nI00\nssS'name'\np30780\n(dp30781\nS'editable'\np30782\nI01\nsS'value'\np30783\nS'Id'\np30784\nssS'data_type'\np30785\n(dp30786\nS'editable'\np30787\nI00\nsS'value'\np30788\nS'number'\np30789\nssS'entity_type'\np30790\n(dp30791\nS'editable'\np30792\nI00\nsS'value'\np30793\nS'FilesystemLocation'\np30794\nssS'editable'\np30795\n(dp30796\nS'editable'\np30797\nI00\nsS'value'\np30798\nI00\nssS'unique'\np30799\n(dp30800\nS'editable'\np30801\nI00\nsS'value'\np30802\nI00\nssS'properties'\np30803\n(dp30804\nS'default_value'\np30805\n(dp30806\nS'editable'\np30807\nI00\nsS'value'\np30808\nNssS'summary_default'\np30809\n(dp30810\nS'editable'\np30811\nI00\nsS'value'\np30812\nS'none'\np30813\nsssS'description'\np30814\n(dp30815\nS'editable'\np30816\nI01\nsS'value'\np30817\ng47\nsssS'pipeline_configuration'\np30818\n(dp30819\nS'mandatory'\np30820\n(dp30821\nS'editable'\np30822\nI00\nsS'value'\np30823\nI00\nssS'name'\np30824\n(dp30825\nS'editable'\np30826\nI01\nsS'value'\np30827\nS'Pipeline Configuration'\np30828\nssS'data_type'\np30829\n(dp30830\nS'editable'\np30831\nI00\nsS'value'\np30832\nS'entity'\np30833\nssS'entity_type'\np30834\n(dp30835\nS'editable'\np30836\nI00\nsS'value'\np30837\nS'FilesystemLocation'\np30838\nssS'editable'\np30839\n(dp30840\nS'editable'\np30841\nI00\nsS'value'\np30842\nI01\nssS'unique'\np30843\n(dp30844\nS'editable'\np30845\nI00\nsS'value'\np30846\nI00\nssS'properties'\np30847\n(dp30848\nS'default_value'\np30849\n(dp30850\nS'editable'\np30851\nI00\nsS'value'\np30852\nNssS'summary_default'\np30853\n(dp30854\nS'editable'\np30855\nI01\nsS'value'\np30856\nS'none'\np30857\nssS'valid_types'\np30858\n(dp30859\nS'editable'\np30860\nI01\nsS'value'\np30861\n(lp30862\nS'PipelineConfiguration'\np30863\nasssS'description'\np30864\n(dp30865\nS'editable'\np30866\nI01\nsS'value'\np30867\ng47\nssssS'CustomEntity01'\np30868\n(dp30869\nS'open_notes_count'\np30870\n(dp30871\nS'mandatory'\np30872\n(dp30873\nS'editable'\np30874\nI00\nsS'value'\np30875\nI00\nssS'name'\np30876\n(dp30877\nS'editable'\np30878\nI01\nsS'value'\np30879\nS'Open Notes Count'\np30880\nssS'data_type'\np30881\n(dp30882\nS'editable'\np30883\nI00\nsS'value'\np30884\nS'text'\np30885\nssS'entity_type'\np30886\n(dp30887\nS'editable'\np30888\nI00\nsS'value'\np30889\nS'CustomEntity01'\np30890\nssS'editable'\np30891\n(dp30892\nS'editable'\np30893\nI00\nsS'value'\np30894\nI00\nssS'unique'\np30895\n(dp30896\nS'editable'\np30897\nI00\nsS'value'\np30898\nI00\nssS'properties'\np30899\n(dp30900\nS'default_value'\np30901\n(dp30902\nS'editable'\np30903\nI00\nsS'value'\np30904\nNssS'summary_default'\np30905\n(dp30906\nS'editable'\np30907\nI01\nsS'value'\np30908\nS'none'\np30909\nsssS'description'\np30910\n(dp30911\nS'editable'\np30912\nI01\nsS'value'\np30913\ng47\nsssS'code'\np30914\n(dp30915\nS'mandatory'\np30916\n(dp30917\nS'editable'\np30918\nI00\nsS'value'\np30919\nI01\nssS'name'\np30920\n(dp30921\nS'editable'\np30922\nI01\nsS'value'\np30923\nS'Disk Location Name'\np30924\nssS'data_type'\np30925\n(dp30926\nS'editable'\np30927\nI00\nsS'value'\np30928\nS'text'\np30929\nssS'entity_type'\np30930\n(dp30931\nS'editable'\np30932\nI00\nsS'value'\np30933\nS'CustomEntity01'\np30934\nssS'editable'\np30935\n(dp30936\nS'editable'\np30937\nI00\nsS'value'\np30938\nI01\nssS'unique'\np30939\n(dp30940\nS'editable'\np30941\nI00\nsS'value'\np30942\nI00\nssS'properties'\np30943\n(dp30944\nS'default_value'\np30945\n(dp30946\nS'editable'\np30947\nI00\nsS'value'\np30948\nNssS'summary_default'\np30949\n(dp30950\nS'editable'\np30951\nI01\nsS'value'\np30952\nS'none'\np30953\nsssS'description'\np30954\n(dp30955\nS'editable'\np30956\nI01\nsS'value'\np30957\ng47\nsssS'image'\np30958\n(dp30959\nS'mandatory'\np30960\n(dp30961\nS'editable'\np30962\nI00\nsS'value'\np30963\nI00\nssS'name'\np30964\n(dp30965\nS'editable'\np30966\nI01\nsS'value'\np30967\nS'Thumbnail'\np30968\nssS'data_type'\np30969\n(dp30970\nS'editable'\np30971\nI00\nsS'value'\np30972\nS'image'\np30973\nssS'entity_type'\np30974\n(dp30975\nS'editable'\np30976\nI00\nsS'value'\np30977\nS'CustomEntity01'\np30978\nssS'editable'\np30979\n(dp30980\nS'editable'\np30981\nI00\nsS'value'\np30982\nI01\nssS'unique'\np30983\n(dp30984\nS'editable'\np30985\nI00\nsS'value'\np30986\nI00\nssS'properties'\np30987\n(dp30988\nS'default_value'\np30989\n(dp30990\nS'editable'\np30991\nI00\nsS'value'\np30992\nNssS'summary_default'\np30993\n(dp30994\nS'editable'\np30995\nI01\nsS'value'\np30996\nS'none'\np30997\nsssS'description'\np30998\n(dp30999\nS'editable'\np31000\nI01\nsS'value'\np31001\ng47\nsssS'updated_at'\np31002\n(dp31003\nS'mandatory'\np31004\n(dp31005\nS'editable'\np31006\nI00\nsS'value'\np31007\nI00\nssS'name'\np31008\n(dp31009\nS'editable'\np31010\nI01\nsS'value'\np31011\nS'Date Updated'\np31012\nssS'data_type'\np31013\n(dp31014\nS'editable'\np31015\nI00\nsS'value'\np31016\nS'date_time'\np31017\nssS'entity_type'\np31018\n(dp31019\nS'editable'\np31020\nI00\nsS'value'\np31021\nS'CustomEntity01'\np31022\nssS'editable'\np31023\n(dp31024\nS'editable'\np31025\nI00\nsS'value'\np31026\nI00\nssS'unique'\np31027\n(dp31028\nS'editable'\np31029\nI00\nsS'value'\np31030\nI00\nssS'properties'\np31031\n(dp31032\nS'default_value'\np31033\n(dp31034\nS'editable'\np31035\nI00\nsS'value'\np31036\nNssS'summary_default'\np31037\n(dp31038\nS'editable'\np31039\nI01\nsS'value'\np31040\nS'none'\np31041\nsssS'description'\np31042\n(dp31043\nS'editable'\np31044\nI01\nsS'value'\np31045\ng47\nsssS'cached_display_name'\np31046\n(dp31047\nS'mandatory'\np31048\n(dp31049\nS'editable'\np31050\nI00\nsS'value'\np31051\nI00\nssS'name'\np31052\n(dp31053\nS'editable'\np31054\nI01\nsS'value'\np31055\nS'Cached Display Name'\np31056\nssS'data_type'\np31057\n(dp31058\nS'editable'\np31059\nI00\nsS'value'\np31060\nS'text'\np31061\nssS'entity_type'\np31062\n(dp31063\nS'editable'\np31064\nI00\nsS'value'\np31065\nS'CustomEntity01'\np31066\nssS'editable'\np31067\n(dp31068\nS'editable'\np31069\nI00\nsS'value'\np31070\nI01\nssS'unique'\np31071\n(dp31072\nS'editable'\np31073\nI00\nsS'value'\np31074\nI00\nssS'properties'\np31075\n(dp31076\nS'default_value'\np31077\n(dp31078\nS'editable'\np31079\nI00\nsS'value'\np31080\nNssS'summary_default'\np31081\n(dp31082\nS'editable'\np31083\nI00\nsS'value'\np31084\nS'none'\np31085\nsssS'description'\np31086\n(dp31087\nS'editable'\np31088\nI01\nsS'value'\np31089\ng47\nsssS'id'\np31090\n(dp31091\nS'mandatory'\np31092\n(dp31093\nS'editable'\np31094\nI00\nsS'value'\np31095\nI00\nssS'name'\np31096\n(dp31097\nS'editable'\np31098\nI01\nsS'value'\np31099\nS'Id'\np31100\nssS'data_type'\np31101\n(dp31102\nS'editable'\np31103\nI00\nsS'value'\np31104\nS'number'\np31105\nssS'entity_type'\np31106\n(dp31107\nS'editable'\np31108\nI00\nsS'value'\np31109\nS'CustomEntity01'\np31110\nssS'editable'\np31111\n(dp31112\nS'editable'\np31113\nI00\nsS'value'\np31114\nI00\nssS'unique'\np31115\n(dp31116\nS'editable'\np31117\nI00\nsS'value'\np31118\nI00\nssS'properties'\np31119\n(dp31120\nS'default_value'\np31121\n(dp31122\nS'editable'\np31123\nI00\nsS'value'\np31124\nNssS'summary_default'\np31125\n(dp31126\nS'editable'\np31127\nI01\nsS'value'\np31128\nS'none'\np31129\nsssS'description'\np31130\n(dp31131\nS'editable'\np31132\nI01\nsS'value'\np31133\ng47\nsssS'updated_by'\np31134\n(dp31135\nS'mandatory'\np31136\n(dp31137\nS'editable'\np31138\nI00\nsS'value'\np31139\nI00\nssS'name'\np31140\n(dp31141\nS'editable'\np31142\nI01\nsS'value'\np31143\nS'Updated by'\np31144\nssS'data_type'\np31145\n(dp31146\nS'editable'\np31147\nI00\nsS'value'\np31148\nS'entity'\np31149\nssS'entity_type'\np31150\n(dp31151\nS'editable'\np31152\nI00\nsS'value'\np31153\nS'CustomEntity01'\np31154\nssS'editable'\np31155\n(dp31156\nS'editable'\np31157\nI00\nsS'value'\np31158\nI00\nssS'unique'\np31159\n(dp31160\nS'editable'\np31161\nI00\nsS'value'\np31162\nI00\nssS'properties'\np31163\n(dp31164\nS'default_value'\np31165\n(dp31166\nS'editable'\np31167\nI00\nsS'value'\np31168\nNssS'summary_default'\np31169\n(dp31170\nS'editable'\np31171\nI01\nsS'value'\np31172\nS'none'\np31173\nssS'valid_types'\np31174\n(dp31175\nS'editable'\np31176\nI01\nsS'value'\np31177\n(lp31178\nS'HumanUser'\np31179\naS'ApiUser'\np31180\nasssS'description'\np31181\n(dp31182\nS'editable'\np31183\nI01\nsS'value'\np31184\ng47\nsssS'open_notes'\np31185\n(dp31186\nS'mandatory'\np31187\n(dp31188\nS'editable'\np31189\nI00\nsS'value'\np31190\nI00\nssS'name'\np31191\n(dp31192\nS'editable'\np31193\nI01\nsS'value'\np31194\nS'Open Notes'\np31195\nssS'data_type'\np31196\n(dp31197\nS'editable'\np31198\nI00\nsS'value'\np31199\nS'multi_entity'\np31200\nssS'entity_type'\np31201\n(dp31202\nS'editable'\np31203\nI00\nsS'value'\np31204\nS'CustomEntity01'\np31205\nssS'editable'\np31206\n(dp31207\nS'editable'\np31208\nI00\nsS'value'\np31209\nI00\nssS'unique'\np31210\n(dp31211\nS'editable'\np31212\nI00\nsS'value'\np31213\nI00\nssS'properties'\np31214\n(dp31215\nS'default_value'\np31216\n(dp31217\nS'editable'\np31218\nI00\nsS'value'\np31219\nNssS'summary_default'\np31220\n(dp31221\nS'editable'\np31222\nI01\nsS'value'\np31223\nS'none'\np31224\nssS'valid_types'\np31225\n(dp31226\nS'editable'\np31227\nI01\nsS'value'\np31228\n(lp31229\nS'Note'\np31230\nasssS'description'\np31231\n(dp31232\nS'editable'\np31233\nI01\nsS'value'\np31234\ng47\nsssS'sg_metadata'\np31235\n(dp31236\nS'mandatory'\np31237\n(dp31238\nS'editable'\np31239\nI00\nsS'value'\np31240\nI00\nssS'name'\np31241\n(dp31242\nS'editable'\np31243\nI01\nsS'value'\np31244\nS'metadata'\np31245\nssS'data_type'\np31246\n(dp31247\nS'editable'\np31248\nI00\nsS'value'\np31249\nS'text'\np31250\nssS'entity_type'\np31251\n(dp31252\nS'editable'\np31253\nI00\nsS'value'\np31254\nS'CustomEntity01'\np31255\nssS'editable'\np31256\n(dp31257\nS'editable'\np31258\nI00\nsS'value'\np31259\nI01\nssS'unique'\np31260\n(dp31261\nS'editable'\np31262\nI00\nsS'value'\np31263\nI00\nssS'properties'\np31264\n(dp31265\nS'default_value'\np31266\n(dp31267\nS'editable'\np31268\nI00\nsS'value'\np31269\nNssS'summary_default'\np31270\n(dp31271\nS'editable'\np31272\nI01\nsS'value'\np31273\nS'none'\np31274\nsssS'description'\np31275\n(dp31276\nS'editable'\np31277\nI01\nsS'value'\np31278\ng47\nsssS'created_by'\np31279\n(dp31280\nS'mandatory'\np31281\n(dp31282\nS'editable'\np31283\nI00\nsS'value'\np31284\nI00\nssS'name'\np31285\n(dp31286\nS'editable'\np31287\nI01\nsS'value'\np31288\nS'Created by'\np31289\nssS'data_type'\np31290\n(dp31291\nS'editable'\np31292\nI00\nsS'value'\np31293\nS'entity'\np31294\nssS'entity_type'\np31295\n(dp31296\nS'editable'\np31297\nI00\nsS'value'\np31298\nS'CustomEntity01'\np31299\nssS'editable'\np31300\n(dp31301\nS'editable'\np31302\nI00\nsS'value'\np31303\nI00\nssS'unique'\np31304\n(dp31305\nS'editable'\np31306\nI00\nsS'value'\np31307\nI00\nssS'properties'\np31308\n(dp31309\nS'default_value'\np31310\n(dp31311\nS'editable'\np31312\nI00\nsS'value'\np31313\nNssS'summary_default'\np31314\n(dp31315\nS'editable'\np31316\nI01\nsS'value'\np31317\nS'none'\np31318\nssS'valid_types'\np31319\n(dp31320\nS'editable'\np31321\nI01\nsS'value'\np31322\n(lp31323\nS'HumanUser'\np31324\naS'ApiUser'\np31325\nasssS'description'\np31326\n(dp31327\nS'editable'\np31328\nI01\nsS'value'\np31329\ng47\nsssS'sg_path'\np31330\n(dp31331\nS'mandatory'\np31332\n(dp31333\nS'editable'\np31334\nI00\nsS'value'\np31335\nI00\nssS'name'\np31336\n(dp31337\nS'editable'\np31338\nI01\nsS'value'\np31339\nS'Path'\np31340\nssS'data_type'\np31341\n(dp31342\nS'editable'\np31343\nI00\nsS'value'\np31344\nS'url'\np31345\nssS'entity_type'\np31346\n(dp31347\nS'editable'\np31348\nI00\nsS'value'\np31349\nS'CustomEntity01'\np31350\nssS'editable'\np31351\n(dp31352\nS'editable'\np31353\nI00\nsS'value'\np31354\nI01\nssS'unique'\np31355\n(dp31356\nS'editable'\np31357\nI00\nsS'value'\np31358\nI00\nssS'properties'\np31359\n(dp31360\nS'default_value'\np31361\n(dp31362\nS'editable'\np31363\nI00\nsS'value'\np31364\nNssS'open_in_new_window'\np31365\n(dp31366\nS'editable'\np31367\nI01\nsS'value'\np31368\nI01\nssS'summary_default'\np31369\n(dp31370\nS'editable'\np31371\nI01\nsS'value'\np31372\nS'none'\np31373\nsssS'description'\np31374\n(dp31375\nS'editable'\np31376\nI01\nsS'value'\np31377\ng47\nsssS'sg_status_list'\np31378\n(dp31379\nS'mandatory'\np31380\n(dp31381\nS'editable'\np31382\nI00\nsS'value'\np31383\nI00\nssS'name'\np31384\n(dp31385\nS'editable'\np31386\nI01\nsS'value'\np31387\nS'Status'\np31388\nssS'data_type'\np31389\n(dp31390\nS'editable'\np31391\nI00\nsS'value'\np31392\nS'status_list'\np31393\nssS'entity_type'\np31394\n(dp31395\nS'editable'\np31396\nI00\nsS'value'\np31397\nS'CustomEntity01'\np31398\nssS'editable'\np31399\n(dp31400\nS'editable'\np31401\nI00\nsS'value'\np31402\nI01\nssS'unique'\np31403\n(dp31404\nS'editable'\np31405\nI00\nsS'value'\np31406\nI00\nssS'properties'\np31407\n(dp31408\nS'default_value'\np31409\n(dp31410\nS'editable'\np31411\nI01\nsS'value'\np31412\nS'wtg'\np31413\nssS'valid_values'\np31414\n(dp31415\nS'editable'\np31416\nI01\nsS'value'\np31417\n(lp31418\nS'cmpt'\np31419\naS'ip'\np31420\naS'wtg'\np31421\nassS'summary_default'\np31422\n(dp31423\nS'editable'\np31424\nI01\nsS'value'\np31425\nS'none'\np31426\nsssS'description'\np31427\n(dp31428\nS'editable'\np31429\nI01\nsS'value'\np31430\ng47\nsssS'sg_entity_name'\np31431\n(dp31432\nS'mandatory'\np31433\n(dp31434\nS'editable'\np31435\nI00\nsS'value'\np31436\nI00\nssS'name'\np31437\n(dp31438\nS'editable'\np31439\nI01\nsS'value'\np31440\nS'Entity Name'\np31441\nssS'data_type'\np31442\n(dp31443\nS'editable'\np31444\nI00\nsS'value'\np31445\nS'text'\np31446\nssS'entity_type'\np31447\n(dp31448\nS'editable'\np31449\nI00\nsS'value'\np31450\nS'CustomEntity01'\np31451\nssS'editable'\np31452\n(dp31453\nS'editable'\np31454\nI00\nsS'value'\np31455\nI01\nssS'unique'\np31456\n(dp31457\nS'editable'\np31458\nI00\nsS'value'\np31459\nI00\nssS'properties'\np31460\n(dp31461\nS'default_value'\np31462\n(dp31463\nS'editable'\np31464\nI00\nsS'value'\np31465\nNssS'summary_default'\np31466\n(dp31467\nS'editable'\np31468\nI01\nsS'value'\np31469\nS'none'\np31470\nsssS'description'\np31471\n(dp31472\nS'editable'\np31473\nI01\nsS'value'\np31474\ng47\nsssS'sg_secondary_entities'\np31475\n(dp31476\nS'mandatory'\np31477\n(dp31478\nS'editable'\np31479\nI00\nsS'value'\np31480\nI00\nssS'name'\np31481\n(dp31482\nS'editable'\np31483\nI01\nsS'value'\np31484\nS'Secondary Entities'\np31485\nssS'data_type'\np31486\n(dp31487\nS'editable'\np31488\nI00\nsS'value'\np31489\nS'text'\np31490\nssS'entity_type'\np31491\n(dp31492\nS'editable'\np31493\nI00\nsS'value'\np31494\nS'CustomEntity01'\np31495\nssS'editable'\np31496\n(dp31497\nS'editable'\np31498\nI00\nsS'value'\np31499\nI01\nssS'unique'\np31500\n(dp31501\nS'editable'\np31502\nI00\nsS'value'\np31503\nI00\nssS'properties'\np31504\n(dp31505\nS'default_value'\np31506\n(dp31507\nS'editable'\np31508\nI00\nsS'value'\np31509\nNssS'summary_default'\np31510\n(dp31511\nS'editable'\np31512\nI01\nsS'value'\np31513\nS'none'\np31514\nsssS'description'\np31515\n(dp31516\nS'editable'\np31517\nI01\nsS'value'\np31518\ng47\nsssS'sg_entity'\np31519\n(dp31520\nS'mandatory'\np31521\n(dp31522\nS'editable'\np31523\nI00\nsS'value'\np31524\nI00\nssS'name'\np31525\n(dp31526\nS'editable'\np31527\nI01\nsS'value'\np31528\nS'Entity'\np31529\nssS'data_type'\np31530\n(dp31531\nS'editable'\np31532\nI00\nsS'value'\np31533\nS'entity'\np31534\nssS'entity_type'\np31535\n(dp31536\nS'editable'\np31537\nI00\nsS'value'\np31538\nS'CustomEntity01'\np31539\nssS'editable'\np31540\n(dp31541\nS'editable'\np31542\nI00\nsS'value'\np31543\nI01\nssS'unique'\np31544\n(dp31545\nS'editable'\np31546\nI00\nsS'value'\np31547\nI00\nssS'properties'\np31548\n(dp31549\nS'default_value'\np31550\n(dp31551\nS'editable'\np31552\nI00\nsS'value'\np31553\nNssS'summary_default'\np31554\n(dp31555\nS'editable'\np31556\nI01\nsS'value'\np31557\nS'none'\np31558\nssS'valid_types'\np31559\n(dp31560\nS'editable'\np31561\nI01\nsS'value'\np31562\n(lp31563\nS'Asset'\np31564\naS'Booking'\np31565\naS'Department'\np31566\naS'CustomEntity01'\np31567\naS'Attachment'\np31568\naS'Group'\np31569\naS'Note'\np31570\naS'Page'\np31571\naS'HumanUser'\np31572\naS'Phase'\np31573\naS'Playlist'\np31574\naS'PipelineConfiguration'\np31575\naS'Project'\np31576\naS'PublishedFileDependency'\np31577\naS'PublishedFile'\np31578\naS'PublishedFileType'\np31579\naS'ApiUser'\np31580\naS'Sequence'\np31581\naS'Shot'\np31582\naS'Step'\np31583\naS'TankDependency'\np31584\naS'TankPublishedFile'\np31585\naS'TankType'\np31586\naS'Task'\np31587\naS'TimeLog'\np31588\naS'Version'\np31589\naS'TaskTemplate'\np31590\nasssS'description'\np31591\n(dp31592\nS'editable'\np31593\nI01\nsS'value'\np31594\ng47\nsssS'description'\np31595\n(dp31596\nS'mandatory'\np31597\n(dp31598\nS'editable'\np31599\nI00\nsS'value'\np31600\nI00\nssS'name'\np31601\n(dp31602\nS'editable'\np31603\nI01\nsS'value'\np31604\nS'Description'\np31605\nssS'data_type'\np31606\n(dp31607\nS'editable'\np31608\nI00\nsS'value'\np31609\nS'text'\np31610\nssS'entity_type'\np31611\n(dp31612\nS'editable'\np31613\nI00\nsS'value'\np31614\nS'CustomEntity01'\np31615\nssS'editable'\np31616\n(dp31617\nS'editable'\np31618\nI00\nsS'value'\np31619\nI01\nssS'unique'\np31620\n(dp31621\nS'editable'\np31622\nI00\nsS'value'\np31623\nI00\nssS'properties'\np31624\n(dp31625\nS'default_value'\np31626\n(dp31627\nS'editable'\np31628\nI00\nsS'value'\np31629\nNssS'summary_default'\np31630\n(dp31631\nS'editable'\np31632\nI01\nsS'value'\np31633\nS'none'\np31634\nsssS'description'\np31635\n(dp31636\nS'editable'\np31637\nI01\nsS'value'\np31638\ng47\nsssS'sg_pipeline_configuration'\np31639\n(dp31640\nS'mandatory'\np31641\n(dp31642\nS'editable'\np31643\nI00\nsS'value'\np31644\nI00\nssS'name'\np31645\n(dp31646\nS'editable'\np31647\nI01\nsS'value'\np31648\nS'Pipeline Configuration'\np31649\nssS'data_type'\np31650\n(dp31651\nS'editable'\np31652\nI00\nsS'value'\np31653\nS'entity'\np31654\nssS'entity_type'\np31655\n(dp31656\nS'editable'\np31657\nI00\nsS'value'\np31658\nS'CustomEntity01'\np31659\nssS'editable'\np31660\n(dp31661\nS'editable'\np31662\nI00\nsS'value'\np31663\nI01\nssS'unique'\np31664\n(dp31665\nS'editable'\np31666\nI00\nsS'value'\np31667\nI00\nssS'properties'\np31668\n(dp31669\nS'default_value'\np31670\n(dp31671\nS'editable'\np31672\nI00\nsS'value'\np31673\nNssS'summary_default'\np31674\n(dp31675\nS'editable'\np31676\nI01\nsS'value'\np31677\nS'none'\np31678\nssS'valid_types'\np31679\n(dp31680\nS'editable'\np31681\nI01\nsS'value'\np31682\n(lp31683\nS'PipelineConfiguration'\np31684\nasssS'description'\np31685\n(dp31686\nS'editable'\np31687\nI01\nsS'value'\np31688\ng47\nsssS'sg_primary'\np31689\n(dp31690\nS'mandatory'\np31691\n(dp31692\nS'editable'\np31693\nI00\nsS'value'\np31694\nI00\nssS'name'\np31695\n(dp31696\nS'editable'\np31697\nI01\nsS'value'\np31698\nS'Primary'\np31699\nssS'data_type'\np31700\n(dp31701\nS'editable'\np31702\nI00\nsS'value'\np31703\nS'checkbox'\np31704\nssS'entity_type'\np31705\n(dp31706\nS'editable'\np31707\nI00\nsS'value'\np31708\nS'CustomEntity01'\np31709\nssS'editable'\np31710\n(dp31711\nS'editable'\np31712\nI00\nsS'value'\np31713\nI01\nssS'unique'\np31714\n(dp31715\nS'editable'\np31716\nI00\nsS'value'\np31717\nI00\nssS'properties'\np31718\n(dp31719\nS'default_value'\np31720\n(dp31721\nS'editable'\np31722\nI00\nsS'value'\np31723\nI00\nssS'summary_default'\np31724\n(dp31725\nS'editable'\np31726\nI01\nsS'value'\np31727\nS'none'\np31728\nsssS'description'\np31729\n(dp31730\nS'editable'\np31731\nI01\nsS'value'\np31732\ng47\nsssS'sg_id_at_creation'\np31733\n(dp31734\nS'mandatory'\np31735\n(dp31736\nS'editable'\np31737\nI00\nsS'value'\np31738\nI00\nssS'name'\np31739\n(dp31740\nS'editable'\np31741\nI01\nsS'value'\np31742\nS'Id At Creation'\np31743\nssS'data_type'\np31744\n(dp31745\nS'editable'\np31746\nI00\nsS'value'\np31747\nS'number'\np31748\nssS'entity_type'\np31749\n(dp31750\nS'editable'\np31751\nI00\nsS'value'\np31752\nS'CustomEntity01'\np31753\nssS'editable'\np31754\n(dp31755\nS'editable'\np31756\nI00\nsS'value'\np31757\nI01\nssS'unique'\np31758\n(dp31759\nS'editable'\np31760\nI00\nsS'value'\np31761\nI00\nssS'properties'\np31762\n(dp31763\nS'default_value'\np31764\n(dp31765\nS'editable'\np31766\nI00\nsS'value'\np31767\nNssS'summary_default'\np31768\n(dp31769\nS'editable'\np31770\nI01\nsS'value'\np31771\nS'none'\np31772\nsssS'description'\np31773\n(dp31774\nS'editable'\np31775\nI01\nsS'value'\np31776\ng47\nsssS'sg_name_at_creation'\np31777\n(dp31778\nS'mandatory'\np31779\n(dp31780\nS'editable'\np31781\nI00\nsS'value'\np31782\nI00\nssS'name'\np31783\n(dp31784\nS'editable'\np31785\nI01\nsS'value'\np31786\nS'Name At Creation'\np31787\nssS'data_type'\np31788\n(dp31789\nS'editable'\np31790\nI00\nsS'value'\np31791\nS'text'\np31792\nssS'entity_type'\np31793\n(dp31794\nS'editable'\np31795\nI00\nsS'value'\np31796\nS'CustomEntity01'\np31797\nssS'editable'\np31798\n(dp31799\nS'editable'\np31800\nI00\nsS'value'\np31801\nI01\nssS'unique'\np31802\n(dp31803\nS'editable'\np31804\nI00\nsS'value'\np31805\nI00\nssS'properties'\np31806\n(dp31807\nS'default_value'\np31808\n(dp31809\nS'editable'\np31810\nI00\nsS'value'\np31811\nNssS'summary_default'\np31812\n(dp31813\nS'editable'\np31814\nI01\nsS'value'\np31815\nS'none'\np31816\nsssS'description'\np31817\n(dp31818\nS'editable'\np31819\nI01\nsS'value'\np31820\ng47\nsssS'sg_root'\np31821\n(dp31822\nS'mandatory'\np31823\n(dp31824\nS'editable'\np31825\nI00\nsS'value'\np31826\nI00\nssS'name'\np31827\n(dp31828\nS'editable'\np31829\nI01\nsS'value'\np31830\nS'Root'\np31831\nssS'data_type'\np31832\n(dp31833\nS'editable'\np31834\nI00\nsS'value'\np31835\nS'text'\np31836\nssS'entity_type'\np31837\n(dp31838\nS'editable'\np31839\nI00\nsS'value'\np31840\nS'CustomEntity01'\np31841\nssS'editable'\np31842\n(dp31843\nS'editable'\np31844\nI00\nsS'value'\np31845\nI01\nssS'unique'\np31846\n(dp31847\nS'editable'\np31848\nI00\nsS'value'\np31849\nI00\nssS'properties'\np31850\n(dp31851\nS'default_value'\np31852\n(dp31853\nS'editable'\np31854\nI00\nsS'value'\np31855\nNssS'summary_default'\np31856\n(dp31857\nS'editable'\np31858\nI01\nsS'value'\np31859\nS'none'\np31860\nsssS'description'\np31861\n(dp31862\nS'editable'\np31863\nI01\nsS'value'\np31864\ng47\nsssS'sg_entity_type_1'\np31865\n(dp31866\nS'mandatory'\np31867\n(dp31868\nS'editable'\np31869\nI00\nsS'value'\np31870\nI00\nssS'name'\np31871\n(dp31872\nS'editable'\np31873\nI01\nsS'value'\np31874\nS'Entity Type'\np31875\nssS'data_type'\np31876\n(dp31877\nS'editable'\np31878\nI00\nsS'value'\np31879\nS'text'\np31880\nssS'entity_type'\np31881\n(dp31882\nS'editable'\np31883\nI00\nsS'value'\np31884\nS'CustomEntity01'\np31885\nssS'editable'\np31886\n(dp31887\nS'editable'\np31888\nI00\nsS'value'\np31889\nI01\nssS'unique'\np31890\n(dp31891\nS'editable'\np31892\nI00\nsS'value'\np31893\nI00\nssS'properties'\np31894\n(dp31895\nS'default_value'\np31896\n(dp31897\nS'editable'\np31898\nI00\nsS'value'\np31899\nNssS'summary_default'\np31900\n(dp31901\nS'editable'\np31902\nI01\nsS'value'\np31903\nS'none'\np31904\nsssS'description'\np31905\n(dp31906\nS'editable'\np31907\nI01\nsS'value'\np31908\ng47\nsssS'notes'\np31909\n(dp31910\nS'mandatory'\np31911\n(dp31912\nS'editable'\np31913\nI00\nsS'value'\np31914\nI00\nssS'name'\np31915\n(dp31916\nS'editable'\np31917\nI01\nsS'value'\np31918\nS'Notes'\np31919\nssS'data_type'\np31920\n(dp31921\nS'editable'\np31922\nI00\nsS'value'\np31923\nS'multi_entity'\np31924\nssS'entity_type'\np31925\n(dp31926\nS'editable'\np31927\nI00\nsS'value'\np31928\nS'CustomEntity01'\np31929\nssS'editable'\np31930\n(dp31931\nS'editable'\np31932\nI00\nsS'value'\np31933\nI01\nssS'unique'\np31934\n(dp31935\nS'editable'\np31936\nI00\nsS'value'\np31937\nI00\nssS'properties'\np31938\n(dp31939\nS'default_value'\np31940\n(dp31941\nS'editable'\np31942\nI00\nsS'value'\np31943\nNssS'summary_default'\np31944\n(dp31945\nS'editable'\np31946\nI01\nsS'value'\np31947\nS'none'\np31948\nssS'valid_types'\np31949\n(dp31950\nS'editable'\np31951\nI01\nsS'value'\np31952\n(lp31953\nS'Note'\np31954\nasssS'description'\np31955\n(dp31956\nS'editable'\np31957\nI01\nsS'value'\np31958\ng47\nsssS'sg_relative_path'\np31959\n(dp31960\nS'mandatory'\np31961\n(dp31962\nS'editable'\np31963\nI00\nsS'value'\np31964\nI00\nssS'name'\np31965\n(dp31966\nS'editable'\np31967\nI01\nsS'value'\np31968\nS'Relative Path'\np31969\nssS'data_type'\np31970\n(dp31971\nS'editable'\np31972\nI00\nsS'value'\np31973\nS'text'\np31974\nssS'entity_type'\np31975\n(dp31976\nS'editable'\np31977\nI00\nsS'value'\np31978\nS'CustomEntity01'\np31979\nssS'editable'\np31980\n(dp31981\nS'editable'\np31982\nI00\nsS'value'\np31983\nI01\nssS'unique'\np31984\n(dp31985\nS'editable'\np31986\nI00\nsS'value'\np31987\nI00\nssS'properties'\np31988\n(dp31989\nS'default_value'\np31990\n(dp31991\nS'editable'\np31992\nI00\nsS'value'\np31993\nNssS'summary_default'\np31994\n(dp31995\nS'editable'\np31996\nI01\nsS'value'\np31997\nS'none'\np31998\nsssS'description'\np31999\n(dp32000\nS'editable'\np32001\nI01\nsS'value'\np32002\ng47\nsssS'project'\np32003\n(dp32004\nS'mandatory'\np32005\n(dp32006\nS'editable'\np32007\nI00\nsS'value'\np32008\nI00\nssS'name'\np32009\n(dp32010\nS'editable'\np32011\nI01\nsS'value'\np32012\nS'Project'\np32013\nssS'data_type'\np32014\n(dp32015\nS'editable'\np32016\nI00\nsS'value'\np32017\nS'entity'\np32018\nssS'entity_type'\np32019\n(dp32020\nS'editable'\np32021\nI00\nsS'value'\np32022\nS'CustomEntity01'\np32023\nssS'editable'\np32024\n(dp32025\nS'editable'\np32026\nI00\nsS'value'\np32027\nI01\nssS'unique'\np32028\n(dp32029\nS'editable'\np32030\nI00\nsS'value'\np32031\nI00\nssS'properties'\np32032\n(dp32033\nS'default_value'\np32034\n(dp32035\nS'editable'\np32036\nI00\nsS'value'\np32037\nNssS'summary_default'\np32038\n(dp32039\nS'editable'\np32040\nI01\nsS'value'\np32041\nS'none'\np32042\nssS'valid_types'\np32043\n(dp32044\nS'editable'\np32045\nI01\nsS'value'\np32046\n(lp32047\nS'Project'\np32048\nasssS'description'\np32049\n(dp32050\nS'editable'\np32051\nI01\nsS'value'\np32052\ng47\nsssS'filmstrip_image'\np32053\n(dp32054\nS'mandatory'\np32055\n(dp32056\nS'editable'\np32057\nI00\nsS'value'\np32058\nI00\nssS'name'\np32059\n(dp32060\nS'editable'\np32061\nI01\nsS'value'\np32062\nS'Filmstrip Thumbnail'\np32063\nssS'data_type'\np32064\n(dp32065\nS'editable'\np32066\nI00\nsS'value'\np32067\nS'image'\np32068\nssS'entity_type'\np32069\n(dp32070\nS'editable'\np32071\nI00\nsS'value'\np32072\nS'CustomEntity01'\np32073\nssS'editable'\np32074\n(dp32075\nS'editable'\np32076\nI00\nsS'value'\np32077\nI01\nssS'unique'\np32078\n(dp32079\nS'editable'\np32080\nI00\nsS'value'\np32081\nI00\nssS'properties'\np32082\n(dp32083\nS'default_value'\np32084\n(dp32085\nS'editable'\np32086\nI00\nsS'value'\np32087\nNssS'summary_default'\np32088\n(dp32089\nS'editable'\np32090\nI01\nsS'value'\np32091\nS'none'\np32092\nsssS'description'\np32093\n(dp32094\nS'editable'\np32095\nI01\nsS'value'\np32096\ng47\nsssS'sg_type_at_creation'\np32097\n(dp32098\nS'mandatory'\np32099\n(dp32100\nS'editable'\np32101\nI00\nsS'value'\np32102\nI00\nssS'name'\np32103\n(dp32104\nS'editable'\np32105\nI01\nsS'value'\np32106\nS'Type At Creation'\np32107\nssS'data_type'\np32108\n(dp32109\nS'editable'\np32110\nI00\nsS'value'\np32111\nS'text'\np32112\nssS'entity_type'\np32113\n(dp32114\nS'editable'\np32115\nI00\nsS'value'\np32116\nS'CustomEntity01'\np32117\nssS'editable'\np32118\n(dp32119\nS'editable'\np32120\nI00\nsS'value'\np32121\nI01\nssS'unique'\np32122\n(dp32123\nS'editable'\np32124\nI00\nsS'value'\np32125\nI00\nssS'properties'\np32126\n(dp32127\nS'default_value'\np32128\n(dp32129\nS'editable'\np32130\nI00\nsS'value'\np32131\nNssS'summary_default'\np32132\n(dp32133\nS'editable'\np32134\nI01\nsS'value'\np32135\nS'none'\np32136\nsssS'description'\np32137\n(dp32138\nS'editable'\np32139\nI01\nsS'value'\np32140\ng47\nsssS'tag_list'\np32141\n(dp32142\nS'mandatory'\np32143\n(dp32144\nS'editable'\np32145\nI00\nsS'value'\np32146\nI00\nssS'name'\np32147\n(dp32148\nS'editable'\np32149\nI01\nsS'value'\np32150\nS'Tags'\np32151\nssS'data_type'\np32152\n(dp32153\nS'editable'\np32154\nI00\nsS'value'\np32155\nS'tag_list'\np32156\nssS'entity_type'\np32157\n(dp32158\nS'editable'\np32159\nI00\nsS'value'\np32160\nS'CustomEntity01'\np32161\nssS'editable'\np32162\n(dp32163\nS'editable'\np32164\nI00\nsS'value'\np32165\nI01\nssS'unique'\np32166\n(dp32167\nS'editable'\np32168\nI00\nsS'value'\np32169\nI00\nssS'properties'\np32170\n(dp32171\nS'default_value'\np32172\n(dp32173\nS'editable'\np32174\nI00\nsS'value'\np32175\nNssS'summary_default'\np32176\n(dp32177\nS'editable'\np32178\nI01\nsS'value'\np32179\nS'none'\np32180\nssS'valid_types'\np32181\n(dp32182\nS'editable'\np32183\nI01\nsS'value'\np32184\n(lp32185\nS'Tag'\np32186\nasssS'description'\np32187\n(dp32188\nS'editable'\np32189\nI01\nsS'value'\np32190\ng47\nsssS'created_at'\np32191\n(dp32192\nS'mandatory'\np32193\n(dp32194\nS'editable'\np32195\nI00\nsS'value'\np32196\nI00\nssS'name'\np32197\n(dp32198\nS'editable'\np32199\nI01\nsS'value'\np32200\nS'Date Created'\np32201\nssS'data_type'\np32202\n(dp32203\nS'editable'\np32204\nI00\nsS'value'\np32205\nS'date_time'\np32206\nssS'entity_type'\np32207\n(dp32208\nS'editable'\np32209\nI00\nsS'value'\np32210\nS'CustomEntity01'\np32211\nssS'editable'\np32212\n(dp32213\nS'editable'\np32214\nI00\nsS'value'\np32215\nI00\nssS'unique'\np32216\n(dp32217\nS'editable'\np32218\nI00\nsS'value'\np32219\nI00\nssS'properties'\np32220\n(dp32221\nS'default_value'\np32222\n(dp32223\nS'editable'\np32224\nI00\nsS'value'\np32225\nNssS'summary_default'\np32226\n(dp32227\nS'editable'\np32228\nI01\nsS'value'\np32229\nS'none'\np32230\nsssS'description'\np32231\n(dp32232\nS'editable'\np32233\nI01\nsS'value'\np32234\ng47\nsssS'sg_configuration_metadata'\np32235\n(dp32236\nS'mandatory'\np32237\n(dp32238\nS'editable'\np32239\nI00\nsS'value'\np32240\nI00\nssS'name'\np32241\n(dp32242\nS'editable'\np32243\nI01\nsS'value'\np32244\nS'Configuration Metadata'\np32245\nssS'data_type'\np32246\n(dp32247\nS'editable'\np32248\nI00\nsS'value'\np32249\nS'text'\np32250\nssS'entity_type'\np32251\n(dp32252\nS'editable'\np32253\nI00\nsS'value'\np32254\nS'CustomEntity01'\np32255\nssS'editable'\np32256\n(dp32257\nS'editable'\np32258\nI00\nsS'value'\np32259\nI01\nssS'unique'\np32260\n(dp32261\nS'editable'\np32262\nI00\nsS'value'\np32263\nI00\nssS'properties'\np32264\n(dp32265\nS'default_value'\np32266\n(dp32267\nS'editable'\np32268\nI00\nsS'value'\np32269\nNssS'summary_default'\np32270\n(dp32271\nS'editable'\np32272\nI01\nsS'value'\np32273\nS'none'\np32274\nsssS'description'\np32275\n(dp32276\nS'editable'\np32277\nI01\nsS'value'\np32278\ng47\nssssS'Shot'\np32279\n(dp32280\nS'open_notes_count'\np32281\n(dp32282\nS'mandatory'\np32283\n(dp32284\nS'editable'\np32285\nI00\nsS'value'\np32286\nI00\nssS'name'\np32287\n(dp32288\nS'editable'\np32289\nI01\nsS'value'\np32290\nS'Open Notes Count'\np32291\nssS'data_type'\np32292\n(dp32293\nS'editable'\np32294\nI00\nsS'value'\np32295\nS'text'\np32296\nssS'entity_type'\np32297\n(dp32298\nS'editable'\np32299\nI00\nsS'value'\np32300\nS'Shot'\np32301\nssS'editable'\np32302\n(dp32303\nS'editable'\np32304\nI00\nsS'value'\np32305\nI00\nssS'unique'\np32306\n(dp32307\nS'editable'\np32308\nI00\nsS'value'\np32309\nI00\nssS'properties'\np32310\n(dp32311\nS'default_value'\np32312\n(dp32313\nS'editable'\np32314\nI00\nsS'value'\np32315\nNssS'summary_default'\np32316\n(dp32317\nS'editable'\np32318\nI01\nsS'value'\np32319\nS'none'\np32320\nsssS'description'\np32321\n(dp32322\nS'editable'\np32323\nI01\nsS'value'\np32324\ng47\nsssS'code'\np32325\n(dp32326\nS'mandatory'\np32327\n(dp32328\nS'editable'\np32329\nI00\nsS'value'\np32330\nI01\nssS'name'\np32331\n(dp32332\nS'editable'\np32333\nI01\nsS'value'\np32334\nS'Shot Code'\np32335\nssS'data_type'\np32336\n(dp32337\nS'editable'\np32338\nI00\nsS'value'\np32339\nS'text'\np32340\nssS'entity_type'\np32341\n(dp32342\nS'editable'\np32343\nI00\nsS'value'\np32344\nS'Shot'\np32345\nssS'editable'\np32346\n(dp32347\nS'editable'\np32348\nI00\nsS'value'\np32349\nI01\nssS'unique'\np32350\n(dp32351\nS'editable'\np32352\nI00\nsS'value'\np32353\nI00\nssS'properties'\np32354\n(dp32355\nS'default_value'\np32356\n(dp32357\nS'editable'\np32358\nI00\nsS'value'\np32359\nNssS'summary_default'\np32360\n(dp32361\nS'editable'\np32362\nI01\nsS'value'\np32363\nS'none'\np32364\nsssS'description'\np32365\n(dp32366\nS'editable'\np32367\nI01\nsS'value'\np32368\ng47\nsssS'step_13'\np32369\n(dp32370\nS'mandatory'\np32371\n(dp32372\nS'editable'\np32373\nI00\nsS'value'\np32374\nI00\nssS'name'\np32375\n(dp32376\nS'editable'\np32377\nI01\nsS'value'\np32378\nS'Layout'\np32379\nssS'data_type'\np32380\n(dp32381\nS'editable'\np32382\nI00\nsS'value'\np32383\nS'pivot_column'\np32384\nssS'entity_type'\np32385\n(dp32386\nS'editable'\np32387\nI00\nsS'value'\np32388\nS'Shot'\np32389\nssS'editable'\np32390\n(dp32391\nS'editable'\np32392\nI00\nsS'value'\np32393\nI00\nssS'unique'\np32394\n(dp32395\nS'editable'\np32396\nI00\nsS'value'\np32397\nI00\nssS'properties'\np32398\n(dp32399\nS'default_value'\np32400\n(dp32401\nS'editable'\np32402\nI00\nsS'value'\np32403\nNssS'summary_default'\np32404\n(dp32405\nS'editable'\np32406\nI00\nsS'value'\np32407\nS'none'\np32408\nsssS'description'\np32409\n(dp32410\nS'editable'\np32411\nI01\nsS'value'\np32412\ng47\nsssS'smart_head_out'\np32413\n(dp32414\nS'mandatory'\np32415\n(dp32416\nS'editable'\np32417\nI00\nsS'value'\np32418\nI00\nssS'name'\np32419\n(dp32420\nS'editable'\np32421\nI01\nsS'value'\np32422\nS'Head Out'\np32423\nssS'data_type'\np32424\n(dp32425\nS'editable'\np32426\nI00\nsS'value'\np32427\nS'number'\np32428\nssS'entity_type'\np32429\n(dp32430\nS'editable'\np32431\nI00\nsS'value'\np32432\nS'Shot'\np32433\nssS'editable'\np32434\n(dp32435\nS'editable'\np32436\nI00\nsS'value'\np32437\nI01\nssS'unique'\np32438\n(dp32439\nS'editable'\np32440\nI00\nsS'value'\np32441\nI00\nssS'properties'\np32442\n(dp32443\nS'default_value'\np32444\n(dp32445\nS'editable'\np32446\nI00\nsS'value'\np32447\nNssS'summary_default'\np32448\n(dp32449\nS'editable'\np32450\nI01\nsS'value'\np32451\nS'none'\np32452\nsssS'description'\np32453\n(dp32454\nS'editable'\np32455\nI01\nsS'value'\np32456\ng47\nsssS'sg_sequence'\np32457\n(dp32458\nS'mandatory'\np32459\n(dp32460\nS'editable'\np32461\nI00\nsS'value'\np32462\nI00\nssS'name'\np32463\n(dp32464\nS'editable'\np32465\nI01\nsS'value'\np32466\nS'Sequence'\np32467\nssS'data_type'\np32468\n(dp32469\nS'editable'\np32470\nI00\nsS'value'\np32471\nS'entity'\np32472\nssS'entity_type'\np32473\n(dp32474\nS'editable'\np32475\nI00\nsS'value'\np32476\nS'Shot'\np32477\nssS'editable'\np32478\n(dp32479\nS'editable'\np32480\nI00\nsS'value'\np32481\nI01\nssS'unique'\np32482\n(dp32483\nS'editable'\np32484\nI00\nsS'value'\np32485\nI00\nssS'properties'\np32486\n(dp32487\nS'default_value'\np32488\n(dp32489\nS'editable'\np32490\nI00\nsS'value'\np32491\nNssS'summary_default'\np32492\n(dp32493\nS'editable'\np32494\nI01\nsS'value'\np32495\nS'none'\np32496\nssS'valid_types'\np32497\n(dp32498\nS'editable'\np32499\nI01\nsS'value'\np32500\n(lp32501\nS'Sequence'\np32502\nasssS'description'\np32503\n(dp32504\nS'editable'\np32505\nI01\nsS'value'\np32506\ng47\nsssS'image'\np32507\n(dp32508\nS'mandatory'\np32509\n(dp32510\nS'editable'\np32511\nI00\nsS'value'\np32512\nI00\nssS'name'\np32513\n(dp32514\nS'editable'\np32515\nI01\nsS'value'\np32516\nS'Thumbnail'\np32517\nssS'data_type'\np32518\n(dp32519\nS'editable'\np32520\nI00\nsS'value'\np32521\nS'image'\np32522\nssS'entity_type'\np32523\n(dp32524\nS'editable'\np32525\nI00\nsS'value'\np32526\nS'Shot'\np32527\nssS'editable'\np32528\n(dp32529\nS'editable'\np32530\nI00\nsS'value'\np32531\nI01\nssS'unique'\np32532\n(dp32533\nS'editable'\np32534\nI00\nsS'value'\np32535\nI00\nssS'properties'\np32536\n(dp32537\nS'default_value'\np32538\n(dp32539\nS'editable'\np32540\nI00\nsS'value'\np32541\nNssS'summary_default'\np32542\n(dp32543\nS'editable'\np32544\nI01\nsS'value'\np32545\nS'none'\np32546\nsssS'description'\np32547\n(dp32548\nS'editable'\np32549\nI01\nsS'value'\np32550\ng47\nsssS'tag_list'\np32551\n(dp32552\nS'mandatory'\np32553\n(dp32554\nS'editable'\np32555\nI00\nsS'value'\np32556\nI00\nssS'name'\np32557\n(dp32558\nS'editable'\np32559\nI01\nsS'value'\np32560\nS'Tags'\np32561\nssS'data_type'\np32562\n(dp32563\nS'editable'\np32564\nI00\nsS'value'\np32565\nS'tag_list'\np32566\nssS'entity_type'\np32567\n(dp32568\nS'editable'\np32569\nI00\nsS'value'\np32570\nS'Shot'\np32571\nssS'editable'\np32572\n(dp32573\nS'editable'\np32574\nI00\nsS'value'\np32575\nI01\nssS'unique'\np32576\n(dp32577\nS'editable'\np32578\nI00\nsS'value'\np32579\nI00\nssS'properties'\np32580\n(dp32581\nS'default_value'\np32582\n(dp32583\nS'editable'\np32584\nI00\nsS'value'\np32585\nNssS'summary_default'\np32586\n(dp32587\nS'editable'\np32588\nI01\nsS'value'\np32589\nS'none'\np32590\nssS'valid_types'\np32591\n(dp32592\nS'editable'\np32593\nI01\nsS'value'\np32594\n(lp32595\nS'Tag'\np32596\nasssS'description'\np32597\n(dp32598\nS'editable'\np32599\nI01\nsS'value'\np32600\ng47\nsssS'head_duration'\np32601\n(dp32602\nS'mandatory'\np32603\n(dp32604\nS'editable'\np32605\nI00\nsS'value'\np32606\nI00\nssS'name'\np32607\n(dp32608\nS'editable'\np32609\nI01\nsS'value'\np32610\nS'Raw Head Duration'\np32611\nssS'data_type'\np32612\n(dp32613\nS'editable'\np32614\nI00\nsS'value'\np32615\nS'number'\np32616\nssS'entity_type'\np32617\n(dp32618\nS'editable'\np32619\nI00\nsS'value'\np32620\nS'Shot'\np32621\nssS'editable'\np32622\n(dp32623\nS'editable'\np32624\nI00\nsS'value'\np32625\nI01\nssS'unique'\np32626\n(dp32627\nS'editable'\np32628\nI00\nsS'value'\np32629\nI00\nssS'properties'\np32630\n(dp32631\nS'default_value'\np32632\n(dp32633\nS'editable'\np32634\nI00\nsS'value'\np32635\nNssS'summary_default'\np32636\n(dp32637\nS'editable'\np32638\nI01\nsS'value'\np32639\nS'none'\np32640\nsssS'description'\np32641\n(dp32642\nS'editable'\np32643\nI01\nsS'value'\np32644\ng47\nsssS'updated_at'\np32645\n(dp32646\nS'mandatory'\np32647\n(dp32648\nS'editable'\np32649\nI00\nsS'value'\np32650\nI00\nssS'name'\np32651\n(dp32652\nS'editable'\np32653\nI01\nsS'value'\np32654\nS'Date Updated'\np32655\nssS'data_type'\np32656\n(dp32657\nS'editable'\np32658\nI00\nsS'value'\np32659\nS'date_time'\np32660\nssS'entity_type'\np32661\n(dp32662\nS'editable'\np32663\nI00\nsS'value'\np32664\nS'Shot'\np32665\nssS'editable'\np32666\n(dp32667\nS'editable'\np32668\nI00\nsS'value'\np32669\nI00\nssS'unique'\np32670\n(dp32671\nS'editable'\np32672\nI00\nsS'value'\np32673\nI00\nssS'properties'\np32674\n(dp32675\nS'default_value'\np32676\n(dp32677\nS'editable'\np32678\nI00\nsS'value'\np32679\nNssS'summary_default'\np32680\n(dp32681\nS'editable'\np32682\nI01\nsS'value'\np32683\nS'none'\np32684\nsssS'description'\np32685\n(dp32686\nS'editable'\np32687\nI01\nsS'value'\np32688\ng47\nsssS'head_in'\np32689\n(dp32690\nS'mandatory'\np32691\n(dp32692\nS'editable'\np32693\nI00\nsS'value'\np32694\nI00\nssS'name'\np32695\n(dp32696\nS'editable'\np32697\nI01\nsS'value'\np32698\nS'Raw Head In'\np32699\nssS'data_type'\np32700\n(dp32701\nS'editable'\np32702\nI00\nsS'value'\np32703\nS'number'\np32704\nssS'entity_type'\np32705\n(dp32706\nS'editable'\np32707\nI00\nsS'value'\np32708\nS'Shot'\np32709\nssS'editable'\np32710\n(dp32711\nS'editable'\np32712\nI00\nsS'value'\np32713\nI01\nssS'unique'\np32714\n(dp32715\nS'editable'\np32716\nI00\nsS'value'\np32717\nI00\nssS'properties'\np32718\n(dp32719\nS'default_value'\np32720\n(dp32721\nS'editable'\np32722\nI00\nsS'value'\np32723\nNssS'summary_default'\np32724\n(dp32725\nS'editable'\np32726\nI01\nsS'value'\np32727\nS'none'\np32728\nsssS'description'\np32729\n(dp32730\nS'editable'\np32731\nI01\nsS'value'\np32732\ng47\nsssS'tasks'\np32733\n(dp32734\nS'mandatory'\np32735\n(dp32736\nS'editable'\np32737\nI00\nsS'value'\np32738\nI00\nssS'name'\np32739\n(dp32740\nS'editable'\np32741\nI01\nsS'value'\np32742\nS'Tasks'\np32743\nssS'data_type'\np32744\n(dp32745\nS'editable'\np32746\nI00\nsS'value'\np32747\nS'multi_entity'\np32748\nssS'entity_type'\np32749\n(dp32750\nS'editable'\np32751\nI00\nsS'value'\np32752\nS'Shot'\np32753\nssS'editable'\np32754\n(dp32755\nS'editable'\np32756\nI00\nsS'value'\np32757\nI01\nssS'unique'\np32758\n(dp32759\nS'editable'\np32760\nI00\nsS'value'\np32761\nI00\nssS'properties'\np32762\n(dp32763\nS'default_value'\np32764\n(dp32765\nS'editable'\np32766\nI00\nsS'value'\np32767\nNssS'summary_default'\np32768\n(dp32769\nS'editable'\np32770\nI01\nsS'value'\np32771\nS'none'\np32772\nssS'valid_types'\np32773\n(dp32774\nS'editable'\np32775\nI01\nsS'value'\np32776\n(lp32777\nS'Task'\np32778\nasssS'description'\np32779\n(dp32780\nS'editable'\np32781\nI01\nsS'value'\np32782\ng47\nsssS'filmstrip_image'\np32783\n(dp32784\nS'mandatory'\np32785\n(dp32786\nS'editable'\np32787\nI00\nsS'value'\np32788\nI00\nssS'name'\np32789\n(dp32790\nS'editable'\np32791\nI01\nsS'value'\np32792\nS'Filmstrip Thumbnail'\np32793\nssS'data_type'\np32794\n(dp32795\nS'editable'\np32796\nI00\nsS'value'\np32797\nS'image'\np32798\nssS'entity_type'\np32799\n(dp32800\nS'editable'\np32801\nI00\nsS'value'\np32802\nS'Shot'\np32803\nssS'editable'\np32804\n(dp32805\nS'editable'\np32806\nI00\nsS'value'\np32807\nI01\nssS'unique'\np32808\n(dp32809\nS'editable'\np32810\nI00\nsS'value'\np32811\nI00\nssS'properties'\np32812\n(dp32813\nS'default_value'\np32814\n(dp32815\nS'editable'\np32816\nI00\nsS'value'\np32817\nNssS'summary_default'\np32818\n(dp32819\nS'editable'\np32820\nI01\nsS'value'\np32821\nS'none'\np32822\nsssS'description'\np32823\n(dp32824\nS'editable'\np32825\nI01\nsS'value'\np32826\ng47\nsssS'sg_cut_duration'\np32827\n(dp32828\nS'mandatory'\np32829\n(dp32830\nS'editable'\np32831\nI00\nsS'value'\np32832\nI00\nssS'name'\np32833\n(dp32834\nS'editable'\np32835\nI01\nsS'value'\np32836\nS'Cut Duration'\np32837\nssS'data_type'\np32838\n(dp32839\nS'editable'\np32840\nI00\nsS'value'\np32841\nS'number'\np32842\nssS'entity_type'\np32843\n(dp32844\nS'editable'\np32845\nI00\nsS'value'\np32846\nS'Shot'\np32847\nssS'editable'\np32848\n(dp32849\nS'editable'\np32850\nI00\nsS'value'\np32851\nI01\nssS'unique'\np32852\n(dp32853\nS'editable'\np32854\nI00\nsS'value'\np32855\nI00\nssS'properties'\np32856\n(dp32857\nS'default_value'\np32858\n(dp32859\nS'editable'\np32860\nI00\nsS'value'\np32861\nNssS'summary_default'\np32862\n(dp32863\nS'editable'\np32864\nI01\nsS'value'\np32865\nS'sum'\np32866\nsssS'description'\np32867\n(dp32868\nS'editable'\np32869\nI01\nsS'value'\np32870\nS'Duration of this shot in the cut.'\np32871\nsssS'cached_display_name'\np32872\n(dp32873\nS'mandatory'\np32874\n(dp32875\nS'editable'\np32876\nI00\nsS'value'\np32877\nI00\nssS'name'\np32878\n(dp32879\nS'editable'\np32880\nI01\nsS'value'\np32881\nS'Cached Display Name'\np32882\nssS'data_type'\np32883\n(dp32884\nS'editable'\np32885\nI00\nsS'value'\np32886\nS'text'\np32887\nssS'entity_type'\np32888\n(dp32889\nS'editable'\np32890\nI00\nsS'value'\np32891\nS'Shot'\np32892\nssS'editable'\np32893\n(dp32894\nS'editable'\np32895\nI00\nsS'value'\np32896\nI01\nssS'unique'\np32897\n(dp32898\nS'editable'\np32899\nI00\nsS'value'\np32900\nI00\nssS'properties'\np32901\n(dp32902\nS'default_value'\np32903\n(dp32904\nS'editable'\np32905\nI00\nsS'value'\np32906\nNssS'summary_default'\np32907\n(dp32908\nS'editable'\np32909\nI00\nsS'value'\np32910\nS'none'\np32911\nsssS'description'\np32912\n(dp32913\nS'editable'\np32914\nI01\nsS'value'\np32915\ng47\nsssS'smart_cut_duration'\np32916\n(dp32917\nS'mandatory'\np32918\n(dp32919\nS'editable'\np32920\nI00\nsS'value'\np32921\nI00\nssS'name'\np32922\n(dp32923\nS'editable'\np32924\nI01\nsS'value'\np32925\nS'Cut Duration'\np32926\nssS'data_type'\np32927\n(dp32928\nS'editable'\np32929\nI00\nsS'value'\np32930\nS'number'\np32931\nssS'entity_type'\np32932\n(dp32933\nS'editable'\np32934\nI00\nsS'value'\np32935\nS'Shot'\np32936\nssS'editable'\np32937\n(dp32938\nS'editable'\np32939\nI00\nsS'value'\np32940\nI01\nssS'unique'\np32941\n(dp32942\nS'editable'\np32943\nI00\nsS'value'\np32944\nI00\nssS'properties'\np32945\n(dp32946\nS'default_value'\np32947\n(dp32948\nS'editable'\np32949\nI00\nsS'value'\np32950\nNssS'summary_default'\np32951\n(dp32952\nS'editable'\np32953\nI01\nsS'value'\np32954\nS'none'\np32955\nsssS'description'\np32956\n(dp32957\nS'editable'\np32958\nI01\nsS'value'\np32959\ng47\nsssS'id'\np32960\n(dp32961\nS'mandatory'\np32962\n(dp32963\nS'editable'\np32964\nI00\nsS'value'\np32965\nI00\nssS'name'\np32966\n(dp32967\nS'editable'\np32968\nI01\nsS'value'\np32969\nS'Id'\np32970\nssS'data_type'\np32971\n(dp32972\nS'editable'\np32973\nI00\nsS'value'\np32974\nS'number'\np32975\nssS'entity_type'\np32976\n(dp32977\nS'editable'\np32978\nI00\nsS'value'\np32979\nS'Shot'\np32980\nssS'editable'\np32981\n(dp32982\nS'editable'\np32983\nI00\nsS'value'\np32984\nI00\nssS'unique'\np32985\n(dp32986\nS'editable'\np32987\nI00\nsS'value'\np32988\nI00\nssS'properties'\np32989\n(dp32990\nS'default_value'\np32991\n(dp32992\nS'editable'\np32993\nI00\nsS'value'\np32994\nNssS'summary_default'\np32995\n(dp32996\nS'editable'\np32997\nI01\nsS'value'\np32998\nS'none'\np32999\nsssS'description'\np33000\n(dp33001\nS'editable'\np33002\nI01\nsS'value'\np33003\ng47\nsssS'updated_by'\np33004\n(dp33005\nS'mandatory'\np33006\n(dp33007\nS'editable'\np33008\nI00\nsS'value'\np33009\nI00\nssS'name'\np33010\n(dp33011\nS'editable'\np33012\nI01\nsS'value'\np33013\nS'Updated by'\np33014\nssS'data_type'\np33015\n(dp33016\nS'editable'\np33017\nI00\nsS'value'\np33018\nS'entity'\np33019\nssS'entity_type'\np33020\n(dp33021\nS'editable'\np33022\nI00\nsS'value'\np33023\nS'Shot'\np33024\nssS'editable'\np33025\n(dp33026\nS'editable'\np33027\nI00\nsS'value'\np33028\nI00\nssS'unique'\np33029\n(dp33030\nS'editable'\np33031\nI00\nsS'value'\np33032\nI00\nssS'properties'\np33033\n(dp33034\nS'default_value'\np33035\n(dp33036\nS'editable'\np33037\nI00\nsS'value'\np33038\nNssS'summary_default'\np33039\n(dp33040\nS'editable'\np33041\nI01\nsS'value'\np33042\nS'none'\np33043\nssS'valid_types'\np33044\n(dp33045\nS'editable'\np33046\nI01\nsS'value'\np33047\n(lp33048\nS'HumanUser'\np33049\naS'ApiUser'\np33050\nasssS'description'\np33051\n(dp33052\nS'editable'\np33053\nI01\nsS'value'\np33054\ng47\nsssS'open_notes'\np33055\n(dp33056\nS'mandatory'\np33057\n(dp33058\nS'editable'\np33059\nI00\nsS'value'\np33060\nI00\nssS'name'\np33061\n(dp33062\nS'editable'\np33063\nI01\nsS'value'\np33064\nS'Open Notes'\np33065\nssS'data_type'\np33066\n(dp33067\nS'editable'\np33068\nI00\nsS'value'\np33069\nS'multi_entity'\np33070\nssS'entity_type'\np33071\n(dp33072\nS'editable'\np33073\nI00\nsS'value'\np33074\nS'Shot'\np33075\nssS'editable'\np33076\n(dp33077\nS'editable'\np33078\nI00\nsS'value'\np33079\nI00\nssS'unique'\np33080\n(dp33081\nS'editable'\np33082\nI00\nsS'value'\np33083\nI00\nssS'properties'\np33084\n(dp33085\nS'default_value'\np33086\n(dp33087\nS'editable'\np33088\nI00\nsS'value'\np33089\nNssS'summary_default'\np33090\n(dp33091\nS'editable'\np33092\nI01\nsS'value'\np33093\nS'none'\np33094\nssS'valid_types'\np33095\n(dp33096\nS'editable'\np33097\nI01\nsS'value'\np33098\n(lp33099\nS'Note'\np33100\nasssS'description'\np33101\n(dp33102\nS'editable'\np33103\nI01\nsS'value'\np33104\ng47\nsssS'addressings_cc'\np33105\n(dp33106\nS'mandatory'\np33107\n(dp33108\nS'editable'\np33109\nI00\nsS'value'\np33110\nI00\nssS'name'\np33111\n(dp33112\nS'editable'\np33113\nI01\nsS'value'\np33114\nS'Cc'\np33115\nssS'data_type'\np33116\n(dp33117\nS'editable'\np33118\nI00\nsS'value'\np33119\nS'multi_entity'\np33120\nssS'entity_type'\np33121\n(dp33122\nS'editable'\np33123\nI00\nsS'value'\np33124\nS'Shot'\np33125\nssS'editable'\np33126\n(dp33127\nS'editable'\np33128\nI00\nsS'value'\np33129\nI01\nssS'unique'\np33130\n(dp33131\nS'editable'\np33132\nI00\nsS'value'\np33133\nI00\nssS'properties'\np33134\n(dp33135\nS'default_value'\np33136\n(dp33137\nS'editable'\np33138\nI00\nsS'value'\np33139\nNssS'summary_default'\np33140\n(dp33141\nS'editable'\np33142\nI01\nsS'value'\np33143\nS'none'\np33144\nssS'valid_types'\np33145\n(dp33146\nS'editable'\np33147\nI01\nsS'value'\np33148\n(lp33149\nS'Group'\np33150\naS'HumanUser'\np33151\nasssS'description'\np33152\n(dp33153\nS'editable'\np33154\nI01\nsS'value'\np33155\ng47\nsssS'sg_working_duration'\np33156\n(dp33157\nS'mandatory'\np33158\n(dp33159\nS'editable'\np33160\nI00\nsS'value'\np33161\nI00\nssS'name'\np33162\n(dp33163\nS'editable'\np33164\nI01\nsS'value'\np33165\nS'Working Duration'\np33166\nssS'data_type'\np33167\n(dp33168\nS'editable'\np33169\nI00\nsS'value'\np33170\nS'number'\np33171\nssS'entity_type'\np33172\n(dp33173\nS'editable'\np33174\nI00\nsS'value'\np33175\nS'Shot'\np33176\nssS'editable'\np33177\n(dp33178\nS'editable'\np33179\nI00\nsS'value'\np33180\nI01\nssS'unique'\np33181\n(dp33182\nS'editable'\np33183\nI00\nsS'value'\np33184\nI00\nssS'properties'\np33185\n(dp33186\nS'default_value'\np33187\n(dp33188\nS'editable'\np33189\nI00\nsS'value'\np33190\nNssS'summary_default'\np33191\n(dp33192\nS'editable'\np33193\nI01\nsS'value'\np33194\nS'none'\np33195\nsssS'description'\np33196\n(dp33197\nS'editable'\np33198\nI01\nsS'value'\np33199\nS'The full duration of available frames in this Shot from Head In to Tail Out.'\np33200\nsssS'sg_shotnumber'\np33201\n(dp33202\nS'mandatory'\np33203\n(dp33204\nS'editable'\np33205\nI00\nsS'value'\np33206\nI00\nssS'name'\np33207\n(dp33208\nS'editable'\np33209\nI01\nsS'value'\np33210\nS'shotnumber'\np33211\nssS'data_type'\np33212\n(dp33213\nS'editable'\np33214\nI00\nsS'value'\np33215\nS'text'\np33216\nssS'entity_type'\np33217\n(dp33218\nS'editable'\np33219\nI00\nsS'value'\np33220\nS'Shot'\np33221\nssS'editable'\np33222\n(dp33223\nS'editable'\np33224\nI00\nsS'value'\np33225\nI01\nssS'unique'\np33226\n(dp33227\nS'editable'\np33228\nI00\nsS'value'\np33229\nI00\nssS'properties'\np33230\n(dp33231\nS'default_value'\np33232\n(dp33233\nS'editable'\np33234\nI00\nsS'value'\np33235\nNssS'summary_default'\np33236\n(dp33237\nS'editable'\np33238\nI01\nsS'value'\np33239\nS'none'\np33240\nsssS'description'\np33241\n(dp33242\nS'editable'\np33243\nI01\nsS'value'\np33244\ng47\nsssS'task_template'\np33245\n(dp33246\nS'mandatory'\np33247\n(dp33248\nS'editable'\np33249\nI00\nsS'value'\np33250\nI00\nssS'name'\np33251\n(dp33252\nS'editable'\np33253\nI01\nsS'value'\np33254\nS'Task Template'\np33255\nssS'data_type'\np33256\n(dp33257\nS'editable'\np33258\nI00\nsS'value'\np33259\nS'entity'\np33260\nssS'entity_type'\np33261\n(dp33262\nS'editable'\np33263\nI00\nsS'value'\np33264\nS'Shot'\np33265\nssS'editable'\np33266\n(dp33267\nS'editable'\np33268\nI00\nsS'value'\np33269\nI01\nssS'unique'\np33270\n(dp33271\nS'editable'\np33272\nI00\nsS'value'\np33273\nI00\nssS'properties'\np33274\n(dp33275\nS'default_value'\np33276\n(dp33277\nS'editable'\np33278\nI00\nsS'value'\np33279\nNssS'summary_default'\np33280\n(dp33281\nS'editable'\np33282\nI01\nsS'value'\np33283\nS'none'\np33284\nssS'valid_types'\np33285\n(dp33286\nS'editable'\np33287\nI01\nsS'value'\np33288\n(lp33289\nS'TaskTemplate'\np33290\nasssS'description'\np33291\n(dp33292\nS'editable'\np33293\nI01\nsS'value'\np33294\ng47\nsssS'created_by'\np33295\n(dp33296\nS'mandatory'\np33297\n(dp33298\nS'editable'\np33299\nI00\nsS'value'\np33300\nI00\nssS'name'\np33301\n(dp33302\nS'editable'\np33303\nI01\nsS'value'\np33304\nS'Created by'\np33305\nssS'data_type'\np33306\n(dp33307\nS'editable'\np33308\nI00\nsS'value'\np33309\nS'entity'\np33310\nssS'entity_type'\np33311\n(dp33312\nS'editable'\np33313\nI00\nsS'value'\np33314\nS'Shot'\np33315\nssS'editable'\np33316\n(dp33317\nS'editable'\np33318\nI00\nsS'value'\np33319\nI00\nssS'unique'\np33320\n(dp33321\nS'editable'\np33322\nI00\nsS'value'\np33323\nI00\nssS'properties'\np33324\n(dp33325\nS'default_value'\np33326\n(dp33327\nS'editable'\np33328\nI00\nsS'value'\np33329\nNssS'summary_default'\np33330\n(dp33331\nS'editable'\np33332\nI01\nsS'value'\np33333\nS'none'\np33334\nssS'valid_types'\np33335\n(dp33336\nS'editable'\np33337\nI01\nsS'value'\np33338\n(lp33339\nS'HumanUser'\np33340\naS'ApiUser'\np33341\nasssS'description'\np33342\n(dp33343\nS'editable'\np33344\nI01\nsS'value'\np33345\ng47\nsssS'smart_tail_duration'\np33346\n(dp33347\nS'mandatory'\np33348\n(dp33349\nS'editable'\np33350\nI00\nsS'value'\np33351\nI00\nssS'name'\np33352\n(dp33353\nS'editable'\np33354\nI01\nsS'value'\np33355\nS'Tail Duration'\np33356\nssS'data_type'\np33357\n(dp33358\nS'editable'\np33359\nI00\nsS'value'\np33360\nS'number'\np33361\nssS'entity_type'\np33362\n(dp33363\nS'editable'\np33364\nI00\nsS'value'\np33365\nS'Shot'\np33366\nssS'editable'\np33367\n(dp33368\nS'editable'\np33369\nI00\nsS'value'\np33370\nI01\nssS'unique'\np33371\n(dp33372\nS'editable'\np33373\nI00\nsS'value'\np33374\nI00\nssS'properties'\np33375\n(dp33376\nS'default_value'\np33377\n(dp33378\nS'editable'\np33379\nI00\nsS'value'\np33380\nNssS'summary_default'\np33381\n(dp33382\nS'editable'\np33383\nI01\nsS'value'\np33384\nS'none'\np33385\nsssS'description'\np33386\n(dp33387\nS'editable'\np33388\nI01\nsS'value'\np33389\ng47\nsssS'parent_shots'\np33390\n(dp33391\nS'mandatory'\np33392\n(dp33393\nS'editable'\np33394\nI00\nsS'value'\np33395\nI00\nssS'name'\np33396\n(dp33397\nS'editable'\np33398\nI01\nsS'value'\np33399\nS'Parent Shots'\np33400\nssS'data_type'\np33401\n(dp33402\nS'editable'\np33403\nI00\nsS'value'\np33404\nS'multi_entity'\np33405\nssS'entity_type'\np33406\n(dp33407\nS'editable'\np33408\nI00\nsS'value'\np33409\nS'Shot'\np33410\nssS'editable'\np33411\n(dp33412\nS'editable'\np33413\nI00\nsS'value'\np33414\nI01\nssS'unique'\np33415\n(dp33416\nS'editable'\np33417\nI00\nsS'value'\np33418\nI00\nssS'properties'\np33419\n(dp33420\nS'default_value'\np33421\n(dp33422\nS'editable'\np33423\nI00\nsS'value'\np33424\nNssS'summary_default'\np33425\n(dp33426\nS'editable'\np33427\nI01\nsS'value'\np33428\nS'none'\np33429\nssS'valid_types'\np33430\n(dp33431\nS'editable'\np33432\nI01\nsS'value'\np33433\n(lp33434\nS'Shot'\np33435\nasssS'description'\np33436\n(dp33437\nS'editable'\np33438\nI01\nsS'value'\np33439\ng47\nsssS'sg_status_list'\np33440\n(dp33441\nS'mandatory'\np33442\n(dp33443\nS'editable'\np33444\nI00\nsS'value'\np33445\nI00\nssS'name'\np33446\n(dp33447\nS'editable'\np33448\nI01\nsS'value'\np33449\nS'Status'\np33450\nssS'data_type'\np33451\n(dp33452\nS'editable'\np33453\nI00\nsS'value'\np33454\nS'status_list'\np33455\nssS'entity_type'\np33456\n(dp33457\nS'editable'\np33458\nI00\nsS'value'\np33459\nS'Shot'\np33460\nssS'editable'\np33461\n(dp33462\nS'editable'\np33463\nI00\nsS'value'\np33464\nI01\nssS'unique'\np33465\n(dp33466\nS'editable'\np33467\nI00\nsS'value'\np33468\nI00\nssS'properties'\np33469\n(dp33470\nS'default_value'\np33471\n(dp33472\nS'editable'\np33473\nI01\nsS'value'\np33474\nS'wtg'\np33475\nssS'valid_values'\np33476\n(dp33477\nS'editable'\np33478\nI01\nsS'value'\np33479\n(lp33480\nS'cbb'\np33481\naS'fin'\np33482\naS'ip'\np33483\naS'omt'\np33484\naS'hld'\np33485\naS'rdy'\np33486\naS'wtg'\np33487\nassS'summary_default'\np33488\n(dp33489\nS'editable'\np33490\nI01\nsS'value'\np33491\nS'status_list'\np33492\nsssS'description'\np33493\n(dp33494\nS'editable'\np33495\nI01\nsS'value'\np33496\ng47\nsssS'smart_head_in'\np33497\n(dp33498\nS'mandatory'\np33499\n(dp33500\nS'editable'\np33501\nI00\nsS'value'\np33502\nI00\nssS'name'\np33503\n(dp33504\nS'editable'\np33505\nI01\nsS'value'\np33506\nS'Head In'\np33507\nssS'data_type'\np33508\n(dp33509\nS'editable'\np33510\nI00\nsS'value'\np33511\nS'number'\np33512\nssS'entity_type'\np33513\n(dp33514\nS'editable'\np33515\nI00\nsS'value'\np33516\nS'Shot'\np33517\nssS'editable'\np33518\n(dp33519\nS'editable'\np33520\nI00\nsS'value'\np33521\nI01\nssS'unique'\np33522\n(dp33523\nS'editable'\np33524\nI00\nsS'value'\np33525\nI00\nssS'properties'\np33526\n(dp33527\nS'default_value'\np33528\n(dp33529\nS'editable'\np33530\nI00\nsS'value'\np33531\nNssS'summary_default'\np33532\n(dp33533\nS'editable'\np33534\nI01\nsS'value'\np33535\nS'none'\np33536\nsssS'description'\np33537\n(dp33538\nS'editable'\np33539\nI01\nsS'value'\np33540\ng47\nsssS'smart_working_duration'\np33541\n(dp33542\nS'mandatory'\np33543\n(dp33544\nS'editable'\np33545\nI00\nsS'value'\np33546\nI00\nssS'name'\np33547\n(dp33548\nS'editable'\np33549\nI01\nsS'value'\np33550\nS'Working Duration'\np33551\nssS'data_type'\np33552\n(dp33553\nS'editable'\np33554\nI00\nsS'value'\np33555\nS'number'\np33556\nssS'entity_type'\np33557\n(dp33558\nS'editable'\np33559\nI00\nsS'value'\np33560\nS'Shot'\np33561\nssS'editable'\np33562\n(dp33563\nS'editable'\np33564\nI00\nsS'value'\np33565\nI00\nssS'unique'\np33566\n(dp33567\nS'editable'\np33568\nI00\nsS'value'\np33569\nI00\nssS'properties'\np33570\n(dp33571\nS'default_value'\np33572\n(dp33573\nS'editable'\np33574\nI00\nsS'value'\np33575\nNssS'summary_default'\np33576\n(dp33577\nS'editable'\np33578\nI01\nsS'value'\np33579\nS'none'\np33580\nsssS'description'\np33581\n(dp33582\nS'editable'\np33583\nI01\nsS'value'\np33584\ng47\nsssS'sg_cut_in'\np33585\n(dp33586\nS'mandatory'\np33587\n(dp33588\nS'editable'\np33589\nI00\nsS'value'\np33590\nI00\nssS'name'\np33591\n(dp33592\nS'editable'\np33593\nI01\nsS'value'\np33594\nS'Cut In'\np33595\nssS'data_type'\np33596\n(dp33597\nS'editable'\np33598\nI00\nsS'value'\np33599\nS'number'\np33600\nssS'entity_type'\np33601\n(dp33602\nS'editable'\np33603\nI00\nsS'value'\np33604\nS'Shot'\np33605\nssS'editable'\np33606\n(dp33607\nS'editable'\np33608\nI00\nsS'value'\np33609\nI01\nssS'unique'\np33610\n(dp33611\nS'editable'\np33612\nI00\nsS'value'\np33613\nI00\nssS'properties'\np33614\n(dp33615\nS'default_value'\np33616\n(dp33617\nS'editable'\np33618\nI00\nsS'value'\np33619\nNssS'summary_default'\np33620\n(dp33621\nS'editable'\np33622\nI01\nsS'value'\np33623\nS'sum'\np33624\nsssS'description'\np33625\n(dp33626\nS'editable'\np33627\nI01\nsS'value'\np33628\nS'The first frame used in the cut. This input comes from editorial and is used for playback of movie and frames.'\np33629\nsssS'elements'\np33630\n(dp33631\nS'mandatory'\np33632\n(dp33633\nS'editable'\np33634\nI00\nsS'value'\np33635\nI00\nssS'name'\np33636\n(dp33637\nS'editable'\np33638\nI01\nsS'value'\np33639\nS'Elements'\np33640\nssS'data_type'\np33641\n(dp33642\nS'editable'\np33643\nI00\nsS'value'\np33644\nS'multi_entity'\np33645\nssS'entity_type'\np33646\n(dp33647\nS'editable'\np33648\nI00\nsS'value'\np33649\nS'Shot'\np33650\nssS'editable'\np33651\n(dp33652\nS'editable'\np33653\nI00\nsS'value'\np33654\nI01\nssS'unique'\np33655\n(dp33656\nS'editable'\np33657\nI00\nsS'value'\np33658\nI00\nssS'properties'\np33659\n(dp33660\nS'default_value'\np33661\n(dp33662\nS'editable'\np33663\nI00\nsS'value'\np33664\nNssS'summary_default'\np33665\n(dp33666\nS'editable'\np33667\nI00\nsS'value'\np33668\nS'none'\np33669\nssS'valid_types'\np33670\n(dp33671\nS'editable'\np33672\nI00\nsS'value'\np33673\n(lp33674\nS'Element'\np33675\nasssS'description'\np33676\n(dp33677\nS'editable'\np33678\nI01\nsS'value'\np33679\ng47\nsssS'sg_shot_type'\np33680\n(dp33681\nS'mandatory'\np33682\n(dp33683\nS'editable'\np33684\nI00\nsS'value'\np33685\nI00\nssS'name'\np33686\n(dp33687\nS'editable'\np33688\nI01\nsS'value'\np33689\nS'Type'\np33690\nssS'data_type'\np33691\n(dp33692\nS'editable'\np33693\nI00\nsS'value'\np33694\nS'list'\np33695\nssS'entity_type'\np33696\n(dp33697\nS'editable'\np33698\nI00\nsS'value'\np33699\nS'Shot'\np33700\nssS'editable'\np33701\n(dp33702\nS'editable'\np33703\nI00\nsS'value'\np33704\nI01\nssS'unique'\np33705\n(dp33706\nS'editable'\np33707\nI00\nsS'value'\np33708\nI00\nssS'properties'\np33709\n(dp33710\nS'default_value'\np33711\n(dp33712\nS'editable'\np33713\nI00\nsS'value'\np33714\nNssS'valid_values'\np33715\n(dp33716\nS'editable'\np33717\nI01\nsS'value'\np33718\n(lp33719\nssS'summary_default'\np33720\n(dp33721\nS'editable'\np33722\nI01\nsS'value'\np33723\nS'none'\np33724\nsssS'description'\np33725\n(dp33726\nS'editable'\np33727\nI01\nsS'value'\np33728\ng47\nsssS'description'\np33729\n(dp33730\nS'mandatory'\np33731\n(dp33732\nS'editable'\np33733\nI00\nsS'value'\np33734\nI00\nssS'name'\np33735\n(dp33736\nS'editable'\np33737\nI01\nsS'value'\np33738\nS'Description'\np33739\nssS'data_type'\np33740\n(dp33741\nS'editable'\np33742\nI00\nsS'value'\np33743\nS'text'\np33744\nssS'entity_type'\np33745\n(dp33746\nS'editable'\np33747\nI00\nsS'value'\np33748\nS'Shot'\np33749\nssS'editable'\np33750\n(dp33751\nS'editable'\np33752\nI00\nsS'value'\np33753\nI01\nssS'unique'\np33754\n(dp33755\nS'editable'\np33756\nI00\nsS'value'\np33757\nI00\nssS'properties'\np33758\n(dp33759\nS'default_value'\np33760\n(dp33761\nS'editable'\np33762\nI00\nsS'value'\np33763\nNssS'summary_default'\np33764\n(dp33765\nS'editable'\np33766\nI01\nsS'value'\np33767\nS'none'\np33768\nsssS'description'\np33769\n(dp33770\nS'editable'\np33771\nI01\nsS'value'\np33772\ng47\nsssS'smart_cut_out'\np33773\n(dp33774\nS'mandatory'\np33775\n(dp33776\nS'editable'\np33777\nI00\nsS'value'\np33778\nI00\nssS'name'\np33779\n(dp33780\nS'editable'\np33781\nI01\nsS'value'\np33782\nS'Cut Out'\np33783\nssS'data_type'\np33784\n(dp33785\nS'editable'\np33786\nI00\nsS'value'\np33787\nS'number'\np33788\nssS'entity_type'\np33789\n(dp33790\nS'editable'\np33791\nI00\nsS'value'\np33792\nS'Shot'\np33793\nssS'editable'\np33794\n(dp33795\nS'editable'\np33796\nI00\nsS'value'\np33797\nI01\nssS'unique'\np33798\n(dp33799\nS'editable'\np33800\nI00\nsS'value'\np33801\nI00\nssS'properties'\np33802\n(dp33803\nS'default_value'\np33804\n(dp33805\nS'editable'\np33806\nI00\nsS'value'\np33807\nNssS'summary_default'\np33808\n(dp33809\nS'editable'\np33810\nI01\nsS'value'\np33811\nS'none'\np33812\nsssS'description'\np33813\n(dp33814\nS'editable'\np33815\nI01\nsS'value'\np33816\ng47\nsssS'tail_out'\np33817\n(dp33818\nS'mandatory'\np33819\n(dp33820\nS'editable'\np33821\nI00\nsS'value'\np33822\nI00\nssS'name'\np33823\n(dp33824\nS'editable'\np33825\nI01\nsS'value'\np33826\nS'Raw Tail Out'\np33827\nssS'data_type'\np33828\n(dp33829\nS'editable'\np33830\nI00\nsS'value'\np33831\nS'number'\np33832\nssS'entity_type'\np33833\n(dp33834\nS'editable'\np33835\nI00\nsS'value'\np33836\nS'Shot'\np33837\nssS'editable'\np33838\n(dp33839\nS'editable'\np33840\nI00\nsS'value'\np33841\nI01\nssS'unique'\np33842\n(dp33843\nS'editable'\np33844\nI00\nsS'value'\np33845\nI00\nssS'properties'\np33846\n(dp33847\nS'default_value'\np33848\n(dp33849\nS'editable'\np33850\nI00\nsS'value'\np33851\nNssS'summary_default'\np33852\n(dp33853\nS'editable'\np33854\nI01\nsS'value'\np33855\nS'none'\np33856\nsssS'description'\np33857\n(dp33858\nS'editable'\np33859\nI01\nsS'value'\np33860\ng47\nsssS'sg_cut_out'\np33861\n(dp33862\nS'mandatory'\np33863\n(dp33864\nS'editable'\np33865\nI00\nsS'value'\np33866\nI00\nssS'name'\np33867\n(dp33868\nS'editable'\np33869\nI01\nsS'value'\np33870\nS'Cut Out'\np33871\nssS'data_type'\np33872\n(dp33873\nS'editable'\np33874\nI00\nsS'value'\np33875\nS'number'\np33876\nssS'entity_type'\np33877\n(dp33878\nS'editable'\np33879\nI00\nsS'value'\np33880\nS'Shot'\np33881\nssS'editable'\np33882\n(dp33883\nS'editable'\np33884\nI00\nsS'value'\np33885\nI01\nssS'unique'\np33886\n(dp33887\nS'editable'\np33888\nI00\nsS'value'\np33889\nI00\nssS'properties'\np33890\n(dp33891\nS'default_value'\np33892\n(dp33893\nS'editable'\np33894\nI00\nsS'value'\np33895\nNssS'summary_default'\np33896\n(dp33897\nS'editable'\np33898\nI01\nsS'value'\np33899\nS'sum'\np33900\nsssS'description'\np33901\n(dp33902\nS'editable'\np33903\nI01\nsS'value'\np33904\nS'The last frame used in the cut. This input comes from editorial and is used for playback of movie and frames.'\np33905\nsssS'sg_tail_out'\np33906\n(dp33907\nS'mandatory'\np33908\n(dp33909\nS'editable'\np33910\nI00\nsS'value'\np33911\nI00\nssS'name'\np33912\n(dp33913\nS'editable'\np33914\nI01\nsS'value'\np33915\nS'Tail Out'\np33916\nssS'data_type'\np33917\n(dp33918\nS'editable'\np33919\nI00\nsS'value'\np33920\nS'number'\np33921\nssS'entity_type'\np33922\n(dp33923\nS'editable'\np33924\nI00\nsS'value'\np33925\nS'Shot'\np33926\nssS'editable'\np33927\n(dp33928\nS'editable'\np33929\nI00\nsS'value'\np33930\nI01\nssS'unique'\np33931\n(dp33932\nS'editable'\np33933\nI00\nsS'value'\np33934\nI00\nssS'properties'\np33935\n(dp33936\nS'default_value'\np33937\n(dp33938\nS'editable'\np33939\nI00\nsS'value'\np33940\nNssS'summary_default'\np33941\n(dp33942\nS'editable'\np33943\nI01\nsS'value'\np33944\nS'none'\np33945\nsssS'description'\np33946\n(dp33947\nS'editable'\np33948\nI01\nsS'value'\np33949\nS'The last frame number that footage is available for this Shot.'\np33950\nsssS'smart_cut_in'\np33951\n(dp33952\nS'mandatory'\np33953\n(dp33954\nS'editable'\np33955\nI00\nsS'value'\np33956\nI00\nssS'name'\np33957\n(dp33958\nS'editable'\np33959\nI01\nsS'value'\np33960\nS'Cut In'\np33961\nssS'data_type'\np33962\n(dp33963\nS'editable'\np33964\nI00\nsS'value'\np33965\nS'number'\np33966\nssS'entity_type'\np33967\n(dp33968\nS'editable'\np33969\nI00\nsS'value'\np33970\nS'Shot'\np33971\nssS'editable'\np33972\n(dp33973\nS'editable'\np33974\nI00\nsS'value'\np33975\nI01\nssS'unique'\np33976\n(dp33977\nS'editable'\np33978\nI00\nsS'value'\np33979\nI00\nssS'properties'\np33980\n(dp33981\nS'default_value'\np33982\n(dp33983\nS'editable'\np33984\nI00\nsS'value'\np33985\nNssS'summary_default'\np33986\n(dp33987\nS'editable'\np33988\nI01\nsS'value'\np33989\nS'none'\np33990\nsssS'description'\np33991\n(dp33992\nS'editable'\np33993\nI01\nsS'value'\np33994\ng47\nsssS'smart_cut_summary_display'\np33995\n(dp33996\nS'mandatory'\np33997\n(dp33998\nS'editable'\np33999\nI00\nsS'value'\np34000\nI00\nssS'name'\np34001\n(dp34002\nS'editable'\np34003\nI01\nsS'value'\np34004\nS'Cut Summary'\np34005\nssS'data_type'\np34006\n(dp34007\nS'editable'\np34008\nI00\nsS'value'\np34009\nS'text'\np34010\nssS'entity_type'\np34011\n(dp34012\nS'editable'\np34013\nI00\nsS'value'\np34014\nS'Shot'\np34015\nssS'editable'\np34016\n(dp34017\nS'editable'\np34018\nI00\nsS'value'\np34019\nI00\nssS'unique'\np34020\n(dp34021\nS'editable'\np34022\nI00\nsS'value'\np34023\nI00\nssS'properties'\np34024\n(dp34025\nS'default_value'\np34026\n(dp34027\nS'editable'\np34028\nI00\nsS'value'\np34029\nNssS'summary_default'\np34030\n(dp34031\nS'editable'\np34032\nI01\nsS'value'\np34033\nS'none'\np34034\nsssS'description'\np34035\n(dp34036\nS'editable'\np34037\nI01\nsS'value'\np34038\ng47\nsssS'cut_in'\np34039\n(dp34040\nS'mandatory'\np34041\n(dp34042\nS'editable'\np34043\nI00\nsS'value'\np34044\nI00\nssS'name'\np34045\n(dp34046\nS'editable'\np34047\nI01\nsS'value'\np34048\nS'Raw Cut In'\np34049\nssS'data_type'\np34050\n(dp34051\nS'editable'\np34052\nI00\nsS'value'\np34053\nS'number'\np34054\nssS'entity_type'\np34055\n(dp34056\nS'editable'\np34057\nI00\nsS'value'\np34058\nS'Shot'\np34059\nssS'editable'\np34060\n(dp34061\nS'editable'\np34062\nI00\nsS'value'\np34063\nI01\nssS'unique'\np34064\n(dp34065\nS'editable'\np34066\nI00\nsS'value'\np34067\nI00\nssS'properties'\np34068\n(dp34069\nS'default_value'\np34070\n(dp34071\nS'editable'\np34072\nI00\nsS'value'\np34073\nNssS'summary_default'\np34074\n(dp34075\nS'editable'\np34076\nI01\nsS'value'\np34077\nS'none'\np34078\nsssS'description'\np34079\n(dp34080\nS'editable'\np34081\nI01\nsS'value'\np34082\ng47\nsssS'smart_duration_summary_display'\np34083\n(dp34084\nS'mandatory'\np34085\n(dp34086\nS'editable'\np34087\nI00\nsS'value'\np34088\nI00\nssS'name'\np34089\n(dp34090\nS'editable'\np34091\nI01\nsS'value'\np34092\nS'Duration Summary'\np34093\nssS'data_type'\np34094\n(dp34095\nS'editable'\np34096\nI00\nsS'value'\np34097\nS'text'\np34098\nssS'entity_type'\np34099\n(dp34100\nS'editable'\np34101\nI00\nsS'value'\np34102\nS'Shot'\np34103\nssS'editable'\np34104\n(dp34105\nS'editable'\np34106\nI00\nsS'value'\np34107\nI00\nssS'unique'\np34108\n(dp34109\nS'editable'\np34110\nI00\nsS'value'\np34111\nI00\nssS'properties'\np34112\n(dp34113\nS'default_value'\np34114\n(dp34115\nS'editable'\np34116\nI00\nsS'value'\np34117\nNssS'summary_default'\np34118\n(dp34119\nS'editable'\np34120\nI01\nsS'value'\np34121\nS'none'\np34122\nsssS'description'\np34123\n(dp34124\nS'editable'\np34125\nI01\nsS'value'\np34126\ng47\nsssS'tail_duration'\np34127\n(dp34128\nS'mandatory'\np34129\n(dp34130\nS'editable'\np34131\nI00\nsS'value'\np34132\nI00\nssS'name'\np34133\n(dp34134\nS'editable'\np34135\nI01\nsS'value'\np34136\nS'Raw Tail Duration'\np34137\nssS'data_type'\np34138\n(dp34139\nS'editable'\np34140\nI00\nsS'value'\np34141\nS'number'\np34142\nssS'entity_type'\np34143\n(dp34144\nS'editable'\np34145\nI00\nsS'value'\np34146\nS'Shot'\np34147\nssS'editable'\np34148\n(dp34149\nS'editable'\np34150\nI00\nsS'value'\np34151\nI01\nssS'unique'\np34152\n(dp34153\nS'editable'\np34154\nI00\nsS'value'\np34155\nI00\nssS'properties'\np34156\n(dp34157\nS'default_value'\np34158\n(dp34159\nS'editable'\np34160\nI00\nsS'value'\np34161\nNssS'summary_default'\np34162\n(dp34163\nS'editable'\np34164\nI01\nsS'value'\np34165\nS'none'\np34166\nsssS'description'\np34167\n(dp34168\nS'editable'\np34169\nI01\nsS'value'\np34170\ng47\nsssS'smart_tail_out'\np34171\n(dp34172\nS'mandatory'\np34173\n(dp34174\nS'editable'\np34175\nI00\nsS'value'\np34176\nI00\nssS'name'\np34177\n(dp34178\nS'editable'\np34179\nI01\nsS'value'\np34180\nS'Tail Out'\np34181\nssS'data_type'\np34182\n(dp34183\nS'editable'\np34184\nI00\nsS'value'\np34185\nS'number'\np34186\nssS'entity_type'\np34187\n(dp34188\nS'editable'\np34189\nI00\nsS'value'\np34190\nS'Shot'\np34191\nssS'editable'\np34192\n(dp34193\nS'editable'\np34194\nI00\nsS'value'\np34195\nI01\nssS'unique'\np34196\n(dp34197\nS'editable'\np34198\nI00\nsS'value'\np34199\nI00\nssS'properties'\np34200\n(dp34201\nS'default_value'\np34202\n(dp34203\nS'editable'\np34204\nI00\nsS'value'\np34205\nNssS'summary_default'\np34206\n(dp34207\nS'editable'\np34208\nI01\nsS'value'\np34209\nS'none'\np34210\nsssS'description'\np34211\n(dp34212\nS'editable'\np34213\nI01\nsS'value'\np34214\ng47\nsssS'step_0'\np34215\n(dp34216\nS'mandatory'\np34217\n(dp34218\nS'editable'\np34219\nI00\nsS'value'\np34220\nI00\nssS'name'\np34221\n(dp34222\nS'editable'\np34223\nI01\nsS'value'\np34224\nS'ALL TASKS'\np34225\nssS'data_type'\np34226\n(dp34227\nS'editable'\np34228\nI00\nsS'value'\np34229\nS'pivot_column'\np34230\nssS'entity_type'\np34231\n(dp34232\nS'editable'\np34233\nI00\nsS'value'\np34234\nS'Shot'\np34235\nssS'editable'\np34236\n(dp34237\nS'editable'\np34238\nI00\nsS'value'\np34239\nI00\nssS'unique'\np34240\n(dp34241\nS'editable'\np34242\nI00\nsS'value'\np34243\nI00\nssS'properties'\np34244\n(dp34245\nS'default_value'\np34246\n(dp34247\nS'editable'\np34248\nI00\nsS'value'\np34249\nNssS'summary_default'\np34250\n(dp34251\nS'editable'\np34252\nI00\nsS'value'\np34253\nS'none'\np34254\nsssS'description'\np34255\n(dp34256\nS'editable'\np34257\nI01\nsS'value'\np34258\ng47\nsssS'cut_duration'\np34259\n(dp34260\nS'mandatory'\np34261\n(dp34262\nS'editable'\np34263\nI00\nsS'value'\np34264\nI00\nssS'name'\np34265\n(dp34266\nS'editable'\np34267\nI01\nsS'value'\np34268\nS'Raw Cut Duration'\np34269\nssS'data_type'\np34270\n(dp34271\nS'editable'\np34272\nI00\nsS'value'\np34273\nS'number'\np34274\nssS'entity_type'\np34275\n(dp34276\nS'editable'\np34277\nI00\nsS'value'\np34278\nS'Shot'\np34279\nssS'editable'\np34280\n(dp34281\nS'editable'\np34282\nI00\nsS'value'\np34283\nI01\nssS'unique'\np34284\n(dp34285\nS'editable'\np34286\nI00\nsS'value'\np34287\nI00\nssS'properties'\np34288\n(dp34289\nS'default_value'\np34290\n(dp34291\nS'editable'\np34292\nI00\nsS'value'\np34293\nNssS'summary_default'\np34294\n(dp34295\nS'editable'\np34296\nI01\nsS'value'\np34297\nS'none'\np34298\nsssS'description'\np34299\n(dp34300\nS'editable'\np34301\nI01\nsS'value'\np34302\ng47\nsssS'step_5'\np34303\n(dp34304\nS'mandatory'\np34305\n(dp34306\nS'editable'\np34307\nI00\nsS'value'\np34308\nI00\nssS'name'\np34309\n(dp34310\nS'editable'\np34311\nI01\nsS'value'\np34312\nS'Anm'\np34313\nssS'data_type'\np34314\n(dp34315\nS'editable'\np34316\nI00\nsS'value'\np34317\nS'pivot_column'\np34318\nssS'entity_type'\np34319\n(dp34320\nS'editable'\np34321\nI00\nsS'value'\np34322\nS'Shot'\np34323\nssS'editable'\np34324\n(dp34325\nS'editable'\np34326\nI00\nsS'value'\np34327\nI00\nssS'unique'\np34328\n(dp34329\nS'editable'\np34330\nI00\nsS'value'\np34331\nI00\nssS'properties'\np34332\n(dp34333\nS'default_value'\np34334\n(dp34335\nS'editable'\np34336\nI00\nsS'value'\np34337\nNssS'summary_default'\np34338\n(dp34339\nS'editable'\np34340\nI00\nsS'value'\np34341\nS'none'\np34342\nsssS'description'\np34343\n(dp34344\nS'editable'\np34345\nI01\nsS'value'\np34346\ng47\nsssS'assets'\np34347\n(dp34348\nS'mandatory'\np34349\n(dp34350\nS'editable'\np34351\nI00\nsS'value'\np34352\nI00\nssS'name'\np34353\n(dp34354\nS'editable'\np34355\nI01\nsS'value'\np34356\nS'Assets'\np34357\nssS'data_type'\np34358\n(dp34359\nS'editable'\np34360\nI00\nsS'value'\np34361\nS'multi_entity'\np34362\nssS'entity_type'\np34363\n(dp34364\nS'editable'\np34365\nI00\nsS'value'\np34366\nS'Shot'\np34367\nssS'editable'\np34368\n(dp34369\nS'editable'\np34370\nI00\nsS'value'\np34371\nI01\nssS'unique'\np34372\n(dp34373\nS'editable'\np34374\nI00\nsS'value'\np34375\nI00\nssS'properties'\np34376\n(dp34377\nS'default_value'\np34378\n(dp34379\nS'editable'\np34380\nI00\nsS'value'\np34381\nNssS'summary_default'\np34382\n(dp34383\nS'editable'\np34384\nI01\nsS'value'\np34385\nS'none'\np34386\nssS'valid_types'\np34387\n(dp34388\nS'editable'\np34389\nI01\nsS'value'\np34390\n(lp34391\nS'Asset'\np34392\nasssS'description'\np34393\n(dp34394\nS'editable'\np34395\nI01\nsS'value'\np34396\ng47\nsssS'step_7'\np34397\n(dp34398\nS'mandatory'\np34399\n(dp34400\nS'editable'\np34401\nI00\nsS'value'\np34402\nI00\nssS'name'\np34403\n(dp34404\nS'editable'\np34405\nI01\nsS'value'\np34406\nS'Light'\np34407\nssS'data_type'\np34408\n(dp34409\nS'editable'\np34410\nI00\nsS'value'\np34411\nS'pivot_column'\np34412\nssS'entity_type'\np34413\n(dp34414\nS'editable'\np34415\nI00\nsS'value'\np34416\nS'Shot'\np34417\nssS'editable'\np34418\n(dp34419\nS'editable'\np34420\nI00\nsS'value'\np34421\nI00\nssS'unique'\np34422\n(dp34423\nS'editable'\np34424\nI00\nsS'value'\np34425\nI00\nssS'properties'\np34426\n(dp34427\nS'default_value'\np34428\n(dp34429\nS'editable'\np34430\nI00\nsS'value'\np34431\nNssS'summary_default'\np34432\n(dp34433\nS'editable'\np34434\nI00\nsS'value'\np34435\nS'none'\np34436\nsssS'description'\np34437\n(dp34438\nS'editable'\np34439\nI01\nsS'value'\np34440\ng47\nsssS'step_6'\np34441\n(dp34442\nS'mandatory'\np34443\n(dp34444\nS'editable'\np34445\nI00\nsS'value'\np34446\nI00\nssS'name'\np34447\n(dp34448\nS'editable'\np34449\nI01\nsS'value'\np34450\nS'FX'\np34451\nssS'data_type'\np34452\n(dp34453\nS'editable'\np34454\nI00\nsS'value'\np34455\nS'pivot_column'\np34456\nssS'entity_type'\np34457\n(dp34458\nS'editable'\np34459\nI00\nsS'value'\np34460\nS'Shot'\np34461\nssS'editable'\np34462\n(dp34463\nS'editable'\np34464\nI00\nsS'value'\np34465\nI00\nssS'unique'\np34466\n(dp34467\nS'editable'\np34468\nI00\nsS'value'\np34469\nI00\nssS'properties'\np34470\n(dp34471\nS'default_value'\np34472\n(dp34473\nS'editable'\np34474\nI00\nsS'value'\np34475\nNssS'summary_default'\np34476\n(dp34477\nS'editable'\np34478\nI00\nsS'value'\np34479\nS'none'\np34480\nsssS'description'\np34481\n(dp34482\nS'editable'\np34483\nI01\nsS'value'\np34484\ng47\nsssS'smart_tail_in'\np34485\n(dp34486\nS'mandatory'\np34487\n(dp34488\nS'editable'\np34489\nI00\nsS'value'\np34490\nI00\nssS'name'\np34491\n(dp34492\nS'editable'\np34493\nI01\nsS'value'\np34494\nS'Tail In'\np34495\nssS'data_type'\np34496\n(dp34497\nS'editable'\np34498\nI00\nsS'value'\np34499\nS'number'\np34500\nssS'entity_type'\np34501\n(dp34502\nS'editable'\np34503\nI00\nsS'value'\np34504\nS'Shot'\np34505\nssS'editable'\np34506\n(dp34507\nS'editable'\np34508\nI00\nsS'value'\np34509\nI01\nssS'unique'\np34510\n(dp34511\nS'editable'\np34512\nI00\nsS'value'\np34513\nI00\nssS'properties'\np34514\n(dp34515\nS'default_value'\np34516\n(dp34517\nS'editable'\np34518\nI00\nsS'value'\np34519\nNssS'summary_default'\np34520\n(dp34521\nS'editable'\np34522\nI01\nsS'value'\np34523\nS'none'\np34524\nsssS'description'\np34525\n(dp34526\nS'editable'\np34527\nI01\nsS'value'\np34528\ng47\nsssS'step_8'\np34529\n(dp34530\nS'mandatory'\np34531\n(dp34532\nS'editable'\np34533\nI00\nsS'value'\np34534\nI00\nssS'name'\np34535\n(dp34536\nS'editable'\np34537\nI01\nsS'value'\np34538\nS'Comp'\np34539\nssS'data_type'\np34540\n(dp34541\nS'editable'\np34542\nI00\nsS'value'\np34543\nS'pivot_column'\np34544\nssS'entity_type'\np34545\n(dp34546\nS'editable'\np34547\nI00\nsS'value'\np34548\nS'Shot'\np34549\nssS'editable'\np34550\n(dp34551\nS'editable'\np34552\nI00\nsS'value'\np34553\nI00\nssS'unique'\np34554\n(dp34555\nS'editable'\np34556\nI00\nsS'value'\np34557\nI00\nssS'properties'\np34558\n(dp34559\nS'default_value'\np34560\n(dp34561\nS'editable'\np34562\nI00\nsS'value'\np34563\nNssS'summary_default'\np34564\n(dp34565\nS'editable'\np34566\nI00\nsS'value'\np34567\nS'none'\np34568\nsssS'description'\np34569\n(dp34570\nS'editable'\np34571\nI01\nsS'value'\np34572\ng47\nsssS'created_at'\np34573\n(dp34574\nS'mandatory'\np34575\n(dp34576\nS'editable'\np34577\nI00\nsS'value'\np34578\nI00\nssS'name'\np34579\n(dp34580\nS'editable'\np34581\nI01\nsS'value'\np34582\nS'Date Created'\np34583\nssS'data_type'\np34584\n(dp34585\nS'editable'\np34586\nI00\nsS'value'\np34587\nS'date_time'\np34588\nssS'entity_type'\np34589\n(dp34590\nS'editable'\np34591\nI00\nsS'value'\np34592\nS'Shot'\np34593\nssS'editable'\np34594\n(dp34595\nS'editable'\np34596\nI00\nsS'value'\np34597\nI00\nssS'unique'\np34598\n(dp34599\nS'editable'\np34600\nI00\nsS'value'\np34601\nI00\nssS'properties'\np34602\n(dp34603\nS'default_value'\np34604\n(dp34605\nS'editable'\np34606\nI00\nsS'value'\np34607\nNssS'summary_default'\np34608\n(dp34609\nS'editable'\np34610\nI01\nsS'value'\np34611\nS'none'\np34612\nsssS'description'\np34613\n(dp34614\nS'editable'\np34615\nI01\nsS'value'\np34616\ng47\nsssS'sg_scene'\np34617\n(dp34618\nS'mandatory'\np34619\n(dp34620\nS'editable'\np34621\nI00\nsS'value'\np34622\nI00\nssS'name'\np34623\n(dp34624\nS'editable'\np34625\nI01\nsS'value'\np34626\nS'Scene'\np34627\nssS'data_type'\np34628\n(dp34629\nS'editable'\np34630\nI00\nsS'value'\np34631\nS'entity'\np34632\nssS'entity_type'\np34633\n(dp34634\nS'editable'\np34635\nI00\nsS'value'\np34636\nS'Shot'\np34637\nssS'editable'\np34638\n(dp34639\nS'editable'\np34640\nI00\nsS'value'\np34641\nI01\nssS'unique'\np34642\n(dp34643\nS'editable'\np34644\nI00\nsS'value'\np34645\nI00\nssS'properties'\np34646\n(dp34647\nS'default_value'\np34648\n(dp34649\nS'editable'\np34650\nI00\nsS'value'\np34651\nNssS'summary_default'\np34652\n(dp34653\nS'editable'\np34654\nI01\nsS'value'\np34655\nS'none'\np34656\nssS'valid_types'\np34657\n(dp34658\nS'editable'\np34659\nI01\nsS'value'\np34660\n(lp34661\nS'Scene'\np34662\nasssS'description'\np34663\n(dp34664\nS'editable'\np34665\nI01\nsS'value'\np34666\ng47\nsssS'sg_cut_order'\np34667\n(dp34668\nS'mandatory'\np34669\n(dp34670\nS'editable'\np34671\nI00\nsS'value'\np34672\nI00\nssS'name'\np34673\n(dp34674\nS'editable'\np34675\nI01\nsS'value'\np34676\nS'Cut Order'\np34677\nssS'data_type'\np34678\n(dp34679\nS'editable'\np34680\nI00\nsS'value'\np34681\nS'number'\np34682\nssS'entity_type'\np34683\n(dp34684\nS'editable'\np34685\nI00\nsS'value'\np34686\nS'Shot'\np34687\nssS'editable'\np34688\n(dp34689\nS'editable'\np34690\nI00\nsS'value'\np34691\nI01\nssS'unique'\np34692\n(dp34693\nS'editable'\np34694\nI00\nsS'value'\np34695\nI00\nssS'properties'\np34696\n(dp34697\nS'default_value'\np34698\n(dp34699\nS'editable'\np34700\nI00\nsS'value'\np34701\nNssS'summary_default'\np34702\n(dp34703\nS'editable'\np34704\nI01\nsS'value'\np34705\nS'none'\np34706\nsssS'description'\np34707\n(dp34708\nS'editable'\np34709\nI01\nsS'value'\np34710\nS'Order that the Shot plays in the overall cut for the entire Project. Used for sorting Shots and Versions of Shots when playing in cut order and pulling in neighboring Shots of Versions to the current one being viewed.'\np34711\nsssS'project'\np34712\n(dp34713\nS'mandatory'\np34714\n(dp34715\nS'editable'\np34716\nI00\nsS'value'\np34717\nI00\nssS'name'\np34718\n(dp34719\nS'editable'\np34720\nI01\nsS'value'\np34721\nS'Project'\np34722\nssS'data_type'\np34723\n(dp34724\nS'editable'\np34725\nI00\nsS'value'\np34726\nS'entity'\np34727\nssS'entity_type'\np34728\n(dp34729\nS'editable'\np34730\nI00\nsS'value'\np34731\nS'Shot'\np34732\nssS'editable'\np34733\n(dp34734\nS'editable'\np34735\nI00\nsS'value'\np34736\nI01\nssS'unique'\np34737\n(dp34738\nS'editable'\np34739\nI00\nsS'value'\np34740\nI00\nssS'properties'\np34741\n(dp34742\nS'default_value'\np34743\n(dp34744\nS'editable'\np34745\nI00\nsS'value'\np34746\nNssS'summary_default'\np34747\n(dp34748\nS'editable'\np34749\nI01\nsS'value'\np34750\nS'none'\np34751\nssS'valid_types'\np34752\n(dp34753\nS'editable'\np34754\nI01\nsS'value'\np34755\n(lp34756\nS'Project'\np34757\nasssS'description'\np34758\n(dp34759\nS'editable'\np34760\nI01\nsS'value'\np34761\ng47\nsssS'sg_head_in'\np34762\n(dp34763\nS'mandatory'\np34764\n(dp34765\nS'editable'\np34766\nI00\nsS'value'\np34767\nI00\nssS'name'\np34768\n(dp34769\nS'editable'\np34770\nI01\nsS'value'\np34771\nS'Head In'\np34772\nssS'data_type'\np34773\n(dp34774\nS'editable'\np34775\nI00\nsS'value'\np34776\nS'number'\np34777\nssS'entity_type'\np34778\n(dp34779\nS'editable'\np34780\nI00\nsS'value'\np34781\nS'Shot'\np34782\nssS'editable'\np34783\n(dp34784\nS'editable'\np34785\nI00\nsS'value'\np34786\nI01\nssS'unique'\np34787\n(dp34788\nS'editable'\np34789\nI00\nsS'value'\np34790\nI00\nssS'properties'\np34791\n(dp34792\nS'default_value'\np34793\n(dp34794\nS'editable'\np34795\nI00\nsS'value'\np34796\nNssS'summary_default'\np34797\n(dp34798\nS'editable'\np34799\nI01\nsS'value'\np34800\nS'none'\np34801\nsssS'description'\np34802\n(dp34803\nS'editable'\np34804\nI01\nsS'value'\np34805\nS'The first frame number that footage is available for this Shot.'\np34806\nsssS'tail_in'\np34807\n(dp34808\nS'mandatory'\np34809\n(dp34810\nS'editable'\np34811\nI00\nsS'value'\np34812\nI00\nssS'name'\np34813\n(dp34814\nS'editable'\np34815\nI01\nsS'value'\np34816\nS'Raw Tail In'\np34817\nssS'data_type'\np34818\n(dp34819\nS'editable'\np34820\nI00\nsS'value'\np34821\nS'number'\np34822\nssS'entity_type'\np34823\n(dp34824\nS'editable'\np34825\nI00\nsS'value'\np34826\nS'Shot'\np34827\nssS'editable'\np34828\n(dp34829\nS'editable'\np34830\nI00\nsS'value'\np34831\nI01\nssS'unique'\np34832\n(dp34833\nS'editable'\np34834\nI00\nsS'value'\np34835\nI00\nssS'properties'\np34836\n(dp34837\nS'default_value'\np34838\n(dp34839\nS'editable'\np34840\nI00\nsS'value'\np34841\nNssS'summary_default'\np34842\n(dp34843\nS'editable'\np34844\nI01\nsS'value'\np34845\nS'none'\np34846\nsssS'description'\np34847\n(dp34848\nS'editable'\np34849\nI01\nsS'value'\np34850\ng47\nsssS'shots'\np34851\n(dp34852\nS'mandatory'\np34853\n(dp34854\nS'editable'\np34855\nI00\nsS'value'\np34856\nI00\nssS'name'\np34857\n(dp34858\nS'editable'\np34859\nI01\nsS'value'\np34860\nS'Sub Shots'\np34861\nssS'data_type'\np34862\n(dp34863\nS'editable'\np34864\nI00\nsS'value'\np34865\nS'multi_entity'\np34866\nssS'entity_type'\np34867\n(dp34868\nS'editable'\np34869\nI00\nsS'value'\np34870\nS'Shot'\np34871\nssS'editable'\np34872\n(dp34873\nS'editable'\np34874\nI00\nsS'value'\np34875\nI01\nssS'unique'\np34876\n(dp34877\nS'editable'\np34878\nI00\nsS'value'\np34879\nI00\nssS'properties'\np34880\n(dp34881\nS'default_value'\np34882\n(dp34883\nS'editable'\np34884\nI00\nsS'value'\np34885\nNssS'summary_default'\np34886\n(dp34887\nS'editable'\np34888\nI01\nsS'value'\np34889\nS'none'\np34890\nssS'valid_types'\np34891\n(dp34892\nS'editable'\np34893\nI01\nsS'value'\np34894\n(lp34895\nS'Shot'\np34896\nasssS'description'\np34897\n(dp34898\nS'editable'\np34899\nI01\nsS'value'\np34900\ng47\nsssS'smart_head_duration'\np34901\n(dp34902\nS'mandatory'\np34903\n(dp34904\nS'editable'\np34905\nI00\nsS'value'\np34906\nI00\nssS'name'\np34907\n(dp34908\nS'editable'\np34909\nI01\nsS'value'\np34910\nS'Head Duration'\np34911\nssS'data_type'\np34912\n(dp34913\nS'editable'\np34914\nI00\nsS'value'\np34915\nS'number'\np34916\nssS'entity_type'\np34917\n(dp34918\nS'editable'\np34919\nI00\nsS'value'\np34920\nS'Shot'\np34921\nssS'editable'\np34922\n(dp34923\nS'editable'\np34924\nI00\nsS'value'\np34925\nI01\nssS'unique'\np34926\n(dp34927\nS'editable'\np34928\nI00\nsS'value'\np34929\nI00\nssS'properties'\np34930\n(dp34931\nS'default_value'\np34932\n(dp34933\nS'editable'\np34934\nI00\nsS'value'\np34935\nNssS'summary_default'\np34936\n(dp34937\nS'editable'\np34938\nI01\nsS'value'\np34939\nS'none'\np34940\nsssS'description'\np34941\n(dp34942\nS'editable'\np34943\nI01\nsS'value'\np34944\ng47\nsssS'cut_out'\np34945\n(dp34946\nS'mandatory'\np34947\n(dp34948\nS'editable'\np34949\nI00\nsS'value'\np34950\nI00\nssS'name'\np34951\n(dp34952\nS'editable'\np34953\nI01\nsS'value'\np34954\nS'Raw Cut Out'\np34955\nssS'data_type'\np34956\n(dp34957\nS'editable'\np34958\nI00\nsS'value'\np34959\nS'number'\np34960\nssS'entity_type'\np34961\n(dp34962\nS'editable'\np34963\nI00\nsS'value'\np34964\nS'Shot'\np34965\nssS'editable'\np34966\n(dp34967\nS'editable'\np34968\nI00\nsS'value'\np34969\nI01\nssS'unique'\np34970\n(dp34971\nS'editable'\np34972\nI00\nsS'value'\np34973\nI00\nssS'properties'\np34974\n(dp34975\nS'default_value'\np34976\n(dp34977\nS'editable'\np34978\nI00\nsS'value'\np34979\nNssS'summary_default'\np34980\n(dp34981\nS'editable'\np34982\nI01\nsS'value'\np34983\nS'none'\np34984\nsssS'description'\np34985\n(dp34986\nS'editable'\np34987\nI01\nsS'value'\np34988\ng47\nsssS'head_out'\np34989\n(dp34990\nS'mandatory'\np34991\n(dp34992\nS'editable'\np34993\nI00\nsS'value'\np34994\nI00\nssS'name'\np34995\n(dp34996\nS'editable'\np34997\nI01\nsS'value'\np34998\nS'Raw Head Out'\np34999\nssS'data_type'\np35000\n(dp35001\nS'editable'\np35002\nI00\nsS'value'\np35003\nS'number'\np35004\nssS'entity_type'\np35005\n(dp35006\nS'editable'\np35007\nI00\nsS'value'\np35008\nS'Shot'\np35009\nssS'editable'\np35010\n(dp35011\nS'editable'\np35012\nI00\nsS'value'\np35013\nI01\nssS'unique'\np35014\n(dp35015\nS'editable'\np35016\nI00\nsS'value'\np35017\nI00\nssS'properties'\np35018\n(dp35019\nS'default_value'\np35020\n(dp35021\nS'editable'\np35022\nI00\nsS'value'\np35023\nNssS'summary_default'\np35024\n(dp35025\nS'editable'\np35026\nI01\nsS'value'\np35027\nS'none'\np35028\nsssS'description'\np35029\n(dp35030\nS'editable'\np35031\nI01\nsS'value'\np35032\ng47\nsssS'notes'\np35033\n(dp35034\nS'mandatory'\np35035\n(dp35036\nS'editable'\np35037\nI00\nsS'value'\np35038\nI00\nssS'name'\np35039\n(dp35040\nS'editable'\np35041\nI01\nsS'value'\np35042\nS'Notes'\np35043\nssS'data_type'\np35044\n(dp35045\nS'editable'\np35046\nI00\nsS'value'\np35047\nS'multi_entity'\np35048\nssS'entity_type'\np35049\n(dp35050\nS'editable'\np35051\nI00\nsS'value'\np35052\nS'Shot'\np35053\nssS'editable'\np35054\n(dp35055\nS'editable'\np35056\nI00\nsS'value'\np35057\nI01\nssS'unique'\np35058\n(dp35059\nS'editable'\np35060\nI00\nsS'value'\np35061\nI00\nssS'properties'\np35062\n(dp35063\nS'default_value'\np35064\n(dp35065\nS'editable'\np35066\nI00\nsS'value'\np35067\nNssS'summary_default'\np35068\n(dp35069\nS'editable'\np35070\nI01\nsS'value'\np35071\nS'none'\np35072\nssS'valid_types'\np35073\n(dp35074\nS'editable'\np35075\nI01\nsS'value'\np35076\n(lp35077\nS'Note'\np35078\nasssS'description'\np35079\n(dp35080\nS'editable'\np35081\nI01\nsS'value'\np35082\ng47\nssssS'TankPublishedFile'\np35083\n(dp35084\nS'open_notes_count'\np35085\n(dp35086\nS'mandatory'\np35087\n(dp35088\nS'editable'\np35089\nI00\nsS'value'\np35090\nI00\nssS'name'\np35091\n(dp35092\nS'editable'\np35093\nI01\nsS'value'\np35094\nS'Open Notes Count'\np35095\nssS'data_type'\np35096\n(dp35097\nS'editable'\np35098\nI00\nsS'value'\np35099\nS'text'\np35100\nssS'entity_type'\np35101\n(dp35102\nS'editable'\np35103\nI00\nsS'value'\np35104\nS'TankPublishedFile'\np35105\nssS'editable'\np35106\n(dp35107\nS'editable'\np35108\nI00\nsS'value'\np35109\nI00\nssS'unique'\np35110\n(dp35111\nS'editable'\np35112\nI00\nsS'value'\np35113\nI00\nssS'properties'\np35114\n(dp35115\nS'default_value'\np35116\n(dp35117\nS'editable'\np35118\nI00\nsS'value'\np35119\nNssS'summary_default'\np35120\n(dp35121\nS'editable'\np35122\nI01\nsS'value'\np35123\nS'none'\np35124\nsssS'description'\np35125\n(dp35126\nS'editable'\np35127\nI01\nsS'value'\np35128\ng47\nsssS'code'\np35129\n(dp35130\nS'mandatory'\np35131\n(dp35132\nS'editable'\np35133\nI00\nsS'value'\np35134\nI01\nssS'name'\np35135\n(dp35136\nS'editable'\np35137\nI01\nsS'value'\np35138\nS'Tank Published File Name'\np35139\nssS'data_type'\np35140\n(dp35141\nS'editable'\np35142\nI00\nsS'value'\np35143\nS'text'\np35144\nssS'entity_type'\np35145\n(dp35146\nS'editable'\np35147\nI00\nsS'value'\np35148\nS'TankPublishedFile'\np35149\nssS'editable'\np35150\n(dp35151\nS'editable'\np35152\nI00\nsS'value'\np35153\nI01\nssS'unique'\np35154\n(dp35155\nS'editable'\np35156\nI00\nsS'value'\np35157\nI00\nssS'properties'\np35158\n(dp35159\nS'default_value'\np35160\n(dp35161\nS'editable'\np35162\nI00\nsS'value'\np35163\nNssS'summary_default'\np35164\n(dp35165\nS'editable'\np35166\nI01\nsS'value'\np35167\nS'none'\np35168\nsssS'description'\np35169\n(dp35170\nS'editable'\np35171\nI01\nsS'value'\np35172\ng47\nsssS'image'\np35173\n(dp35174\nS'mandatory'\np35175\n(dp35176\nS'editable'\np35177\nI00\nsS'value'\np35178\nI00\nssS'name'\np35179\n(dp35180\nS'editable'\np35181\nI01\nsS'value'\np35182\nS'Thumbnail'\np35183\nssS'data_type'\np35184\n(dp35185\nS'editable'\np35186\nI00\nsS'value'\np35187\nS'image'\np35188\nssS'entity_type'\np35189\n(dp35190\nS'editable'\np35191\nI00\nsS'value'\np35192\nS'TankPublishedFile'\np35193\nssS'editable'\np35194\n(dp35195\nS'editable'\np35196\nI00\nsS'value'\np35197\nI01\nssS'unique'\np35198\n(dp35199\nS'editable'\np35200\nI00\nsS'value'\np35201\nI00\nssS'properties'\np35202\n(dp35203\nS'default_value'\np35204\n(dp35205\nS'editable'\np35206\nI00\nsS'value'\np35207\nNssS'summary_default'\np35208\n(dp35209\nS'editable'\np35210\nI01\nsS'value'\np35211\nS'none'\np35212\nsssS'description'\np35213\n(dp35214\nS'editable'\np35215\nI01\nsS'value'\np35216\ng47\nsssS'updated_at'\np35217\n(dp35218\nS'mandatory'\np35219\n(dp35220\nS'editable'\np35221\nI00\nsS'value'\np35222\nI00\nssS'name'\np35223\n(dp35224\nS'editable'\np35225\nI01\nsS'value'\np35226\nS'Date Updated'\np35227\nssS'data_type'\np35228\n(dp35229\nS'editable'\np35230\nI00\nsS'value'\np35231\nS'date_time'\np35232\nssS'entity_type'\np35233\n(dp35234\nS'editable'\np35235\nI00\nsS'value'\np35236\nS'TankPublishedFile'\np35237\nssS'editable'\np35238\n(dp35239\nS'editable'\np35240\nI00\nsS'value'\np35241\nI00\nssS'unique'\np35242\n(dp35243\nS'editable'\np35244\nI00\nsS'value'\np35245\nI00\nssS'properties'\np35246\n(dp35247\nS'default_value'\np35248\n(dp35249\nS'editable'\np35250\nI00\nsS'value'\np35251\nNssS'summary_default'\np35252\n(dp35253\nS'editable'\np35254\nI01\nsS'value'\np35255\nS'none'\np35256\nsssS'description'\np35257\n(dp35258\nS'editable'\np35259\nI01\nsS'value'\np35260\ng47\nsssS'entity'\np35261\n(dp35262\nS'mandatory'\np35263\n(dp35264\nS'editable'\np35265\nI00\nsS'value'\np35266\nI00\nssS'name'\np35267\n(dp35268\nS'editable'\np35269\nI01\nsS'value'\np35270\nS'Link'\np35271\nssS'data_type'\np35272\n(dp35273\nS'editable'\np35274\nI00\nsS'value'\np35275\nS'entity'\np35276\nssS'entity_type'\np35277\n(dp35278\nS'editable'\np35279\nI00\nsS'value'\np35280\nS'TankPublishedFile'\np35281\nssS'editable'\np35282\n(dp35283\nS'editable'\np35284\nI00\nsS'value'\np35285\nI00\nssS'unique'\np35286\n(dp35287\nS'editable'\np35288\nI00\nsS'value'\np35289\nI00\nssS'properties'\np35290\n(dp35291\nS'default_value'\np35292\n(dp35293\nS'editable'\np35294\nI00\nsS'value'\np35295\nNssS'summary_default'\np35296\n(dp35297\nS'editable'\np35298\nI01\nsS'value'\np35299\nS'none'\np35300\nssS'valid_types'\np35301\n(dp35302\nS'editable'\np35303\nI01\nsS'value'\np35304\n(lp35305\nS'Asset'\np35306\naS'Shot'\np35307\naS'Project'\np35308\nasssS'description'\np35309\n(dp35310\nS'editable'\np35311\nI01\nsS'value'\np35312\ng47\nsssS'cached_display_name'\np35313\n(dp35314\nS'mandatory'\np35315\n(dp35316\nS'editable'\np35317\nI00\nsS'value'\np35318\nI00\nssS'name'\np35319\n(dp35320\nS'editable'\np35321\nI01\nsS'value'\np35322\nS'Cached Display Name'\np35323\nssS'data_type'\np35324\n(dp35325\nS'editable'\np35326\nI00\nsS'value'\np35327\nS'text'\np35328\nssS'entity_type'\np35329\n(dp35330\nS'editable'\np35331\nI00\nsS'value'\np35332\nS'TankPublishedFile'\np35333\nssS'editable'\np35334\n(dp35335\nS'editable'\np35336\nI00\nsS'value'\np35337\nI01\nssS'unique'\np35338\n(dp35339\nS'editable'\np35340\nI00\nsS'value'\np35341\nI00\nssS'properties'\np35342\n(dp35343\nS'default_value'\np35344\n(dp35345\nS'editable'\np35346\nI00\nsS'value'\np35347\nNssS'summary_default'\np35348\n(dp35349\nS'editable'\np35350\nI00\nsS'value'\np35351\nS'none'\np35352\nsssS'description'\np35353\n(dp35354\nS'editable'\np35355\nI01\nsS'value'\np35356\ng47\nsssS'downstream_tank_published_files'\np35357\n(dp35358\nS'mandatory'\np35359\n(dp35360\nS'editable'\np35361\nI00\nsS'value'\np35362\nI00\nssS'name'\np35363\n(dp35364\nS'editable'\np35365\nI01\nsS'value'\np35366\nS'Downstream Tank Published Files'\np35367\nssS'data_type'\np35368\n(dp35369\nS'editable'\np35370\nI00\nsS'value'\np35371\nS'multi_entity'\np35372\nssS'entity_type'\np35373\n(dp35374\nS'editable'\np35375\nI00\nsS'value'\np35376\nS'TankPublishedFile'\np35377\nssS'editable'\np35378\n(dp35379\nS'editable'\np35380\nI00\nsS'value'\np35381\nI01\nssS'unique'\np35382\n(dp35383\nS'editable'\np35384\nI00\nsS'value'\np35385\nI00\nssS'properties'\np35386\n(dp35387\nS'default_value'\np35388\n(dp35389\nS'editable'\np35390\nI00\nsS'value'\np35391\nNssS'summary_default'\np35392\n(dp35393\nS'editable'\np35394\nI00\nsS'value'\np35395\nS'none'\np35396\nssS'valid_types'\np35397\n(dp35398\nS'editable'\np35399\nI00\nsS'value'\np35400\n(lp35401\nS'TankPublishedFile'\np35402\nasssS'description'\np35403\n(dp35404\nS'editable'\np35405\nI01\nsS'value'\np35406\ng47\nsssS'path_cache'\np35407\n(dp35408\nS'mandatory'\np35409\n(dp35410\nS'editable'\np35411\nI00\nsS'value'\np35412\nI00\nssS'name'\np35413\n(dp35414\nS'editable'\np35415\nI01\nsS'value'\np35416\nS'Path Cache'\np35417\nssS'data_type'\np35418\n(dp35419\nS'editable'\np35420\nI00\nsS'value'\np35421\nS'text'\np35422\nssS'entity_type'\np35423\n(dp35424\nS'editable'\np35425\nI00\nsS'value'\np35426\nS'TankPublishedFile'\np35427\nssS'editable'\np35428\n(dp35429\nS'editable'\np35430\nI00\nsS'value'\np35431\nI00\nssS'unique'\np35432\n(dp35433\nS'editable'\np35434\nI00\nsS'value'\np35435\nI00\nssS'properties'\np35436\n(dp35437\nS'default_value'\np35438\n(dp35439\nS'editable'\np35440\nI00\nsS'value'\np35441\nNssS'summary_default'\np35442\n(dp35443\nS'editable'\np35444\nI01\nsS'value'\np35445\nS'none'\np35446\nsssS'description'\np35447\n(dp35448\nS'editable'\np35449\nI01\nsS'value'\np35450\ng47\nsssS'id'\np35451\n(dp35452\nS'mandatory'\np35453\n(dp35454\nS'editable'\np35455\nI00\nsS'value'\np35456\nI00\nssS'name'\np35457\n(dp35458\nS'editable'\np35459\nI01\nsS'value'\np35460\nS'Id'\np35461\nssS'data_type'\np35462\n(dp35463\nS'editable'\np35464\nI00\nsS'value'\np35465\nS'number'\np35466\nssS'entity_type'\np35467\n(dp35468\nS'editable'\np35469\nI00\nsS'value'\np35470\nS'TankPublishedFile'\np35471\nssS'editable'\np35472\n(dp35473\nS'editable'\np35474\nI00\nsS'value'\np35475\nI00\nssS'unique'\np35476\n(dp35477\nS'editable'\np35478\nI00\nsS'value'\np35479\nI00\nssS'properties'\np35480\n(dp35481\nS'default_value'\np35482\n(dp35483\nS'editable'\np35484\nI00\nsS'value'\np35485\nNssS'summary_default'\np35486\n(dp35487\nS'editable'\np35488\nI01\nsS'value'\np35489\nS'none'\np35490\nsssS'description'\np35491\n(dp35492\nS'editable'\np35493\nI01\nsS'value'\np35494\ng47\nsssS'updated_by'\np35495\n(dp35496\nS'mandatory'\np35497\n(dp35498\nS'editable'\np35499\nI00\nsS'value'\np35500\nI00\nssS'name'\np35501\n(dp35502\nS'editable'\np35503\nI01\nsS'value'\np35504\nS'Updated by'\np35505\nssS'data_type'\np35506\n(dp35507\nS'editable'\np35508\nI00\nsS'value'\np35509\nS'entity'\np35510\nssS'entity_type'\np35511\n(dp35512\nS'editable'\np35513\nI00\nsS'value'\np35514\nS'TankPublishedFile'\np35515\nssS'editable'\np35516\n(dp35517\nS'editable'\np35518\nI00\nsS'value'\np35519\nI00\nssS'unique'\np35520\n(dp35521\nS'editable'\np35522\nI00\nsS'value'\np35523\nI00\nssS'properties'\np35524\n(dp35525\nS'default_value'\np35526\n(dp35527\nS'editable'\np35528\nI00\nsS'value'\np35529\nNssS'summary_default'\np35530\n(dp35531\nS'editable'\np35532\nI01\nsS'value'\np35533\nS'none'\np35534\nssS'valid_types'\np35535\n(dp35536\nS'editable'\np35537\nI01\nsS'value'\np35538\n(lp35539\nS'HumanUser'\np35540\naS'ApiUser'\np35541\nasssS'description'\np35542\n(dp35543\nS'editable'\np35544\nI01\nsS'value'\np35545\ng47\nsssS'open_notes'\np35546\n(dp35547\nS'mandatory'\np35548\n(dp35549\nS'editable'\np35550\nI00\nsS'value'\np35551\nI00\nssS'name'\np35552\n(dp35553\nS'editable'\np35554\nI01\nsS'value'\np35555\nS'Open Notes'\np35556\nssS'data_type'\np35557\n(dp35558\nS'editable'\np35559\nI00\nsS'value'\np35560\nS'multi_entity'\np35561\nssS'entity_type'\np35562\n(dp35563\nS'editable'\np35564\nI00\nsS'value'\np35565\nS'TankPublishedFile'\np35566\nssS'editable'\np35567\n(dp35568\nS'editable'\np35569\nI00\nsS'value'\np35570\nI00\nssS'unique'\np35571\n(dp35572\nS'editable'\np35573\nI00\nsS'value'\np35574\nI00\nssS'properties'\np35575\n(dp35576\nS'default_value'\np35577\n(dp35578\nS'editable'\np35579\nI00\nsS'value'\np35580\nNssS'summary_default'\np35581\n(dp35582\nS'editable'\np35583\nI01\nsS'value'\np35584\nS'none'\np35585\nssS'valid_types'\np35586\n(dp35587\nS'editable'\np35588\nI01\nsS'value'\np35589\n(lp35590\nS'Note'\np35591\nasssS'description'\np35592\n(dp35593\nS'editable'\np35594\nI01\nsS'value'\np35595\ng47\nsssS'upstream_tank_published_files'\np35596\n(dp35597\nS'mandatory'\np35598\n(dp35599\nS'editable'\np35600\nI00\nsS'value'\np35601\nI00\nssS'name'\np35602\n(dp35603\nS'editable'\np35604\nI01\nsS'value'\np35605\nS'Upstream Tank Published Files'\np35606\nssS'data_type'\np35607\n(dp35608\nS'editable'\np35609\nI00\nsS'value'\np35610\nS'multi_entity'\np35611\nssS'entity_type'\np35612\n(dp35613\nS'editable'\np35614\nI00\nsS'value'\np35615\nS'TankPublishedFile'\np35616\nssS'editable'\np35617\n(dp35618\nS'editable'\np35619\nI00\nsS'value'\np35620\nI01\nssS'unique'\np35621\n(dp35622\nS'editable'\np35623\nI00\nsS'value'\np35624\nI00\nssS'properties'\np35625\n(dp35626\nS'default_value'\np35627\n(dp35628\nS'editable'\np35629\nI00\nsS'value'\np35630\nNssS'summary_default'\np35631\n(dp35632\nS'editable'\np35633\nI00\nsS'value'\np35634\nS'none'\np35635\nssS'valid_types'\np35636\n(dp35637\nS'editable'\np35638\nI00\nsS'value'\np35639\n(lp35640\nS'TankPublishedFile'\np35641\nasssS'description'\np35642\n(dp35643\nS'editable'\np35644\nI01\nsS'value'\np35645\ng47\nsssS'created_by'\np35646\n(dp35647\nS'mandatory'\np35648\n(dp35649\nS'editable'\np35650\nI00\nsS'value'\np35651\nI00\nssS'name'\np35652\n(dp35653\nS'editable'\np35654\nI01\nsS'value'\np35655\nS'Created by'\np35656\nssS'data_type'\np35657\n(dp35658\nS'editable'\np35659\nI00\nsS'value'\np35660\nS'entity'\np35661\nssS'entity_type'\np35662\n(dp35663\nS'editable'\np35664\nI00\nsS'value'\np35665\nS'TankPublishedFile'\np35666\nssS'editable'\np35667\n(dp35668\nS'editable'\np35669\nI00\nsS'value'\np35670\nI00\nssS'unique'\np35671\n(dp35672\nS'editable'\np35673\nI00\nsS'value'\np35674\nI00\nssS'properties'\np35675\n(dp35676\nS'default_value'\np35677\n(dp35678\nS'editable'\np35679\nI00\nsS'value'\np35680\nNssS'summary_default'\np35681\n(dp35682\nS'editable'\np35683\nI01\nsS'value'\np35684\nS'none'\np35685\nssS'valid_types'\np35686\n(dp35687\nS'editable'\np35688\nI01\nsS'value'\np35689\n(lp35690\nS'HumanUser'\np35691\naS'ApiUser'\np35692\nasssS'description'\np35693\n(dp35694\nS'editable'\np35695\nI01\nsS'value'\np35696\ng47\nsssS'sg_status_list'\np35697\n(dp35698\nS'mandatory'\np35699\n(dp35700\nS'editable'\np35701\nI00\nsS'value'\np35702\nI00\nssS'name'\np35703\n(dp35704\nS'editable'\np35705\nI01\nsS'value'\np35706\nS'Status'\np35707\nssS'data_type'\np35708\n(dp35709\nS'editable'\np35710\nI00\nsS'value'\np35711\nS'status_list'\np35712\nssS'entity_type'\np35713\n(dp35714\nS'editable'\np35715\nI00\nsS'value'\np35716\nS'TankPublishedFile'\np35717\nssS'editable'\np35718\n(dp35719\nS'editable'\np35720\nI00\nsS'value'\np35721\nI01\nssS'unique'\np35722\n(dp35723\nS'editable'\np35724\nI00\nsS'value'\np35725\nI00\nssS'properties'\np35726\n(dp35727\nS'default_value'\np35728\n(dp35729\nS'editable'\np35730\nI01\nsS'value'\np35731\nS'wtg'\np35732\nssS'valid_values'\np35733\n(dp35734\nS'editable'\np35735\nI01\nsS'value'\np35736\n(lp35737\nS'wtg'\np35738\naS'ip'\np35739\naS'cmpt'\np35740\nassS'summary_default'\np35741\n(dp35742\nS'editable'\np35743\nI01\nsS'value'\np35744\nS'none'\np35745\nsssS'description'\np35746\n(dp35747\nS'editable'\np35748\nI01\nsS'value'\np35749\ng47\nsssS'description'\np35750\n(dp35751\nS'mandatory'\np35752\n(dp35753\nS'editable'\np35754\nI00\nsS'value'\np35755\nI00\nssS'name'\np35756\n(dp35757\nS'editable'\np35758\nI01\nsS'value'\np35759\nS'Description'\np35760\nssS'data_type'\np35761\n(dp35762\nS'editable'\np35763\nI00\nsS'value'\np35764\nS'text'\np35765\nssS'entity_type'\np35766\n(dp35767\nS'editable'\np35768\nI00\nsS'value'\np35769\nS'TankPublishedFile'\np35770\nssS'editable'\np35771\n(dp35772\nS'editable'\np35773\nI00\nsS'value'\np35774\nI01\nssS'unique'\np35775\n(dp35776\nS'editable'\np35777\nI00\nsS'value'\np35778\nI00\nssS'properties'\np35779\n(dp35780\nS'default_value'\np35781\n(dp35782\nS'editable'\np35783\nI00\nsS'value'\np35784\nNssS'summary_default'\np35785\n(dp35786\nS'editable'\np35787\nI01\nsS'value'\np35788\nS'none'\np35789\nsssS'description'\np35790\n(dp35791\nS'editable'\np35792\nI01\nsS'value'\np35793\ng47\nsssS'path_cache_storage'\np35794\n(dp35795\nS'mandatory'\np35796\n(dp35797\nS'editable'\np35798\nI00\nsS'value'\np35799\nI00\nssS'name'\np35800\n(dp35801\nS'editable'\np35802\nI01\nsS'value'\np35803\nS'Path Cache Storage'\np35804\nssS'data_type'\np35805\n(dp35806\nS'editable'\np35807\nI00\nsS'value'\np35808\nS'entity'\np35809\nssS'entity_type'\np35810\n(dp35811\nS'editable'\np35812\nI00\nsS'value'\np35813\nS'TankPublishedFile'\np35814\nssS'editable'\np35815\n(dp35816\nS'editable'\np35817\nI00\nsS'value'\np35818\nI00\nssS'unique'\np35819\n(dp35820\nS'editable'\np35821\nI00\nsS'value'\np35822\nI00\nssS'properties'\np35823\n(dp35824\nS'default_value'\np35825\n(dp35826\nS'editable'\np35827\nI00\nsS'value'\np35828\nNssS'summary_default'\np35829\n(dp35830\nS'editable'\np35831\nI01\nsS'value'\np35832\nS'none'\np35833\nssS'valid_types'\np35834\n(dp35835\nS'editable'\np35836\nI01\nsS'value'\np35837\n(lp35838\nS'LocalStorage'\np35839\nasssS'description'\np35840\n(dp35841\nS'editable'\np35842\nI01\nsS'value'\np35843\ng47\nsssS'path'\np35844\n(dp35845\nS'mandatory'\np35846\n(dp35847\nS'editable'\np35848\nI00\nsS'value'\np35849\nI00\nssS'name'\np35850\n(dp35851\nS'editable'\np35852\nI01\nsS'value'\np35853\nS'Path'\np35854\nssS'data_type'\np35855\n(dp35856\nS'editable'\np35857\nI00\nsS'value'\np35858\nS'url'\np35859\nssS'entity_type'\np35860\n(dp35861\nS'editable'\np35862\nI00\nsS'value'\np35863\nS'TankPublishedFile'\np35864\nssS'editable'\np35865\n(dp35866\nS'editable'\np35867\nI00\nsS'value'\np35868\nI00\nssS'unique'\np35869\n(dp35870\nS'editable'\np35871\nI00\nsS'value'\np35872\nI00\nssS'properties'\np35873\n(dp35874\nS'default_value'\np35875\n(dp35876\nS'editable'\np35877\nI00\nsS'value'\np35878\nNssS'open_in_new_window'\np35879\n(dp35880\nS'editable'\np35881\nI01\nsS'value'\np35882\nI01\nssS'summary_default'\np35883\n(dp35884\nS'editable'\np35885\nI01\nsS'value'\np35886\nS'none'\np35887\nsssS'description'\np35888\n(dp35889\nS'editable'\np35890\nI01\nsS'value'\np35891\ng47\nsssS'version_number'\np35892\n(dp35893\nS'mandatory'\np35894\n(dp35895\nS'editable'\np35896\nI00\nsS'value'\np35897\nI00\nssS'name'\np35898\n(dp35899\nS'editable'\np35900\nI01\nsS'value'\np35901\nS'Version Number'\np35902\nssS'data_type'\np35903\n(dp35904\nS'editable'\np35905\nI00\nsS'value'\np35906\nS'number'\np35907\nssS'entity_type'\np35908\n(dp35909\nS'editable'\np35910\nI00\nsS'value'\np35911\nS'TankPublishedFile'\np35912\nssS'editable'\np35913\n(dp35914\nS'editable'\np35915\nI00\nsS'value'\np35916\nI00\nssS'unique'\np35917\n(dp35918\nS'editable'\np35919\nI00\nsS'value'\np35920\nI00\nssS'properties'\np35921\n(dp35922\nS'default_value'\np35923\n(dp35924\nS'editable'\np35925\nI00\nsS'value'\np35926\nNssS'summary_default'\np35927\n(dp35928\nS'editable'\np35929\nI01\nsS'value'\np35930\nS'none'\np35931\nsssS'description'\np35932\n(dp35933\nS'editable'\np35934\nI01\nsS'value'\np35935\ng47\nsssS'task'\np35936\n(dp35937\nS'mandatory'\np35938\n(dp35939\nS'editable'\np35940\nI00\nsS'value'\np35941\nI00\nssS'name'\np35942\n(dp35943\nS'editable'\np35944\nI01\nsS'value'\np35945\nS'Task'\np35946\nssS'data_type'\np35947\n(dp35948\nS'editable'\np35949\nI00\nsS'value'\np35950\nS'entity'\np35951\nssS'entity_type'\np35952\n(dp35953\nS'editable'\np35954\nI00\nsS'value'\np35955\nS'TankPublishedFile'\np35956\nssS'editable'\np35957\n(dp35958\nS'editable'\np35959\nI00\nsS'value'\np35960\nI00\nssS'unique'\np35961\n(dp35962\nS'editable'\np35963\nI00\nsS'value'\np35964\nI00\nssS'properties'\np35965\n(dp35966\nS'default_value'\np35967\n(dp35968\nS'editable'\np35969\nI00\nsS'value'\np35970\nNssS'summary_default'\np35971\n(dp35972\nS'editable'\np35973\nI01\nsS'value'\np35974\nS'none'\np35975\nssS'valid_types'\np35976\n(dp35977\nS'editable'\np35978\nI01\nsS'value'\np35979\n(lp35980\nS'Task'\np35981\nasssS'description'\np35982\n(dp35983\nS'editable'\np35984\nI01\nsS'value'\np35985\ng47\nsssS'name'\np35986\n(dp35987\nS'mandatory'\np35988\n(dp35989\nS'editable'\np35990\nI00\nsS'value'\np35991\nI00\nssS'name'\np35992\n(dp35993\nS'editable'\np35994\nI01\nsS'value'\np35995\nS'Name'\np35996\nssS'data_type'\np35997\n(dp35998\nS'editable'\np35999\nI00\nsS'value'\np36000\nS'text'\np36001\nssS'entity_type'\np36002\n(dp36003\nS'editable'\np36004\nI00\nsS'value'\np36005\nS'TankPublishedFile'\np36006\nssS'editable'\np36007\n(dp36008\nS'editable'\np36009\nI00\nsS'value'\np36010\nI00\nssS'unique'\np36011\n(dp36012\nS'editable'\np36013\nI00\nsS'value'\np36014\nI00\nssS'properties'\np36015\n(dp36016\nS'default_value'\np36017\n(dp36018\nS'editable'\np36019\nI00\nsS'value'\np36020\nNssS'summary_default'\np36021\n(dp36022\nS'editable'\np36023\nI01\nsS'value'\np36024\nS'none'\np36025\nsssS'description'\np36026\n(dp36027\nS'editable'\np36028\nI01\nsS'value'\np36029\ng47\nsssS'created_at'\np36030\n(dp36031\nS'mandatory'\np36032\n(dp36033\nS'editable'\np36034\nI00\nsS'value'\np36035\nI00\nssS'name'\np36036\n(dp36037\nS'editable'\np36038\nI01\nsS'value'\np36039\nS'Date Created'\np36040\nssS'data_type'\np36041\n(dp36042\nS'editable'\np36043\nI00\nsS'value'\np36044\nS'date_time'\np36045\nssS'entity_type'\np36046\n(dp36047\nS'editable'\np36048\nI00\nsS'value'\np36049\nS'TankPublishedFile'\np36050\nssS'editable'\np36051\n(dp36052\nS'editable'\np36053\nI00\nsS'value'\np36054\nI00\nssS'unique'\np36055\n(dp36056\nS'editable'\np36057\nI00\nsS'value'\np36058\nI00\nssS'properties'\np36059\n(dp36060\nS'default_value'\np36061\n(dp36062\nS'editable'\np36063\nI00\nsS'value'\np36064\nNssS'summary_default'\np36065\n(dp36066\nS'editable'\np36067\nI01\nsS'value'\np36068\nS'none'\np36069\nsssS'description'\np36070\n(dp36071\nS'editable'\np36072\nI01\nsS'value'\np36073\ng47\nsssS'tank_type'\np36074\n(dp36075\nS'mandatory'\np36076\n(dp36077\nS'editable'\np36078\nI00\nsS'value'\np36079\nI00\nssS'name'\np36080\n(dp36081\nS'editable'\np36082\nI01\nsS'value'\np36083\nS'Tank Type'\np36084\nssS'data_type'\np36085\n(dp36086\nS'editable'\np36087\nI00\nsS'value'\np36088\nS'entity'\np36089\nssS'entity_type'\np36090\n(dp36091\nS'editable'\np36092\nI00\nsS'value'\np36093\nS'TankPublishedFile'\np36094\nssS'editable'\np36095\n(dp36096\nS'editable'\np36097\nI00\nsS'value'\np36098\nI00\nssS'unique'\np36099\n(dp36100\nS'editable'\np36101\nI00\nsS'value'\np36102\nI00\nssS'properties'\np36103\n(dp36104\nS'default_value'\np36105\n(dp36106\nS'editable'\np36107\nI00\nsS'value'\np36108\nNssS'summary_default'\np36109\n(dp36110\nS'editable'\np36111\nI01\nsS'value'\np36112\nS'none'\np36113\nssS'valid_types'\np36114\n(dp36115\nS'editable'\np36116\nI01\nsS'value'\np36117\n(lp36118\nS'TankType'\np36119\nasssS'description'\np36120\n(dp36121\nS'editable'\np36122\nI01\nsS'value'\np36123\ng47\nsssS'project'\np36124\n(dp36125\nS'mandatory'\np36126\n(dp36127\nS'editable'\np36128\nI00\nsS'value'\np36129\nI00\nssS'name'\np36130\n(dp36131\nS'editable'\np36132\nI01\nsS'value'\np36133\nS'Project'\np36134\nssS'data_type'\np36135\n(dp36136\nS'editable'\np36137\nI00\nsS'value'\np36138\nS'entity'\np36139\nssS'entity_type'\np36140\n(dp36141\nS'editable'\np36142\nI00\nsS'value'\np36143\nS'TankPublishedFile'\np36144\nssS'editable'\np36145\n(dp36146\nS'editable'\np36147\nI00\nsS'value'\np36148\nI01\nssS'unique'\np36149\n(dp36150\nS'editable'\np36151\nI00\nsS'value'\np36152\nI00\nssS'properties'\np36153\n(dp36154\nS'default_value'\np36155\n(dp36156\nS'editable'\np36157\nI00\nsS'value'\np36158\nNssS'summary_default'\np36159\n(dp36160\nS'editable'\np36161\nI01\nsS'value'\np36162\nS'none'\np36163\nssS'valid_types'\np36164\n(dp36165\nS'editable'\np36166\nI01\nsS'value'\np36167\n(lp36168\nS'Project'\np36169\nasssS'description'\np36170\n(dp36171\nS'editable'\np36172\nI01\nsS'value'\np36173\ng47\nsssS'tag_list'\np36174\n(dp36175\nS'mandatory'\np36176\n(dp36177\nS'editable'\np36178\nI00\nsS'value'\np36179\nI00\nssS'name'\np36180\n(dp36181\nS'editable'\np36182\nI01\nsS'value'\np36183\nS'Tags'\np36184\nssS'data_type'\np36185\n(dp36186\nS'editable'\np36187\nI00\nsS'value'\np36188\nS'tag_list'\np36189\nssS'entity_type'\np36190\n(dp36191\nS'editable'\np36192\nI00\nsS'value'\np36193\nS'TankPublishedFile'\np36194\nssS'editable'\np36195\n(dp36196\nS'editable'\np36197\nI00\nsS'value'\np36198\nI01\nssS'unique'\np36199\n(dp36200\nS'editable'\np36201\nI00\nsS'value'\np36202\nI00\nssS'properties'\np36203\n(dp36204\nS'default_value'\np36205\n(dp36206\nS'editable'\np36207\nI00\nsS'value'\np36208\nNssS'summary_default'\np36209\n(dp36210\nS'editable'\np36211\nI01\nsS'value'\np36212\nS'none'\np36213\nssS'valid_types'\np36214\n(dp36215\nS'editable'\np36216\nI01\nsS'value'\np36217\n(lp36218\nS'Tag'\np36219\nasssS'description'\np36220\n(dp36221\nS'editable'\np36222\nI01\nsS'value'\np36223\ng47\nsssS'notes'\np36224\n(dp36225\nS'mandatory'\np36226\n(dp36227\nS'editable'\np36228\nI00\nsS'value'\np36229\nI00\nssS'name'\np36230\n(dp36231\nS'editable'\np36232\nI01\nsS'value'\np36233\nS'Notes'\np36234\nssS'data_type'\np36235\n(dp36236\nS'editable'\np36237\nI00\nsS'value'\np36238\nS'multi_entity'\np36239\nssS'entity_type'\np36240\n(dp36241\nS'editable'\np36242\nI00\nsS'value'\np36243\nS'TankPublishedFile'\np36244\nssS'editable'\np36245\n(dp36246\nS'editable'\np36247\nI00\nsS'value'\np36248\nI01\nssS'unique'\np36249\n(dp36250\nS'editable'\np36251\nI00\nsS'value'\np36252\nI00\nssS'properties'\np36253\n(dp36254\nS'default_value'\np36255\n(dp36256\nS'editable'\np36257\nI00\nsS'value'\np36258\nNssS'summary_default'\np36259\n(dp36260\nS'editable'\np36261\nI01\nsS'value'\np36262\nS'none'\np36263\nssS'valid_types'\np36264\n(dp36265\nS'editable'\np36266\nI01\nsS'value'\np36267\n(lp36268\nS'Note'\np36269\nasssS'description'\np36270\n(dp36271\nS'editable'\np36272\nI01\nsS'value'\np36273\ng47\nssssS'CustomEntity04'\np36274\n(dp36275\nS'open_notes_count'\np36276\n(dp36277\nS'mandatory'\np36278\n(dp36279\nS'editable'\np36280\nI00\nsS'value'\np36281\nI00\nssS'name'\np36282\n(dp36283\nS'editable'\np36284\nI01\nsS'value'\np36285\nS'Open Notes Count'\np36286\nssS'data_type'\np36287\n(dp36288\nS'editable'\np36289\nI00\nsS'value'\np36290\nS'text'\np36291\nssS'entity_type'\np36292\n(dp36293\nS'editable'\np36294\nI00\nsS'value'\np36295\nS'CustomEntity04'\np36296\nssS'editable'\np36297\n(dp36298\nS'editable'\np36299\nI00\nsS'value'\np36300\nI00\nssS'unique'\np36301\n(dp36302\nS'editable'\np36303\nI00\nsS'value'\np36304\nI00\nssS'properties'\np36305\n(dp36306\nS'default_value'\np36307\n(dp36308\nS'editable'\np36309\nI00\nsS'value'\np36310\nNssS'summary_default'\np36311\n(dp36312\nS'editable'\np36313\nI01\nsS'value'\np36314\nS'none'\np36315\nsssS'description'\np36316\n(dp36317\nS'editable'\np36318\nI01\nsS'value'\np36319\ng47\nsssS'code'\np36320\n(dp36321\nS'mandatory'\np36322\n(dp36323\nS'editable'\np36324\nI00\nsS'value'\np36325\nI01\nssS'name'\np36326\n(dp36327\nS'editable'\np36328\nI01\nsS'value'\np36329\nS'Custom Entity04 Name'\np36330\nssS'data_type'\np36331\n(dp36332\nS'editable'\np36333\nI00\nsS'value'\np36334\nS'text'\np36335\nssS'entity_type'\np36336\n(dp36337\nS'editable'\np36338\nI00\nsS'value'\np36339\nS'CustomEntity04'\np36340\nssS'editable'\np36341\n(dp36342\nS'editable'\np36343\nI00\nsS'value'\np36344\nI01\nssS'unique'\np36345\n(dp36346\nS'editable'\np36347\nI00\nsS'value'\np36348\nI00\nssS'properties'\np36349\n(dp36350\nS'default_value'\np36351\n(dp36352\nS'editable'\np36353\nI00\nsS'value'\np36354\nNssS'summary_default'\np36355\n(dp36356\nS'editable'\np36357\nI01\nsS'value'\np36358\nS'none'\np36359\nsssS'description'\np36360\n(dp36361\nS'editable'\np36362\nI01\nsS'value'\np36363\ng47\nsssS'open_notes'\np36364\n(dp36365\nS'mandatory'\np36366\n(dp36367\nS'editable'\np36368\nI00\nsS'value'\np36369\nI00\nssS'name'\np36370\n(dp36371\nS'editable'\np36372\nI01\nsS'value'\np36373\nS'Open Notes'\np36374\nssS'data_type'\np36375\n(dp36376\nS'editable'\np36377\nI00\nsS'value'\np36378\nS'multi_entity'\np36379\nssS'entity_type'\np36380\n(dp36381\nS'editable'\np36382\nI00\nsS'value'\np36383\nS'CustomEntity04'\np36384\nssS'editable'\np36385\n(dp36386\nS'editable'\np36387\nI00\nsS'value'\np36388\nI00\nssS'unique'\np36389\n(dp36390\nS'editable'\np36391\nI00\nsS'value'\np36392\nI00\nssS'properties'\np36393\n(dp36394\nS'default_value'\np36395\n(dp36396\nS'editable'\np36397\nI00\nsS'value'\np36398\nNssS'summary_default'\np36399\n(dp36400\nS'editable'\np36401\nI01\nsS'value'\np36402\nS'none'\np36403\nssS'valid_types'\np36404\n(dp36405\nS'editable'\np36406\nI01\nsS'value'\np36407\n(lp36408\nS'Note'\np36409\nasssS'description'\np36410\n(dp36411\nS'editable'\np36412\nI01\nsS'value'\np36413\ng47\nsssS'description'\np36414\n(dp36415\nS'mandatory'\np36416\n(dp36417\nS'editable'\np36418\nI00\nsS'value'\np36419\nI00\nssS'name'\np36420\n(dp36421\nS'editable'\np36422\nI01\nsS'value'\np36423\nS'Description'\np36424\nssS'data_type'\np36425\n(dp36426\nS'editable'\np36427\nI00\nsS'value'\np36428\nS'text'\np36429\nssS'entity_type'\np36430\n(dp36431\nS'editable'\np36432\nI00\nsS'value'\np36433\nS'CustomEntity04'\np36434\nssS'editable'\np36435\n(dp36436\nS'editable'\np36437\nI00\nsS'value'\np36438\nI01\nssS'unique'\np36439\n(dp36440\nS'editable'\np36441\nI00\nsS'value'\np36442\nI00\nssS'properties'\np36443\n(dp36444\nS'default_value'\np36445\n(dp36446\nS'editable'\np36447\nI00\nsS'value'\np36448\nNssS'summary_default'\np36449\n(dp36450\nS'editable'\np36451\nI01\nsS'value'\np36452\nS'none'\np36453\nsssS'description'\np36454\n(dp36455\nS'editable'\np36456\nI01\nsS'value'\np36457\ng47\nsssS'created_at'\np36458\n(dp36459\nS'mandatory'\np36460\n(dp36461\nS'editable'\np36462\nI00\nsS'value'\np36463\nI00\nssS'name'\np36464\n(dp36465\nS'editable'\np36466\nI01\nsS'value'\np36467\nS'Date Created'\np36468\nssS'data_type'\np36469\n(dp36470\nS'editable'\np36471\nI00\nsS'value'\np36472\nS'date_time'\np36473\nssS'entity_type'\np36474\n(dp36475\nS'editable'\np36476\nI00\nsS'value'\np36477\nS'CustomEntity04'\np36478\nssS'editable'\np36479\n(dp36480\nS'editable'\np36481\nI00\nsS'value'\np36482\nI00\nssS'unique'\np36483\n(dp36484\nS'editable'\np36485\nI00\nsS'value'\np36486\nI00\nssS'properties'\np36487\n(dp36488\nS'default_value'\np36489\n(dp36490\nS'editable'\np36491\nI00\nsS'value'\np36492\nNssS'summary_default'\np36493\n(dp36494\nS'editable'\np36495\nI01\nsS'value'\np36496\nS'none'\np36497\nsssS'description'\np36498\n(dp36499\nS'editable'\np36500\nI01\nsS'value'\np36501\ng47\nsssS'updated_at'\np36502\n(dp36503\nS'mandatory'\np36504\n(dp36505\nS'editable'\np36506\nI00\nsS'value'\np36507\nI00\nssS'name'\np36508\n(dp36509\nS'editable'\np36510\nI01\nsS'value'\np36511\nS'Date Updated'\np36512\nssS'data_type'\np36513\n(dp36514\nS'editable'\np36515\nI00\nsS'value'\np36516\nS'date_time'\np36517\nssS'entity_type'\np36518\n(dp36519\nS'editable'\np36520\nI00\nsS'value'\np36521\nS'CustomEntity04'\np36522\nssS'editable'\np36523\n(dp36524\nS'editable'\np36525\nI00\nsS'value'\np36526\nI00\nssS'unique'\np36527\n(dp36528\nS'editable'\np36529\nI00\nsS'value'\np36530\nI00\nssS'properties'\np36531\n(dp36532\nS'default_value'\np36533\n(dp36534\nS'editable'\np36535\nI00\nsS'value'\np36536\nNssS'summary_default'\np36537\n(dp36538\nS'editable'\np36539\nI01\nsS'value'\np36540\nS'none'\np36541\nsssS'description'\np36542\n(dp36543\nS'editable'\np36544\nI01\nsS'value'\np36545\ng47\nsssS'created_by'\np36546\n(dp36547\nS'mandatory'\np36548\n(dp36549\nS'editable'\np36550\nI00\nsS'value'\np36551\nI00\nssS'name'\np36552\n(dp36553\nS'editable'\np36554\nI01\nsS'value'\np36555\nS'Created by'\np36556\nssS'data_type'\np36557\n(dp36558\nS'editable'\np36559\nI00\nsS'value'\np36560\nS'entity'\np36561\nssS'entity_type'\np36562\n(dp36563\nS'editable'\np36564\nI00\nsS'value'\np36565\nS'CustomEntity04'\np36566\nssS'editable'\np36567\n(dp36568\nS'editable'\np36569\nI00\nsS'value'\np36570\nI00\nssS'unique'\np36571\n(dp36572\nS'editable'\np36573\nI00\nsS'value'\np36574\nI00\nssS'properties'\np36575\n(dp36576\nS'default_value'\np36577\n(dp36578\nS'editable'\np36579\nI00\nsS'value'\np36580\nNssS'summary_default'\np36581\n(dp36582\nS'editable'\np36583\nI01\nsS'value'\np36584\nS'none'\np36585\nssS'valid_types'\np36586\n(dp36587\nS'editable'\np36588\nI01\nsS'value'\np36589\n(lp36590\nS'HumanUser'\np36591\naS'ApiUser'\np36592\nasssS'description'\np36593\n(dp36594\nS'editable'\np36595\nI01\nsS'value'\np36596\ng47\nsssS'id'\np36597\n(dp36598\nS'mandatory'\np36599\n(dp36600\nS'editable'\np36601\nI00\nsS'value'\np36602\nI00\nssS'name'\np36603\n(dp36604\nS'editable'\np36605\nI01\nsS'value'\np36606\nS'Id'\np36607\nssS'data_type'\np36608\n(dp36609\nS'editable'\np36610\nI00\nsS'value'\np36611\nS'number'\np36612\nssS'entity_type'\np36613\n(dp36614\nS'editable'\np36615\nI00\nsS'value'\np36616\nS'CustomEntity04'\np36617\nssS'editable'\np36618\n(dp36619\nS'editable'\np36620\nI00\nsS'value'\np36621\nI00\nssS'unique'\np36622\n(dp36623\nS'editable'\np36624\nI00\nsS'value'\np36625\nI00\nssS'properties'\np36626\n(dp36627\nS'default_value'\np36628\n(dp36629\nS'editable'\np36630\nI00\nsS'value'\np36631\nNssS'summary_default'\np36632\n(dp36633\nS'editable'\np36634\nI01\nsS'value'\np36635\nS'none'\np36636\nsssS'description'\np36637\n(dp36638\nS'editable'\np36639\nI01\nsS'value'\np36640\ng47\nsssS'project'\np36641\n(dp36642\nS'mandatory'\np36643\n(dp36644\nS'editable'\np36645\nI00\nsS'value'\np36646\nI00\nssS'name'\np36647\n(dp36648\nS'editable'\np36649\nI01\nsS'value'\np36650\nS'Project'\np36651\nssS'data_type'\np36652\n(dp36653\nS'editable'\np36654\nI00\nsS'value'\np36655\nS'entity'\np36656\nssS'entity_type'\np36657\n(dp36658\nS'editable'\np36659\nI00\nsS'value'\np36660\nS'CustomEntity04'\np36661\nssS'editable'\np36662\n(dp36663\nS'editable'\np36664\nI00\nsS'value'\np36665\nI01\nssS'unique'\np36666\n(dp36667\nS'editable'\np36668\nI00\nsS'value'\np36669\nI00\nssS'properties'\np36670\n(dp36671\nS'default_value'\np36672\n(dp36673\nS'editable'\np36674\nI00\nsS'value'\np36675\nNssS'summary_default'\np36676\n(dp36677\nS'editable'\np36678\nI01\nsS'value'\np36679\nS'none'\np36680\nssS'valid_types'\np36681\n(dp36682\nS'editable'\np36683\nI01\nsS'value'\np36684\n(lp36685\nS'Project'\np36686\nasssS'description'\np36687\n(dp36688\nS'editable'\np36689\nI01\nsS'value'\np36690\ng47\nsssS'filmstrip_image'\np36691\n(dp36692\nS'mandatory'\np36693\n(dp36694\nS'editable'\np36695\nI00\nsS'value'\np36696\nI00\nssS'name'\np36697\n(dp36698\nS'editable'\np36699\nI01\nsS'value'\np36700\nS'Filmstrip Thumbnail'\np36701\nssS'data_type'\np36702\n(dp36703\nS'editable'\np36704\nI00\nsS'value'\np36705\nS'image'\np36706\nssS'entity_type'\np36707\n(dp36708\nS'editable'\np36709\nI00\nsS'value'\np36710\nS'CustomEntity04'\np36711\nssS'editable'\np36712\n(dp36713\nS'editable'\np36714\nI00\nsS'value'\np36715\nI01\nssS'unique'\np36716\n(dp36717\nS'editable'\np36718\nI00\nsS'value'\np36719\nI00\nssS'properties'\np36720\n(dp36721\nS'default_value'\np36722\n(dp36723\nS'editable'\np36724\nI00\nsS'value'\np36725\nNssS'summary_default'\np36726\n(dp36727\nS'editable'\np36728\nI01\nsS'value'\np36729\nS'none'\np36730\nsssS'description'\np36731\n(dp36732\nS'editable'\np36733\nI01\nsS'value'\np36734\ng47\nsssS'sg_status_list'\np36735\n(dp36736\nS'mandatory'\np36737\n(dp36738\nS'editable'\np36739\nI00\nsS'value'\np36740\nI00\nssS'name'\np36741\n(dp36742\nS'editable'\np36743\nI01\nsS'value'\np36744\nS'Status'\np36745\nssS'data_type'\np36746\n(dp36747\nS'editable'\np36748\nI00\nsS'value'\np36749\nS'status_list'\np36750\nssS'entity_type'\np36751\n(dp36752\nS'editable'\np36753\nI00\nsS'value'\np36754\nS'CustomEntity04'\np36755\nssS'editable'\np36756\n(dp36757\nS'editable'\np36758\nI00\nsS'value'\np36759\nI01\nssS'unique'\np36760\n(dp36761\nS'editable'\np36762\nI00\nsS'value'\np36763\nI00\nssS'properties'\np36764\n(dp36765\nS'default_value'\np36766\n(dp36767\nS'editable'\np36768\nI01\nsS'value'\np36769\nS'wtg'\np36770\nssS'valid_values'\np36771\n(dp36772\nS'editable'\np36773\nI01\nsS'value'\np36774\n(lp36775\nS'cmpt'\np36776\naS'ip'\np36777\naS'wtg'\np36778\nassS'summary_default'\np36779\n(dp36780\nS'editable'\np36781\nI01\nsS'value'\np36782\nS'none'\np36783\nsssS'description'\np36784\n(dp36785\nS'editable'\np36786\nI01\nsS'value'\np36787\ng47\nsssS'image'\np36788\n(dp36789\nS'mandatory'\np36790\n(dp36791\nS'editable'\np36792\nI00\nsS'value'\np36793\nI00\nssS'name'\np36794\n(dp36795\nS'editable'\np36796\nI01\nsS'value'\np36797\nS'Thumbnail'\np36798\nssS'data_type'\np36799\n(dp36800\nS'editable'\np36801\nI00\nsS'value'\np36802\nS'image'\np36803\nssS'entity_type'\np36804\n(dp36805\nS'editable'\np36806\nI00\nsS'value'\np36807\nS'CustomEntity04'\np36808\nssS'editable'\np36809\n(dp36810\nS'editable'\np36811\nI00\nsS'value'\np36812\nI01\nssS'unique'\np36813\n(dp36814\nS'editable'\np36815\nI00\nsS'value'\np36816\nI00\nssS'properties'\np36817\n(dp36818\nS'default_value'\np36819\n(dp36820\nS'editable'\np36821\nI00\nsS'value'\np36822\nNssS'summary_default'\np36823\n(dp36824\nS'editable'\np36825\nI01\nsS'value'\np36826\nS'none'\np36827\nsssS'description'\np36828\n(dp36829\nS'editable'\np36830\nI01\nsS'value'\np36831\ng47\nsssS'cached_display_name'\np36832\n(dp36833\nS'mandatory'\np36834\n(dp36835\nS'editable'\np36836\nI00\nsS'value'\np36837\nI00\nssS'name'\np36838\n(dp36839\nS'editable'\np36840\nI01\nsS'value'\np36841\nS'Cached Display Name'\np36842\nssS'data_type'\np36843\n(dp36844\nS'editable'\np36845\nI00\nsS'value'\np36846\nS'text'\np36847\nssS'entity_type'\np36848\n(dp36849\nS'editable'\np36850\nI00\nsS'value'\np36851\nS'CustomEntity04'\np36852\nssS'editable'\np36853\n(dp36854\nS'editable'\np36855\nI00\nsS'value'\np36856\nI01\nssS'unique'\np36857\n(dp36858\nS'editable'\np36859\nI00\nsS'value'\np36860\nI00\nssS'properties'\np36861\n(dp36862\nS'default_value'\np36863\n(dp36864\nS'editable'\np36865\nI00\nsS'value'\np36866\nNssS'summary_default'\np36867\n(dp36868\nS'editable'\np36869\nI00\nsS'value'\np36870\nS'none'\np36871\nsssS'description'\np36872\n(dp36873\nS'editable'\np36874\nI01\nsS'value'\np36875\ng47\nsssS'tag_list'\np36876\n(dp36877\nS'mandatory'\np36878\n(dp36879\nS'editable'\np36880\nI00\nsS'value'\np36881\nI00\nssS'name'\np36882\n(dp36883\nS'editable'\np36884\nI01\nsS'value'\np36885\nS'Tags'\np36886\nssS'data_type'\np36887\n(dp36888\nS'editable'\np36889\nI00\nsS'value'\np36890\nS'tag_list'\np36891\nssS'entity_type'\np36892\n(dp36893\nS'editable'\np36894\nI00\nsS'value'\np36895\nS'CustomEntity04'\np36896\nssS'editable'\np36897\n(dp36898\nS'editable'\np36899\nI00\nsS'value'\np36900\nI01\nssS'unique'\np36901\n(dp36902\nS'editable'\np36903\nI00\nsS'value'\np36904\nI00\nssS'properties'\np36905\n(dp36906\nS'default_value'\np36907\n(dp36908\nS'editable'\np36909\nI00\nsS'value'\np36910\nNssS'summary_default'\np36911\n(dp36912\nS'editable'\np36913\nI01\nsS'value'\np36914\nS'none'\np36915\nssS'valid_types'\np36916\n(dp36917\nS'editable'\np36918\nI01\nsS'value'\np36919\n(lp36920\nS'Tag'\np36921\nasssS'description'\np36922\n(dp36923\nS'editable'\np36924\nI01\nsS'value'\np36925\ng47\nsssS'notes'\np36926\n(dp36927\nS'mandatory'\np36928\n(dp36929\nS'editable'\np36930\nI00\nsS'value'\np36931\nI00\nssS'name'\np36932\n(dp36933\nS'editable'\np36934\nI01\nsS'value'\np36935\nS'Notes'\np36936\nssS'data_type'\np36937\n(dp36938\nS'editable'\np36939\nI00\nsS'value'\np36940\nS'multi_entity'\np36941\nssS'entity_type'\np36942\n(dp36943\nS'editable'\np36944\nI00\nsS'value'\np36945\nS'CustomEntity04'\np36946\nssS'editable'\np36947\n(dp36948\nS'editable'\np36949\nI00\nsS'value'\np36950\nI01\nssS'unique'\np36951\n(dp36952\nS'editable'\np36953\nI00\nsS'value'\np36954\nI00\nssS'properties'\np36955\n(dp36956\nS'default_value'\np36957\n(dp36958\nS'editable'\np36959\nI00\nsS'value'\np36960\nNssS'summary_default'\np36961\n(dp36962\nS'editable'\np36963\nI01\nsS'value'\np36964\nS'none'\np36965\nssS'valid_types'\np36966\n(dp36967\nS'editable'\np36968\nI01\nsS'value'\np36969\n(lp36970\nS'Note'\np36971\nasssS'description'\np36972\n(dp36973\nS'editable'\np36974\nI01\nsS'value'\np36975\ng47\nsssS'updated_by'\np36976\n(dp36977\nS'mandatory'\np36978\n(dp36979\nS'editable'\np36980\nI00\nsS'value'\np36981\nI00\nssS'name'\np36982\n(dp36983\nS'editable'\np36984\nI01\nsS'value'\np36985\nS'Updated by'\np36986\nssS'data_type'\np36987\n(dp36988\nS'editable'\np36989\nI00\nsS'value'\np36990\nS'entity'\np36991\nssS'entity_type'\np36992\n(dp36993\nS'editable'\np36994\nI00\nsS'value'\np36995\nS'CustomEntity04'\np36996\nssS'editable'\np36997\n(dp36998\nS'editable'\np36999\nI00\nsS'value'\np37000\nI00\nssS'unique'\np37001\n(dp37002\nS'editable'\np37003\nI00\nsS'value'\np37004\nI00\nssS'properties'\np37005\n(dp37006\nS'default_value'\np37007\n(dp37008\nS'editable'\np37009\nI00\nsS'value'\np37010\nNssS'summary_default'\np37011\n(dp37012\nS'editable'\np37013\nI01\nsS'value'\np37014\nS'none'\np37015\nssS'valid_types'\np37016\n(dp37017\nS'editable'\np37018\nI01\nsS'value'\np37019\n(lp37020\nS'HumanUser'\np37021\naS'ApiUser'\np37022\nasssS'description'\np37023\n(dp37024\nS'editable'\np37025\nI01\nsS'value'\np37026\ng47\nssssS'Sequence'\np37027\n(dp37028\nS'sg_sequence_type'\np37029\n(dp37030\nS'mandatory'\np37031\n(dp37032\nS'editable'\np37033\nI00\nsS'value'\np37034\nI00\nssS'name'\np37035\n(dp37036\nS'editable'\np37037\nI01\nsS'value'\np37038\nS'Type'\np37039\nssS'data_type'\np37040\n(dp37041\nS'editable'\np37042\nI00\nsS'value'\np37043\nS'list'\np37044\nssS'entity_type'\np37045\n(dp37046\nS'editable'\np37047\nI00\nsS'value'\np37048\nS'Sequence'\np37049\nssS'editable'\np37050\n(dp37051\nS'editable'\np37052\nI00\nsS'value'\np37053\nI01\nssS'unique'\np37054\n(dp37055\nS'editable'\np37056\nI00\nsS'value'\np37057\nI00\nssS'properties'\np37058\n(dp37059\nS'default_value'\np37060\n(dp37061\nS'editable'\np37062\nI00\nsS'value'\np37063\nNssS'valid_values'\np37064\n(dp37065\nS'editable'\np37066\nI01\nsS'value'\np37067\n(lp37068\nssS'summary_default'\np37069\n(dp37070\nS'editable'\np37071\nI01\nsS'value'\np37072\nS'none'\np37073\nsssS'description'\np37074\n(dp37075\nS'editable'\np37076\nI01\nsS'value'\np37077\ng47\nsssS'open_notes_count'\np37078\n(dp37079\nS'mandatory'\np37080\n(dp37081\nS'editable'\np37082\nI00\nsS'value'\np37083\nI00\nssS'name'\np37084\n(dp37085\nS'editable'\np37086\nI01\nsS'value'\np37087\nS'Open Notes Count'\np37088\nssS'data_type'\np37089\n(dp37090\nS'editable'\np37091\nI00\nsS'value'\np37092\nS'text'\np37093\nssS'entity_type'\np37094\n(dp37095\nS'editable'\np37096\nI00\nsS'value'\np37097\nS'Sequence'\np37098\nssS'editable'\np37099\n(dp37100\nS'editable'\np37101\nI00\nsS'value'\np37102\nI00\nssS'unique'\np37103\n(dp37104\nS'editable'\np37105\nI00\nsS'value'\np37106\nI00\nssS'properties'\np37107\n(dp37108\nS'default_value'\np37109\n(dp37110\nS'editable'\np37111\nI00\nsS'value'\np37112\nNssS'summary_default'\np37113\n(dp37114\nS'editable'\np37115\nI01\nsS'value'\np37116\nS'none'\np37117\nsssS'description'\np37118\n(dp37119\nS'editable'\np37120\nI01\nsS'value'\np37121\ng47\nsssS'code'\np37122\n(dp37123\nS'mandatory'\np37124\n(dp37125\nS'editable'\np37126\nI00\nsS'value'\np37127\nI01\nssS'name'\np37128\n(dp37129\nS'editable'\np37130\nI01\nsS'value'\np37131\nS'Sequence Name'\np37132\nssS'data_type'\np37133\n(dp37134\nS'editable'\np37135\nI00\nsS'value'\np37136\nS'text'\np37137\nssS'entity_type'\np37138\n(dp37139\nS'editable'\np37140\nI00\nsS'value'\np37141\nS'Sequence'\np37142\nssS'editable'\np37143\n(dp37144\nS'editable'\np37145\nI00\nsS'value'\np37146\nI01\nssS'unique'\np37147\n(dp37148\nS'editable'\np37149\nI00\nsS'value'\np37150\nI00\nssS'properties'\np37151\n(dp37152\nS'default_value'\np37153\n(dp37154\nS'editable'\np37155\nI00\nsS'value'\np37156\nNssS'summary_default'\np37157\n(dp37158\nS'editable'\np37159\nI01\nsS'value'\np37160\nS'none'\np37161\nsssS'description'\np37162\n(dp37163\nS'editable'\np37164\nI01\nsS'value'\np37165\ng47\nsssS'image'\np37166\n(dp37167\nS'mandatory'\np37168\n(dp37169\nS'editable'\np37170\nI00\nsS'value'\np37171\nI00\nssS'name'\np37172\n(dp37173\nS'editable'\np37174\nI01\nsS'value'\np37175\nS'Thumbnail'\np37176\nssS'data_type'\np37177\n(dp37178\nS'editable'\np37179\nI00\nsS'value'\np37180\nS'image'\np37181\nssS'entity_type'\np37182\n(dp37183\nS'editable'\np37184\nI00\nsS'value'\np37185\nS'Sequence'\np37186\nssS'editable'\np37187\n(dp37188\nS'editable'\np37189\nI00\nsS'value'\np37190\nI01\nssS'unique'\np37191\n(dp37192\nS'editable'\np37193\nI00\nsS'value'\np37194\nI00\nssS'properties'\np37195\n(dp37196\nS'default_value'\np37197\n(dp37198\nS'editable'\np37199\nI00\nsS'value'\np37200\nNssS'summary_default'\np37201\n(dp37202\nS'editable'\np37203\nI01\nsS'value'\np37204\nS'none'\np37205\nsssS'description'\np37206\n(dp37207\nS'editable'\np37208\nI01\nsS'value'\np37209\ng47\nsssS'updated_at'\np37210\n(dp37211\nS'mandatory'\np37212\n(dp37213\nS'editable'\np37214\nI00\nsS'value'\np37215\nI00\nssS'name'\np37216\n(dp37217\nS'editable'\np37218\nI01\nsS'value'\np37219\nS'Date Updated'\np37220\nssS'data_type'\np37221\n(dp37222\nS'editable'\np37223\nI00\nsS'value'\np37224\nS'date_time'\np37225\nssS'entity_type'\np37226\n(dp37227\nS'editable'\np37228\nI00\nsS'value'\np37229\nS'Sequence'\np37230\nssS'editable'\np37231\n(dp37232\nS'editable'\np37233\nI00\nsS'value'\np37234\nI00\nssS'unique'\np37235\n(dp37236\nS'editable'\np37237\nI00\nsS'value'\np37238\nI00\nssS'properties'\np37239\n(dp37240\nS'default_value'\np37241\n(dp37242\nS'editable'\np37243\nI00\nsS'value'\np37244\nNssS'summary_default'\np37245\n(dp37246\nS'editable'\np37247\nI01\nsS'value'\np37248\nS'none'\np37249\nsssS'description'\np37250\n(dp37251\nS'editable'\np37252\nI01\nsS'value'\np37253\ng47\nsssS'tasks'\np37254\n(dp37255\nS'mandatory'\np37256\n(dp37257\nS'editable'\np37258\nI00\nsS'value'\np37259\nI00\nssS'name'\np37260\n(dp37261\nS'editable'\np37262\nI01\nsS'value'\np37263\nS'Tasks'\np37264\nssS'data_type'\np37265\n(dp37266\nS'editable'\np37267\nI00\nsS'value'\np37268\nS'multi_entity'\np37269\nssS'entity_type'\np37270\n(dp37271\nS'editable'\np37272\nI00\nsS'value'\np37273\nS'Sequence'\np37274\nssS'editable'\np37275\n(dp37276\nS'editable'\np37277\nI00\nsS'value'\np37278\nI01\nssS'unique'\np37279\n(dp37280\nS'editable'\np37281\nI00\nsS'value'\np37282\nI00\nssS'properties'\np37283\n(dp37284\nS'default_value'\np37285\n(dp37286\nS'editable'\np37287\nI00\nsS'value'\np37288\nNssS'summary_default'\np37289\n(dp37290\nS'editable'\np37291\nI01\nsS'value'\np37292\nS'none'\np37293\nssS'valid_types'\np37294\n(dp37295\nS'editable'\np37296\nI01\nsS'value'\np37297\n(lp37298\nS'Task'\np37299\nasssS'description'\np37300\n(dp37301\nS'editable'\np37302\nI01\nsS'value'\np37303\ng47\nsssS'cached_display_name'\np37304\n(dp37305\nS'mandatory'\np37306\n(dp37307\nS'editable'\np37308\nI00\nsS'value'\np37309\nI00\nssS'name'\np37310\n(dp37311\nS'editable'\np37312\nI01\nsS'value'\np37313\nS'Cached Display Name'\np37314\nssS'data_type'\np37315\n(dp37316\nS'editable'\np37317\nI00\nsS'value'\np37318\nS'text'\np37319\nssS'entity_type'\np37320\n(dp37321\nS'editable'\np37322\nI00\nsS'value'\np37323\nS'Sequence'\np37324\nssS'editable'\np37325\n(dp37326\nS'editable'\np37327\nI00\nsS'value'\np37328\nI01\nssS'unique'\np37329\n(dp37330\nS'editable'\np37331\nI00\nsS'value'\np37332\nI00\nssS'properties'\np37333\n(dp37334\nS'default_value'\np37335\n(dp37336\nS'editable'\np37337\nI00\nsS'value'\np37338\nNssS'summary_default'\np37339\n(dp37340\nS'editable'\np37341\nI00\nsS'value'\np37342\nS'none'\np37343\nsssS'description'\np37344\n(dp37345\nS'editable'\np37346\nI01\nsS'value'\np37347\ng47\nsssS'id'\np37348\n(dp37349\nS'mandatory'\np37350\n(dp37351\nS'editable'\np37352\nI00\nsS'value'\np37353\nI00\nssS'name'\np37354\n(dp37355\nS'editable'\np37356\nI01\nsS'value'\np37357\nS'Id'\np37358\nssS'data_type'\np37359\n(dp37360\nS'editable'\np37361\nI00\nsS'value'\np37362\nS'number'\np37363\nssS'entity_type'\np37364\n(dp37365\nS'editable'\np37366\nI00\nsS'value'\np37367\nS'Sequence'\np37368\nssS'editable'\np37369\n(dp37370\nS'editable'\np37371\nI00\nsS'value'\np37372\nI00\nssS'unique'\np37373\n(dp37374\nS'editable'\np37375\nI00\nsS'value'\np37376\nI00\nssS'properties'\np37377\n(dp37378\nS'default_value'\np37379\n(dp37380\nS'editable'\np37381\nI00\nsS'value'\np37382\nNssS'summary_default'\np37383\n(dp37384\nS'editable'\np37385\nI01\nsS'value'\np37386\nS'none'\np37387\nsssS'description'\np37388\n(dp37389\nS'editable'\np37390\nI01\nsS'value'\np37391\ng47\nsssS'sg_due_1'\np37392\n(dp37393\nS'mandatory'\np37394\n(dp37395\nS'editable'\np37396\nI00\nsS'value'\np37397\nI00\nssS'name'\np37398\n(dp37399\nS'editable'\np37400\nI01\nsS'value'\np37401\nS'Due'\np37402\nssS'data_type'\np37403\n(dp37404\nS'editable'\np37405\nI00\nsS'value'\np37406\nS'date'\np37407\nssS'entity_type'\np37408\n(dp37409\nS'editable'\np37410\nI00\nsS'value'\np37411\nS'Sequence'\np37412\nssS'editable'\np37413\n(dp37414\nS'editable'\np37415\nI00\nsS'value'\np37416\nI01\nssS'unique'\np37417\n(dp37418\nS'editable'\np37419\nI00\nsS'value'\np37420\nI00\nssS'properties'\np37421\n(dp37422\nS'default_value'\np37423\n(dp37424\nS'editable'\np37425\nI00\nsS'value'\np37426\nNssS'summary_default'\np37427\n(dp37428\nS'editable'\np37429\nI01\nsS'value'\np37430\nS'none'\np37431\nsssS'description'\np37432\n(dp37433\nS'editable'\np37434\nI01\nsS'value'\np37435\ng47\nsssS'open_notes'\np37436\n(dp37437\nS'mandatory'\np37438\n(dp37439\nS'editable'\np37440\nI00\nsS'value'\np37441\nI00\nssS'name'\np37442\n(dp37443\nS'editable'\np37444\nI01\nsS'value'\np37445\nS'Open Notes'\np37446\nssS'data_type'\np37447\n(dp37448\nS'editable'\np37449\nI00\nsS'value'\np37450\nS'multi_entity'\np37451\nssS'entity_type'\np37452\n(dp37453\nS'editable'\np37454\nI00\nsS'value'\np37455\nS'Sequence'\np37456\nssS'editable'\np37457\n(dp37458\nS'editable'\np37459\nI00\nsS'value'\np37460\nI00\nssS'unique'\np37461\n(dp37462\nS'editable'\np37463\nI00\nsS'value'\np37464\nI00\nssS'properties'\np37465\n(dp37466\nS'default_value'\np37467\n(dp37468\nS'editable'\np37469\nI00\nsS'value'\np37470\nNssS'summary_default'\np37471\n(dp37472\nS'editable'\np37473\nI01\nsS'value'\np37474\nS'none'\np37475\nssS'valid_types'\np37476\n(dp37477\nS'editable'\np37478\nI01\nsS'value'\np37479\n(lp37480\nS'Note'\np37481\nasssS'description'\np37482\n(dp37483\nS'editable'\np37484\nI01\nsS'value'\np37485\ng47\nsssS'description'\np37486\n(dp37487\nS'mandatory'\np37488\n(dp37489\nS'editable'\np37490\nI00\nsS'value'\np37491\nI00\nssS'name'\np37492\n(dp37493\nS'editable'\np37494\nI01\nsS'value'\np37495\nS'Description'\np37496\nssS'data_type'\np37497\n(dp37498\nS'editable'\np37499\nI00\nsS'value'\np37500\nS'text'\np37501\nssS'entity_type'\np37502\n(dp37503\nS'editable'\np37504\nI00\nsS'value'\np37505\nS'Sequence'\np37506\nssS'editable'\np37507\n(dp37508\nS'editable'\np37509\nI00\nsS'value'\np37510\nI01\nssS'unique'\np37511\n(dp37512\nS'editable'\np37513\nI00\nsS'value'\np37514\nI00\nssS'properties'\np37515\n(dp37516\nS'default_value'\np37517\n(dp37518\nS'editable'\np37519\nI00\nsS'value'\np37520\nNssS'summary_default'\np37521\n(dp37522\nS'editable'\np37523\nI01\nsS'value'\np37524\nS'none'\np37525\nsssS'description'\np37526\n(dp37527\nS'editable'\np37528\nI01\nsS'value'\np37529\ng47\nsssS'task_template'\np37530\n(dp37531\nS'mandatory'\np37532\n(dp37533\nS'editable'\np37534\nI00\nsS'value'\np37535\nI00\nssS'name'\np37536\n(dp37537\nS'editable'\np37538\nI01\nsS'value'\np37539\nS'Task Template'\np37540\nssS'data_type'\np37541\n(dp37542\nS'editable'\np37543\nI00\nsS'value'\np37544\nS'entity'\np37545\nssS'entity_type'\np37546\n(dp37547\nS'editable'\np37548\nI00\nsS'value'\np37549\nS'Sequence'\np37550\nssS'editable'\np37551\n(dp37552\nS'editable'\np37553\nI00\nsS'value'\np37554\nI01\nssS'unique'\np37555\n(dp37556\nS'editable'\np37557\nI00\nsS'value'\np37558\nI00\nssS'properties'\np37559\n(dp37560\nS'default_value'\np37561\n(dp37562\nS'editable'\np37563\nI00\nsS'value'\np37564\nNssS'summary_default'\np37565\n(dp37566\nS'editable'\np37567\nI01\nsS'value'\np37568\nS'none'\np37569\nssS'valid_types'\np37570\n(dp37571\nS'editable'\np37572\nI01\nsS'value'\np37573\n(lp37574\nS'TaskTemplate'\np37575\nasssS'description'\np37576\n(dp37577\nS'editable'\np37578\nI01\nsS'value'\np37579\ng47\nsssS'created_by'\np37580\n(dp37581\nS'mandatory'\np37582\n(dp37583\nS'editable'\np37584\nI00\nsS'value'\np37585\nI00\nssS'name'\np37586\n(dp37587\nS'editable'\np37588\nI01\nsS'value'\np37589\nS'Created by'\np37590\nssS'data_type'\np37591\n(dp37592\nS'editable'\np37593\nI00\nsS'value'\np37594\nS'entity'\np37595\nssS'entity_type'\np37596\n(dp37597\nS'editable'\np37598\nI00\nsS'value'\np37599\nS'Sequence'\np37600\nssS'editable'\np37601\n(dp37602\nS'editable'\np37603\nI00\nsS'value'\np37604\nI00\nssS'unique'\np37605\n(dp37606\nS'editable'\np37607\nI00\nsS'value'\np37608\nI00\nssS'properties'\np37609\n(dp37610\nS'default_value'\np37611\n(dp37612\nS'editable'\np37613\nI00\nsS'value'\np37614\nNssS'summary_default'\np37615\n(dp37616\nS'editable'\np37617\nI01\nsS'value'\np37618\nS'none'\np37619\nssS'valid_types'\np37620\n(dp37621\nS'editable'\np37622\nI01\nsS'value'\np37623\n(lp37624\nS'HumanUser'\np37625\naS'ApiUser'\np37626\nasssS'description'\np37627\n(dp37628\nS'editable'\np37629\nI01\nsS'value'\np37630\ng47\nsssS'sg_status_list'\np37631\n(dp37632\nS'mandatory'\np37633\n(dp37634\nS'editable'\np37635\nI00\nsS'value'\np37636\nI00\nssS'name'\np37637\n(dp37638\nS'editable'\np37639\nI01\nsS'value'\np37640\nS'Status'\np37641\nssS'data_type'\np37642\n(dp37643\nS'editable'\np37644\nI00\nsS'value'\np37645\nS'status_list'\np37646\nssS'entity_type'\np37647\n(dp37648\nS'editable'\np37649\nI00\nsS'value'\np37650\nS'Sequence'\np37651\nssS'editable'\np37652\n(dp37653\nS'editable'\np37654\nI00\nsS'value'\np37655\nI01\nssS'unique'\np37656\n(dp37657\nS'editable'\np37658\nI00\nsS'value'\np37659\nI00\nssS'properties'\np37660\n(dp37661\nS'default_value'\np37662\n(dp37663\nS'editable'\np37664\nI01\nsS'value'\np37665\nS'ip'\np37666\nssS'valid_values'\np37667\n(dp37668\nS'editable'\np37669\nI01\nsS'value'\np37670\n(lp37671\nS'fin'\np37672\naS'ip'\np37673\naS'omt'\np37674\naS'hld'\np37675\nassS'summary_default'\np37676\n(dp37677\nS'editable'\np37678\nI01\nsS'value'\np37679\nS'status_list'\np37680\nsssS'description'\np37681\n(dp37682\nS'editable'\np37683\nI01\nsS'value'\np37684\ng47\nsssS'updated_by'\np37685\n(dp37686\nS'mandatory'\np37687\n(dp37688\nS'editable'\np37689\nI00\nsS'value'\np37690\nI00\nssS'name'\np37691\n(dp37692\nS'editable'\np37693\nI01\nsS'value'\np37694\nS'Updated by'\np37695\nssS'data_type'\np37696\n(dp37697\nS'editable'\np37698\nI00\nsS'value'\np37699\nS'entity'\np37700\nssS'entity_type'\np37701\n(dp37702\nS'editable'\np37703\nI00\nsS'value'\np37704\nS'Sequence'\np37705\nssS'editable'\np37706\n(dp37707\nS'editable'\np37708\nI00\nsS'value'\np37709\nI00\nssS'unique'\np37710\n(dp37711\nS'editable'\np37712\nI00\nsS'value'\np37713\nI00\nssS'properties'\np37714\n(dp37715\nS'default_value'\np37716\n(dp37717\nS'editable'\np37718\nI00\nsS'value'\np37719\nNssS'summary_default'\np37720\n(dp37721\nS'editable'\np37722\nI01\nsS'value'\np37723\nS'none'\np37724\nssS'valid_types'\np37725\n(dp37726\nS'editable'\np37727\nI01\nsS'value'\np37728\n(lp37729\nS'HumanUser'\np37730\naS'ApiUser'\np37731\nasssS'description'\np37732\n(dp37733\nS'editable'\np37734\nI01\nsS'value'\np37735\ng47\nsssS'addressings_cc'\np37736\n(dp37737\nS'mandatory'\np37738\n(dp37739\nS'editable'\np37740\nI00\nsS'value'\np37741\nI00\nssS'name'\np37742\n(dp37743\nS'editable'\np37744\nI01\nsS'value'\np37745\nS'Cc'\np37746\nssS'data_type'\np37747\n(dp37748\nS'editable'\np37749\nI00\nsS'value'\np37750\nS'multi_entity'\np37751\nssS'entity_type'\np37752\n(dp37753\nS'editable'\np37754\nI00\nsS'value'\np37755\nS'Sequence'\np37756\nssS'editable'\np37757\n(dp37758\nS'editable'\np37759\nI00\nsS'value'\np37760\nI01\nssS'unique'\np37761\n(dp37762\nS'editable'\np37763\nI00\nsS'value'\np37764\nI00\nssS'properties'\np37765\n(dp37766\nS'default_value'\np37767\n(dp37768\nS'editable'\np37769\nI00\nsS'value'\np37770\nNssS'summary_default'\np37771\n(dp37772\nS'editable'\np37773\nI01\nsS'value'\np37774\nS'none'\np37775\nssS'valid_types'\np37776\n(dp37777\nS'editable'\np37778\nI01\nsS'value'\np37779\n(lp37780\nS'Group'\np37781\naS'HumanUser'\np37782\nasssS'description'\np37783\n(dp37784\nS'editable'\np37785\nI01\nsS'value'\np37786\ng47\nsssS'sg_sequencenumber'\np37787\n(dp37788\nS'mandatory'\np37789\n(dp37790\nS'editable'\np37791\nI00\nsS'value'\np37792\nI00\nssS'name'\np37793\n(dp37794\nS'editable'\np37795\nI01\nsS'value'\np37796\nS'sequencenumber'\np37797\nssS'data_type'\np37798\n(dp37799\nS'editable'\np37800\nI00\nsS'value'\np37801\nS'text'\np37802\nssS'entity_type'\np37803\n(dp37804\nS'editable'\np37805\nI00\nsS'value'\np37806\nS'Sequence'\np37807\nssS'editable'\np37808\n(dp37809\nS'editable'\np37810\nI00\nsS'value'\np37811\nI01\nssS'unique'\np37812\n(dp37813\nS'editable'\np37814\nI00\nsS'value'\np37815\nI00\nssS'properties'\np37816\n(dp37817\nS'default_value'\np37818\n(dp37819\nS'editable'\np37820\nI00\nsS'value'\np37821\nNssS'summary_default'\np37822\n(dp37823\nS'editable'\np37824\nI01\nsS'value'\np37825\nS'none'\np37826\nsssS'description'\np37827\n(dp37828\nS'editable'\np37829\nI01\nsS'value'\np37830\ng47\nsssS'step_0'\np37831\n(dp37832\nS'mandatory'\np37833\n(dp37834\nS'editable'\np37835\nI00\nsS'value'\np37836\nI00\nssS'name'\np37837\n(dp37838\nS'editable'\np37839\nI01\nsS'value'\np37840\nS'ALL TASKS'\np37841\nssS'data_type'\np37842\n(dp37843\nS'editable'\np37844\nI00\nsS'value'\np37845\nS'pivot_column'\np37846\nssS'entity_type'\np37847\n(dp37848\nS'editable'\np37849\nI00\nsS'value'\np37850\nS'Sequence'\np37851\nssS'editable'\np37852\n(dp37853\nS'editable'\np37854\nI00\nsS'value'\np37855\nI00\nssS'unique'\np37856\n(dp37857\nS'editable'\np37858\nI00\nsS'value'\np37859\nI00\nssS'properties'\np37860\n(dp37861\nS'default_value'\np37862\n(dp37863\nS'editable'\np37864\nI00\nsS'value'\np37865\nNssS'summary_default'\np37866\n(dp37867\nS'editable'\np37868\nI00\nsS'value'\np37869\nS'none'\np37870\nsssS'description'\np37871\n(dp37872\nS'editable'\np37873\nI01\nsS'value'\np37874\ng47\nsssS'assets'\np37875\n(dp37876\nS'mandatory'\np37877\n(dp37878\nS'editable'\np37879\nI00\nsS'value'\np37880\nI00\nssS'name'\np37881\n(dp37882\nS'editable'\np37883\nI01\nsS'value'\np37884\nS'Assets'\np37885\nssS'data_type'\np37886\n(dp37887\nS'editable'\np37888\nI00\nsS'value'\np37889\nS'multi_entity'\np37890\nssS'entity_type'\np37891\n(dp37892\nS'editable'\np37893\nI00\nsS'value'\np37894\nS'Sequence'\np37895\nssS'editable'\np37896\n(dp37897\nS'editable'\np37898\nI00\nsS'value'\np37899\nI01\nssS'unique'\np37900\n(dp37901\nS'editable'\np37902\nI00\nsS'value'\np37903\nI00\nssS'properties'\np37904\n(dp37905\nS'default_value'\np37906\n(dp37907\nS'editable'\np37908\nI00\nsS'value'\np37909\nNssS'summary_default'\np37910\n(dp37911\nS'editable'\np37912\nI01\nsS'value'\np37913\nS'none'\np37914\nssS'valid_types'\np37915\n(dp37916\nS'editable'\np37917\nI01\nsS'value'\np37918\n(lp37919\nS'Asset'\np37920\nasssS'description'\np37921\n(dp37922\nS'editable'\np37923\nI01\nsS'value'\np37924\ng47\nsssS'sg_scene'\np37925\n(dp37926\nS'mandatory'\np37927\n(dp37928\nS'editable'\np37929\nI00\nsS'value'\np37930\nI00\nssS'name'\np37931\n(dp37932\nS'editable'\np37933\nI01\nsS'value'\np37934\nS'Scene'\np37935\nssS'data_type'\np37936\n(dp37937\nS'editable'\np37938\nI00\nsS'value'\np37939\nS'entity'\np37940\nssS'entity_type'\np37941\n(dp37942\nS'editable'\np37943\nI00\nsS'value'\np37944\nS'Sequence'\np37945\nssS'editable'\np37946\n(dp37947\nS'editable'\np37948\nI00\nsS'value'\np37949\nI01\nssS'unique'\np37950\n(dp37951\nS'editable'\np37952\nI00\nsS'value'\np37953\nI00\nssS'properties'\np37954\n(dp37955\nS'default_value'\np37956\n(dp37957\nS'editable'\np37958\nI00\nsS'value'\np37959\nNssS'summary_default'\np37960\n(dp37961\nS'editable'\np37962\nI01\nsS'value'\np37963\nS'none'\np37964\nssS'valid_types'\np37965\n(dp37966\nS'editable'\np37967\nI01\nsS'value'\np37968\n(lp37969\nS'Scene'\np37970\nasssS'description'\np37971\n(dp37972\nS'editable'\np37973\nI01\nsS'value'\np37974\ng47\nsssS'notes'\np37975\n(dp37976\nS'mandatory'\np37977\n(dp37978\nS'editable'\np37979\nI00\nsS'value'\np37980\nI00\nssS'name'\np37981\n(dp37982\nS'editable'\np37983\nI01\nsS'value'\np37984\nS'Notes'\np37985\nssS'data_type'\np37986\n(dp37987\nS'editable'\np37988\nI00\nsS'value'\np37989\nS'multi_entity'\np37990\nssS'entity_type'\np37991\n(dp37992\nS'editable'\np37993\nI00\nsS'value'\np37994\nS'Sequence'\np37995\nssS'editable'\np37996\n(dp37997\nS'editable'\np37998\nI00\nsS'value'\np37999\nI01\nssS'unique'\np38000\n(dp38001\nS'editable'\np38002\nI00\nsS'value'\np38003\nI00\nssS'properties'\np38004\n(dp38005\nS'default_value'\np38006\n(dp38007\nS'editable'\np38008\nI00\nsS'value'\np38009\nNssS'summary_default'\np38010\n(dp38011\nS'editable'\np38012\nI01\nsS'value'\np38013\nS'none'\np38014\nssS'valid_types'\np38015\n(dp38016\nS'editable'\np38017\nI01\nsS'value'\np38018\n(lp38019\nS'Note'\np38020\nasssS'description'\np38021\n(dp38022\nS'editable'\np38023\nI01\nsS'value'\np38024\ng47\nsssS'project'\np38025\n(dp38026\nS'mandatory'\np38027\n(dp38028\nS'editable'\np38029\nI00\nsS'value'\np38030\nI00\nssS'name'\np38031\n(dp38032\nS'editable'\np38033\nI01\nsS'value'\np38034\nS'Project'\np38035\nssS'data_type'\np38036\n(dp38037\nS'editable'\np38038\nI00\nsS'value'\np38039\nS'entity'\np38040\nssS'entity_type'\np38041\n(dp38042\nS'editable'\np38043\nI00\nsS'value'\np38044\nS'Sequence'\np38045\nssS'editable'\np38046\n(dp38047\nS'editable'\np38048\nI00\nsS'value'\np38049\nI01\nssS'unique'\np38050\n(dp38051\nS'editable'\np38052\nI00\nsS'value'\np38053\nI00\nssS'properties'\np38054\n(dp38055\nS'default_value'\np38056\n(dp38057\nS'editable'\np38058\nI00\nsS'value'\np38059\nNssS'summary_default'\np38060\n(dp38061\nS'editable'\np38062\nI01\nsS'value'\np38063\nS'none'\np38064\nssS'valid_types'\np38065\n(dp38066\nS'editable'\np38067\nI01\nsS'value'\np38068\n(lp38069\nS'Project'\np38070\nasssS'description'\np38071\n(dp38072\nS'editable'\np38073\nI01\nsS'value'\np38074\ng47\nsssS'filmstrip_image'\np38075\n(dp38076\nS'mandatory'\np38077\n(dp38078\nS'editable'\np38079\nI00\nsS'value'\np38080\nI00\nssS'name'\np38081\n(dp38082\nS'editable'\np38083\nI01\nsS'value'\np38084\nS'Filmstrip Thumbnail'\np38085\nssS'data_type'\np38086\n(dp38087\nS'editable'\np38088\nI00\nsS'value'\np38089\nS'image'\np38090\nssS'entity_type'\np38091\n(dp38092\nS'editable'\np38093\nI00\nsS'value'\np38094\nS'Sequence'\np38095\nssS'editable'\np38096\n(dp38097\nS'editable'\np38098\nI00\nsS'value'\np38099\nI01\nssS'unique'\np38100\n(dp38101\nS'editable'\np38102\nI00\nsS'value'\np38103\nI00\nssS'properties'\np38104\n(dp38105\nS'default_value'\np38106\n(dp38107\nS'editable'\np38108\nI00\nsS'value'\np38109\nNssS'summary_default'\np38110\n(dp38111\nS'editable'\np38112\nI01\nsS'value'\np38113\nS'none'\np38114\nsssS'description'\np38115\n(dp38116\nS'editable'\np38117\nI01\nsS'value'\np38118\ng47\nsssS'sg_assigned_to'\np38119\n(dp38120\nS'mandatory'\np38121\n(dp38122\nS'editable'\np38123\nI00\nsS'value'\np38124\nI00\nssS'name'\np38125\n(dp38126\nS'editable'\np38127\nI01\nsS'value'\np38128\nS'Assigned To'\np38129\nssS'data_type'\np38130\n(dp38131\nS'editable'\np38132\nI00\nsS'value'\np38133\nS'entity'\np38134\nssS'entity_type'\np38135\n(dp38136\nS'editable'\np38137\nI00\nsS'value'\np38138\nS'Sequence'\np38139\nssS'editable'\np38140\n(dp38141\nS'editable'\np38142\nI00\nsS'value'\np38143\nI01\nssS'unique'\np38144\n(dp38145\nS'editable'\np38146\nI00\nsS'value'\np38147\nI00\nssS'properties'\np38148\n(dp38149\nS'default_value'\np38150\n(dp38151\nS'editable'\np38152\nI00\nsS'value'\np38153\nNssS'summary_default'\np38154\n(dp38155\nS'editable'\np38156\nI01\nsS'value'\np38157\nS'none'\np38158\nssS'valid_types'\np38159\n(dp38160\nS'editable'\np38161\nI01\nsS'value'\np38162\n(lp38163\nS'HumanUser'\np38164\nasssS'description'\np38165\n(dp38166\nS'editable'\np38167\nI01\nsS'value'\np38168\ng47\nsssS'shots'\np38169\n(dp38170\nS'mandatory'\np38171\n(dp38172\nS'editable'\np38173\nI00\nsS'value'\np38174\nI00\nssS'name'\np38175\n(dp38176\nS'editable'\np38177\nI01\nsS'value'\np38178\nS'Shots'\np38179\nssS'data_type'\np38180\n(dp38181\nS'editable'\np38182\nI00\nsS'value'\np38183\nS'multi_entity'\np38184\nssS'entity_type'\np38185\n(dp38186\nS'editable'\np38187\nI00\nsS'value'\np38188\nS'Sequence'\np38189\nssS'editable'\np38190\n(dp38191\nS'editable'\np38192\nI00\nsS'value'\np38193\nI01\nssS'unique'\np38194\n(dp38195\nS'editable'\np38196\nI00\nsS'value'\np38197\nI00\nssS'properties'\np38198\n(dp38199\nS'default_value'\np38200\n(dp38201\nS'editable'\np38202\nI00\nsS'value'\np38203\nNssS'summary_default'\np38204\n(dp38205\nS'editable'\np38206\nI01\nsS'value'\np38207\nS'none'\np38208\nssS'valid_types'\np38209\n(dp38210\nS'editable'\np38211\nI01\nsS'value'\np38212\n(lp38213\nS'Shot'\np38214\nasssS'description'\np38215\n(dp38216\nS'editable'\np38217\nI01\nsS'value'\np38218\ng47\nsssS'tag_list'\np38219\n(dp38220\nS'mandatory'\np38221\n(dp38222\nS'editable'\np38223\nI00\nsS'value'\np38224\nI00\nssS'name'\np38225\n(dp38226\nS'editable'\np38227\nI01\nsS'value'\np38228\nS'Tags'\np38229\nssS'data_type'\np38230\n(dp38231\nS'editable'\np38232\nI00\nsS'value'\np38233\nS'tag_list'\np38234\nssS'entity_type'\np38235\n(dp38236\nS'editable'\np38237\nI00\nsS'value'\np38238\nS'Sequence'\np38239\nssS'editable'\np38240\n(dp38241\nS'editable'\np38242\nI00\nsS'value'\np38243\nI01\nssS'unique'\np38244\n(dp38245\nS'editable'\np38246\nI00\nsS'value'\np38247\nI00\nssS'properties'\np38248\n(dp38249\nS'default_value'\np38250\n(dp38251\nS'editable'\np38252\nI00\nsS'value'\np38253\nNssS'summary_default'\np38254\n(dp38255\nS'editable'\np38256\nI01\nsS'value'\np38257\nS'none'\np38258\nssS'valid_types'\np38259\n(dp38260\nS'editable'\np38261\nI01\nsS'value'\np38262\n(lp38263\nS'Tag'\np38264\nasssS'description'\np38265\n(dp38266\nS'editable'\np38267\nI01\nsS'value'\np38268\ng47\nsssS'created_at'\np38269\n(dp38270\nS'mandatory'\np38271\n(dp38272\nS'editable'\np38273\nI00\nsS'value'\np38274\nI00\nssS'name'\np38275\n(dp38276\nS'editable'\np38277\nI01\nsS'value'\np38278\nS'Date Created'\np38279\nssS'data_type'\np38280\n(dp38281\nS'editable'\np38282\nI00\nsS'value'\np38283\nS'date_time'\np38284\nssS'entity_type'\np38285\n(dp38286\nS'editable'\np38287\nI00\nsS'value'\np38288\nS'Sequence'\np38289\nssS'editable'\np38290\n(dp38291\nS'editable'\np38292\nI00\nsS'value'\np38293\nI00\nssS'unique'\np38294\n(dp38295\nS'editable'\np38296\nI00\nsS'value'\np38297\nI00\nssS'properties'\np38298\n(dp38299\nS'default_value'\np38300\n(dp38301\nS'editable'\np38302\nI00\nsS'value'\np38303\nNssS'summary_default'\np38304\n(dp38305\nS'editable'\np38306\nI01\nsS'value'\np38307\nS'none'\np38308\nsssS'description'\np38309\n(dp38310\nS'editable'\np38311\nI01\nsS'value'\np38312\ng47\nssssS'BannerUserConnection'\np38313\n(dp38314\nS'cached_display_name'\np38315\n(dp38316\nS'mandatory'\np38317\n(dp38318\nS'editable'\np38319\nI00\nsS'value'\np38320\nI00\nssS'name'\np38321\n(dp38322\nS'editable'\np38323\nI01\nsS'value'\np38324\nS'Cached Display Name'\np38325\nssS'data_type'\np38326\n(dp38327\nS'editable'\np38328\nI00\nsS'value'\np38329\nS'text'\np38330\nssS'entity_type'\np38331\n(dp38332\nS'editable'\np38333\nI00\nsS'value'\np38334\nS'BannerUserConnection'\np38335\nssS'editable'\np38336\n(dp38337\nS'editable'\np38338\nI00\nsS'value'\np38339\nI01\nssS'unique'\np38340\n(dp38341\nS'editable'\np38342\nI00\nsS'value'\np38343\nI00\nssS'properties'\np38344\n(dp38345\nS'default_value'\np38346\n(dp38347\nS'editable'\np38348\nI00\nsS'value'\np38349\nNssS'summary_default'\np38350\n(dp38351\nS'editable'\np38352\nI00\nsS'value'\np38353\nS'none'\np38354\nsssS'description'\np38355\n(dp38356\nS'editable'\np38357\nI01\nsS'value'\np38358\ng47\nsssS'banner'\np38359\n(dp38360\nS'mandatory'\np38361\n(dp38362\nS'editable'\np38363\nI00\nsS'value'\np38364\nI00\nssS'name'\np38365\n(dp38366\nS'editable'\np38367\nI01\nsS'value'\np38368\nS'Banner'\np38369\nssS'data_type'\np38370\n(dp38371\nS'editable'\np38372\nI00\nsS'value'\np38373\nS'entity'\np38374\nssS'entity_type'\np38375\n(dp38376\nS'editable'\np38377\nI00\nsS'value'\np38378\nS'BannerUserConnection'\np38379\nssS'editable'\np38380\n(dp38381\nS'editable'\np38382\nI00\nsS'value'\np38383\nI01\nssS'unique'\np38384\n(dp38385\nS'editable'\np38386\nI00\nsS'value'\np38387\nI00\nssS'properties'\np38388\n(dp38389\nS'default_value'\np38390\n(dp38391\nS'editable'\np38392\nI00\nsS'value'\np38393\nNssS'summary_default'\np38394\n(dp38395\nS'editable'\np38396\nI00\nsS'value'\np38397\nS'none'\np38398\nssS'valid_types'\np38399\n(dp38400\nS'editable'\np38401\nI00\nsS'value'\np38402\n(lp38403\nS'Banner'\np38404\nasssS'description'\np38405\n(dp38406\nS'editable'\np38407\nI01\nsS'value'\np38408\ng47\nsssS'id'\np38409\n(dp38410\nS'mandatory'\np38411\n(dp38412\nS'editable'\np38413\nI00\nsS'value'\np38414\nI00\nssS'name'\np38415\n(dp38416\nS'editable'\np38417\nI01\nsS'value'\np38418\nS'Id'\np38419\nssS'data_type'\np38420\n(dp38421\nS'editable'\np38422\nI00\nsS'value'\np38423\nS'number'\np38424\nssS'entity_type'\np38425\n(dp38426\nS'editable'\np38427\nI00\nsS'value'\np38428\nS'BannerUserConnection'\np38429\nssS'editable'\np38430\n(dp38431\nS'editable'\np38432\nI00\nsS'value'\np38433\nI00\nssS'unique'\np38434\n(dp38435\nS'editable'\np38436\nI00\nsS'value'\np38437\nI00\nssS'properties'\np38438\n(dp38439\nS'default_value'\np38440\n(dp38441\nS'editable'\np38442\nI00\nsS'value'\np38443\nNssS'summary_default'\np38444\n(dp38445\nS'editable'\np38446\nI00\nsS'value'\np38447\nS'none'\np38448\nsssS'description'\np38449\n(dp38450\nS'editable'\np38451\nI01\nsS'value'\np38452\ng47\nsssS'user'\np38453\n(dp38454\nS'mandatory'\np38455\n(dp38456\nS'editable'\np38457\nI00\nsS'value'\np38458\nI00\nssS'name'\np38459\n(dp38460\nS'editable'\np38461\nI01\nsS'value'\np38462\nS'User'\np38463\nssS'data_type'\np38464\n(dp38465\nS'editable'\np38466\nI00\nsS'value'\np38467\nS'entity'\np38468\nssS'entity_type'\np38469\n(dp38470\nS'editable'\np38471\nI00\nsS'value'\np38472\nS'BannerUserConnection'\np38473\nssS'editable'\np38474\n(dp38475\nS'editable'\np38476\nI00\nsS'value'\np38477\nI01\nssS'unique'\np38478\n(dp38479\nS'editable'\np38480\nI00\nsS'value'\np38481\nI00\nssS'properties'\np38482\n(dp38483\nS'default_value'\np38484\n(dp38485\nS'editable'\np38486\nI00\nsS'value'\np38487\nNssS'summary_default'\np38488\n(dp38489\nS'editable'\np38490\nI00\nsS'value'\np38491\nS'none'\np38492\nssS'valid_types'\np38493\n(dp38494\nS'editable'\np38495\nI00\nsS'value'\np38496\n(lp38497\nS'HumanUser'\np38498\nasssS'description'\np38499\n(dp38500\nS'editable'\np38501\nI01\nsS'value'\np38502\ng47\nssssS'AssetAssetConnection'\np38503\n(dp38504\nS'cached_display_name'\np38505\n(dp38506\nS'mandatory'\np38507\n(dp38508\nS'editable'\np38509\nI00\nsS'value'\np38510\nI00\nssS'name'\np38511\n(dp38512\nS'editable'\np38513\nI01\nsS'value'\np38514\nS'Cached Display Name'\np38515\nssS'data_type'\np38516\n(dp38517\nS'editable'\np38518\nI00\nsS'value'\np38519\nS'text'\np38520\nssS'entity_type'\np38521\n(dp38522\nS'editable'\np38523\nI00\nsS'value'\np38524\nS'AssetAssetConnection'\np38525\nssS'editable'\np38526\n(dp38527\nS'editable'\np38528\nI00\nsS'value'\np38529\nI01\nssS'unique'\np38530\n(dp38531\nS'editable'\np38532\nI00\nsS'value'\np38533\nI00\nssS'properties'\np38534\n(dp38535\nS'default_value'\np38536\n(dp38537\nS'editable'\np38538\nI00\nsS'value'\np38539\nNssS'summary_default'\np38540\n(dp38541\nS'editable'\np38542\nI00\nsS'value'\np38543\nS'none'\np38544\nsssS'description'\np38545\n(dp38546\nS'editable'\np38547\nI01\nsS'value'\np38548\ng47\nsssS'asset'\np38549\n(dp38550\nS'mandatory'\np38551\n(dp38552\nS'editable'\np38553\nI00\nsS'value'\np38554\nI00\nssS'name'\np38555\n(dp38556\nS'editable'\np38557\nI01\nsS'value'\np38558\nS'Asset'\np38559\nssS'data_type'\np38560\n(dp38561\nS'editable'\np38562\nI00\nsS'value'\np38563\nS'entity'\np38564\nssS'entity_type'\np38565\n(dp38566\nS'editable'\np38567\nI00\nsS'value'\np38568\nS'AssetAssetConnection'\np38569\nssS'editable'\np38570\n(dp38571\nS'editable'\np38572\nI00\nsS'value'\np38573\nI00\nssS'unique'\np38574\n(dp38575\nS'editable'\np38576\nI00\nsS'value'\np38577\nI00\nssS'properties'\np38578\n(dp38579\nS'default_value'\np38580\n(dp38581\nS'editable'\np38582\nI00\nsS'value'\np38583\nNssS'summary_default'\np38584\n(dp38585\nS'editable'\np38586\nI00\nsS'value'\np38587\nS'none'\np38588\nssS'valid_types'\np38589\n(dp38590\nS'editable'\np38591\nI00\nsS'value'\np38592\n(lp38593\nS'Asset'\np38594\nasssS'description'\np38595\n(dp38596\nS'editable'\np38597\nI01\nsS'value'\np38598\ng47\nsssS'parent'\np38599\n(dp38600\nS'mandatory'\np38601\n(dp38602\nS'editable'\np38603\nI00\nsS'value'\np38604\nI00\nssS'name'\np38605\n(dp38606\nS'editable'\np38607\nI01\nsS'value'\np38608\nS'Asset'\np38609\nssS'data_type'\np38610\n(dp38611\nS'editable'\np38612\nI00\nsS'value'\np38613\nS'entity'\np38614\nssS'entity_type'\np38615\n(dp38616\nS'editable'\np38617\nI00\nsS'value'\np38618\nS'AssetAssetConnection'\np38619\nssS'editable'\np38620\n(dp38621\nS'editable'\np38622\nI00\nsS'value'\np38623\nI00\nssS'unique'\np38624\n(dp38625\nS'editable'\np38626\nI00\nsS'value'\np38627\nI00\nssS'properties'\np38628\n(dp38629\nS'default_value'\np38630\n(dp38631\nS'editable'\np38632\nI00\nsS'value'\np38633\nNssS'summary_default'\np38634\n(dp38635\nS'editable'\np38636\nI00\nsS'value'\np38637\nS'none'\np38638\nssS'valid_types'\np38639\n(dp38640\nS'editable'\np38641\nI00\nsS'value'\np38642\n(lp38643\nS'Asset'\np38644\nasssS'description'\np38645\n(dp38646\nS'editable'\np38647\nI01\nsS'value'\np38648\ng47\nsssS'id'\np38649\n(dp38650\nS'mandatory'\np38651\n(dp38652\nS'editable'\np38653\nI00\nsS'value'\np38654\nI01\nssS'name'\np38655\n(dp38656\nS'editable'\np38657\nI01\nsS'value'\np38658\nS'Id'\np38659\nssS'data_type'\np38660\n(dp38661\nS'editable'\np38662\nI00\nsS'value'\np38663\nS'number'\np38664\nssS'entity_type'\np38665\n(dp38666\nS'editable'\np38667\nI00\nsS'value'\np38668\nS'AssetAssetConnection'\np38669\nssS'editable'\np38670\n(dp38671\nS'editable'\np38672\nI00\nsS'value'\np38673\nI00\nssS'unique'\np38674\n(dp38675\nS'editable'\np38676\nI00\nsS'value'\np38677\nI00\nssS'properties'\np38678\n(dp38679\nS'default_value'\np38680\n(dp38681\nS'editable'\np38682\nI00\nsS'value'\np38683\nNssS'summary_default'\np38684\n(dp38685\nS'editable'\np38686\nI00\nsS'value'\np38687\nS'none'\np38688\nsssS'description'\np38689\n(dp38690\nS'editable'\np38691\nI01\nsS'value'\np38692\ng47\nssssS'Scene'\np38693\n(dp38694\nS'open_notes_count'\np38695\n(dp38696\nS'mandatory'\np38697\n(dp38698\nS'editable'\np38699\nI00\nsS'value'\np38700\nI00\nssS'name'\np38701\n(dp38702\nS'editable'\np38703\nI01\nsS'value'\np38704\nS'Open Notes Count'\np38705\nssS'data_type'\np38706\n(dp38707\nS'editable'\np38708\nI00\nsS'value'\np38709\nS'text'\np38710\nssS'entity_type'\np38711\n(dp38712\nS'editable'\np38713\nI00\nsS'value'\np38714\nS'Scene'\np38715\nssS'editable'\np38716\n(dp38717\nS'editable'\np38718\nI00\nsS'value'\np38719\nI00\nssS'unique'\np38720\n(dp38721\nS'editable'\np38722\nI00\nsS'value'\np38723\nI00\nssS'properties'\np38724\n(dp38725\nS'default_value'\np38726\n(dp38727\nS'editable'\np38728\nI00\nsS'value'\np38729\nNssS'summary_default'\np38730\n(dp38731\nS'editable'\np38732\nI01\nsS'value'\np38733\nS'none'\np38734\nsssS'description'\np38735\n(dp38736\nS'editable'\np38737\nI01\nsS'value'\np38738\ng47\nsssS'code'\np38739\n(dp38740\nS'mandatory'\np38741\n(dp38742\nS'editable'\np38743\nI00\nsS'value'\np38744\nI01\nssS'name'\np38745\n(dp38746\nS'editable'\np38747\nI01\nsS'value'\np38748\nS'Scene Code'\np38749\nssS'data_type'\np38750\n(dp38751\nS'editable'\np38752\nI00\nsS'value'\np38753\nS'text'\np38754\nssS'entity_type'\np38755\n(dp38756\nS'editable'\np38757\nI00\nsS'value'\np38758\nS'Scene'\np38759\nssS'editable'\np38760\n(dp38761\nS'editable'\np38762\nI00\nsS'value'\np38763\nI01\nssS'unique'\np38764\n(dp38765\nS'editable'\np38766\nI00\nsS'value'\np38767\nI00\nssS'properties'\np38768\n(dp38769\nS'default_value'\np38770\n(dp38771\nS'editable'\np38772\nI00\nsS'value'\np38773\nNssS'summary_default'\np38774\n(dp38775\nS'editable'\np38776\nI01\nsS'value'\np38777\nS'none'\np38778\nsssS'description'\np38779\n(dp38780\nS'editable'\np38781\nI01\nsS'value'\np38782\ng47\nsssS'image'\np38783\n(dp38784\nS'mandatory'\np38785\n(dp38786\nS'editable'\np38787\nI00\nsS'value'\np38788\nI00\nssS'name'\np38789\n(dp38790\nS'editable'\np38791\nI01\nsS'value'\np38792\nS'Thumbnail'\np38793\nssS'data_type'\np38794\n(dp38795\nS'editable'\np38796\nI00\nsS'value'\np38797\nS'image'\np38798\nssS'entity_type'\np38799\n(dp38800\nS'editable'\np38801\nI00\nsS'value'\np38802\nS'Scene'\np38803\nssS'editable'\np38804\n(dp38805\nS'editable'\np38806\nI00\nsS'value'\np38807\nI01\nssS'unique'\np38808\n(dp38809\nS'editable'\np38810\nI00\nsS'value'\np38811\nI00\nssS'properties'\np38812\n(dp38813\nS'default_value'\np38814\n(dp38815\nS'editable'\np38816\nI00\nsS'value'\np38817\nNssS'summary_default'\np38818\n(dp38819\nS'editable'\np38820\nI01\nsS'value'\np38821\nS'none'\np38822\nsssS'description'\np38823\n(dp38824\nS'editable'\np38825\nI01\nsS'value'\np38826\ng47\nsssS'updated_at'\np38827\n(dp38828\nS'mandatory'\np38829\n(dp38830\nS'editable'\np38831\nI00\nsS'value'\np38832\nI00\nssS'name'\np38833\n(dp38834\nS'editable'\np38835\nI01\nsS'value'\np38836\nS'Date Updated'\np38837\nssS'data_type'\np38838\n(dp38839\nS'editable'\np38840\nI00\nsS'value'\np38841\nS'date_time'\np38842\nssS'entity_type'\np38843\n(dp38844\nS'editable'\np38845\nI00\nsS'value'\np38846\nS'Scene'\np38847\nssS'editable'\np38848\n(dp38849\nS'editable'\np38850\nI00\nsS'value'\np38851\nI00\nssS'unique'\np38852\n(dp38853\nS'editable'\np38854\nI00\nsS'value'\np38855\nI00\nssS'properties'\np38856\n(dp38857\nS'default_value'\np38858\n(dp38859\nS'editable'\np38860\nI00\nsS'value'\np38861\nNssS'summary_default'\np38862\n(dp38863\nS'editable'\np38864\nI01\nsS'value'\np38865\nS'none'\np38866\nsssS'description'\np38867\n(dp38868\nS'editable'\np38869\nI01\nsS'value'\np38870\ng47\nsssS'tasks'\np38871\n(dp38872\nS'mandatory'\np38873\n(dp38874\nS'editable'\np38875\nI00\nsS'value'\np38876\nI00\nssS'name'\np38877\n(dp38878\nS'editable'\np38879\nI01\nsS'value'\np38880\nS'Tasks'\np38881\nssS'data_type'\np38882\n(dp38883\nS'editable'\np38884\nI00\nsS'value'\np38885\nS'multi_entity'\np38886\nssS'entity_type'\np38887\n(dp38888\nS'editable'\np38889\nI00\nsS'value'\np38890\nS'Scene'\np38891\nssS'editable'\np38892\n(dp38893\nS'editable'\np38894\nI00\nsS'value'\np38895\nI01\nssS'unique'\np38896\n(dp38897\nS'editable'\np38898\nI00\nsS'value'\np38899\nI00\nssS'properties'\np38900\n(dp38901\nS'default_value'\np38902\n(dp38903\nS'editable'\np38904\nI00\nsS'value'\np38905\nNssS'summary_default'\np38906\n(dp38907\nS'editable'\np38908\nI01\nsS'value'\np38909\nS'none'\np38910\nssS'valid_types'\np38911\n(dp38912\nS'editable'\np38913\nI01\nsS'value'\np38914\n(lp38915\nS'Task'\np38916\nasssS'description'\np38917\n(dp38918\nS'editable'\np38919\nI01\nsS'value'\np38920\ng47\nsssS'cached_display_name'\np38921\n(dp38922\nS'mandatory'\np38923\n(dp38924\nS'editable'\np38925\nI00\nsS'value'\np38926\nI00\nssS'name'\np38927\n(dp38928\nS'editable'\np38929\nI01\nsS'value'\np38930\nS'Cached Display Name'\np38931\nssS'data_type'\np38932\n(dp38933\nS'editable'\np38934\nI00\nsS'value'\np38935\nS'text'\np38936\nssS'entity_type'\np38937\n(dp38938\nS'editable'\np38939\nI00\nsS'value'\np38940\nS'Scene'\np38941\nssS'editable'\np38942\n(dp38943\nS'editable'\np38944\nI00\nsS'value'\np38945\nI01\nssS'unique'\np38946\n(dp38947\nS'editable'\np38948\nI00\nsS'value'\np38949\nI00\nssS'properties'\np38950\n(dp38951\nS'default_value'\np38952\n(dp38953\nS'editable'\np38954\nI00\nsS'value'\np38955\nNssS'summary_default'\np38956\n(dp38957\nS'editable'\np38958\nI00\nsS'value'\np38959\nS'none'\np38960\nsssS'description'\np38961\n(dp38962\nS'editable'\np38963\nI01\nsS'value'\np38964\ng47\nsssS'id'\np38965\n(dp38966\nS'mandatory'\np38967\n(dp38968\nS'editable'\np38969\nI00\nsS'value'\np38970\nI00\nssS'name'\np38971\n(dp38972\nS'editable'\np38973\nI01\nsS'value'\np38974\nS'Id'\np38975\nssS'data_type'\np38976\n(dp38977\nS'editable'\np38978\nI00\nsS'value'\np38979\nS'number'\np38980\nssS'entity_type'\np38981\n(dp38982\nS'editable'\np38983\nI00\nsS'value'\np38984\nS'Scene'\np38985\nssS'editable'\np38986\n(dp38987\nS'editable'\np38988\nI00\nsS'value'\np38989\nI00\nssS'unique'\np38990\n(dp38991\nS'editable'\np38992\nI00\nsS'value'\np38993\nI00\nssS'properties'\np38994\n(dp38995\nS'default_value'\np38996\n(dp38997\nS'editable'\np38998\nI00\nsS'value'\np38999\nNssS'summary_default'\np39000\n(dp39001\nS'editable'\np39002\nI01\nsS'value'\np39003\nS'none'\np39004\nsssS'description'\np39005\n(dp39006\nS'editable'\np39007\nI01\nsS'value'\np39008\ng47\nsssS'updated_by'\np39009\n(dp39010\nS'mandatory'\np39011\n(dp39012\nS'editable'\np39013\nI00\nsS'value'\np39014\nI00\nssS'name'\np39015\n(dp39016\nS'editable'\np39017\nI01\nsS'value'\np39018\nS'Updated by'\np39019\nssS'data_type'\np39020\n(dp39021\nS'editable'\np39022\nI00\nsS'value'\np39023\nS'entity'\np39024\nssS'entity_type'\np39025\n(dp39026\nS'editable'\np39027\nI00\nsS'value'\np39028\nS'Scene'\np39029\nssS'editable'\np39030\n(dp39031\nS'editable'\np39032\nI00\nsS'value'\np39033\nI00\nssS'unique'\np39034\n(dp39035\nS'editable'\np39036\nI00\nsS'value'\np39037\nI00\nssS'properties'\np39038\n(dp39039\nS'default_value'\np39040\n(dp39041\nS'editable'\np39042\nI00\nsS'value'\np39043\nNssS'summary_default'\np39044\n(dp39045\nS'editable'\np39046\nI01\nsS'value'\np39047\nS'none'\np39048\nssS'valid_types'\np39049\n(dp39050\nS'editable'\np39051\nI01\nsS'value'\np39052\n(lp39053\nS'HumanUser'\np39054\naS'ApiUser'\np39055\nasssS'description'\np39056\n(dp39057\nS'editable'\np39058\nI01\nsS'value'\np39059\ng47\nsssS'open_notes'\np39060\n(dp39061\nS'mandatory'\np39062\n(dp39063\nS'editable'\np39064\nI00\nsS'value'\np39065\nI00\nssS'name'\np39066\n(dp39067\nS'editable'\np39068\nI01\nsS'value'\np39069\nS'Open Notes'\np39070\nssS'data_type'\np39071\n(dp39072\nS'editable'\np39073\nI00\nsS'value'\np39074\nS'multi_entity'\np39075\nssS'entity_type'\np39076\n(dp39077\nS'editable'\np39078\nI00\nsS'value'\np39079\nS'Scene'\np39080\nssS'editable'\np39081\n(dp39082\nS'editable'\np39083\nI00\nsS'value'\np39084\nI00\nssS'unique'\np39085\n(dp39086\nS'editable'\np39087\nI00\nsS'value'\np39088\nI00\nssS'properties'\np39089\n(dp39090\nS'default_value'\np39091\n(dp39092\nS'editable'\np39093\nI00\nsS'value'\np39094\nNssS'summary_default'\np39095\n(dp39096\nS'editable'\np39097\nI01\nsS'value'\np39098\nS'none'\np39099\nssS'valid_types'\np39100\n(dp39101\nS'editable'\np39102\nI01\nsS'value'\np39103\n(lp39104\nS'Note'\np39105\nasssS'description'\np39106\n(dp39107\nS'editable'\np39108\nI01\nsS'value'\np39109\ng47\nsssS'task_template'\np39110\n(dp39111\nS'mandatory'\np39112\n(dp39113\nS'editable'\np39114\nI00\nsS'value'\np39115\nI00\nssS'name'\np39116\n(dp39117\nS'editable'\np39118\nI01\nsS'value'\np39119\nS'Task Template'\np39120\nssS'data_type'\np39121\n(dp39122\nS'editable'\np39123\nI00\nsS'value'\np39124\nS'entity'\np39125\nssS'entity_type'\np39126\n(dp39127\nS'editable'\np39128\nI00\nsS'value'\np39129\nS'Scene'\np39130\nssS'editable'\np39131\n(dp39132\nS'editable'\np39133\nI00\nsS'value'\np39134\nI01\nssS'unique'\np39135\n(dp39136\nS'editable'\np39137\nI00\nsS'value'\np39138\nI00\nssS'properties'\np39139\n(dp39140\nS'default_value'\np39141\n(dp39142\nS'editable'\np39143\nI00\nsS'value'\np39144\nNssS'summary_default'\np39145\n(dp39146\nS'editable'\np39147\nI01\nsS'value'\np39148\nS'none'\np39149\nssS'valid_types'\np39150\n(dp39151\nS'editable'\np39152\nI01\nsS'value'\np39153\n(lp39154\nS'TaskTemplate'\np39155\nasssS'description'\np39156\n(dp39157\nS'editable'\np39158\nI01\nsS'value'\np39159\ng47\nsssS'created_by'\np39160\n(dp39161\nS'mandatory'\np39162\n(dp39163\nS'editable'\np39164\nI00\nsS'value'\np39165\nI00\nssS'name'\np39166\n(dp39167\nS'editable'\np39168\nI01\nsS'value'\np39169\nS'Created by'\np39170\nssS'data_type'\np39171\n(dp39172\nS'editable'\np39173\nI00\nsS'value'\np39174\nS'entity'\np39175\nssS'entity_type'\np39176\n(dp39177\nS'editable'\np39178\nI00\nsS'value'\np39179\nS'Scene'\np39180\nssS'editable'\np39181\n(dp39182\nS'editable'\np39183\nI00\nsS'value'\np39184\nI00\nssS'unique'\np39185\n(dp39186\nS'editable'\np39187\nI00\nsS'value'\np39188\nI00\nssS'properties'\np39189\n(dp39190\nS'default_value'\np39191\n(dp39192\nS'editable'\np39193\nI00\nsS'value'\np39194\nNssS'summary_default'\np39195\n(dp39196\nS'editable'\np39197\nI01\nsS'value'\np39198\nS'none'\np39199\nssS'valid_types'\np39200\n(dp39201\nS'editable'\np39202\nI01\nsS'value'\np39203\n(lp39204\nS'HumanUser'\np39205\naS'ApiUser'\np39206\nasssS'description'\np39207\n(dp39208\nS'editable'\np39209\nI01\nsS'value'\np39210\ng47\nsssS'sg_status_list'\np39211\n(dp39212\nS'mandatory'\np39213\n(dp39214\nS'editable'\np39215\nI00\nsS'value'\np39216\nI00\nssS'name'\np39217\n(dp39218\nS'editable'\np39219\nI01\nsS'value'\np39220\nS'Status'\np39221\nssS'data_type'\np39222\n(dp39223\nS'editable'\np39224\nI00\nsS'value'\np39225\nS'status_list'\np39226\nssS'entity_type'\np39227\n(dp39228\nS'editable'\np39229\nI00\nsS'value'\np39230\nS'Scene'\np39231\nssS'editable'\np39232\n(dp39233\nS'editable'\np39234\nI00\nsS'value'\np39235\nI01\nssS'unique'\np39236\n(dp39237\nS'editable'\np39238\nI00\nsS'value'\np39239\nI00\nssS'properties'\np39240\n(dp39241\nS'default_value'\np39242\n(dp39243\nS'editable'\np39244\nI01\nsS'value'\np39245\nS'act'\np39246\nssS'valid_values'\np39247\n(dp39248\nS'editable'\np39249\nI01\nsS'value'\np39250\n(lp39251\nS'act'\np39252\naS'cbb'\np39253\naS'cmpt'\np39254\naS'omt'\np39255\naS'hld'\np39256\nassS'summary_default'\np39257\n(dp39258\nS'editable'\np39259\nI01\nsS'value'\np39260\nS'status_list'\np39261\nsssS'description'\np39262\n(dp39263\nS'editable'\np39264\nI01\nsS'value'\np39265\ng47\nsssS'description'\np39266\n(dp39267\nS'mandatory'\np39268\n(dp39269\nS'editable'\np39270\nI00\nsS'value'\np39271\nI00\nssS'name'\np39272\n(dp39273\nS'editable'\np39274\nI01\nsS'value'\np39275\nS'Description'\np39276\nssS'data_type'\np39277\n(dp39278\nS'editable'\np39279\nI00\nsS'value'\np39280\nS'text'\np39281\nssS'entity_type'\np39282\n(dp39283\nS'editable'\np39284\nI00\nsS'value'\np39285\nS'Scene'\np39286\nssS'editable'\np39287\n(dp39288\nS'editable'\np39289\nI00\nsS'value'\np39290\nI01\nssS'unique'\np39291\n(dp39292\nS'editable'\np39293\nI00\nsS'value'\np39294\nI00\nssS'properties'\np39295\n(dp39296\nS'default_value'\np39297\n(dp39298\nS'editable'\np39299\nI00\nsS'value'\np39300\nNssS'summary_default'\np39301\n(dp39302\nS'editable'\np39303\nI01\nsS'value'\np39304\nS'none'\np39305\nsssS'description'\np39306\n(dp39307\nS'editable'\np39308\nI01\nsS'value'\np39309\ng47\nsssS'addressings_cc'\np39310\n(dp39311\nS'mandatory'\np39312\n(dp39313\nS'editable'\np39314\nI00\nsS'value'\np39315\nI00\nssS'name'\np39316\n(dp39317\nS'editable'\np39318\nI01\nsS'value'\np39319\nS'Cc'\np39320\nssS'data_type'\np39321\n(dp39322\nS'editable'\np39323\nI00\nsS'value'\np39324\nS'multi_entity'\np39325\nssS'entity_type'\np39326\n(dp39327\nS'editable'\np39328\nI00\nsS'value'\np39329\nS'Scene'\np39330\nssS'editable'\np39331\n(dp39332\nS'editable'\np39333\nI00\nsS'value'\np39334\nI01\nssS'unique'\np39335\n(dp39336\nS'editable'\np39337\nI00\nsS'value'\np39338\nI00\nssS'properties'\np39339\n(dp39340\nS'default_value'\np39341\n(dp39342\nS'editable'\np39343\nI00\nsS'value'\np39344\nNssS'summary_default'\np39345\n(dp39346\nS'editable'\np39347\nI01\nsS'value'\np39348\nS'none'\np39349\nssS'valid_types'\np39350\n(dp39351\nS'editable'\np39352\nI01\nsS'value'\np39353\n(lp39354\nS'Group'\np39355\naS'HumanUser'\np39356\nasssS'description'\np39357\n(dp39358\nS'editable'\np39359\nI01\nsS'value'\np39360\ng47\nsssS'sg_scene_type'\np39361\n(dp39362\nS'mandatory'\np39363\n(dp39364\nS'editable'\np39365\nI00\nsS'value'\np39366\nI00\nssS'name'\np39367\n(dp39368\nS'editable'\np39369\nI01\nsS'value'\np39370\nS'Type'\np39371\nssS'data_type'\np39372\n(dp39373\nS'editable'\np39374\nI00\nsS'value'\np39375\nS'list'\np39376\nssS'entity_type'\np39377\n(dp39378\nS'editable'\np39379\nI00\nsS'value'\np39380\nS'Scene'\np39381\nssS'editable'\np39382\n(dp39383\nS'editable'\np39384\nI00\nsS'value'\np39385\nI01\nssS'unique'\np39386\n(dp39387\nS'editable'\np39388\nI00\nsS'value'\np39389\nI00\nssS'properties'\np39390\n(dp39391\nS'default_value'\np39392\n(dp39393\nS'editable'\np39394\nI00\nsS'value'\np39395\nNssS'valid_values'\np39396\n(dp39397\nS'editable'\np39398\nI01\nsS'value'\np39399\n(lp39400\nssS'summary_default'\np39401\n(dp39402\nS'editable'\np39403\nI01\nsS'value'\np39404\nS'none'\np39405\nsssS'description'\np39406\n(dp39407\nS'editable'\np39408\nI01\nsS'value'\np39409\ng47\nsssS'shoot_days'\np39410\n(dp39411\nS'mandatory'\np39412\n(dp39413\nS'editable'\np39414\nI00\nsS'value'\np39415\nI00\nssS'name'\np39416\n(dp39417\nS'editable'\np39418\nI01\nsS'value'\np39419\nS'Shoot Days'\np39420\nssS'data_type'\np39421\n(dp39422\nS'editable'\np39423\nI00\nsS'value'\np39424\nS'multi_entity'\np39425\nssS'entity_type'\np39426\n(dp39427\nS'editable'\np39428\nI00\nsS'value'\np39429\nS'Scene'\np39430\nssS'editable'\np39431\n(dp39432\nS'editable'\np39433\nI00\nsS'value'\np39434\nI01\nssS'unique'\np39435\n(dp39436\nS'editable'\np39437\nI00\nsS'value'\np39438\nI00\nssS'properties'\np39439\n(dp39440\nS'default_value'\np39441\n(dp39442\nS'editable'\np39443\nI00\nsS'value'\np39444\nNssS'summary_default'\np39445\n(dp39446\nS'editable'\np39447\nI01\nsS'value'\np39448\nS'none'\np39449\nssS'valid_types'\np39450\n(dp39451\nS'editable'\np39452\nI01\nsS'value'\np39453\n(lp39454\nS'ShootDay'\np39455\nasssS'description'\np39456\n(dp39457\nS'editable'\np39458\nI01\nsS'value'\np39459\ng47\nsssS'step_0'\np39460\n(dp39461\nS'mandatory'\np39462\n(dp39463\nS'editable'\np39464\nI00\nsS'value'\np39465\nI00\nssS'name'\np39466\n(dp39467\nS'editable'\np39468\nI01\nsS'value'\np39469\nS'ALL TASKS'\np39470\nssS'data_type'\np39471\n(dp39472\nS'editable'\np39473\nI00\nsS'value'\np39474\nS'pivot_column'\np39475\nssS'entity_type'\np39476\n(dp39477\nS'editable'\np39478\nI00\nsS'value'\np39479\nS'Scene'\np39480\nssS'editable'\np39481\n(dp39482\nS'editable'\np39483\nI00\nsS'value'\np39484\nI00\nssS'unique'\np39485\n(dp39486\nS'editable'\np39487\nI00\nsS'value'\np39488\nI00\nssS'properties'\np39489\n(dp39490\nS'default_value'\np39491\n(dp39492\nS'editable'\np39493\nI00\nsS'value'\np39494\nNssS'summary_default'\np39495\n(dp39496\nS'editable'\np39497\nI00\nsS'value'\np39498\nS'none'\np39499\nsssS'description'\np39500\n(dp39501\nS'editable'\np39502\nI01\nsS'value'\np39503\ng47\nsssS'assets'\np39504\n(dp39505\nS'mandatory'\np39506\n(dp39507\nS'editable'\np39508\nI00\nsS'value'\np39509\nI00\nssS'name'\np39510\n(dp39511\nS'editable'\np39512\nI01\nsS'value'\np39513\nS'Assets'\np39514\nssS'data_type'\np39515\n(dp39516\nS'editable'\np39517\nI00\nsS'value'\np39518\nS'multi_entity'\np39519\nssS'entity_type'\np39520\n(dp39521\nS'editable'\np39522\nI00\nsS'value'\np39523\nS'Scene'\np39524\nssS'editable'\np39525\n(dp39526\nS'editable'\np39527\nI00\nsS'value'\np39528\nI01\nssS'unique'\np39529\n(dp39530\nS'editable'\np39531\nI00\nsS'value'\np39532\nI00\nssS'properties'\np39533\n(dp39534\nS'default_value'\np39535\n(dp39536\nS'editable'\np39537\nI00\nsS'value'\np39538\nNssS'summary_default'\np39539\n(dp39540\nS'editable'\np39541\nI01\nsS'value'\np39542\nS'none'\np39543\nssS'valid_types'\np39544\n(dp39545\nS'editable'\np39546\nI01\nsS'value'\np39547\n(lp39548\nS'Asset'\np39549\nasssS'description'\np39550\n(dp39551\nS'editable'\np39552\nI01\nsS'value'\np39553\ng47\nsssS'created_at'\np39554\n(dp39555\nS'mandatory'\np39556\n(dp39557\nS'editable'\np39558\nI00\nsS'value'\np39559\nI00\nssS'name'\np39560\n(dp39561\nS'editable'\np39562\nI01\nsS'value'\np39563\nS'Date Created'\np39564\nssS'data_type'\np39565\n(dp39566\nS'editable'\np39567\nI00\nsS'value'\np39568\nS'date_time'\np39569\nssS'entity_type'\np39570\n(dp39571\nS'editable'\np39572\nI00\nsS'value'\np39573\nS'Scene'\np39574\nssS'editable'\np39575\n(dp39576\nS'editable'\np39577\nI00\nsS'value'\np39578\nI00\nssS'unique'\np39579\n(dp39580\nS'editable'\np39581\nI00\nsS'value'\np39582\nI00\nssS'properties'\np39583\n(dp39584\nS'default_value'\np39585\n(dp39586\nS'editable'\np39587\nI00\nsS'value'\np39588\nNssS'summary_default'\np39589\n(dp39590\nS'editable'\np39591\nI01\nsS'value'\np39592\nS'none'\np39593\nsssS'description'\np39594\n(dp39595\nS'editable'\np39596\nI01\nsS'value'\np39597\ng47\nsssS'project'\np39598\n(dp39599\nS'mandatory'\np39600\n(dp39601\nS'editable'\np39602\nI00\nsS'value'\np39603\nI00\nssS'name'\np39604\n(dp39605\nS'editable'\np39606\nI01\nsS'value'\np39607\nS'Project'\np39608\nssS'data_type'\np39609\n(dp39610\nS'editable'\np39611\nI00\nsS'value'\np39612\nS'entity'\np39613\nssS'entity_type'\np39614\n(dp39615\nS'editable'\np39616\nI00\nsS'value'\np39617\nS'Scene'\np39618\nssS'editable'\np39619\n(dp39620\nS'editable'\np39621\nI00\nsS'value'\np39622\nI01\nssS'unique'\np39623\n(dp39624\nS'editable'\np39625\nI00\nsS'value'\np39626\nI00\nssS'properties'\np39627\n(dp39628\nS'default_value'\np39629\n(dp39630\nS'editable'\np39631\nI00\nsS'value'\np39632\nNssS'summary_default'\np39633\n(dp39634\nS'editable'\np39635\nI01\nsS'value'\np39636\nS'none'\np39637\nssS'valid_types'\np39638\n(dp39639\nS'editable'\np39640\nI01\nsS'value'\np39641\n(lp39642\nS'Project'\np39643\nasssS'description'\np39644\n(dp39645\nS'editable'\np39646\nI01\nsS'value'\np39647\ng47\nsssS'filmstrip_image'\np39648\n(dp39649\nS'mandatory'\np39650\n(dp39651\nS'editable'\np39652\nI00\nsS'value'\np39653\nI00\nssS'name'\np39654\n(dp39655\nS'editable'\np39656\nI01\nsS'value'\np39657\nS'Filmstrip Thumbnail'\np39658\nssS'data_type'\np39659\n(dp39660\nS'editable'\np39661\nI00\nsS'value'\np39662\nS'image'\np39663\nssS'entity_type'\np39664\n(dp39665\nS'editable'\np39666\nI00\nsS'value'\np39667\nS'Scene'\np39668\nssS'editable'\np39669\n(dp39670\nS'editable'\np39671\nI00\nsS'value'\np39672\nI01\nssS'unique'\np39673\n(dp39674\nS'editable'\np39675\nI00\nsS'value'\np39676\nI00\nssS'properties'\np39677\n(dp39678\nS'default_value'\np39679\n(dp39680\nS'editable'\np39681\nI00\nsS'value'\np39682\nNssS'summary_default'\np39683\n(dp39684\nS'editable'\np39685\nI01\nsS'value'\np39686\nS'none'\np39687\nsssS'description'\np39688\n(dp39689\nS'editable'\np39690\nI01\nsS'value'\np39691\ng47\nsssS'shots'\np39692\n(dp39693\nS'mandatory'\np39694\n(dp39695\nS'editable'\np39696\nI00\nsS'value'\np39697\nI00\nssS'name'\np39698\n(dp39699\nS'editable'\np39700\nI01\nsS'value'\np39701\nS'Shots'\np39702\nssS'data_type'\np39703\n(dp39704\nS'editable'\np39705\nI00\nsS'value'\np39706\nS'multi_entity'\np39707\nssS'entity_type'\np39708\n(dp39709\nS'editable'\np39710\nI00\nsS'value'\np39711\nS'Scene'\np39712\nssS'editable'\np39713\n(dp39714\nS'editable'\np39715\nI00\nsS'value'\np39716\nI01\nssS'unique'\np39717\n(dp39718\nS'editable'\np39719\nI00\nsS'value'\np39720\nI00\nssS'properties'\np39721\n(dp39722\nS'default_value'\np39723\n(dp39724\nS'editable'\np39725\nI00\nsS'value'\np39726\nNssS'summary_default'\np39727\n(dp39728\nS'editable'\np39729\nI01\nsS'value'\np39730\nS'none'\np39731\nssS'valid_types'\np39732\n(dp39733\nS'editable'\np39734\nI01\nsS'value'\np39735\n(lp39736\nS'Shot'\np39737\nasssS'description'\np39738\n(dp39739\nS'editable'\np39740\nI01\nsS'value'\np39741\ng47\nsssS'tag_list'\np39742\n(dp39743\nS'mandatory'\np39744\n(dp39745\nS'editable'\np39746\nI00\nsS'value'\np39747\nI00\nssS'name'\np39748\n(dp39749\nS'editable'\np39750\nI01\nsS'value'\np39751\nS'Tags'\np39752\nssS'data_type'\np39753\n(dp39754\nS'editable'\np39755\nI00\nsS'value'\np39756\nS'tag_list'\np39757\nssS'entity_type'\np39758\n(dp39759\nS'editable'\np39760\nI00\nsS'value'\np39761\nS'Scene'\np39762\nssS'editable'\np39763\n(dp39764\nS'editable'\np39765\nI00\nsS'value'\np39766\nI01\nssS'unique'\np39767\n(dp39768\nS'editable'\np39769\nI00\nsS'value'\np39770\nI00\nssS'properties'\np39771\n(dp39772\nS'default_value'\np39773\n(dp39774\nS'editable'\np39775\nI00\nsS'value'\np39776\nNssS'summary_default'\np39777\n(dp39778\nS'editable'\np39779\nI01\nsS'value'\np39780\nS'none'\np39781\nssS'valid_types'\np39782\n(dp39783\nS'editable'\np39784\nI01\nsS'value'\np39785\n(lp39786\nS'Tag'\np39787\nasssS'description'\np39788\n(dp39789\nS'editable'\np39790\nI01\nsS'value'\np39791\ng47\nsssS'notes'\np39792\n(dp39793\nS'mandatory'\np39794\n(dp39795\nS'editable'\np39796\nI00\nsS'value'\np39797\nI00\nssS'name'\np39798\n(dp39799\nS'editable'\np39800\nI01\nsS'value'\np39801\nS'Notes'\np39802\nssS'data_type'\np39803\n(dp39804\nS'editable'\np39805\nI00\nsS'value'\np39806\nS'multi_entity'\np39807\nssS'entity_type'\np39808\n(dp39809\nS'editable'\np39810\nI00\nsS'value'\np39811\nS'Scene'\np39812\nssS'editable'\np39813\n(dp39814\nS'editable'\np39815\nI00\nsS'value'\np39816\nI01\nssS'unique'\np39817\n(dp39818\nS'editable'\np39819\nI00\nsS'value'\np39820\nI00\nssS'properties'\np39821\n(dp39822\nS'default_value'\np39823\n(dp39824\nS'editable'\np39825\nI00\nsS'value'\np39826\nNssS'summary_default'\np39827\n(dp39828\nS'editable'\np39829\nI01\nsS'value'\np39830\nS'none'\np39831\nssS'valid_types'\np39832\n(dp39833\nS'editable'\np39834\nI01\nsS'value'\np39835\n(lp39836\nS'Note'\np39837\nasssS'description'\np39838\n(dp39839\nS'editable'\np39840\nI01\nsS'value'\np39841\ng47\nssssS'Project'\np39842\n(dp39843\nS'step_14'\np39844\n(dp39845\nS'mandatory'\np39846\n(dp39847\nS'editable'\np39848\nI00\nsS'value'\np39849\nI00\nssS'name'\np39850\n(dp39851\nS'editable'\np39852\nI01\nsS'value'\np39853\nS'Editorial'\np39854\nssS'data_type'\np39855\n(dp39856\nS'editable'\np39857\nI00\nsS'value'\np39858\nS'pivot_column'\np39859\nssS'entity_type'\np39860\n(dp39861\nS'editable'\np39862\nI00\nsS'value'\np39863\nS'Project'\np39864\nssS'editable'\np39865\n(dp39866\nS'editable'\np39867\nI00\nsS'value'\np39868\nI00\nssS'unique'\np39869\n(dp39870\nS'editable'\np39871\nI00\nsS'value'\np39872\nI00\nssS'properties'\np39873\n(dp39874\nS'default_value'\np39875\n(dp39876\nS'editable'\np39877\nI00\nsS'value'\np39878\nNssS'summary_default'\np39879\n(dp39880\nS'editable'\np39881\nI00\nsS'value'\np39882\nS'none'\np39883\nsssS'description'\np39884\n(dp39885\nS'editable'\np39886\nI01\nsS'value'\np39887\ng47\nsssS'tasks'\np39888\n(dp39889\nS'mandatory'\np39890\n(dp39891\nS'editable'\np39892\nI00\nsS'value'\np39893\nI00\nssS'name'\np39894\n(dp39895\nS'editable'\np39896\nI01\nsS'value'\np39897\nS'Tasks'\np39898\nssS'data_type'\np39899\n(dp39900\nS'editable'\np39901\nI00\nsS'value'\np39902\nS'multi_entity'\np39903\nssS'entity_type'\np39904\n(dp39905\nS'editable'\np39906\nI00\nsS'value'\np39907\nS'Project'\np39908\nssS'editable'\np39909\n(dp39910\nS'editable'\np39911\nI00\nsS'value'\np39912\nI01\nssS'unique'\np39913\n(dp39914\nS'editable'\np39915\nI00\nsS'value'\np39916\nI00\nssS'properties'\np39917\n(dp39918\nS'default_value'\np39919\n(dp39920\nS'editable'\np39921\nI00\nsS'value'\np39922\nNssS'summary_default'\np39923\n(dp39924\nS'editable'\np39925\nI01\nsS'value'\np39926\nS'none'\np39927\nssS'valid_types'\np39928\n(dp39929\nS'editable'\np39930\nI01\nsS'value'\np39931\n(lp39932\nS'Task'\np39933\nasssS'description'\np39934\n(dp39935\nS'editable'\np39936\nI01\nsS'value'\np39937\ng47\nsssS'color'\np39938\n(dp39939\nS'mandatory'\np39940\n(dp39941\nS'editable'\np39942\nI00\nsS'value'\np39943\nI00\nssS'name'\np39944\n(dp39945\nS'editable'\np39946\nI01\nsS'value'\np39947\nS'Color'\np39948\nssS'data_type'\np39949\n(dp39950\nS'editable'\np39951\nI00\nsS'value'\np39952\nS'color'\np39953\nssS'entity_type'\np39954\n(dp39955\nS'editable'\np39956\nI00\nsS'value'\np39957\nS'Project'\np39958\nssS'editable'\np39959\n(dp39960\nS'editable'\np39961\nI00\nsS'value'\np39962\nI01\nssS'unique'\np39963\n(dp39964\nS'editable'\np39965\nI00\nsS'value'\np39966\nI00\nssS'properties'\np39967\n(dp39968\nS'default_value'\np39969\n(dp39970\nS'editable'\np39971\nI00\nsS'value'\np39972\nNssS'summary_default'\np39973\n(dp39974\nS'editable'\np39975\nI01\nsS'value'\np39976\nS'none'\np39977\nsssS'description'\np39978\n(dp39979\nS'editable'\np39980\nI01\nsS'value'\np39981\ng47\nsssS'image'\np39982\n(dp39983\nS'mandatory'\np39984\n(dp39985\nS'editable'\np39986\nI00\nsS'value'\np39987\nI00\nssS'name'\np39988\n(dp39989\nS'editable'\np39990\nI01\nsS'value'\np39991\nS'Thumbnail'\np39992\nssS'data_type'\np39993\n(dp39994\nS'editable'\np39995\nI00\nsS'value'\np39996\nS'image'\np39997\nssS'entity_type'\np39998\n(dp39999\nS'editable'\np40000\nI00\nsS'value'\np40001\nS'Project'\np40002\nssS'editable'\np40003\n(dp40004\nS'editable'\np40005\nI00\nsS'value'\np40006\nI01\nssS'unique'\np40007\n(dp40008\nS'editable'\np40009\nI00\nsS'value'\np40010\nI00\nssS'properties'\np40011\n(dp40012\nS'default_value'\np40013\n(dp40014\nS'editable'\np40015\nI00\nsS'value'\np40016\nNssS'summary_default'\np40017\n(dp40018\nS'editable'\np40019\nI01\nsS'value'\np40020\nS'none'\np40021\nsssS'description'\np40022\n(dp40023\nS'editable'\np40024\nI01\nsS'value'\np40025\ng47\nsssS'updated_at'\np40026\n(dp40027\nS'mandatory'\np40028\n(dp40029\nS'editable'\np40030\nI00\nsS'value'\np40031\nI00\nssS'name'\np40032\n(dp40033\nS'editable'\np40034\nI01\nsS'value'\np40035\nS'Date Updated'\np40036\nssS'data_type'\np40037\n(dp40038\nS'editable'\np40039\nI00\nsS'value'\np40040\nS'date_time'\np40041\nssS'entity_type'\np40042\n(dp40043\nS'editable'\np40044\nI00\nsS'value'\np40045\nS'Project'\np40046\nssS'editable'\np40047\n(dp40048\nS'editable'\np40049\nI00\nsS'value'\np40050\nI00\nssS'unique'\np40051\n(dp40052\nS'editable'\np40053\nI00\nsS'value'\np40054\nI00\nssS'properties'\np40055\n(dp40056\nS'default_value'\np40057\n(dp40058\nS'editable'\np40059\nI00\nsS'value'\np40060\nNssS'summary_default'\np40061\n(dp40062\nS'editable'\np40063\nI01\nsS'value'\np40064\nS'none'\np40065\nsssS'description'\np40066\n(dp40067\nS'editable'\np40068\nI01\nsS'value'\np40069\ng47\nsssS'sg_projectnumber'\np40070\n(dp40071\nS'mandatory'\np40072\n(dp40073\nS'editable'\np40074\nI00\nsS'value'\np40075\nI00\nssS'name'\np40076\n(dp40077\nS'editable'\np40078\nI01\nsS'value'\np40079\nS'projectnumber'\np40080\nssS'data_type'\np40081\n(dp40082\nS'editable'\np40083\nI00\nsS'value'\np40084\nS'text'\np40085\nssS'entity_type'\np40086\n(dp40087\nS'editable'\np40088\nI00\nsS'value'\np40089\nS'Project'\np40090\nssS'editable'\np40091\n(dp40092\nS'editable'\np40093\nI00\nsS'value'\np40094\nI01\nssS'unique'\np40095\n(dp40096\nS'editable'\np40097\nI00\nsS'value'\np40098\nI00\nssS'properties'\np40099\n(dp40100\nS'default_value'\np40101\n(dp40102\nS'editable'\np40103\nI00\nsS'value'\np40104\nNssS'summary_default'\np40105\n(dp40106\nS'editable'\np40107\nI01\nsS'value'\np40108\nS'none'\np40109\nsssS'description'\np40110\n(dp40111\nS'editable'\np40112\nI01\nsS'value'\np40113\ng47\nsssS'duration'\np40114\n(dp40115\nS'mandatory'\np40116\n(dp40117\nS'editable'\np40118\nI00\nsS'value'\np40119\nI00\nssS'name'\np40120\n(dp40121\nS'editable'\np40122\nI01\nsS'value'\np40123\nS'Duration'\np40124\nssS'data_type'\np40125\n(dp40126\nS'editable'\np40127\nI00\nsS'value'\np40128\nS'number'\np40129\nssS'entity_type'\np40130\n(dp40131\nS'editable'\np40132\nI00\nsS'value'\np40133\nS'Project'\np40134\nssS'editable'\np40135\n(dp40136\nS'editable'\np40137\nI00\nsS'value'\np40138\nI00\nssS'unique'\np40139\n(dp40140\nS'editable'\np40141\nI00\nsS'value'\np40142\nI00\nssS'properties'\np40143\n(dp40144\nS'default_value'\np40145\n(dp40146\nS'editable'\np40147\nI00\nsS'value'\np40148\nNssS'summary_default'\np40149\n(dp40150\nS'editable'\np40151\nI01\nsS'value'\np40152\nS'none'\np40153\nsssS'description'\np40154\n(dp40155\nS'editable'\np40156\nI01\nsS'value'\np40157\ng47\nsssS'tank_name'\np40158\n(dp40159\nS'mandatory'\np40160\n(dp40161\nS'editable'\np40162\nI00\nsS'value'\np40163\nI00\nssS'name'\np40164\n(dp40165\nS'editable'\np40166\nI01\nsS'value'\np40167\nS'Tank Name'\np40168\nssS'data_type'\np40169\n(dp40170\nS'editable'\np40171\nI00\nsS'value'\np40172\nS'text'\np40173\nssS'entity_type'\np40174\n(dp40175\nS'editable'\np40176\nI00\nsS'value'\np40177\nS'Project'\np40178\nssS'editable'\np40179\n(dp40180\nS'editable'\np40181\nI00\nsS'value'\np40182\nI01\nssS'unique'\np40183\n(dp40184\nS'editable'\np40185\nI00\nsS'value'\np40186\nI00\nssS'properties'\np40187\n(dp40188\nS'default_value'\np40189\n(dp40190\nS'editable'\np40191\nI00\nsS'value'\np40192\nNssS'summary_default'\np40193\n(dp40194\nS'editable'\np40195\nI01\nsS'value'\np40196\nS'none'\np40197\nsssS'description'\np40198\n(dp40199\nS'editable'\np40200\nI01\nsS'value'\np40201\ng47\nsssS'billboard'\np40202\n(dp40203\nS'mandatory'\np40204\n(dp40205\nS'editable'\np40206\nI00\nsS'value'\np40207\nI00\nssS'name'\np40208\n(dp40209\nS'editable'\np40210\nI01\nsS'value'\np40211\nS'Billboard'\np40212\nssS'data_type'\np40213\n(dp40214\nS'editable'\np40215\nI00\nsS'value'\np40216\nS'url'\np40217\nssS'entity_type'\np40218\n(dp40219\nS'editable'\np40220\nI00\nsS'value'\np40221\nS'Project'\np40222\nssS'editable'\np40223\n(dp40224\nS'editable'\np40225\nI00\nsS'value'\np40226\nI01\nssS'unique'\np40227\n(dp40228\nS'editable'\np40229\nI00\nsS'value'\np40230\nI00\nssS'properties'\np40231\n(dp40232\nS'default_value'\np40233\n(dp40234\nS'editable'\np40235\nI00\nsS'value'\np40236\nNssS'open_in_new_window'\np40237\n(dp40238\nS'editable'\np40239\nI00\nsS'value'\np40240\nI01\nssS'summary_default'\np40241\n(dp40242\nS'editable'\np40243\nI00\nsS'value'\np40244\nS'none'\np40245\nsssS'description'\np40246\n(dp40247\nS'editable'\np40248\nI01\nsS'value'\np40249\ng47\nsssS'cached_display_name'\np40250\n(dp40251\nS'mandatory'\np40252\n(dp40253\nS'editable'\np40254\nI00\nsS'value'\np40255\nI00\nssS'name'\np40256\n(dp40257\nS'editable'\np40258\nI01\nsS'value'\np40259\nS'Cached Display Name'\np40260\nssS'data_type'\np40261\n(dp40262\nS'editable'\np40263\nI00\nsS'value'\np40264\nS'text'\np40265\nssS'entity_type'\np40266\n(dp40267\nS'editable'\np40268\nI00\nsS'value'\np40269\nS'Project'\np40270\nssS'editable'\np40271\n(dp40272\nS'editable'\np40273\nI00\nsS'value'\np40274\nI01\nssS'unique'\np40275\n(dp40276\nS'editable'\np40277\nI00\nsS'value'\np40278\nI00\nssS'properties'\np40279\n(dp40280\nS'default_value'\np40281\n(dp40282\nS'editable'\np40283\nI00\nsS'value'\np40284\nNssS'summary_default'\np40285\n(dp40286\nS'editable'\np40287\nI00\nsS'value'\np40288\nS'none'\np40289\nsssS'description'\np40290\n(dp40291\nS'editable'\np40292\nI01\nsS'value'\np40293\ng47\nsssS'id'\np40294\n(dp40295\nS'mandatory'\np40296\n(dp40297\nS'editable'\np40298\nI00\nsS'value'\np40299\nI00\nssS'name'\np40300\n(dp40301\nS'editable'\np40302\nI01\nsS'value'\np40303\nS'Id'\np40304\nssS'data_type'\np40305\n(dp40306\nS'editable'\np40307\nI00\nsS'value'\np40308\nS'number'\np40309\nssS'entity_type'\np40310\n(dp40311\nS'editable'\np40312\nI00\nsS'value'\np40313\nS'Project'\np40314\nssS'editable'\np40315\n(dp40316\nS'editable'\np40317\nI00\nsS'value'\np40318\nI00\nssS'unique'\np40319\n(dp40320\nS'editable'\np40321\nI00\nsS'value'\np40322\nI00\nssS'properties'\np40323\n(dp40324\nS'default_value'\np40325\n(dp40326\nS'editable'\np40327\nI00\nsS'value'\np40328\nNssS'summary_default'\np40329\n(dp40330\nS'editable'\np40331\nI01\nsS'value'\np40332\nS'none'\np40333\nsssS'description'\np40334\n(dp40335\nS'editable'\np40336\nI01\nsS'value'\np40337\ng47\nsssS'updated_by'\np40338\n(dp40339\nS'mandatory'\np40340\n(dp40341\nS'editable'\np40342\nI00\nsS'value'\np40343\nI00\nssS'name'\np40344\n(dp40345\nS'editable'\np40346\nI01\nsS'value'\np40347\nS'Updated by'\np40348\nssS'data_type'\np40349\n(dp40350\nS'editable'\np40351\nI00\nsS'value'\np40352\nS'entity'\np40353\nssS'entity_type'\np40354\n(dp40355\nS'editable'\np40356\nI00\nsS'value'\np40357\nS'Project'\np40358\nssS'editable'\np40359\n(dp40360\nS'editable'\np40361\nI00\nsS'value'\np40362\nI00\nssS'unique'\np40363\n(dp40364\nS'editable'\np40365\nI00\nsS'value'\np40366\nI00\nssS'properties'\np40367\n(dp40368\nS'default_value'\np40369\n(dp40370\nS'editable'\np40371\nI00\nsS'value'\np40372\nNssS'summary_default'\np40373\n(dp40374\nS'editable'\np40375\nI01\nsS'value'\np40376\nS'none'\np40377\nssS'valid_types'\np40378\n(dp40379\nS'editable'\np40380\nI01\nsS'value'\np40381\n(lp40382\nS'HumanUser'\np40383\naS'ApiUser'\np40384\nasssS'description'\np40385\n(dp40386\nS'editable'\np40387\nI01\nsS'value'\np40388\ng47\nsssS'phases'\np40389\n(dp40390\nS'mandatory'\np40391\n(dp40392\nS'editable'\np40393\nI00\nsS'value'\np40394\nI00\nssS'name'\np40395\n(dp40396\nS'editable'\np40397\nI01\nsS'value'\np40398\nS'Phases'\np40399\nssS'data_type'\np40400\n(dp40401\nS'editable'\np40402\nI00\nsS'value'\np40403\nS'multi_entity'\np40404\nssS'entity_type'\np40405\n(dp40406\nS'editable'\np40407\nI00\nsS'value'\np40408\nS'Project'\np40409\nssS'editable'\np40410\n(dp40411\nS'editable'\np40412\nI00\nsS'value'\np40413\nI01\nssS'unique'\np40414\n(dp40415\nS'editable'\np40416\nI00\nsS'value'\np40417\nI00\nssS'properties'\np40418\n(dp40419\nS'default_value'\np40420\n(dp40421\nS'editable'\np40422\nI00\nsS'value'\np40423\nNssS'summary_default'\np40424\n(dp40425\nS'editable'\np40426\nI00\nsS'value'\np40427\nS'none'\np40428\nssS'valid_types'\np40429\n(dp40430\nS'editable'\np40431\nI00\nsS'value'\np40432\n(lp40433\nS'Phase'\np40434\nasssS'description'\np40435\n(dp40436\nS'editable'\np40437\nI01\nsS'value'\np40438\ng47\nsssS'task_template'\np40439\n(dp40440\nS'mandatory'\np40441\n(dp40442\nS'editable'\np40443\nI00\nsS'value'\np40444\nI00\nssS'name'\np40445\n(dp40446\nS'editable'\np40447\nI01\nsS'value'\np40448\nS'Task Template'\np40449\nssS'data_type'\np40450\n(dp40451\nS'editable'\np40452\nI00\nsS'value'\np40453\nS'entity'\np40454\nssS'entity_type'\np40455\n(dp40456\nS'editable'\np40457\nI00\nsS'value'\np40458\nS'Project'\np40459\nssS'editable'\np40460\n(dp40461\nS'editable'\np40462\nI00\nsS'value'\np40463\nI01\nssS'unique'\np40464\n(dp40465\nS'editable'\np40466\nI00\nsS'value'\np40467\nI00\nssS'properties'\np40468\n(dp40469\nS'default_value'\np40470\n(dp40471\nS'editable'\np40472\nI00\nsS'value'\np40473\nNssS'summary_default'\np40474\n(dp40475\nS'editable'\np40476\nI01\nsS'value'\np40477\nS'none'\np40478\nssS'valid_types'\np40479\n(dp40480\nS'editable'\np40481\nI01\nsS'value'\np40482\n(lp40483\nS'TaskTemplate'\np40484\nasssS'description'\np40485\n(dp40486\nS'editable'\np40487\nI01\nsS'value'\np40488\ng47\nsssS'created_by'\np40489\n(dp40490\nS'mandatory'\np40491\n(dp40492\nS'editable'\np40493\nI00\nsS'value'\np40494\nI00\nssS'name'\np40495\n(dp40496\nS'editable'\np40497\nI01\nsS'value'\np40498\nS'Created by'\np40499\nssS'data_type'\np40500\n(dp40501\nS'editable'\np40502\nI00\nsS'value'\np40503\nS'entity'\np40504\nssS'entity_type'\np40505\n(dp40506\nS'editable'\np40507\nI00\nsS'value'\np40508\nS'Project'\np40509\nssS'editable'\np40510\n(dp40511\nS'editable'\np40512\nI00\nsS'value'\np40513\nI00\nssS'unique'\np40514\n(dp40515\nS'editable'\np40516\nI00\nsS'value'\np40517\nI00\nssS'properties'\np40518\n(dp40519\nS'default_value'\np40520\n(dp40521\nS'editable'\np40522\nI00\nsS'value'\np40523\nNssS'summary_default'\np40524\n(dp40525\nS'editable'\np40526\nI01\nsS'value'\np40527\nS'none'\np40528\nssS'valid_types'\np40529\n(dp40530\nS'editable'\np40531\nI01\nsS'value'\np40532\n(lp40533\nS'HumanUser'\np40534\naS'ApiUser'\np40535\nasssS'description'\np40536\n(dp40537\nS'editable'\np40538\nI01\nsS'value'\np40539\ng47\nsssS'sg_status'\np40540\n(dp40541\nS'mandatory'\np40542\n(dp40543\nS'editable'\np40544\nI00\nsS'value'\np40545\nI00\nssS'name'\np40546\n(dp40547\nS'editable'\np40548\nI01\nsS'value'\np40549\nS'Status'\np40550\nssS'data_type'\np40551\n(dp40552\nS'editable'\np40553\nI00\nsS'value'\np40554\nS'list'\np40555\nssS'entity_type'\np40556\n(dp40557\nS'editable'\np40558\nI00\nsS'value'\np40559\nS'Project'\np40560\nssS'editable'\np40561\n(dp40562\nS'editable'\np40563\nI00\nsS'value'\np40564\nI01\nssS'unique'\np40565\n(dp40566\nS'editable'\np40567\nI00\nsS'value'\np40568\nI00\nssS'properties'\np40569\n(dp40570\nS'default_value'\np40571\n(dp40572\nS'editable'\np40573\nI00\nsS'value'\np40574\nNssS'valid_values'\np40575\n(dp40576\nS'editable'\np40577\nI01\nsS'value'\np40578\n(lp40579\nS'Bidding'\np40580\naS'Active'\np40581\naS'Lost'\np40582\naS'Hold'\np40583\nassS'summary_default'\np40584\n(dp40585\nS'editable'\np40586\nI01\nsS'value'\np40587\nS'none'\np40588\nsssS'description'\np40589\n(dp40590\nS'editable'\np40591\nI01\nsS'value'\np40592\ng47\nsssS'current_user_favorite'\np40593\n(dp40594\nS'mandatory'\np40595\n(dp40596\nS'editable'\np40597\nI00\nsS'value'\np40598\nI00\nssS'name'\np40599\n(dp40600\nS'editable'\np40601\nI01\nsS'value'\np40602\nS'Favorite'\np40603\nssS'data_type'\np40604\n(dp40605\nS'editable'\np40606\nI00\nsS'value'\np40607\nS'checkbox'\np40608\nssS'entity_type'\np40609\n(dp40610\nS'editable'\np40611\nI00\nsS'value'\np40612\nS'Project'\np40613\nssS'editable'\np40614\n(dp40615\nS'editable'\np40616\nI00\nsS'value'\np40617\nI01\nssS'unique'\np40618\n(dp40619\nS'editable'\np40620\nI00\nsS'value'\np40621\nI00\nssS'properties'\np40622\n(dp40623\nS'default_value'\np40624\n(dp40625\nS'editable'\np40626\nI00\nsS'value'\np40627\nNssS'summary_default'\np40628\n(dp40629\nS'editable'\np40630\nI01\nsS'value'\np40631\nS'none'\np40632\nsssS'description'\np40633\n(dp40634\nS'editable'\np40635\nI01\nsS'value'\np40636\ng47\nsssS'last_accessed_by_current_user'\np40637\n(dp40638\nS'mandatory'\np40639\n(dp40640\nS'editable'\np40641\nI00\nsS'value'\np40642\nI00\nssS'name'\np40643\n(dp40644\nS'editable'\np40645\nI01\nsS'value'\np40646\nS'Last Accessed'\np40647\nssS'data_type'\np40648\n(dp40649\nS'editable'\np40650\nI00\nsS'value'\np40651\nS'date_time'\np40652\nssS'entity_type'\np40653\n(dp40654\nS'editable'\np40655\nI00\nsS'value'\np40656\nS'Project'\np40657\nssS'editable'\np40658\n(dp40659\nS'editable'\np40660\nI00\nsS'value'\np40661\nI01\nssS'unique'\np40662\n(dp40663\nS'editable'\np40664\nI00\nsS'value'\np40665\nI00\nssS'properties'\np40666\n(dp40667\nS'default_value'\np40668\n(dp40669\nS'editable'\np40670\nI00\nsS'value'\np40671\nNssS'summary_default'\np40672\n(dp40673\nS'editable'\np40674\nI01\nsS'value'\np40675\nS'none'\np40676\nsssS'description'\np40677\n(dp40678\nS'editable'\np40679\nI01\nsS'value'\np40680\ng47\nsssS'start_date'\np40681\n(dp40682\nS'mandatory'\np40683\n(dp40684\nS'editable'\np40685\nI00\nsS'value'\np40686\nI00\nssS'name'\np40687\n(dp40688\nS'editable'\np40689\nI01\nsS'value'\np40690\nS'Start Date'\np40691\nssS'data_type'\np40692\n(dp40693\nS'editable'\np40694\nI00\nsS'value'\np40695\nS'date'\np40696\nssS'entity_type'\np40697\n(dp40698\nS'editable'\np40699\nI00\nsS'value'\np40700\nS'Project'\np40701\nssS'editable'\np40702\n(dp40703\nS'editable'\np40704\nI00\nsS'value'\np40705\nI00\nssS'unique'\np40706\n(dp40707\nS'editable'\np40708\nI00\nsS'value'\np40709\nI00\nssS'properties'\np40710\n(dp40711\nS'default_value'\np40712\n(dp40713\nS'editable'\np40714\nI00\nsS'value'\np40715\nNssS'summary_default'\np40716\n(dp40717\nS'editable'\np40718\nI01\nsS'value'\np40719\nS'none'\np40720\nsssS'description'\np40721\n(dp40722\nS'editable'\np40723\nI01\nsS'value'\np40724\ng47\nsssS'sg_description'\np40725\n(dp40726\nS'mandatory'\np40727\n(dp40728\nS'editable'\np40729\nI00\nsS'value'\np40730\nI00\nssS'name'\np40731\n(dp40732\nS'editable'\np40733\nI01\nsS'value'\np40734\nS'Description'\np40735\nssS'data_type'\np40736\n(dp40737\nS'editable'\np40738\nI00\nsS'value'\np40739\nS'text'\np40740\nssS'entity_type'\np40741\n(dp40742\nS'editable'\np40743\nI00\nsS'value'\np40744\nS'Project'\np40745\nssS'editable'\np40746\n(dp40747\nS'editable'\np40748\nI00\nsS'value'\np40749\nI01\nssS'unique'\np40750\n(dp40751\nS'editable'\np40752\nI00\nsS'value'\np40753\nI00\nssS'properties'\np40754\n(dp40755\nS'default_value'\np40756\n(dp40757\nS'editable'\np40758\nI00\nsS'value'\np40759\nNssS'summary_default'\np40760\n(dp40761\nS'editable'\np40762\nI01\nsS'value'\np40763\nS'none'\np40764\nsssS'description'\np40765\n(dp40766\nS'editable'\np40767\nI01\nsS'value'\np40768\ng47\nsssS'users'\np40769\n(dp40770\nS'mandatory'\np40771\n(dp40772\nS'editable'\np40773\nI00\nsS'value'\np40774\nI00\nssS'name'\np40775\n(dp40776\nS'editable'\np40777\nI01\nsS'value'\np40778\nS'Users'\np40779\nssS'data_type'\np40780\n(dp40781\nS'editable'\np40782\nI00\nsS'value'\np40783\nS'multi_entity'\np40784\nssS'entity_type'\np40785\n(dp40786\nS'editable'\np40787\nI00\nsS'value'\np40788\nS'Project'\np40789\nssS'editable'\np40790\n(dp40791\nS'editable'\np40792\nI00\nsS'value'\np40793\nI01\nssS'unique'\np40794\n(dp40795\nS'editable'\np40796\nI00\nsS'value'\np40797\nI00\nssS'properties'\np40798\n(dp40799\nS'default_value'\np40800\n(dp40801\nS'editable'\np40802\nI00\nsS'value'\np40803\nNssS'summary_default'\np40804\n(dp40805\nS'editable'\np40806\nI01\nsS'value'\np40807\nS'none'\np40808\nssS'valid_types'\np40809\n(dp40810\nS'editable'\np40811\nI01\nsS'value'\np40812\n(lp40813\nS'HumanUser'\np40814\nasssS'description'\np40815\n(dp40816\nS'editable'\np40817\nI01\nsS'value'\np40818\ng47\nsssS'end_date'\np40819\n(dp40820\nS'mandatory'\np40821\n(dp40822\nS'editable'\np40823\nI00\nsS'value'\np40824\nI00\nssS'name'\np40825\n(dp40826\nS'editable'\np40827\nI01\nsS'value'\np40828\nS'End Date'\np40829\nssS'data_type'\np40830\n(dp40831\nS'editable'\np40832\nI00\nsS'value'\np40833\nS'date'\np40834\nssS'entity_type'\np40835\n(dp40836\nS'editable'\np40837\nI00\nsS'value'\np40838\nS'Project'\np40839\nssS'editable'\np40840\n(dp40841\nS'editable'\np40842\nI00\nsS'value'\np40843\nI00\nssS'unique'\np40844\n(dp40845\nS'editable'\np40846\nI00\nsS'value'\np40847\nI00\nssS'properties'\np40848\n(dp40849\nS'default_value'\np40850\n(dp40851\nS'editable'\np40852\nI00\nsS'value'\np40853\nNssS'summary_default'\np40854\n(dp40855\nS'editable'\np40856\nI01\nsS'value'\np40857\nS'none'\np40858\nsssS'description'\np40859\n(dp40860\nS'editable'\np40861\nI01\nsS'value'\np40862\ng47\nsssS'archived'\np40863\n(dp40864\nS'mandatory'\np40865\n(dp40866\nS'editable'\np40867\nI00\nsS'value'\np40868\nI00\nssS'name'\np40869\n(dp40870\nS'editable'\np40871\nI01\nsS'value'\np40872\nS'Archived'\np40873\nssS'data_type'\np40874\n(dp40875\nS'editable'\np40876\nI00\nsS'value'\np40877\nS'checkbox'\np40878\nssS'entity_type'\np40879\n(dp40880\nS'editable'\np40881\nI00\nsS'value'\np40882\nS'Project'\np40883\nssS'editable'\np40884\n(dp40885\nS'editable'\np40886\nI00\nsS'value'\np40887\nI01\nssS'unique'\np40888\n(dp40889\nS'editable'\np40890\nI00\nsS'value'\np40891\nI00\nssS'properties'\np40892\n(dp40893\nS'default_value'\np40894\n(dp40895\nS'editable'\np40896\nI00\nsS'value'\np40897\nI00\nssS'summary_default'\np40898\n(dp40899\nS'editable'\np40900\nI00\nsS'value'\np40901\nS'none'\np40902\nsssS'description'\np40903\n(dp40904\nS'editable'\np40905\nI01\nsS'value'\np40906\ng47\nsssS'step_0'\np40907\n(dp40908\nS'mandatory'\np40909\n(dp40910\nS'editable'\np40911\nI00\nsS'value'\np40912\nI00\nssS'name'\np40913\n(dp40914\nS'editable'\np40915\nI01\nsS'value'\np40916\nS'ALL TASKS'\np40917\nssS'data_type'\np40918\n(dp40919\nS'editable'\np40920\nI00\nsS'value'\np40921\nS'pivot_column'\np40922\nssS'entity_type'\np40923\n(dp40924\nS'editable'\np40925\nI00\nsS'value'\np40926\nS'Project'\np40927\nssS'editable'\np40928\n(dp40929\nS'editable'\np40930\nI00\nsS'value'\np40931\nI00\nssS'unique'\np40932\n(dp40933\nS'editable'\np40934\nI00\nsS'value'\np40935\nI00\nssS'properties'\np40936\n(dp40937\nS'default_value'\np40938\n(dp40939\nS'editable'\np40940\nI00\nsS'value'\np40941\nNssS'summary_default'\np40942\n(dp40943\nS'editable'\np40944\nI00\nsS'value'\np40945\nS'none'\np40946\nsssS'description'\np40947\n(dp40948\nS'editable'\np40949\nI01\nsS'value'\np40950\ng47\nsssS'name'\np40951\n(dp40952\nS'mandatory'\np40953\n(dp40954\nS'editable'\np40955\nI00\nsS'value'\np40956\nI01\nssS'name'\np40957\n(dp40958\nS'editable'\np40959\nI01\nsS'value'\np40960\nS'Project Name'\np40961\nssS'data_type'\np40962\n(dp40963\nS'editable'\np40964\nI00\nsS'value'\np40965\nS'text'\np40966\nssS'entity_type'\np40967\n(dp40968\nS'editable'\np40969\nI00\nsS'value'\np40970\nS'Project'\np40971\nssS'editable'\np40972\n(dp40973\nS'editable'\np40974\nI00\nsS'value'\np40975\nI01\nssS'unique'\np40976\n(dp40977\nS'editable'\np40978\nI00\nsS'value'\np40979\nI01\nssS'properties'\np40980\n(dp40981\nS'default_value'\np40982\n(dp40983\nS'editable'\np40984\nI00\nsS'value'\np40985\nNssS'summary_default'\np40986\n(dp40987\nS'editable'\np40988\nI01\nsS'value'\np40989\nS'none'\np40990\nsssS'description'\np40991\n(dp40992\nS'editable'\np40993\nI01\nsS'value'\np40994\ng47\nsssS'created_at'\np40995\n(dp40996\nS'mandatory'\np40997\n(dp40998\nS'editable'\np40999\nI00\nsS'value'\np41000\nI00\nssS'name'\np41001\n(dp41002\nS'editable'\np41003\nI01\nsS'value'\np41004\nS'Date Created'\np41005\nssS'data_type'\np41006\n(dp41007\nS'editable'\np41008\nI00\nsS'value'\np41009\nS'date_time'\np41010\nssS'entity_type'\np41011\n(dp41012\nS'editable'\np41013\nI00\nsS'value'\np41014\nS'Project'\np41015\nssS'editable'\np41016\n(dp41017\nS'editable'\np41018\nI00\nsS'value'\np41019\nI00\nssS'unique'\np41020\n(dp41021\nS'editable'\np41022\nI00\nsS'value'\np41023\nI00\nssS'properties'\np41024\n(dp41025\nS'default_value'\np41026\n(dp41027\nS'editable'\np41028\nI00\nsS'value'\np41029\nNssS'summary_default'\np41030\n(dp41031\nS'editable'\np41032\nI01\nsS'value'\np41033\nS'none'\np41034\nsssS'description'\np41035\n(dp41036\nS'editable'\np41037\nI01\nsS'value'\np41038\ng47\nsssS'filmstrip_image'\np41039\n(dp41040\nS'mandatory'\np41041\n(dp41042\nS'editable'\np41043\nI00\nsS'value'\np41044\nI00\nssS'name'\np41045\n(dp41046\nS'editable'\np41047\nI01\nsS'value'\np41048\nS'Filmstrip Thumbnail'\np41049\nssS'data_type'\np41050\n(dp41051\nS'editable'\np41052\nI00\nsS'value'\np41053\nS'image'\np41054\nssS'entity_type'\np41055\n(dp41056\nS'editable'\np41057\nI00\nsS'value'\np41058\nS'Project'\np41059\nssS'editable'\np41060\n(dp41061\nS'editable'\np41062\nI00\nsS'value'\np41063\nI01\nssS'unique'\np41064\n(dp41065\nS'editable'\np41066\nI00\nsS'value'\np41067\nI00\nssS'properties'\np41068\n(dp41069\nS'default_value'\np41070\n(dp41071\nS'editable'\np41072\nI00\nsS'value'\np41073\nNssS'summary_default'\np41074\n(dp41075\nS'editable'\np41076\nI01\nsS'value'\np41077\nS'none'\np41078\nsssS'description'\np41079\n(dp41080\nS'editable'\np41081\nI01\nsS'value'\np41082\ng47\nsssS'layout_project'\np41083\n(dp41084\nS'mandatory'\np41085\n(dp41086\nS'editable'\np41087\nI00\nsS'value'\np41088\nI00\nssS'name'\np41089\n(dp41090\nS'editable'\np41091\nI01\nsS'value'\np41092\nS'Layout Template'\np41093\nssS'data_type'\np41094\n(dp41095\nS'editable'\np41096\nI00\nsS'value'\np41097\nS'entity'\np41098\nssS'entity_type'\np41099\n(dp41100\nS'editable'\np41101\nI00\nsS'value'\np41102\nS'Project'\np41103\nssS'editable'\np41104\n(dp41105\nS'editable'\np41106\nI00\nsS'value'\np41107\nI00\nssS'unique'\np41108\n(dp41109\nS'editable'\np41110\nI00\nsS'value'\np41111\nI00\nssS'properties'\np41112\n(dp41113\nS'default_value'\np41114\n(dp41115\nS'editable'\np41116\nI00\nsS'value'\np41117\nNssS'summary_default'\np41118\n(dp41119\nS'editable'\np41120\nI00\nsS'value'\np41121\nS'none'\np41122\nssS'valid_types'\np41123\n(dp41124\nS'editable'\np41125\nI00\nsS'value'\np41126\n(lp41127\nS'Project'\np41128\nasssS'description'\np41129\n(dp41130\nS'editable'\np41131\nI01\nsS'value'\np41132\ng47\nsssS'sg_type'\np41133\n(dp41134\nS'mandatory'\np41135\n(dp41136\nS'editable'\np41137\nI00\nsS'value'\np41138\nI00\nssS'name'\np41139\n(dp41140\nS'editable'\np41141\nI01\nsS'value'\np41142\nS'Type'\np41143\nssS'data_type'\np41144\n(dp41145\nS'editable'\np41146\nI00\nsS'value'\np41147\nS'list'\np41148\nssS'entity_type'\np41149\n(dp41150\nS'editable'\np41151\nI00\nsS'value'\np41152\nS'Project'\np41153\nssS'editable'\np41154\n(dp41155\nS'editable'\np41156\nI00\nsS'value'\np41157\nI01\nssS'unique'\np41158\n(dp41159\nS'editable'\np41160\nI00\nsS'value'\np41161\nI00\nssS'properties'\np41162\n(dp41163\nS'default_value'\np41164\n(dp41165\nS'editable'\np41166\nI00\nsS'value'\np41167\nNssS'valid_values'\np41168\n(dp41169\nS'editable'\np41170\nI01\nsS'value'\np41171\n(lp41172\nS'Short Film'\np41173\naS'Feature Film'\np41174\naS'Commercial'\np41175\naS'Effects'\np41176\naS'Game Cinematic'\np41177\naS'Other'\np41178\naS'(this list can be customized)'\np41179\nassS'summary_default'\np41180\n(dp41181\nS'editable'\np41182\nI01\nsS'value'\np41183\nS'none'\np41184\nsssS'description'\np41185\n(dp41186\nS'editable'\np41187\nI01\nsS'value'\np41188\ng47\nsssS'tag_list'\np41189\n(dp41190\nS'mandatory'\np41191\n(dp41192\nS'editable'\np41193\nI00\nsS'value'\np41194\nI00\nssS'name'\np41195\n(dp41196\nS'editable'\np41197\nI01\nsS'value'\np41198\nS'Tags'\np41199\nssS'data_type'\np41200\n(dp41201\nS'editable'\np41202\nI00\nsS'value'\np41203\nS'tag_list'\np41204\nssS'entity_type'\np41205\n(dp41206\nS'editable'\np41207\nI00\nsS'value'\np41208\nS'Project'\np41209\nssS'editable'\np41210\n(dp41211\nS'editable'\np41212\nI00\nsS'value'\np41213\nI01\nssS'unique'\np41214\n(dp41215\nS'editable'\np41216\nI00\nsS'value'\np41217\nI00\nssS'properties'\np41218\n(dp41219\nS'default_value'\np41220\n(dp41221\nS'editable'\np41222\nI00\nsS'value'\np41223\nNssS'summary_default'\np41224\n(dp41225\nS'editable'\np41226\nI01\nsS'value'\np41227\nS'none'\np41228\nssS'valid_types'\np41229\n(dp41230\nS'editable'\np41231\nI01\nsS'value'\np41232\n(lp41233\nS'Tag'\np41234\nasssS'description'\np41235\n(dp41236\nS'editable'\np41237\nI01\nsS'value'\np41238\ng47\nssssS'Version'\np41239\n(dp41240\nS'sg_version_type'\np41241\n(dp41242\nS'mandatory'\np41243\n(dp41244\nS'editable'\np41245\nI00\nsS'value'\np41246\nI00\nssS'name'\np41247\n(dp41248\nS'editable'\np41249\nI01\nsS'value'\np41250\nS'Type'\np41251\nssS'data_type'\np41252\n(dp41253\nS'editable'\np41254\nI00\nsS'value'\np41255\nS'list'\np41256\nssS'entity_type'\np41257\n(dp41258\nS'editable'\np41259\nI00\nsS'value'\np41260\nS'Version'\np41261\nssS'editable'\np41262\n(dp41263\nS'editable'\np41264\nI00\nsS'value'\np41265\nI01\nssS'unique'\np41266\n(dp41267\nS'editable'\np41268\nI00\nsS'value'\np41269\nI00\nssS'properties'\np41270\n(dp41271\nS'default_value'\np41272\n(dp41273\nS'editable'\np41274\nI00\nsS'value'\np41275\nNssS'valid_values'\np41276\n(dp41277\nS'editable'\np41278\nI01\nsS'value'\np41279\n(lp41280\nssS'summary_default'\np41281\n(dp41282\nS'editable'\np41283\nI01\nsS'value'\np41284\nS'none'\np41285\nsssS'description'\np41286\n(dp41287\nS'editable'\np41288\nI01\nsS'value'\np41289\ng47\nsssS'open_notes_count'\np41290\n(dp41291\nS'mandatory'\np41292\n(dp41293\nS'editable'\np41294\nI00\nsS'value'\np41295\nI00\nssS'name'\np41296\n(dp41297\nS'editable'\np41298\nI01\nsS'value'\np41299\nS'Open Notes Count'\np41300\nssS'data_type'\np41301\n(dp41302\nS'editable'\np41303\nI00\nsS'value'\np41304\nS'text'\np41305\nssS'entity_type'\np41306\n(dp41307\nS'editable'\np41308\nI00\nsS'value'\np41309\nS'Version'\np41310\nssS'editable'\np41311\n(dp41312\nS'editable'\np41313\nI00\nsS'value'\np41314\nI00\nssS'unique'\np41315\n(dp41316\nS'editable'\np41317\nI00\nsS'value'\np41318\nI00\nssS'properties'\np41319\n(dp41320\nS'default_value'\np41321\n(dp41322\nS'editable'\np41323\nI00\nsS'value'\np41324\nNssS'summary_default'\np41325\n(dp41326\nS'editable'\np41327\nI01\nsS'value'\np41328\nS'none'\np41329\nsssS'description'\np41330\n(dp41331\nS'editable'\np41332\nI01\nsS'value'\np41333\ng47\nsssS'code'\np41334\n(dp41335\nS'mandatory'\np41336\n(dp41337\nS'editable'\np41338\nI00\nsS'value'\np41339\nI01\nssS'name'\np41340\n(dp41341\nS'editable'\np41342\nI01\nsS'value'\np41343\nS'Version Name'\np41344\nssS'data_type'\np41345\n(dp41346\nS'editable'\np41347\nI00\nsS'value'\np41348\nS'text'\np41349\nssS'entity_type'\np41350\n(dp41351\nS'editable'\np41352\nI00\nsS'value'\np41353\nS'Version'\np41354\nssS'editable'\np41355\n(dp41356\nS'editable'\np41357\nI00\nsS'value'\np41358\nI01\nssS'unique'\np41359\n(dp41360\nS'editable'\np41361\nI00\nsS'value'\np41362\nI00\nssS'properties'\np41363\n(dp41364\nS'default_value'\np41365\n(dp41366\nS'editable'\np41367\nI00\nsS'value'\np41368\nNssS'summary_default'\np41369\n(dp41370\nS'editable'\np41371\nI01\nsS'value'\np41372\nS'none'\np41373\nsssS'description'\np41374\n(dp41375\nS'editable'\np41376\nI01\nsS'value'\np41377\ng47\nsssS'playlists'\np41378\n(dp41379\nS'mandatory'\np41380\n(dp41381\nS'editable'\np41382\nI00\nsS'value'\np41383\nI00\nssS'name'\np41384\n(dp41385\nS'editable'\np41386\nI01\nsS'value'\np41387\nS'Playlists'\np41388\nssS'data_type'\np41389\n(dp41390\nS'editable'\np41391\nI00\nsS'value'\np41392\nS'multi_entity'\np41393\nssS'entity_type'\np41394\n(dp41395\nS'editable'\np41396\nI00\nsS'value'\np41397\nS'Version'\np41398\nssS'editable'\np41399\n(dp41400\nS'editable'\np41401\nI00\nsS'value'\np41402\nI01\nssS'unique'\np41403\n(dp41404\nS'editable'\np41405\nI00\nsS'value'\np41406\nI00\nssS'properties'\np41407\n(dp41408\nS'default_value'\np41409\n(dp41410\nS'editable'\np41411\nI00\nsS'value'\np41412\nNssS'summary_default'\np41413\n(dp41414\nS'editable'\np41415\nI01\nsS'value'\np41416\nS'none'\np41417\nssS'valid_types'\np41418\n(dp41419\nS'editable'\np41420\nI01\nsS'value'\np41421\n(lp41422\nS'Playlist'\np41423\nasssS'description'\np41424\n(dp41425\nS'editable'\np41426\nI01\nsS'value'\np41427\ng47\nsssS'sg_task'\np41428\n(dp41429\nS'mandatory'\np41430\n(dp41431\nS'editable'\np41432\nI00\nsS'value'\np41433\nI00\nssS'name'\np41434\n(dp41435\nS'editable'\np41436\nI01\nsS'value'\np41437\nS'Task'\np41438\nssS'data_type'\np41439\n(dp41440\nS'editable'\np41441\nI00\nsS'value'\np41442\nS'entity'\np41443\nssS'entity_type'\np41444\n(dp41445\nS'editable'\np41446\nI00\nsS'value'\np41447\nS'Version'\np41448\nssS'editable'\np41449\n(dp41450\nS'editable'\np41451\nI00\nsS'value'\np41452\nI01\nssS'unique'\np41453\n(dp41454\nS'editable'\np41455\nI00\nsS'value'\np41456\nI00\nssS'properties'\np41457\n(dp41458\nS'default_value'\np41459\n(dp41460\nS'editable'\np41461\nI00\nsS'value'\np41462\nNssS'summary_default'\np41463\n(dp41464\nS'editable'\np41465\nI01\nsS'value'\np41466\nS'none'\np41467\nssS'valid_types'\np41468\n(dp41469\nS'editable'\np41470\nI01\nsS'value'\np41471\n(lp41472\nS'Task'\np41473\nasssS'description'\np41474\n(dp41475\nS'editable'\np41476\nI01\nsS'value'\np41477\ng47\nsssS'image'\np41478\n(dp41479\nS'mandatory'\np41480\n(dp41481\nS'editable'\np41482\nI00\nsS'value'\np41483\nI00\nssS'name'\np41484\n(dp41485\nS'editable'\np41486\nI01\nsS'value'\np41487\nS'Thumbnail'\np41488\nssS'data_type'\np41489\n(dp41490\nS'editable'\np41491\nI00\nsS'value'\np41492\nS'image'\np41493\nssS'entity_type'\np41494\n(dp41495\nS'editable'\np41496\nI00\nsS'value'\np41497\nS'Version'\np41498\nssS'editable'\np41499\n(dp41500\nS'editable'\np41501\nI00\nsS'value'\np41502\nI01\nssS'unique'\np41503\n(dp41504\nS'editable'\np41505\nI00\nsS'value'\np41506\nI00\nssS'properties'\np41507\n(dp41508\nS'default_value'\np41509\n(dp41510\nS'editable'\np41511\nI00\nsS'value'\np41512\nNssS'summary_default'\np41513\n(dp41514\nS'editable'\np41515\nI01\nsS'value'\np41516\nS'none'\np41517\nsssS'description'\np41518\n(dp41519\nS'editable'\np41520\nI01\nsS'value'\np41521\ng47\nsssS'updated_at'\np41522\n(dp41523\nS'mandatory'\np41524\n(dp41525\nS'editable'\np41526\nI00\nsS'value'\np41527\nI00\nssS'name'\np41528\n(dp41529\nS'editable'\np41530\nI01\nsS'value'\np41531\nS'Date Updated'\np41532\nssS'data_type'\np41533\n(dp41534\nS'editable'\np41535\nI00\nsS'value'\np41536\nS'date_time'\np41537\nssS'entity_type'\np41538\n(dp41539\nS'editable'\np41540\nI00\nsS'value'\np41541\nS'Version'\np41542\nssS'editable'\np41543\n(dp41544\nS'editable'\np41545\nI00\nsS'value'\np41546\nI00\nssS'unique'\np41547\n(dp41548\nS'editable'\np41549\nI00\nsS'value'\np41550\nI00\nssS'properties'\np41551\n(dp41552\nS'default_value'\np41553\n(dp41554\nS'editable'\np41555\nI00\nsS'value'\np41556\nNssS'summary_default'\np41557\n(dp41558\nS'editable'\np41559\nI01\nsS'value'\np41560\nS'none'\np41561\nsssS'description'\np41562\n(dp41563\nS'editable'\np41564\nI01\nsS'value'\np41565\ng47\nsssS'sg_uploaded_movie_frame_rate'\np41566\n(dp41567\nS'mandatory'\np41568\n(dp41569\nS'editable'\np41570\nI00\nsS'value'\np41571\nI00\nssS'name'\np41572\n(dp41573\nS'editable'\np41574\nI01\nsS'value'\np41575\nS'Uploaded Movie Frame Rate'\np41576\nssS'data_type'\np41577\n(dp41578\nS'editable'\np41579\nI00\nsS'value'\np41580\nS'float'\np41581\nssS'entity_type'\np41582\n(dp41583\nS'editable'\np41584\nI00\nsS'value'\np41585\nS'Version'\np41586\nssS'editable'\np41587\n(dp41588\nS'editable'\np41589\nI00\nsS'value'\np41590\nI01\nssS'unique'\np41591\n(dp41592\nS'editable'\np41593\nI00\nsS'value'\np41594\nI00\nssS'properties'\np41595\n(dp41596\nS'default_value'\np41597\n(dp41598\nS'editable'\np41599\nI00\nsS'value'\np41600\nNssS'summary_default'\np41601\n(dp41602\nS'editable'\np41603\nI00\nsS'value'\np41604\nS'none'\np41605\nsssS'description'\np41606\n(dp41607\nS'editable'\np41608\nI01\nsS'value'\np41609\ng47\nsssS'sg_path_to_frames'\np41610\n(dp41611\nS'mandatory'\np41612\n(dp41613\nS'editable'\np41614\nI00\nsS'value'\np41615\nI00\nssS'name'\np41616\n(dp41617\nS'editable'\np41618\nI01\nsS'value'\np41619\nS'Path to Frames'\np41620\nssS'data_type'\np41621\n(dp41622\nS'editable'\np41623\nI00\nsS'value'\np41624\nS'text'\np41625\nssS'entity_type'\np41626\n(dp41627\nS'editable'\np41628\nI00\nsS'value'\np41629\nS'Version'\np41630\nssS'editable'\np41631\n(dp41632\nS'editable'\np41633\nI00\nsS'value'\np41634\nI01\nssS'unique'\np41635\n(dp41636\nS'editable'\np41637\nI00\nsS'value'\np41638\nI00\nssS'properties'\np41639\n(dp41640\nS'default_value'\np41641\n(dp41642\nS'editable'\np41643\nI00\nsS'value'\np41644\nNssS'summary_default'\np41645\n(dp41646\nS'editable'\np41647\nI01\nsS'value'\np41648\nS'none'\np41649\nsssS'description'\np41650\n(dp41651\nS'editable'\np41652\nI01\nsS'value'\np41653\nS'Location of the high res frames on your local filesystem. Used for playback of high resolution frames.'\np41654\nsssS'tasks'\np41655\n(dp41656\nS'mandatory'\np41657\n(dp41658\nS'editable'\np41659\nI00\nsS'value'\np41660\nI00\nssS'name'\np41661\n(dp41662\nS'editable'\np41663\nI01\nsS'value'\np41664\nS'Tasks'\np41665\nssS'data_type'\np41666\n(dp41667\nS'editable'\np41668\nI00\nsS'value'\np41669\nS'multi_entity'\np41670\nssS'entity_type'\np41671\n(dp41672\nS'editable'\np41673\nI00\nsS'value'\np41674\nS'Version'\np41675\nssS'editable'\np41676\n(dp41677\nS'editable'\np41678\nI00\nsS'value'\np41679\nI01\nssS'unique'\np41680\n(dp41681\nS'editable'\np41682\nI00\nsS'value'\np41683\nI00\nssS'properties'\np41684\n(dp41685\nS'default_value'\np41686\n(dp41687\nS'editable'\np41688\nI00\nsS'value'\np41689\nNssS'summary_default'\np41690\n(dp41691\nS'editable'\np41692\nI01\nsS'value'\np41693\nS'none'\np41694\nssS'valid_types'\np41695\n(dp41696\nS'editable'\np41697\nI01\nsS'value'\np41698\n(lp41699\nS'Task'\np41700\nasssS'description'\np41701\n(dp41702\nS'editable'\np41703\nI01\nsS'value'\np41704\ng47\nsssS'sg_department'\np41705\n(dp41706\nS'mandatory'\np41707\n(dp41708\nS'editable'\np41709\nI00\nsS'value'\np41710\nI00\nssS'name'\np41711\n(dp41712\nS'editable'\np41713\nI01\nsS'value'\np41714\nS'Department'\np41715\nssS'data_type'\np41716\n(dp41717\nS'editable'\np41718\nI00\nsS'value'\np41719\nS'text'\np41720\nssS'entity_type'\np41721\n(dp41722\nS'editable'\np41723\nI00\nsS'value'\np41724\nS'Version'\np41725\nssS'editable'\np41726\n(dp41727\nS'editable'\np41728\nI00\nsS'value'\np41729\nI01\nssS'unique'\np41730\n(dp41731\nS'editable'\np41732\nI00\nsS'value'\np41733\nI00\nssS'properties'\np41734\n(dp41735\nS'default_value'\np41736\n(dp41737\nS'editable'\np41738\nI00\nsS'value'\np41739\nNssS'summary_default'\np41740\n(dp41741\nS'editable'\np41742\nI01\nsS'value'\np41743\nS'none'\np41744\nsssS'description'\np41745\n(dp41746\nS'editable'\np41747\nI01\nsS'value'\np41748\nS'The department the Version was submitted from. This is used to find the latest Version from the same department.'\np41749\nsssS'cached_display_name'\np41750\n(dp41751\nS'mandatory'\np41752\n(dp41753\nS'editable'\np41754\nI00\nsS'value'\np41755\nI00\nssS'name'\np41756\n(dp41757\nS'editable'\np41758\nI01\nsS'value'\np41759\nS'Cached Display Name'\np41760\nssS'data_type'\np41761\n(dp41762\nS'editable'\np41763\nI00\nsS'value'\np41764\nS'text'\np41765\nssS'entity_type'\np41766\n(dp41767\nS'editable'\np41768\nI00\nsS'value'\np41769\nS'Version'\np41770\nssS'editable'\np41771\n(dp41772\nS'editable'\np41773\nI00\nsS'value'\np41774\nI01\nssS'unique'\np41775\n(dp41776\nS'editable'\np41777\nI00\nsS'value'\np41778\nI00\nssS'properties'\np41779\n(dp41780\nS'default_value'\np41781\n(dp41782\nS'editable'\np41783\nI00\nsS'value'\np41784\nNssS'summary_default'\np41785\n(dp41786\nS'editable'\np41787\nI00\nsS'value'\np41788\nS'none'\np41789\nsssS'description'\np41790\n(dp41791\nS'editable'\np41792\nI01\nsS'value'\np41793\ng47\nsssS'frame_range'\np41794\n(dp41795\nS'mandatory'\np41796\n(dp41797\nS'editable'\np41798\nI00\nsS'value'\np41799\nI00\nssS'name'\np41800\n(dp41801\nS'editable'\np41802\nI01\nsS'value'\np41803\nS'Frame Range'\np41804\nssS'data_type'\np41805\n(dp41806\nS'editable'\np41807\nI00\nsS'value'\np41808\nS'text'\np41809\nssS'entity_type'\np41810\n(dp41811\nS'editable'\np41812\nI00\nsS'value'\np41813\nS'Version'\np41814\nssS'editable'\np41815\n(dp41816\nS'editable'\np41817\nI00\nsS'value'\np41818\nI01\nssS'unique'\np41819\n(dp41820\nS'editable'\np41821\nI00\nsS'value'\np41822\nI00\nssS'properties'\np41823\n(dp41824\nS'default_value'\np41825\n(dp41826\nS'editable'\np41827\nI00\nsS'value'\np41828\nNssS'summary_default'\np41829\n(dp41830\nS'editable'\np41831\nI01\nsS'value'\np41832\nS'none'\np41833\nsssS'description'\np41834\n(dp41835\nS'editable'\np41836\nI01\nsS'value'\np41837\ng47\nsssS'updated_by'\np41838\n(dp41839\nS'mandatory'\np41840\n(dp41841\nS'editable'\np41842\nI00\nsS'value'\np41843\nI00\nssS'name'\np41844\n(dp41845\nS'editable'\np41846\nI01\nsS'value'\np41847\nS'Updated by'\np41848\nssS'data_type'\np41849\n(dp41850\nS'editable'\np41851\nI00\nsS'value'\np41852\nS'entity'\np41853\nssS'entity_type'\np41854\n(dp41855\nS'editable'\np41856\nI00\nsS'value'\np41857\nS'Version'\np41858\nssS'editable'\np41859\n(dp41860\nS'editable'\np41861\nI00\nsS'value'\np41862\nI00\nssS'unique'\np41863\n(dp41864\nS'editable'\np41865\nI00\nsS'value'\np41866\nI00\nssS'properties'\np41867\n(dp41868\nS'default_value'\np41869\n(dp41870\nS'editable'\np41871\nI00\nsS'value'\np41872\nNssS'summary_default'\np41873\n(dp41874\nS'editable'\np41875\nI01\nsS'value'\np41876\nS'none'\np41877\nssS'valid_types'\np41878\n(dp41879\nS'editable'\np41880\nI01\nsS'value'\np41881\n(lp41882\nS'HumanUser'\np41883\naS'ApiUser'\np41884\nasssS'description'\np41885\n(dp41886\nS'editable'\np41887\nI01\nsS'value'\np41888\ng47\nsssS'sg_path_to_movie'\np41889\n(dp41890\nS'mandatory'\np41891\n(dp41892\nS'editable'\np41893\nI00\nsS'value'\np41894\nI00\nssS'name'\np41895\n(dp41896\nS'editable'\np41897\nI01\nsS'value'\np41898\nS'Path to Movie'\np41899\nssS'data_type'\np41900\n(dp41901\nS'editable'\np41902\nI00\nsS'value'\np41903\nS'text'\np41904\nssS'entity_type'\np41905\n(dp41906\nS'editable'\np41907\nI00\nsS'value'\np41908\nS'Version'\np41909\nssS'editable'\np41910\n(dp41911\nS'editable'\np41912\nI00\nsS'value'\np41913\nI01\nssS'unique'\np41914\n(dp41915\nS'editable'\np41916\nI00\nsS'value'\np41917\nI00\nssS'properties'\np41918\n(dp41919\nS'default_value'\np41920\n(dp41921\nS'editable'\np41922\nI00\nsS'value'\np41923\nNssS'summary_default'\np41924\n(dp41925\nS'editable'\np41926\nI01\nsS'value'\np41927\nS'none'\np41928\nsssS'description'\np41929\n(dp41930\nS'editable'\np41931\nI01\nsS'value'\np41932\nS'Location of the movie on your local filesystem (not uploaded). Used for playback of lower resolution movie media stored locally.'\np41933\nsssS'sg_uploaded_movie_webm'\np41934\n(dp41935\nS'mandatory'\np41936\n(dp41937\nS'editable'\np41938\nI00\nsS'value'\np41939\nI00\nssS'name'\np41940\n(dp41941\nS'editable'\np41942\nI01\nsS'value'\np41943\nS'Uploaded Movie WebM'\np41944\nssS'data_type'\np41945\n(dp41946\nS'editable'\np41947\nI00\nsS'value'\np41948\nS'url'\np41949\nssS'entity_type'\np41950\n(dp41951\nS'editable'\np41952\nI00\nsS'value'\np41953\nS'Version'\np41954\nssS'editable'\np41955\n(dp41956\nS'editable'\np41957\nI00\nsS'value'\np41958\nI01\nssS'unique'\np41959\n(dp41960\nS'editable'\np41961\nI00\nsS'value'\np41962\nI00\nssS'properties'\np41963\n(dp41964\nS'default_value'\np41965\n(dp41966\nS'editable'\np41967\nI00\nsS'value'\np41968\nNssS'open_in_new_window'\np41969\n(dp41970\nS'editable'\np41971\nI00\nsS'value'\np41972\nI01\nssS'summary_default'\np41973\n(dp41974\nS'editable'\np41975\nI00\nsS'value'\np41976\nS'none'\np41977\nsssS'description'\np41978\n(dp41979\nS'editable'\np41980\nI01\nsS'value'\np41981\ng47\nsssS'open_notes'\np41982\n(dp41983\nS'mandatory'\np41984\n(dp41985\nS'editable'\np41986\nI00\nsS'value'\np41987\nI00\nssS'name'\np41988\n(dp41989\nS'editable'\np41990\nI01\nsS'value'\np41991\nS'Open Notes'\np41992\nssS'data_type'\np41993\n(dp41994\nS'editable'\np41995\nI00\nsS'value'\np41996\nS'multi_entity'\np41997\nssS'entity_type'\np41998\n(dp41999\nS'editable'\np42000\nI00\nsS'value'\np42001\nS'Version'\np42002\nssS'editable'\np42003\n(dp42004\nS'editable'\np42005\nI00\nsS'value'\np42006\nI00\nssS'unique'\np42007\n(dp42008\nS'editable'\np42009\nI00\nsS'value'\np42010\nI00\nssS'properties'\np42011\n(dp42012\nS'default_value'\np42013\n(dp42014\nS'editable'\np42015\nI00\nsS'value'\np42016\nNssS'summary_default'\np42017\n(dp42018\nS'editable'\np42019\nI01\nsS'value'\np42020\nS'none'\np42021\nssS'valid_types'\np42022\n(dp42023\nS'editable'\np42024\nI01\nsS'value'\np42025\n(lp42026\nS'Note'\np42027\nasssS'description'\np42028\n(dp42029\nS'editable'\np42030\nI01\nsS'value'\np42031\ng47\nsssS'tank_published_file'\np42032\n(dp42033\nS'mandatory'\np42034\n(dp42035\nS'editable'\np42036\nI00\nsS'value'\np42037\nI00\nssS'name'\np42038\n(dp42039\nS'editable'\np42040\nI01\nsS'value'\np42041\nS'Tank Published File'\np42042\nssS'data_type'\np42043\n(dp42044\nS'editable'\np42045\nI00\nsS'value'\np42046\nS'entity'\np42047\nssS'entity_type'\np42048\n(dp42049\nS'editable'\np42050\nI00\nsS'value'\np42051\nS'Version'\np42052\nssS'editable'\np42053\n(dp42054\nS'editable'\np42055\nI00\nsS'value'\np42056\nI01\nssS'unique'\np42057\n(dp42058\nS'editable'\np42059\nI00\nsS'value'\np42060\nI00\nssS'properties'\np42061\n(dp42062\nS'default_value'\np42063\n(dp42064\nS'editable'\np42065\nI00\nsS'value'\np42066\nNssS'summary_default'\np42067\n(dp42068\nS'editable'\np42069\nI01\nsS'value'\np42070\nS'none'\np42071\nssS'valid_types'\np42072\n(dp42073\nS'editable'\np42074\nI01\nsS'value'\np42075\n(lp42076\nS'TankPublishedFile'\np42077\nasssS'description'\np42078\n(dp42079\nS'editable'\np42080\nI01\nsS'value'\np42081\ng47\nsssS'task_template'\np42082\n(dp42083\nS'mandatory'\np42084\n(dp42085\nS'editable'\np42086\nI00\nsS'value'\np42087\nI00\nssS'name'\np42088\n(dp42089\nS'editable'\np42090\nI01\nsS'value'\np42091\nS'Task Template'\np42092\nssS'data_type'\np42093\n(dp42094\nS'editable'\np42095\nI00\nsS'value'\np42096\nS'entity'\np42097\nssS'entity_type'\np42098\n(dp42099\nS'editable'\np42100\nI00\nsS'value'\np42101\nS'Version'\np42102\nssS'editable'\np42103\n(dp42104\nS'editable'\np42105\nI00\nsS'value'\np42106\nI01\nssS'unique'\np42107\n(dp42108\nS'editable'\np42109\nI00\nsS'value'\np42110\nI00\nssS'properties'\np42111\n(dp42112\nS'default_value'\np42113\n(dp42114\nS'editable'\np42115\nI00\nsS'value'\np42116\nNssS'summary_default'\np42117\n(dp42118\nS'editable'\np42119\nI01\nsS'value'\np42120\nS'none'\np42121\nssS'valid_types'\np42122\n(dp42123\nS'editable'\np42124\nI01\nsS'value'\np42125\n(lp42126\nS'TaskTemplate'\np42127\nasssS'description'\np42128\n(dp42129\nS'editable'\np42130\nI01\nsS'value'\np42131\ng47\nsssS'created_by'\np42132\n(dp42133\nS'mandatory'\np42134\n(dp42135\nS'editable'\np42136\nI00\nsS'value'\np42137\nI00\nssS'name'\np42138\n(dp42139\nS'editable'\np42140\nI01\nsS'value'\np42141\nS'Created by'\np42142\nssS'data_type'\np42143\n(dp42144\nS'editable'\np42145\nI00\nsS'value'\np42146\nS'entity'\np42147\nssS'entity_type'\np42148\n(dp42149\nS'editable'\np42150\nI00\nsS'value'\np42151\nS'Version'\np42152\nssS'editable'\np42153\n(dp42154\nS'editable'\np42155\nI00\nsS'value'\np42156\nI00\nssS'unique'\np42157\n(dp42158\nS'editable'\np42159\nI00\nsS'value'\np42160\nI00\nssS'properties'\np42161\n(dp42162\nS'default_value'\np42163\n(dp42164\nS'editable'\np42165\nI00\nsS'value'\np42166\nNssS'summary_default'\np42167\n(dp42168\nS'editable'\np42169\nI01\nsS'value'\np42170\nS'none'\np42171\nssS'valid_types'\np42172\n(dp42173\nS'editable'\np42174\nI01\nsS'value'\np42175\n(lp42176\nS'HumanUser'\np42177\naS'ApiUser'\np42178\nasssS'description'\np42179\n(dp42180\nS'editable'\np42181\nI01\nsS'value'\np42182\ng47\nsssS'id'\np42183\n(dp42184\nS'mandatory'\np42185\n(dp42186\nS'editable'\np42187\nI00\nsS'value'\np42188\nI00\nssS'name'\np42189\n(dp42190\nS'editable'\np42191\nI01\nsS'value'\np42192\nS'Id'\np42193\nssS'data_type'\np42194\n(dp42195\nS'editable'\np42196\nI00\nsS'value'\np42197\nS'number'\np42198\nssS'entity_type'\np42199\n(dp42200\nS'editable'\np42201\nI00\nsS'value'\np42202\nS'Version'\np42203\nssS'editable'\np42204\n(dp42205\nS'editable'\np42206\nI00\nsS'value'\np42207\nI00\nssS'unique'\np42208\n(dp42209\nS'editable'\np42210\nI00\nsS'value'\np42211\nI00\nssS'properties'\np42212\n(dp42213\nS'default_value'\np42214\n(dp42215\nS'editable'\np42216\nI00\nsS'value'\np42217\nNssS'summary_default'\np42218\n(dp42219\nS'editable'\np42220\nI01\nsS'value'\np42221\nS'none'\np42222\nsssS'description'\np42223\n(dp42224\nS'editable'\np42225\nI01\nsS'value'\np42226\ng47\nsssS'sg_status_list'\np42227\n(dp42228\nS'mandatory'\np42229\n(dp42230\nS'editable'\np42231\nI00\nsS'value'\np42232\nI00\nssS'name'\np42233\n(dp42234\nS'editable'\np42235\nI01\nsS'value'\np42236\nS'Status'\np42237\nssS'data_type'\np42238\n(dp42239\nS'editable'\np42240\nI00\nsS'value'\np42241\nS'status_list'\np42242\nssS'entity_type'\np42243\n(dp42244\nS'editable'\np42245\nI00\nsS'value'\np42246\nS'Version'\np42247\nssS'editable'\np42248\n(dp42249\nS'editable'\np42250\nI00\nsS'value'\np42251\nI01\nssS'unique'\np42252\n(dp42253\nS'editable'\np42254\nI00\nsS'value'\np42255\nI00\nssS'properties'\np42256\n(dp42257\nS'default_value'\np42258\n(dp42259\nS'editable'\np42260\nI01\nsS'value'\np42261\nS'rev'\np42262\nssS'valid_values'\np42263\n(dp42264\nS'editable'\np42265\nI01\nsS'value'\np42266\n(lp42267\nS'na'\np42268\naS'rev'\np42269\naS'vwd'\np42270\nassS'summary_default'\np42271\n(dp42272\nS'editable'\np42273\nI01\nsS'value'\np42274\nS'status_list'\np42275\nsssS'description'\np42276\n(dp42277\nS'editable'\np42278\nI01\nsS'value'\np42279\ng47\nsssS'created_at'\np42280\n(dp42281\nS'mandatory'\np42282\n(dp42283\nS'editable'\np42284\nI00\nsS'value'\np42285\nI00\nssS'name'\np42286\n(dp42287\nS'editable'\np42288\nI01\nsS'value'\np42289\nS'Date Created'\np42290\nssS'data_type'\np42291\n(dp42292\nS'editable'\np42293\nI00\nsS'value'\np42294\nS'date_time'\np42295\nssS'entity_type'\np42296\n(dp42297\nS'editable'\np42298\nI00\nsS'value'\np42299\nS'Version'\np42300\nssS'editable'\np42301\n(dp42302\nS'editable'\np42303\nI00\nsS'value'\np42304\nI00\nssS'unique'\np42305\n(dp42306\nS'editable'\np42307\nI00\nsS'value'\np42308\nI00\nssS'properties'\np42309\n(dp42310\nS'default_value'\np42311\n(dp42312\nS'editable'\np42313\nI00\nsS'value'\np42314\nNssS'summary_default'\np42315\n(dp42316\nS'editable'\np42317\nI01\nsS'value'\np42318\nS'none'\np42319\nsssS'description'\np42320\n(dp42321\nS'editable'\np42322\nI01\nsS'value'\np42323\ng47\nsssS'sg_frames_aspect_ratio'\np42324\n(dp42325\nS'mandatory'\np42326\n(dp42327\nS'editable'\np42328\nI00\nsS'value'\np42329\nI00\nssS'name'\np42330\n(dp42331\nS'editable'\np42332\nI01\nsS'value'\np42333\nS'Frames Aspect Ratio'\np42334\nssS'data_type'\np42335\n(dp42336\nS'editable'\np42337\nI00\nsS'value'\np42338\nS'float'\np42339\nssS'entity_type'\np42340\n(dp42341\nS'editable'\np42342\nI00\nsS'value'\np42343\nS'Version'\np42344\nssS'editable'\np42345\n(dp42346\nS'editable'\np42347\nI00\nsS'value'\np42348\nI01\nssS'unique'\np42349\n(dp42350\nS'editable'\np42351\nI00\nsS'value'\np42352\nI00\nssS'properties'\np42353\n(dp42354\nS'default_value'\np42355\n(dp42356\nS'editable'\np42357\nI00\nsS'value'\np42358\nNssS'summary_default'\np42359\n(dp42360\nS'editable'\np42361\nI01\nsS'value'\np42362\nS'none'\np42363\nsssS'description'\np42364\n(dp42365\nS'editable'\np42366\nI01\nsS'value'\np42367\nS'Aspect ratio of the high res frames. Used to format the image correctly for viewing.'\np42368\nsssS'sg_first_frame'\np42369\n(dp42370\nS'mandatory'\np42371\n(dp42372\nS'editable'\np42373\nI00\nsS'value'\np42374\nI00\nssS'name'\np42375\n(dp42376\nS'editable'\np42377\nI01\nsS'value'\np42378\nS'First Frame'\np42379\nssS'data_type'\np42380\n(dp42381\nS'editable'\np42382\nI00\nsS'value'\np42383\nS'number'\np42384\nssS'entity_type'\np42385\n(dp42386\nS'editable'\np42387\nI00\nsS'value'\np42388\nS'Version'\np42389\nssS'editable'\np42390\n(dp42391\nS'editable'\np42392\nI00\nsS'value'\np42393\nI01\nssS'unique'\np42394\n(dp42395\nS'editable'\np42396\nI00\nsS'value'\np42397\nI00\nssS'properties'\np42398\n(dp42399\nS'default_value'\np42400\n(dp42401\nS'editable'\np42402\nI00\nsS'value'\np42403\nNssS'summary_default'\np42404\n(dp42405\nS'editable'\np42406\nI01\nsS'value'\np42407\nS'none'\np42408\nsssS'description'\np42409\n(dp42410\nS'editable'\np42411\nI01\nsS'value'\np42412\nS'The first frame number contained in the Version. Used in playback of the movie or frames to calculate the first frame available in the Version.'\np42413\nsssS'sg_frames_have_slate'\np42414\n(dp42415\nS'mandatory'\np42416\n(dp42417\nS'editable'\np42418\nI00\nsS'value'\np42419\nI00\nssS'name'\np42420\n(dp42421\nS'editable'\np42422\nI01\nsS'value'\np42423\nS'Frames Have Slate'\np42424\nssS'data_type'\np42425\n(dp42426\nS'editable'\np42427\nI00\nsS'value'\np42428\nS'checkbox'\np42429\nssS'entity_type'\np42430\n(dp42431\nS'editable'\np42432\nI00\nsS'value'\np42433\nS'Version'\np42434\nssS'editable'\np42435\n(dp42436\nS'editable'\np42437\nI00\nsS'value'\np42438\nI01\nssS'unique'\np42439\n(dp42440\nS'editable'\np42441\nI00\nsS'value'\np42442\nI00\nssS'properties'\np42443\n(dp42444\nS'default_value'\np42445\n(dp42446\nS'editable'\np42447\nI00\nsS'value'\np42448\nI00\nssS'summary_default'\np42449\n(dp42450\nS'editable'\np42451\nI01\nsS'value'\np42452\nS'none'\np42453\nsssS'description'\np42454\n(dp42455\nS'editable'\np42456\nI01\nsS'value'\np42457\nS'Indicates whether the frames have a slate or not. This is used to include or omit the slate from playback.'\np42458\nsssS'sg_uploaded_movie_mp4'\np42459\n(dp42460\nS'mandatory'\np42461\n(dp42462\nS'editable'\np42463\nI00\nsS'value'\np42464\nI00\nssS'name'\np42465\n(dp42466\nS'editable'\np42467\nI01\nsS'value'\np42468\nS'Uploaded Movie MP4'\np42469\nssS'data_type'\np42470\n(dp42471\nS'editable'\np42472\nI00\nsS'value'\np42473\nS'url'\np42474\nssS'entity_type'\np42475\n(dp42476\nS'editable'\np42477\nI00\nsS'value'\np42478\nS'Version'\np42479\nssS'editable'\np42480\n(dp42481\nS'editable'\np42482\nI00\nsS'value'\np42483\nI01\nssS'unique'\np42484\n(dp42485\nS'editable'\np42486\nI00\nsS'value'\np42487\nI00\nssS'properties'\np42488\n(dp42489\nS'default_value'\np42490\n(dp42491\nS'editable'\np42492\nI00\nsS'value'\np42493\nNssS'open_in_new_window'\np42494\n(dp42495\nS'editable'\np42496\nI00\nsS'value'\np42497\nI01\nssS'summary_default'\np42498\n(dp42499\nS'editable'\np42500\nI00\nsS'value'\np42501\nS'none'\np42502\nsssS'description'\np42503\n(dp42504\nS'editable'\np42505\nI01\nsS'value'\np42506\ng47\nsssS'description'\np42507\n(dp42508\nS'mandatory'\np42509\n(dp42510\nS'editable'\np42511\nI00\nsS'value'\np42512\nI00\nssS'name'\np42513\n(dp42514\nS'editable'\np42515\nI01\nsS'value'\np42516\nS'Description'\np42517\nssS'data_type'\np42518\n(dp42519\nS'editable'\np42520\nI00\nsS'value'\np42521\nS'text'\np42522\nssS'entity_type'\np42523\n(dp42524\nS'editable'\np42525\nI00\nsS'value'\np42526\nS'Version'\np42527\nssS'editable'\np42528\n(dp42529\nS'editable'\np42530\nI00\nsS'value'\np42531\nI01\nssS'unique'\np42532\n(dp42533\nS'editable'\np42534\nI00\nsS'value'\np42535\nI00\nssS'properties'\np42536\n(dp42537\nS'default_value'\np42538\n(dp42539\nS'editable'\np42540\nI00\nsS'value'\np42541\nNssS'summary_default'\np42542\n(dp42543\nS'editable'\np42544\nI01\nsS'value'\np42545\nS'none'\np42546\nsssS'description'\np42547\n(dp42548\nS'editable'\np42549\nI01\nsS'value'\np42550\ng47\nsssS'media_center_import_time'\np42551\n(dp42552\nS'mandatory'\np42553\n(dp42554\nS'editable'\np42555\nI00\nsS'value'\np42556\nI00\nssS'name'\np42557\n(dp42558\nS'editable'\np42559\nI01\nsS'value'\np42560\nS'Media Center Import Time'\np42561\nssS'data_type'\np42562\n(dp42563\nS'editable'\np42564\nI00\nsS'value'\np42565\nS'date_time'\np42566\nssS'entity_type'\np42567\n(dp42568\nS'editable'\np42569\nI00\nsS'value'\np42570\nS'Version'\np42571\nssS'editable'\np42572\n(dp42573\nS'editable'\np42574\nI00\nsS'value'\np42575\nI01\nssS'unique'\np42576\n(dp42577\nS'editable'\np42578\nI00\nsS'value'\np42579\nI00\nssS'properties'\np42580\n(dp42581\nS'default_value'\np42582\n(dp42583\nS'editable'\np42584\nI00\nsS'value'\np42585\nNssS'summary_default'\np42586\n(dp42587\nS'editable'\np42588\nI00\nsS'value'\np42589\nS'none'\np42590\nsssS'description'\np42591\n(dp42592\nS'editable'\np42593\nI01\nsS'value'\np42594\ng47\nsssS'viewed_by_current_user_at'\np42595\n(dp42596\nS'mandatory'\np42597\n(dp42598\nS'editable'\np42599\nI00\nsS'value'\np42600\nI00\nssS'name'\np42601\n(dp42602\nS'editable'\np42603\nI01\nsS'value'\np42604\nS'Date Viewed'\np42605\nssS'data_type'\np42606\n(dp42607\nS'editable'\np42608\nI00\nsS'value'\np42609\nS'date_time'\np42610\nssS'entity_type'\np42611\n(dp42612\nS'editable'\np42613\nI00\nsS'value'\np42614\nS'Version'\np42615\nssS'editable'\np42616\n(dp42617\nS'editable'\np42618\nI00\nsS'value'\np42619\nI00\nssS'unique'\np42620\n(dp42621\nS'editable'\np42622\nI00\nsS'value'\np42623\nI00\nssS'properties'\np42624\n(dp42625\nS'default_value'\np42626\n(dp42627\nS'editable'\np42628\nI00\nsS'value'\np42629\nNssS'summary_default'\np42630\n(dp42631\nS'editable'\np42632\nI00\nsS'value'\np42633\nS'none'\np42634\nsssS'description'\np42635\n(dp42636\nS'editable'\np42637\nI01\nsS'value'\np42638\ng47\nsssS'sg_movie_has_slate'\np42639\n(dp42640\nS'mandatory'\np42641\n(dp42642\nS'editable'\np42643\nI00\nsS'value'\np42644\nI00\nssS'name'\np42645\n(dp42646\nS'editable'\np42647\nI01\nsS'value'\np42648\nS'Movie Has Slate'\np42649\nssS'data_type'\np42650\n(dp42651\nS'editable'\np42652\nI00\nsS'value'\np42653\nS'checkbox'\np42654\nssS'entity_type'\np42655\n(dp42656\nS'editable'\np42657\nI00\nsS'value'\np42658\nS'Version'\np42659\nssS'editable'\np42660\n(dp42661\nS'editable'\np42662\nI00\nsS'value'\np42663\nI01\nssS'unique'\np42664\n(dp42665\nS'editable'\np42666\nI00\nsS'value'\np42667\nI00\nssS'properties'\np42668\n(dp42669\nS'default_value'\np42670\n(dp42671\nS'editable'\np42672\nI00\nsS'value'\np42673\nI00\nssS'summary_default'\np42674\n(dp42675\nS'editable'\np42676\nI01\nsS'value'\np42677\nS'none'\np42678\nsssS'description'\np42679\n(dp42680\nS'editable'\np42681\nI01\nsS'value'\np42682\nS'Indicates whether the movie file has a slate or not. This is used to include or omit the slate from playback.'\np42683\nsssS'sg_uploaded_movie'\np42684\n(dp42685\nS'mandatory'\np42686\n(dp42687\nS'editable'\np42688\nI00\nsS'value'\np42689\nI00\nssS'name'\np42690\n(dp42691\nS'editable'\np42692\nI01\nsS'value'\np42693\nS'Uploaded Movie'\np42694\nssS'data_type'\np42695\n(dp42696\nS'editable'\np42697\nI00\nsS'value'\np42698\nS'url'\np42699\nssS'entity_type'\np42700\n(dp42701\nS'editable'\np42702\nI00\nsS'value'\np42703\nS'Version'\np42704\nssS'editable'\np42705\n(dp42706\nS'editable'\np42707\nI00\nsS'value'\np42708\nI01\nssS'unique'\np42709\n(dp42710\nS'editable'\np42711\nI00\nsS'value'\np42712\nI00\nssS'properties'\np42713\n(dp42714\nS'default_value'\np42715\n(dp42716\nS'editable'\np42717\nI00\nsS'value'\np42718\nNssS'open_in_new_window'\np42719\n(dp42720\nS'editable'\np42721\nI01\nsS'value'\np42722\nI01\nssS'summary_default'\np42723\n(dp42724\nS'editable'\np42725\nI01\nsS'value'\np42726\nS'none'\np42727\nsssS'description'\np42728\n(dp42729\nS'editable'\np42730\nI01\nsS'value'\np42731\nS'File field to contain the uploaded movie file. Used for playback of lower resolution movie media stored in Flow Production Tracking.'\np42732\nsssS'user'\np42733\n(dp42734\nS'mandatory'\np42735\n(dp42736\nS'editable'\np42737\nI00\nsS'value'\np42738\nI00\nssS'name'\np42739\n(dp42740\nS'editable'\np42741\nI01\nsS'value'\np42742\nS'Artist'\np42743\nssS'data_type'\np42744\n(dp42745\nS'editable'\np42746\nI00\nsS'value'\np42747\nS'entity'\np42748\nssS'entity_type'\np42749\n(dp42750\nS'editable'\np42751\nI00\nsS'value'\np42752\nS'Version'\np42753\nssS'editable'\np42754\n(dp42755\nS'editable'\np42756\nI00\nsS'value'\np42757\nI01\nssS'unique'\np42758\n(dp42759\nS'editable'\np42760\nI00\nsS'value'\np42761\nI00\nssS'properties'\np42762\n(dp42763\nS'default_value'\np42764\n(dp42765\nS'editable'\np42766\nI00\nsS'value'\np42767\nNssS'summary_default'\np42768\n(dp42769\nS'editable'\np42770\nI01\nsS'value'\np42771\nS'none'\np42772\nssS'valid_types'\np42773\n(dp42774\nS'editable'\np42775\nI01\nsS'value'\np42776\n(lp42777\nS'HumanUser'\np42778\naS'ApiUser'\np42779\nasssS'description'\np42780\n(dp42781\nS'editable'\np42782\nI01\nsS'value'\np42783\ng47\nsssS'entity'\np42784\n(dp42785\nS'mandatory'\np42786\n(dp42787\nS'editable'\np42788\nI00\nsS'value'\np42789\nI00\nssS'name'\np42790\n(dp42791\nS'editable'\np42792\nI01\nsS'value'\np42793\nS'Link'\np42794\nssS'data_type'\np42795\n(dp42796\nS'editable'\np42797\nI00\nsS'value'\np42798\nS'entity'\np42799\nssS'entity_type'\np42800\n(dp42801\nS'editable'\np42802\nI00\nsS'value'\np42803\nS'Version'\np42804\nssS'editable'\np42805\n(dp42806\nS'editable'\np42807\nI00\nsS'value'\np42808\nI01\nssS'unique'\np42809\n(dp42810\nS'editable'\np42811\nI00\nsS'value'\np42812\nI00\nssS'properties'\np42813\n(dp42814\nS'default_value'\np42815\n(dp42816\nS'editable'\np42817\nI00\nsS'value'\np42818\nNssS'summary_default'\np42819\n(dp42820\nS'editable'\np42821\nI01\nsS'value'\np42822\nS'none'\np42823\nssS'valid_types'\np42824\n(dp42825\nS'editable'\np42826\nI01\nsS'value'\np42827\n(lp42828\nS'Asset'\np42829\naS'Shot'\np42830\naS'Sequence'\np42831\naS'Scene'\np42832\naS'Project'\np42833\nasssS'description'\np42834\n(dp42835\nS'editable'\np42836\nI01\nsS'value'\np42837\ng47\nsssS'published_files'\np42838\n(dp42839\nS'mandatory'\np42840\n(dp42841\nS'editable'\np42842\nI00\nsS'value'\np42843\nI00\nssS'name'\np42844\n(dp42845\nS'editable'\np42846\nI01\nsS'value'\np42847\nS'Published Files'\np42848\nssS'data_type'\np42849\n(dp42850\nS'editable'\np42851\nI00\nsS'value'\np42852\nS'multi_entity'\np42853\nssS'entity_type'\np42854\n(dp42855\nS'editable'\np42856\nI00\nsS'value'\np42857\nS'Version'\np42858\nssS'editable'\np42859\n(dp42860\nS'editable'\np42861\nI00\nsS'value'\np42862\nI01\nssS'unique'\np42863\n(dp42864\nS'editable'\np42865\nI00\nsS'value'\np42866\nI00\nssS'properties'\np42867\n(dp42868\nS'default_value'\np42869\n(dp42870\nS'editable'\np42871\nI00\nsS'value'\np42872\nNssS'summary_default'\np42873\n(dp42874\nS'editable'\np42875\nI01\nsS'value'\np42876\nS'none'\np42877\nssS'valid_types'\np42878\n(dp42879\nS'editable'\np42880\nI01\nsS'value'\np42881\n(lp42882\nS'PublishedFile'\np42883\nasssS'description'\np42884\n(dp42885\nS'editable'\np42886\nI01\nsS'value'\np42887\ng47\nsssS'step_0'\np42888\n(dp42889\nS'mandatory'\np42890\n(dp42891\nS'editable'\np42892\nI00\nsS'value'\np42893\nI00\nssS'name'\np42894\n(dp42895\nS'editable'\np42896\nI01\nsS'value'\np42897\nS'ALL TASKS'\np42898\nssS'data_type'\np42899\n(dp42900\nS'editable'\np42901\nI00\nsS'value'\np42902\nS'pivot_column'\np42903\nssS'entity_type'\np42904\n(dp42905\nS'editable'\np42906\nI00\nsS'value'\np42907\nS'Version'\np42908\nssS'editable'\np42909\n(dp42910\nS'editable'\np42911\nI00\nsS'value'\np42912\nI00\nssS'unique'\np42913\n(dp42914\nS'editable'\np42915\nI00\nsS'value'\np42916\nI00\nssS'properties'\np42917\n(dp42918\nS'default_value'\np42919\n(dp42920\nS'editable'\np42921\nI00\nsS'value'\np42922\nNssS'summary_default'\np42923\n(dp42924\nS'editable'\np42925\nI00\nsS'value'\np42926\nS'none'\np42927\nsssS'description'\np42928\n(dp42929\nS'editable'\np42930\nI01\nsS'value'\np42931\ng47\nsssS'sg_last_frame'\np42932\n(dp42933\nS'mandatory'\np42934\n(dp42935\nS'editable'\np42936\nI00\nsS'value'\np42937\nI00\nssS'name'\np42938\n(dp42939\nS'editable'\np42940\nI01\nsS'value'\np42941\nS'Last Frame'\np42942\nssS'data_type'\np42943\n(dp42944\nS'editable'\np42945\nI00\nsS'value'\np42946\nS'number'\np42947\nssS'entity_type'\np42948\n(dp42949\nS'editable'\np42950\nI00\nsS'value'\np42951\nS'Version'\np42952\nssS'editable'\np42953\n(dp42954\nS'editable'\np42955\nI00\nsS'value'\np42956\nI01\nssS'unique'\np42957\n(dp42958\nS'editable'\np42959\nI00\nsS'value'\np42960\nI00\nssS'properties'\np42961\n(dp42962\nS'default_value'\np42963\n(dp42964\nS'editable'\np42965\nI00\nsS'value'\np42966\nNssS'summary_default'\np42967\n(dp42968\nS'editable'\np42969\nI01\nsS'value'\np42970\nS'none'\np42971\nsssS'description'\np42972\n(dp42973\nS'editable'\np42974\nI01\nsS'value'\np42975\nS'The last frame number contained in the Version. Used in playback of the movie or frames to calculate the last frame available in the Version.'\np42976\nsssS'viewed_by_current_user'\np42977\n(dp42978\nS'mandatory'\np42979\n(dp42980\nS'editable'\np42981\nI00\nsS'value'\np42982\nI00\nssS'name'\np42983\n(dp42984\nS'editable'\np42985\nI01\nsS'value'\np42986\nS'Viewed/Unviewed'\np42987\nssS'data_type'\np42988\n(dp42989\nS'editable'\np42990\nI00\nsS'value'\np42991\nS'list'\np42992\nssS'entity_type'\np42993\n(dp42994\nS'editable'\np42995\nI00\nsS'value'\np42996\nS'Version'\np42997\nssS'editable'\np42998\n(dp42999\nS'editable'\np43000\nI00\nsS'value'\np43001\nI01\nssS'unique'\np43002\n(dp43003\nS'editable'\np43004\nI00\nsS'value'\np43005\nI00\nssS'properties'\np43006\n(dp43007\nS'default_value'\np43008\n(dp43009\nS'editable'\np43010\nI00\nsS'value'\np43011\nNssS'valid_values'\np43012\n(dp43013\nS'editable'\np43014\nI00\nsS'value'\np43015\n(lp43016\nS'read'\np43017\naS'unread'\np43018\nassS'summary_default'\np43019\n(dp43020\nS'editable'\np43021\nI00\nsS'value'\np43022\nS'none'\np43023\nsssS'description'\np43024\n(dp43025\nS'editable'\np43026\nI01\nsS'value'\np43027\ng47\nsssS'sg_uploaded_movie_transcoding_status'\np43028\n(dp43029\nS'mandatory'\np43030\n(dp43031\nS'editable'\np43032\nI00\nsS'value'\np43033\nI00\nssS'name'\np43034\n(dp43035\nS'editable'\np43036\nI01\nsS'value'\np43037\nS'Uploaded Movie Transcoding Status'\np43038\nssS'data_type'\np43039\n(dp43040\nS'editable'\np43041\nI00\nsS'value'\np43042\nS'number'\np43043\nssS'entity_type'\np43044\n(dp43045\nS'editable'\np43046\nI00\nsS'value'\np43047\nS'Version'\np43048\nssS'editable'\np43049\n(dp43050\nS'editable'\np43051\nI00\nsS'value'\np43052\nI01\nssS'unique'\np43053\n(dp43054\nS'editable'\np43055\nI00\nsS'value'\np43056\nI00\nssS'properties'\np43057\n(dp43058\nS'default_value'\np43059\n(dp43060\nS'editable'\np43061\nI00\nsS'value'\np43062\nNssS'summary_default'\np43063\n(dp43064\nS'editable'\np43065\nI00\nsS'value'\np43066\nS'none'\np43067\nsssS'description'\np43068\n(dp43069\nS'editable'\np43070\nI01\nsS'value'\np43071\ng47\nsssS'sg_movie_aspect_ratio'\np43072\n(dp43073\nS'mandatory'\np43074\n(dp43075\nS'editable'\np43076\nI00\nsS'value'\np43077\nI00\nssS'name'\np43078\n(dp43079\nS'editable'\np43080\nI01\nsS'value'\np43081\nS'Movie Aspect Ratio'\np43082\nssS'data_type'\np43083\n(dp43084\nS'editable'\np43085\nI00\nsS'value'\np43086\nS'float'\np43087\nssS'entity_type'\np43088\n(dp43089\nS'editable'\np43090\nI00\nsS'value'\np43091\nS'Version'\np43092\nssS'editable'\np43093\n(dp43094\nS'editable'\np43095\nI00\nsS'value'\np43096\nI01\nssS'unique'\np43097\n(dp43098\nS'editable'\np43099\nI00\nsS'value'\np43100\nI00\nssS'properties'\np43101\n(dp43102\nS'default_value'\np43103\n(dp43104\nS'editable'\np43105\nI00\nsS'value'\np43106\nNssS'summary_default'\np43107\n(dp43108\nS'editable'\np43109\nI01\nsS'value'\np43110\nS'none'\np43111\nsssS'description'\np43112\n(dp43113\nS'editable'\np43114\nI01\nsS'value'\np43115\nS'Aspect ratio of the the movie. Used to format the image correctly for viewing.'\np43116\nsssS'notes'\np43117\n(dp43118\nS'mandatory'\np43119\n(dp43120\nS'editable'\np43121\nI00\nsS'value'\np43122\nI00\nssS'name'\np43123\n(dp43124\nS'editable'\np43125\nI01\nsS'value'\np43126\nS'Notes'\np43127\nssS'data_type'\np43128\n(dp43129\nS'editable'\np43130\nI00\nsS'value'\np43131\nS'multi_entity'\np43132\nssS'entity_type'\np43133\n(dp43134\nS'editable'\np43135\nI00\nsS'value'\np43136\nS'Version'\np43137\nssS'editable'\np43138\n(dp43139\nS'editable'\np43140\nI00\nsS'value'\np43141\nI01\nssS'unique'\np43142\n(dp43143\nS'editable'\np43144\nI00\nsS'value'\np43145\nI00\nssS'properties'\np43146\n(dp43147\nS'default_value'\np43148\n(dp43149\nS'editable'\np43150\nI00\nsS'value'\np43151\nNssS'summary_default'\np43152\n(dp43153\nS'editable'\np43154\nI01\nsS'value'\np43155\nS'none'\np43156\nssS'valid_types'\np43157\n(dp43158\nS'editable'\np43159\nI01\nsS'value'\np43160\n(lp43161\nS'Note'\np43162\nasssS'description'\np43163\n(dp43164\nS'editable'\np43165\nI01\nsS'value'\np43166\ng47\nsssS'project'\np43167\n(dp43168\nS'mandatory'\np43169\n(dp43170\nS'editable'\np43171\nI00\nsS'value'\np43172\nI00\nssS'name'\np43173\n(dp43174\nS'editable'\np43175\nI01\nsS'value'\np43176\nS'Project'\np43177\nssS'data_type'\np43178\n(dp43179\nS'editable'\np43180\nI00\nsS'value'\np43181\nS'entity'\np43182\nssS'entity_type'\np43183\n(dp43184\nS'editable'\np43185\nI00\nsS'value'\np43186\nS'Version'\np43187\nssS'editable'\np43188\n(dp43189\nS'editable'\np43190\nI00\nsS'value'\np43191\nI01\nssS'unique'\np43192\n(dp43193\nS'editable'\np43194\nI00\nsS'value'\np43195\nI00\nssS'properties'\np43196\n(dp43197\nS'default_value'\np43198\n(dp43199\nS'editable'\np43200\nI00\nsS'value'\np43201\nNssS'summary_default'\np43202\n(dp43203\nS'editable'\np43204\nI01\nsS'value'\np43205\nS'none'\np43206\nssS'valid_types'\np43207\n(dp43208\nS'editable'\np43209\nI01\nsS'value'\np43210\n(lp43211\nS'Project'\np43212\nasssS'description'\np43213\n(dp43214\nS'editable'\np43215\nI01\nsS'value'\np43216\ng47\nsssS'filmstrip_image'\np43217\n(dp43218\nS'mandatory'\np43219\n(dp43220\nS'editable'\np43221\nI00\nsS'value'\np43222\nI00\nssS'name'\np43223\n(dp43224\nS'editable'\np43225\nI01\nsS'value'\np43226\nS'Filmstrip Thumbnail'\np43227\nssS'data_type'\np43228\n(dp43229\nS'editable'\np43230\nI00\nsS'value'\np43231\nS'image'\np43232\nssS'entity_type'\np43233\n(dp43234\nS'editable'\np43235\nI00\nsS'value'\np43236\nS'Version'\np43237\nssS'editable'\np43238\n(dp43239\nS'editable'\np43240\nI00\nsS'value'\np43241\nI01\nssS'unique'\np43242\n(dp43243\nS'editable'\np43244\nI00\nsS'value'\np43245\nI00\nssS'properties'\np43246\n(dp43247\nS'default_value'\np43248\n(dp43249\nS'editable'\np43250\nI00\nsS'value'\np43251\nNssS'summary_default'\np43252\n(dp43253\nS'editable'\np43254\nI01\nsS'value'\np43255\nS'none'\np43256\nsssS'description'\np43257\n(dp43258\nS'editable'\np43259\nI01\nsS'value'\np43260\ng47\nsssS'tag_list'\np43261\n(dp43262\nS'mandatory'\np43263\n(dp43264\nS'editable'\np43265\nI00\nsS'value'\np43266\nI00\nssS'name'\np43267\n(dp43268\nS'editable'\np43269\nI01\nsS'value'\np43270\nS'Tags'\np43271\nssS'data_type'\np43272\n(dp43273\nS'editable'\np43274\nI00\nsS'value'\np43275\nS'tag_list'\np43276\nssS'entity_type'\np43277\n(dp43278\nS'editable'\np43279\nI00\nsS'value'\np43280\nS'Version'\np43281\nssS'editable'\np43282\n(dp43283\nS'editable'\np43284\nI00\nsS'value'\np43285\nI01\nssS'unique'\np43286\n(dp43287\nS'editable'\np43288\nI00\nsS'value'\np43289\nI00\nssS'properties'\np43290\n(dp43291\nS'default_value'\np43292\n(dp43293\nS'editable'\np43294\nI00\nsS'value'\np43295\nNssS'summary_default'\np43296\n(dp43297\nS'editable'\np43298\nI01\nsS'value'\np43299\nS'none'\np43300\nssS'valid_types'\np43301\n(dp43302\nS'editable'\np43303\nI01\nsS'value'\np43304\n(lp43305\nS'Tag'\np43306\nasssS'description'\np43307\n(dp43308\nS'editable'\np43309\nI01\nsS'value'\np43310\ng47\nsssS'frame_count'\np43311\n(dp43312\nS'mandatory'\np43313\n(dp43314\nS'editable'\np43315\nI00\nsS'value'\np43316\nI00\nssS'name'\np43317\n(dp43318\nS'editable'\np43319\nI01\nsS'value'\np43320\nS'Frame Count'\np43321\nssS'data_type'\np43322\n(dp43323\nS'editable'\np43324\nI00\nsS'value'\np43325\nS'number'\np43326\nssS'entity_type'\np43327\n(dp43328\nS'editable'\np43329\nI00\nsS'value'\np43330\nS'Version'\np43331\nssS'editable'\np43332\n(dp43333\nS'editable'\np43334\nI00\nsS'value'\np43335\nI01\nssS'unique'\np43336\n(dp43337\nS'editable'\np43338\nI00\nsS'value'\np43339\nI00\nssS'properties'\np43340\n(dp43341\nS'default_value'\np43342\n(dp43343\nS'editable'\np43344\nI00\nsS'value'\np43345\nNssS'summary_default'\np43346\n(dp43347\nS'editable'\np43348\nI01\nsS'value'\np43349\nS'none'\np43350\nsssS'description'\np43351\n(dp43352\nS'editable'\np43353\nI01\nsS'value'\np43354\ng47\nsssS'flagged'\np43355\n(dp43356\nS'mandatory'\np43357\n(dp43358\nS'editable'\np43359\nI00\nsS'value'\np43360\nI00\nssS'name'\np43361\n(dp43362\nS'editable'\np43363\nI01\nsS'value'\np43364\nS'Flagged'\np43365\nssS'data_type'\np43366\n(dp43367\nS'editable'\np43368\nI00\nsS'value'\np43369\nS'checkbox'\np43370\nssS'entity_type'\np43371\n(dp43372\nS'editable'\np43373\nI00\nsS'value'\np43374\nS'Version'\np43375\nssS'editable'\np43376\n(dp43377\nS'editable'\np43378\nI00\nsS'value'\np43379\nI01\nssS'unique'\np43380\n(dp43381\nS'editable'\np43382\nI00\nsS'value'\np43383\nI00\nssS'properties'\np43384\n(dp43385\nS'default_value'\np43386\n(dp43387\nS'editable'\np43388\nI00\nsS'value'\np43389\nI00\nssS'summary_default'\np43390\n(dp43391\nS'editable'\np43392\nI00\nsS'value'\np43393\nS'none'\np43394\nsssS'description'\np43395\n(dp43396\nS'editable'\np43397\nI01\nsS'value'\np43398\ng47\nssssS'ElementShotConnection'\np43399\n(dp43400\nS'cached_display_name'\np43401\n(dp43402\nS'mandatory'\np43403\n(dp43404\nS'editable'\np43405\nI00\nsS'value'\np43406\nI00\nssS'name'\np43407\n(dp43408\nS'editable'\np43409\nI01\nsS'value'\np43410\nS'Cached Display Name'\np43411\nssS'data_type'\np43412\n(dp43413\nS'editable'\np43414\nI00\nsS'value'\np43415\nS'text'\np43416\nssS'entity_type'\np43417\n(dp43418\nS'editable'\np43419\nI00\nsS'value'\np43420\nS'ElementShotConnection'\np43421\nssS'editable'\np43422\n(dp43423\nS'editable'\np43424\nI00\nsS'value'\np43425\nI01\nssS'unique'\np43426\n(dp43427\nS'editable'\np43428\nI00\nsS'value'\np43429\nI00\nssS'properties'\np43430\n(dp43431\nS'default_value'\np43432\n(dp43433\nS'editable'\np43434\nI00\nsS'value'\np43435\nNssS'summary_default'\np43436\n(dp43437\nS'editable'\np43438\nI00\nsS'value'\np43439\nS'none'\np43440\nsssS'description'\np43441\n(dp43442\nS'editable'\np43443\nI01\nsS'value'\np43444\ng47\nsssS'shot'\np43445\n(dp43446\nS'mandatory'\np43447\n(dp43448\nS'editable'\np43449\nI00\nsS'value'\np43450\nI00\nssS'name'\np43451\n(dp43452\nS'editable'\np43453\nI01\nsS'value'\np43454\nS'Shot'\np43455\nssS'data_type'\np43456\n(dp43457\nS'editable'\np43458\nI00\nsS'value'\np43459\nS'entity'\np43460\nssS'entity_type'\np43461\n(dp43462\nS'editable'\np43463\nI00\nsS'value'\np43464\nS'ElementShotConnection'\np43465\nssS'editable'\np43466\n(dp43467\nS'editable'\np43468\nI00\nsS'value'\np43469\nI00\nssS'unique'\np43470\n(dp43471\nS'editable'\np43472\nI00\nsS'value'\np43473\nI00\nssS'properties'\np43474\n(dp43475\nS'default_value'\np43476\n(dp43477\nS'editable'\np43478\nI00\nsS'value'\np43479\nNssS'summary_default'\np43480\n(dp43481\nS'editable'\np43482\nI00\nsS'value'\np43483\nS'none'\np43484\nssS'valid_types'\np43485\n(dp43486\nS'editable'\np43487\nI00\nsS'value'\np43488\n(lp43489\nS'Shot'\np43490\nasssS'description'\np43491\n(dp43492\nS'editable'\np43493\nI01\nsS'value'\np43494\ng47\nsssS'id'\np43495\n(dp43496\nS'mandatory'\np43497\n(dp43498\nS'editable'\np43499\nI00\nsS'value'\np43500\nI01\nssS'name'\np43501\n(dp43502\nS'editable'\np43503\nI01\nsS'value'\np43504\nS'Id'\np43505\nssS'data_type'\np43506\n(dp43507\nS'editable'\np43508\nI00\nsS'value'\np43509\nS'number'\np43510\nssS'entity_type'\np43511\n(dp43512\nS'editable'\np43513\nI00\nsS'value'\np43514\nS'ElementShotConnection'\np43515\nssS'editable'\np43516\n(dp43517\nS'editable'\np43518\nI00\nsS'value'\np43519\nI00\nssS'unique'\np43520\n(dp43521\nS'editable'\np43522\nI00\nsS'value'\np43523\nI00\nssS'properties'\np43524\n(dp43525\nS'default_value'\np43526\n(dp43527\nS'editable'\np43528\nI00\nsS'value'\np43529\nNssS'summary_default'\np43530\n(dp43531\nS'editable'\np43532\nI00\nsS'value'\np43533\nS'none'\np43534\nsssS'description'\np43535\n(dp43536\nS'editable'\np43537\nI01\nsS'value'\np43538\ng47\nsssS'element'\np43539\n(dp43540\nS'mandatory'\np43541\n(dp43542\nS'editable'\np43543\nI00\nsS'value'\np43544\nI00\nssS'name'\np43545\n(dp43546\nS'editable'\np43547\nI01\nsS'value'\np43548\nS'Element'\np43549\nssS'data_type'\np43550\n(dp43551\nS'editable'\np43552\nI00\nsS'value'\np43553\nS'entity'\np43554\nssS'entity_type'\np43555\n(dp43556\nS'editable'\np43557\nI00\nsS'value'\np43558\nS'ElementShotConnection'\np43559\nssS'editable'\np43560\n(dp43561\nS'editable'\np43562\nI00\nsS'value'\np43563\nI00\nssS'unique'\np43564\n(dp43565\nS'editable'\np43566\nI00\nsS'value'\np43567\nI00\nssS'properties'\np43568\n(dp43569\nS'default_value'\np43570\n(dp43571\nS'editable'\np43572\nI00\nsS'value'\np43573\nNssS'summary_default'\np43574\n(dp43575\nS'editable'\np43576\nI00\nsS'value'\np43577\nS'none'\np43578\nssS'valid_types'\np43579\n(dp43580\nS'editable'\np43581\nI00\nsS'value'\np43582\n(lp43583\nS'Element'\np43584\nasssS'description'\np43585\n(dp43586\nS'editable'\np43587\nI01\nsS'value'\np43588\ng47\nssssS'HumanUser'\np43589\n(dp43590\nS'file_access'\np43591\n(dp43592\nS'mandatory'\np43593\n(dp43594\nS'editable'\np43595\nI00\nsS'value'\np43596\nI00\nssS'name'\np43597\n(dp43598\nS'editable'\np43599\nI01\nsS'value'\np43600\nS'File Access'\np43601\nssS'data_type'\np43602\n(dp43603\nS'editable'\np43604\nI00\nsS'value'\np43605\nS'checkbox'\np43606\nssS'entity_type'\np43607\n(dp43608\nS'editable'\np43609\nI00\nsS'value'\np43610\nS'HumanUser'\np43611\nssS'editable'\np43612\n(dp43613\nS'editable'\np43614\nI00\nsS'value'\np43615\nI01\nssS'unique'\np43616\n(dp43617\nS'editable'\np43618\nI00\nsS'value'\np43619\nI00\nssS'properties'\np43620\n(dp43621\nS'default_value'\np43622\n(dp43623\nS'editable'\np43624\nI00\nsS'value'\np43625\nI01\nssS'summary_default'\np43626\n(dp43627\nS'editable'\np43628\nI01\nsS'value'\np43629\nS'none'\np43630\nsssS'description'\np43631\n(dp43632\nS'editable'\np43633\nI01\nsS'value'\np43634\ng47\nsssS'email_all_deliveries'\np43635\n(dp43636\nS'mandatory'\np43637\n(dp43638\nS'editable'\np43639\nI00\nsS'value'\np43640\nI00\nssS'name'\np43641\n(dp43642\nS'editable'\np43643\nI01\nsS'value'\np43644\nS'Subscribe to All Delivery Emails'\np43645\nssS'data_type'\np43646\n(dp43647\nS'editable'\np43648\nI00\nsS'value'\np43649\nS'checkbox'\np43650\nssS'entity_type'\np43651\n(dp43652\nS'editable'\np43653\nI00\nsS'value'\np43654\nS'HumanUser'\np43655\nssS'editable'\np43656\n(dp43657\nS'editable'\np43658\nI00\nsS'value'\np43659\nI01\nssS'unique'\np43660\n(dp43661\nS'editable'\np43662\nI00\nsS'value'\np43663\nI00\nssS'properties'\np43664\n(dp43665\nS'default_value'\np43666\n(dp43667\nS'editable'\np43668\nI00\nsS'value'\np43669\nI00\nssS'summary_default'\np43670\n(dp43671\nS'editable'\np43672\nI01\nsS'value'\np43673\nS'none'\np43674\nsssS'description'\np43675\n(dp43676\nS'editable'\np43677\nI01\nsS'value'\np43678\ng47\nsssS'email_notes'\np43679\n(dp43680\nS'mandatory'\np43681\n(dp43682\nS'editable'\np43683\nI00\nsS'value'\np43684\nI00\nssS'name'\np43685\n(dp43686\nS'editable'\np43687\nI01\nsS'value'\np43688\nS'Subscribe to My Notes Emails'\np43689\nssS'data_type'\np43690\n(dp43691\nS'editable'\np43692\nI00\nsS'value'\np43693\nS'checkbox'\np43694\nssS'entity_type'\np43695\n(dp43696\nS'editable'\np43697\nI00\nsS'value'\np43698\nS'HumanUser'\np43699\nssS'editable'\np43700\n(dp43701\nS'editable'\np43702\nI00\nsS'value'\np43703\nI01\nssS'unique'\np43704\n(dp43705\nS'editable'\np43706\nI00\nsS'value'\np43707\nI00\nssS'properties'\np43708\n(dp43709\nS'default_value'\np43710\n(dp43711\nS'editable'\np43712\nI00\nsS'value'\np43713\nI00\nssS'summary_default'\np43714\n(dp43715\nS'editable'\np43716\nI01\nsS'value'\np43717\nS'none'\np43718\nsssS'description'\np43719\n(dp43720\nS'editable'\np43721\nI01\nsS'value'\np43722\ng47\nsssS'image'\np43723\n(dp43724\nS'mandatory'\np43725\n(dp43726\nS'editable'\np43727\nI00\nsS'value'\np43728\nI00\nssS'name'\np43729\n(dp43730\nS'editable'\np43731\nI01\nsS'value'\np43732\nS'Thumbnail'\np43733\nssS'data_type'\np43734\n(dp43735\nS'editable'\np43736\nI00\nsS'value'\np43737\nS'image'\np43738\nssS'entity_type'\np43739\n(dp43740\nS'editable'\np43741\nI00\nsS'value'\np43742\nS'HumanUser'\np43743\nssS'editable'\np43744\n(dp43745\nS'editable'\np43746\nI00\nsS'value'\np43747\nI01\nssS'unique'\np43748\n(dp43749\nS'editable'\np43750\nI00\nsS'value'\np43751\nI00\nssS'properties'\np43752\n(dp43753\nS'default_value'\np43754\n(dp43755\nS'editable'\np43756\nI00\nsS'value'\np43757\nNssS'summary_default'\np43758\n(dp43759\nS'editable'\np43760\nI01\nsS'value'\np43761\nS'none'\np43762\nsssS'description'\np43763\n(dp43764\nS'editable'\np43765\nI01\nsS'value'\np43766\ng47\nsssS'updated_at'\np43767\n(dp43768\nS'mandatory'\np43769\n(dp43770\nS'editable'\np43771\nI00\nsS'value'\np43772\nI00\nssS'name'\np43773\n(dp43774\nS'editable'\np43775\nI01\nsS'value'\np43776\nS'Date Updated'\np43777\nssS'data_type'\np43778\n(dp43779\nS'editable'\np43780\nI00\nsS'value'\np43781\nS'date_time'\np43782\nssS'entity_type'\np43783\n(dp43784\nS'editable'\np43785\nI00\nsS'value'\np43786\nS'HumanUser'\np43787\nssS'editable'\np43788\n(dp43789\nS'editable'\np43790\nI00\nsS'value'\np43791\nI00\nssS'unique'\np43792\n(dp43793\nS'editable'\np43794\nI00\nsS'value'\np43795\nI00\nssS'properties'\np43796\n(dp43797\nS'default_value'\np43798\n(dp43799\nS'editable'\np43800\nI00\nsS'value'\np43801\nNssS'summary_default'\np43802\n(dp43803\nS'editable'\np43804\nI01\nsS'value'\np43805\nS'none'\np43806\nsssS'description'\np43807\n(dp43808\nS'editable'\np43809\nI01\nsS'value'\np43810\ng47\nsssS'password_change_next_login'\np43811\n(dp43812\nS'mandatory'\np43813\n(dp43814\nS'editable'\np43815\nI00\nsS'value'\np43816\nI00\nssS'name'\np43817\n(dp43818\nS'editable'\np43819\nI01\nsS'value'\np43820\nS'Require a change of password at the next sign in'\np43821\nssS'data_type'\np43822\n(dp43823\nS'editable'\np43824\nI00\nsS'value'\np43825\nS'checkbox'\np43826\nssS'entity_type'\np43827\n(dp43828\nS'editable'\np43829\nI00\nsS'value'\np43830\nS'HumanUser'\np43831\nssS'editable'\np43832\n(dp43833\nS'editable'\np43834\nI00\nsS'value'\np43835\nI01\nssS'unique'\np43836\n(dp43837\nS'editable'\np43838\nI00\nsS'value'\np43839\nI00\nssS'properties'\np43840\n(dp43841\nS'default_value'\np43842\n(dp43843\nS'editable'\np43844\nI00\nsS'value'\np43845\nI00\nssS'summary_default'\np43846\n(dp43847\nS'editable'\np43848\nI00\nsS'value'\np43849\nS'none'\np43850\nsssS'description'\np43851\n(dp43852\nS'editable'\np43853\nI01\nsS'value'\np43854\ng47\nsssS'email_inbox_general'\np43855\n(dp43856\nS'mandatory'\np43857\n(dp43858\nS'editable'\np43859\nI00\nsS'value'\np43860\nI00\nssS'name'\np43861\n(dp43862\nS'editable'\np43863\nI01\nsS'value'\np43864\nS'Subscribe to My Inbox Update Emails'\np43865\nssS'data_type'\np43866\n(dp43867\nS'editable'\np43868\nI00\nsS'value'\np43869\nS'checkbox'\np43870\nssS'entity_type'\np43871\n(dp43872\nS'editable'\np43873\nI00\nsS'value'\np43874\nS'HumanUser'\np43875\nssS'editable'\np43876\n(dp43877\nS'editable'\np43878\nI00\nsS'value'\np43879\nI01\nssS'unique'\np43880\n(dp43881\nS'editable'\np43882\nI00\nsS'value'\np43883\nI00\nssS'properties'\np43884\n(dp43885\nS'default_value'\np43886\n(dp43887\nS'editable'\np43888\nI00\nsS'value'\np43889\nNssS'summary_default'\np43890\n(dp43891\nS'editable'\np43892\nI01\nsS'value'\np43893\nS'none'\np43894\nsssS'description'\np43895\n(dp43896\nS'editable'\np43897\nI01\nsS'value'\np43898\ng47\nsssS'bookings'\np43899\n(dp43900\nS'mandatory'\np43901\n(dp43902\nS'editable'\np43903\nI00\nsS'value'\np43904\nI00\nssS'name'\np43905\n(dp43906\nS'editable'\np43907\nI01\nsS'value'\np43908\nS'Bookings'\np43909\nssS'data_type'\np43910\n(dp43911\nS'editable'\np43912\nI00\nsS'value'\np43913\nS'multi_entity'\np43914\nssS'entity_type'\np43915\n(dp43916\nS'editable'\np43917\nI00\nsS'value'\np43918\nS'HumanUser'\np43919\nssS'editable'\np43920\n(dp43921\nS'editable'\np43922\nI00\nsS'value'\np43923\nI00\nssS'unique'\np43924\n(dp43925\nS'editable'\np43926\nI00\nsS'value'\np43927\nI00\nssS'properties'\np43928\n(dp43929\nS'default_value'\np43930\n(dp43931\nS'editable'\np43932\nI00\nsS'value'\np43933\nNssS'summary_default'\np43934\n(dp43935\nS'editable'\np43936\nI00\nsS'value'\np43937\nS'none'\np43938\nssS'valid_types'\np43939\n(dp43940\nS'editable'\np43941\nI00\nsS'value'\np43942\n(lp43943\nS'Booking'\np43944\nasssS'description'\np43945\n(dp43946\nS'editable'\np43947\nI01\nsS'value'\np43948\ng47\nsssS'banners'\np43949\n(dp43950\nS'mandatory'\np43951\n(dp43952\nS'editable'\np43953\nI00\nsS'value'\np43954\nI00\nssS'name'\np43955\n(dp43956\nS'editable'\np43957\nI01\nsS'value'\np43958\nS'Banners'\np43959\nssS'data_type'\np43960\n(dp43961\nS'editable'\np43962\nI00\nsS'value'\np43963\nS'multi_entity'\np43964\nssS'entity_type'\np43965\n(dp43966\nS'editable'\np43967\nI00\nsS'value'\np43968\nS'HumanUser'\np43969\nssS'editable'\np43970\n(dp43971\nS'editable'\np43972\nI00\nsS'value'\np43973\nI01\nssS'unique'\np43974\n(dp43975\nS'editable'\np43976\nI00\nsS'value'\np43977\nI00\nssS'properties'\np43978\n(dp43979\nS'default_value'\np43980\n(dp43981\nS'editable'\np43982\nI00\nsS'value'\np43983\nNssS'summary_default'\np43984\n(dp43985\nS'editable'\np43986\nI00\nsS'value'\np43987\nS'none'\np43988\nssS'valid_types'\np43989\n(dp43990\nS'editable'\np43991\nI00\nsS'value'\np43992\n(lp43993\nS'Banners'\np43994\nasssS'description'\np43995\n(dp43996\nS'editable'\np43997\nI01\nsS'value'\np43998\ng47\nsssS'locked_until'\np43999\n(dp44000\nS'mandatory'\np44001\n(dp44002\nS'editable'\np44003\nI00\nsS'value'\np44004\nI00\nssS'name'\np44005\n(dp44006\nS'editable'\np44007\nI01\nsS'value'\np44008\nS'Locked Until'\np44009\nssS'data_type'\np44010\n(dp44011\nS'editable'\np44012\nI00\nsS'value'\np44013\nS'date_time'\np44014\nssS'entity_type'\np44015\n(dp44016\nS'editable'\np44017\nI00\nsS'value'\np44018\nS'HumanUser'\np44019\nssS'editable'\np44020\n(dp44021\nS'editable'\np44022\nI00\nsS'value'\np44023\nI01\nssS'unique'\np44024\n(dp44025\nS'editable'\np44026\nI00\nsS'value'\np44027\nI00\nssS'properties'\np44028\n(dp44029\nS'default_value'\np44030\n(dp44031\nS'editable'\np44032\nI00\nsS'value'\np44033\nNssS'summary_default'\np44034\n(dp44035\nS'editable'\np44036\nI00\nsS'value'\np44037\nS'none'\np44038\nsssS'description'\np44039\n(dp44040\nS'editable'\np44041\nI01\nsS'value'\np44042\ng47\nsssS'password_proxy'\np44043\n(dp44044\nS'mandatory'\np44045\n(dp44046\nS'editable'\np44047\nI00\nsS'value'\np44048\nI00\nssS'name'\np44049\n(dp44050\nS'editable'\np44051\nI01\nsS'value'\np44052\nS'Password'\np44053\nssS'data_type'\np44054\n(dp44055\nS'editable'\np44056\nI00\nsS'value'\np44057\nS'password'\np44058\nssS'entity_type'\np44059\n(dp44060\nS'editable'\np44061\nI00\nsS'value'\np44062\nS'HumanUser'\np44063\nssS'editable'\np44064\n(dp44065\nS'editable'\np44066\nI00\nsS'value'\np44067\nI00\nssS'unique'\np44068\n(dp44069\nS'editable'\np44070\nI00\nsS'value'\np44071\nI00\nssS'properties'\np44072\n(dp44073\nS'default_value'\np44074\n(dp44075\nS'editable'\np44076\nI00\nsS'value'\np44077\nNssS'summary_default'\np44078\n(dp44079\nS'editable'\np44080\nI01\nsS'value'\np44081\nS'none'\np44082\nsssS'description'\np44083\n(dp44084\nS'editable'\np44085\nI01\nsS'value'\np44086\ng47\nsssS'cached_display_name'\np44087\n(dp44088\nS'mandatory'\np44089\n(dp44090\nS'editable'\np44091\nI00\nsS'value'\np44092\nI00\nssS'name'\np44093\n(dp44094\nS'editable'\np44095\nI01\nsS'value'\np44096\nS'Cached Display Name'\np44097\nssS'data_type'\np44098\n(dp44099\nS'editable'\np44100\nI00\nsS'value'\np44101\nS'text'\np44102\nssS'entity_type'\np44103\n(dp44104\nS'editable'\np44105\nI00\nsS'value'\np44106\nS'HumanUser'\np44107\nssS'editable'\np44108\n(dp44109\nS'editable'\np44110\nI00\nsS'value'\np44111\nI01\nssS'unique'\np44112\n(dp44113\nS'editable'\np44114\nI00\nsS'value'\np44115\nI00\nssS'properties'\np44116\n(dp44117\nS'default_value'\np44118\n(dp44119\nS'editable'\np44120\nI00\nsS'value'\np44121\nNssS'summary_default'\np44122\n(dp44123\nS'editable'\np44124\nI00\nsS'value'\np44125\nS'none'\np44126\nsssS'description'\np44127\n(dp44128\nS'editable'\np44129\nI01\nsS'value'\np44130\ng47\nsssS'id'\np44131\n(dp44132\nS'mandatory'\np44133\n(dp44134\nS'editable'\np44135\nI00\nsS'value'\np44136\nI00\nssS'name'\np44137\n(dp44138\nS'editable'\np44139\nI01\nsS'value'\np44140\nS'Id'\np44141\nssS'data_type'\np44142\n(dp44143\nS'editable'\np44144\nI00\nsS'value'\np44145\nS'number'\np44146\nssS'entity_type'\np44147\n(dp44148\nS'editable'\np44149\nI00\nsS'value'\np44150\nS'HumanUser'\np44151\nssS'editable'\np44152\n(dp44153\nS'editable'\np44154\nI00\nsS'value'\np44155\nI00\nssS'unique'\np44156\n(dp44157\nS'editable'\np44158\nI00\nsS'value'\np44159\nI00\nssS'properties'\np44160\n(dp44161\nS'default_value'\np44162\n(dp44163\nS'editable'\np44164\nI00\nsS'value'\np44165\nNssS'summary_default'\np44166\n(dp44167\nS'editable'\np44168\nI01\nsS'value'\np44169\nS'none'\np44170\nsssS'description'\np44171\n(dp44172\nS'editable'\np44173\nI01\nsS'value'\np44174\ng47\nsssS'email_version_link_cc'\np44175\n(dp44176\nS'mandatory'\np44177\n(dp44178\nS'editable'\np44179\nI00\nsS'value'\np44180\nI00\nssS'name'\np44181\n(dp44182\nS'editable'\np44183\nI01\nsS'value'\np44184\nS\"Subscribe to Version Emails for CC'd Link\"\np44185\nssS'data_type'\np44186\n(dp44187\nS'editable'\np44188\nI00\nsS'value'\np44189\nS'checkbox'\np44190\nssS'entity_type'\np44191\n(dp44192\nS'editable'\np44193\nI00\nsS'value'\np44194\nS'HumanUser'\np44195\nssS'editable'\np44196\n(dp44197\nS'editable'\np44198\nI00\nsS'value'\np44199\nI01\nssS'unique'\np44200\n(dp44201\nS'editable'\np44202\nI00\nsS'value'\np44203\nI00\nssS'properties'\np44204\n(dp44205\nS'default_value'\np44206\n(dp44207\nS'editable'\np44208\nI00\nsS'value'\np44209\nI00\nssS'summary_default'\np44210\n(dp44211\nS'editable'\np44212\nI01\nsS'value'\np44213\nS'none'\np44214\nsssS'description'\np44215\n(dp44216\nS'editable'\np44217\nI01\nsS'value'\np44218\ng47\nsssS'home_page'\np44219\n(dp44220\nS'mandatory'\np44221\n(dp44222\nS'editable'\np44223\nI00\nsS'value'\np44224\nI00\nssS'name'\np44225\n(dp44226\nS'editable'\np44227\nI01\nsS'value'\np44228\nS'Home Page'\np44229\nssS'data_type'\np44230\n(dp44231\nS'editable'\np44232\nI00\nsS'value'\np44233\nS'list'\np44234\nssS'entity_type'\np44235\n(dp44236\nS'editable'\np44237\nI00\nsS'value'\np44238\nS'HumanUser'\np44239\nssS'editable'\np44240\n(dp44241\nS'editable'\np44242\nI00\nsS'value'\np44243\nI01\nssS'unique'\np44244\n(dp44245\nS'editable'\np44246\nI00\nsS'value'\np44247\nI00\nssS'properties'\np44248\n(dp44249\nS'default_value'\np44250\n(dp44251\nS'editable'\np44252\nI00\nsS'value'\np44253\nNssS'valid_values'\np44254\n(dp44255\nS'editable'\np44256\nI00\nsS'value'\np44257\n(lp44258\nS'home'\np44259\naS'inbox'\np44260\naS'my_tasks'\np44261\naS'new_user_welcome'\np44262\nassS'summary_default'\np44263\n(dp44264\nS'editable'\np44265\nI00\nsS'value'\np44266\nS'none'\np44267\nsssS'description'\np44268\n(dp44269\nS'editable'\np44270\nI01\nsS'value'\np44271\ng47\nsssS'email_versions'\np44272\n(dp44273\nS'mandatory'\np44274\n(dp44275\nS'editable'\np44276\nI00\nsS'value'\np44277\nI00\nssS'name'\np44278\n(dp44279\nS'editable'\np44280\nI01\nsS'value'\np44281\nS'Subscribe to My Version Emails'\np44282\nssS'data_type'\np44283\n(dp44284\nS'editable'\np44285\nI00\nsS'value'\np44286\nS'checkbox'\np44287\nssS'entity_type'\np44288\n(dp44289\nS'editable'\np44290\nI00\nsS'value'\np44291\nS'HumanUser'\np44292\nssS'editable'\np44293\n(dp44294\nS'editable'\np44295\nI00\nsS'value'\np44296\nI01\nssS'unique'\np44297\n(dp44298\nS'editable'\np44299\nI00\nsS'value'\np44300\nI00\nssS'properties'\np44301\n(dp44302\nS'default_value'\np44303\n(dp44304\nS'editable'\np44305\nI00\nsS'value'\np44306\nI00\nssS'summary_default'\np44307\n(dp44308\nS'editable'\np44309\nI01\nsS'value'\np44310\nS'none'\np44311\nsssS'description'\np44312\n(dp44313\nS'editable'\np44314\nI01\nsS'value'\np44315\ng47\nsssS'created_by'\np44316\n(dp44317\nS'mandatory'\np44318\n(dp44319\nS'editable'\np44320\nI00\nsS'value'\np44321\nI00\nssS'name'\np44322\n(dp44323\nS'editable'\np44324\nI01\nsS'value'\np44325\nS'Created by'\np44326\nssS'data_type'\np44327\n(dp44328\nS'editable'\np44329\nI00\nsS'value'\np44330\nS'entity'\np44331\nssS'entity_type'\np44332\n(dp44333\nS'editable'\np44334\nI00\nsS'value'\np44335\nS'HumanUser'\np44336\nssS'editable'\np44337\n(dp44338\nS'editable'\np44339\nI00\nsS'value'\np44340\nI00\nssS'unique'\np44341\n(dp44342\nS'editable'\np44343\nI00\nsS'value'\np44344\nI00\nssS'properties'\np44345\n(dp44346\nS'default_value'\np44347\n(dp44348\nS'editable'\np44349\nI00\nsS'value'\np44350\nNssS'summary_default'\np44351\n(dp44352\nS'editable'\np44353\nI01\nsS'value'\np44354\nS'none'\np44355\nssS'valid_types'\np44356\n(dp44357\nS'editable'\np44358\nI01\nsS'value'\np44359\n(lp44360\nS'HumanUser'\np44361\naS'ApiUser'\np44362\nasssS'description'\np44363\n(dp44364\nS'editable'\np44365\nI01\nsS'value'\np44366\ng47\nsssS'sg_status_list'\np44367\n(dp44368\nS'mandatory'\np44369\n(dp44370\nS'editable'\np44371\nI00\nsS'value'\np44372\nI00\nssS'name'\np44373\n(dp44374\nS'editable'\np44375\nI01\nsS'value'\np44376\nS'Status'\np44377\nssS'data_type'\np44378\n(dp44379\nS'editable'\np44380\nI00\nsS'value'\np44381\nS'status_list'\np44382\nssS'entity_type'\np44383\n(dp44384\nS'editable'\np44385\nI00\nsS'value'\np44386\nS'HumanUser'\np44387\nssS'editable'\np44388\n(dp44389\nS'editable'\np44390\nI00\nsS'value'\np44391\nI01\nssS'unique'\np44392\n(dp44393\nS'editable'\np44394\nI00\nsS'value'\np44395\nI00\nssS'properties'\np44396\n(dp44397\nS'default_value'\np44398\n(dp44399\nS'editable'\np44400\nI01\nsS'value'\np44401\nS'act'\np44402\nssS'valid_values'\np44403\n(dp44404\nS'editable'\np44405\nI01\nsS'value'\np44406\n(lp44407\nS'act'\np44408\naS'dis'\np44409\nassS'summary_default'\np44410\n(dp44411\nS'editable'\np44412\nI01\nsS'value'\np44413\nS'none'\np44414\nsssS'description'\np44415\n(dp44416\nS'editable'\np44417\nI01\nsS'value'\np44418\ng47\nsssS'department'\np44419\n(dp44420\nS'mandatory'\np44421\n(dp44422\nS'editable'\np44423\nI00\nsS'value'\np44424\nI00\nssS'name'\np44425\n(dp44426\nS'editable'\np44427\nI01\nsS'value'\np44428\nS'Department'\np44429\nssS'data_type'\np44430\n(dp44431\nS'editable'\np44432\nI00\nsS'value'\np44433\nS'entity'\np44434\nssS'entity_type'\np44435\n(dp44436\nS'editable'\np44437\nI00\nsS'value'\np44438\nS'HumanUser'\np44439\nssS'editable'\np44440\n(dp44441\nS'editable'\np44442\nI00\nsS'value'\np44443\nI01\nssS'unique'\np44444\n(dp44445\nS'editable'\np44446\nI00\nsS'value'\np44447\nI00\nssS'properties'\np44448\n(dp44449\nS'default_value'\np44450\n(dp44451\nS'editable'\np44452\nI00\nsS'value'\np44453\nNssS'summary_default'\np44454\n(dp44455\nS'editable'\np44456\nI01\nsS'value'\np44457\nS'none'\np44458\nssS'valid_types'\np44459\n(dp44460\nS'editable'\np44461\nI01\nsS'value'\np44462\n(lp44463\nS'Department'\np44464\nasssS'description'\np44465\n(dp44466\nS'editable'\np44467\nI01\nsS'value'\np44468\ng47\nsssS'email_tickets'\np44469\n(dp44470\nS'mandatory'\np44471\n(dp44472\nS'editable'\np44473\nI00\nsS'value'\np44474\nI00\nssS'name'\np44475\n(dp44476\nS'editable'\np44477\nI01\nsS'value'\np44478\nS'Subscribe to My Tickets Emails'\np44479\nssS'data_type'\np44480\n(dp44481\nS'editable'\np44482\nI00\nsS'value'\np44483\nS'checkbox'\np44484\nssS'entity_type'\np44485\n(dp44486\nS'editable'\np44487\nI00\nsS'value'\np44488\nS'HumanUser'\np44489\nssS'editable'\np44490\n(dp44491\nS'editable'\np44492\nI00\nsS'value'\np44493\nI01\nssS'unique'\np44494\n(dp44495\nS'editable'\np44496\nI00\nsS'value'\np44497\nI00\nssS'properties'\np44498\n(dp44499\nS'default_value'\np44500\n(dp44501\nS'editable'\np44502\nI00\nsS'value'\np44503\nI00\nssS'summary_default'\np44504\n(dp44505\nS'editable'\np44506\nI01\nsS'value'\np44507\nS'none'\np44508\nsssS'description'\np44509\n(dp44510\nS'editable'\np44511\nI01\nsS'value'\np44512\ng47\nsssS'email'\np44513\n(dp44514\nS'mandatory'\np44515\n(dp44516\nS'editable'\np44517\nI00\nsS'value'\np44518\nI00\nssS'name'\np44519\n(dp44520\nS'editable'\np44521\nI01\nsS'value'\np44522\nS'Email'\np44523\nssS'data_type'\np44524\n(dp44525\nS'editable'\np44526\nI00\nsS'value'\np44527\nS'text'\np44528\nssS'entity_type'\np44529\n(dp44530\nS'editable'\np44531\nI00\nsS'value'\np44532\nS'HumanUser'\np44533\nssS'editable'\np44534\n(dp44535\nS'editable'\np44536\nI00\nsS'value'\np44537\nI01\nssS'unique'\np44538\n(dp44539\nS'editable'\np44540\nI00\nsS'value'\np44541\nI00\nssS'properties'\np44542\n(dp44543\nS'default_value'\np44544\n(dp44545\nS'editable'\np44546\nI00\nsS'value'\np44547\ng47\nssS'summary_default'\np44548\n(dp44549\nS'editable'\np44550\nI01\nsS'value'\np44551\nS'none'\np44552\nsssS'description'\np44553\n(dp44554\nS'editable'\np44555\nI01\nsS'value'\np44556\ng47\nsssS'pipeline_configurations'\np44557\n(dp44558\nS'mandatory'\np44559\n(dp44560\nS'editable'\np44561\nI00\nsS'value'\np44562\nI00\nssS'name'\np44563\n(dp44564\nS'editable'\np44565\nI01\nsS'value'\np44566\nS'Pipeline Configurations'\np44567\nssS'data_type'\np44568\n(dp44569\nS'editable'\np44570\nI00\nsS'value'\np44571\nS'multi_entity'\np44572\nssS'entity_type'\np44573\n(dp44574\nS'editable'\np44575\nI00\nsS'value'\np44576\nS'HumanUser'\np44577\nssS'editable'\np44578\n(dp44579\nS'editable'\np44580\nI00\nsS'value'\np44581\nI01\nssS'unique'\np44582\n(dp44583\nS'editable'\np44584\nI00\nsS'value'\np44585\nI00\nssS'properties'\np44586\n(dp44587\nS'default_value'\np44588\n(dp44589\nS'editable'\np44590\nI00\nsS'value'\np44591\nNssS'summary_default'\np44592\n(dp44593\nS'editable'\np44594\nI00\nsS'value'\np44595\nS'none'\np44596\nssS'valid_types'\np44597\n(dp44598\nS'editable'\np44599\nI00\nsS'value'\np44600\n(lp44601\nS'PipelineConfiguration'\np44602\nasssS'description'\np44603\n(dp44604\nS'editable'\np44605\nI01\nsS'value'\np44606\ng47\nsssS'password_strength'\np44607\n(dp44608\nS'mandatory'\np44609\n(dp44610\nS'editable'\np44611\nI00\nsS'value'\np44612\nI00\nssS'name'\np44613\n(dp44614\nS'editable'\np44615\nI01\nsS'value'\np44616\nS'Password Strength'\np44617\nssS'data_type'\np44618\n(dp44619\nS'editable'\np44620\nI00\nsS'value'\np44621\nS'float'\np44622\nssS'entity_type'\np44623\n(dp44624\nS'editable'\np44625\nI00\nsS'value'\np44626\nS'HumanUser'\np44627\nssS'editable'\np44628\n(dp44629\nS'editable'\np44630\nI00\nsS'value'\np44631\nI01\nssS'unique'\np44632\n(dp44633\nS'editable'\np44634\nI00\nsS'value'\np44635\nI00\nssS'properties'\np44636\n(dp44637\nS'default_value'\np44638\n(dp44639\nS'editable'\np44640\nI00\nsS'value'\np44641\nNssS'summary_default'\np44642\n(dp44643\nS'editable'\np44644\nI00\nsS'value'\np44645\nS'none'\np44646\nsssS'description'\np44647\n(dp44648\nS'editable'\np44649\nI01\nsS'value'\np44650\ng47\nsssS'updated_by'\np44651\n(dp44652\nS'mandatory'\np44653\n(dp44654\nS'editable'\np44655\nI00\nsS'value'\np44656\nI00\nssS'name'\np44657\n(dp44658\nS'editable'\np44659\nI01\nsS'value'\np44660\nS'Updated by'\np44661\nssS'data_type'\np44662\n(dp44663\nS'editable'\np44664\nI00\nsS'value'\np44665\nS'entity'\np44666\nssS'entity_type'\np44667\n(dp44668\nS'editable'\np44669\nI00\nsS'value'\np44670\nS'HumanUser'\np44671\nssS'editable'\np44672\n(dp44673\nS'editable'\np44674\nI00\nsS'value'\np44675\nI00\nssS'unique'\np44676\n(dp44677\nS'editable'\np44678\nI00\nsS'value'\np44679\nI00\nssS'properties'\np44680\n(dp44681\nS'default_value'\np44682\n(dp44683\nS'editable'\np44684\nI00\nsS'value'\np44685\nNssS'summary_default'\np44686\n(dp44687\nS'editable'\np44688\nI01\nsS'value'\np44689\nS'none'\np44690\nssS'valid_types'\np44691\n(dp44692\nS'editable'\np44693\nI01\nsS'value'\np44694\n(lp44695\nS'HumanUser'\np44696\naS'ApiUser'\np44697\nasssS'description'\np44698\n(dp44699\nS'editable'\np44700\nI01\nsS'value'\np44701\ng47\nsssS'firstname'\np44702\n(dp44703\nS'mandatory'\np44704\n(dp44705\nS'editable'\np44706\nI00\nsS'value'\np44707\nI00\nssS'name'\np44708\n(dp44709\nS'editable'\np44710\nI01\nsS'value'\np44711\nS'First Name'\np44712\nssS'data_type'\np44713\n(dp44714\nS'editable'\np44715\nI00\nsS'value'\np44716\nS'text'\np44717\nssS'entity_type'\np44718\n(dp44719\nS'editable'\np44720\nI00\nsS'value'\np44721\nS'HumanUser'\np44722\nssS'editable'\np44723\n(dp44724\nS'editable'\np44725\nI00\nsS'value'\np44726\nI01\nssS'unique'\np44727\n(dp44728\nS'editable'\np44729\nI00\nsS'value'\np44730\nI00\nssS'properties'\np44731\n(dp44732\nS'default_value'\np44733\n(dp44734\nS'editable'\np44735\nI00\nsS'value'\np44736\nNssS'summary_default'\np44737\n(dp44738\nS'editable'\np44739\nI01\nsS'value'\np44740\nS'none'\np44741\nsssS'description'\np44742\n(dp44743\nS'editable'\np44744\nI01\nsS'value'\np44745\ng47\nsssS'app_welcomes'\np44746\n(dp44747\nS'mandatory'\np44748\n(dp44749\nS'editable'\np44750\nI00\nsS'value'\np44751\nI00\nssS'name'\np44752\n(dp44753\nS'editable'\np44754\nI01\nsS'value'\np44755\nS'App Welcomes'\np44756\nssS'data_type'\np44757\n(dp44758\nS'editable'\np44759\nI00\nsS'value'\np44760\nS'multi_entity'\np44761\nssS'entity_type'\np44762\n(dp44763\nS'editable'\np44764\nI00\nsS'value'\np44765\nS'HumanUser'\np44766\nssS'editable'\np44767\n(dp44768\nS'editable'\np44769\nI00\nsS'value'\np44770\nI01\nssS'unique'\np44771\n(dp44772\nS'editable'\np44773\nI00\nsS'value'\np44774\nI00\nssS'properties'\np44775\n(dp44776\nS'default_value'\np44777\n(dp44778\nS'editable'\np44779\nI00\nsS'value'\np44780\nNssS'summary_default'\np44781\n(dp44782\nS'editable'\np44783\nI00\nsS'value'\np44784\nS'none'\np44785\nssS'valid_types'\np44786\n(dp44787\nS'editable'\np44788\nI00\nsS'value'\np44789\n(lp44790\nS'AppWelcome'\np44791\nasssS'description'\np44792\n(dp44793\nS'editable'\np44794\nI01\nsS'value'\np44795\ng47\nsssS'lastname'\np44796\n(dp44797\nS'mandatory'\np44798\n(dp44799\nS'editable'\np44800\nI00\nsS'value'\np44801\nI00\nssS'name'\np44802\n(dp44803\nS'editable'\np44804\nI01\nsS'value'\np44805\nS'Last Name'\np44806\nssS'data_type'\np44807\n(dp44808\nS'editable'\np44809\nI00\nsS'value'\np44810\nS'text'\np44811\nssS'entity_type'\np44812\n(dp44813\nS'editable'\np44814\nI00\nsS'value'\np44815\nS'HumanUser'\np44816\nssS'editable'\np44817\n(dp44818\nS'editable'\np44819\nI00\nsS'value'\np44820\nI01\nssS'unique'\np44821\n(dp44822\nS'editable'\np44823\nI00\nsS'value'\np44824\nI00\nssS'properties'\np44825\n(dp44826\nS'default_value'\np44827\n(dp44828\nS'editable'\np44829\nI00\nsS'value'\np44830\nNssS'summary_default'\np44831\n(dp44832\nS'editable'\np44833\nI01\nsS'value'\np44834\nS'none'\np44835\nsssS'description'\np44836\n(dp44837\nS'editable'\np44838\nI01\nsS'value'\np44839\ng47\nsssS'groups'\np44840\n(dp44841\nS'mandatory'\np44842\n(dp44843\nS'editable'\np44844\nI00\nsS'value'\np44845\nI00\nssS'name'\np44846\n(dp44847\nS'editable'\np44848\nI01\nsS'value'\np44849\nS'Groups'\np44850\nssS'data_type'\np44851\n(dp44852\nS'editable'\np44853\nI00\nsS'value'\np44854\nS'multi_entity'\np44855\nssS'entity_type'\np44856\n(dp44857\nS'editable'\np44858\nI00\nsS'value'\np44859\nS'HumanUser'\np44860\nssS'editable'\np44861\n(dp44862\nS'editable'\np44863\nI00\nsS'value'\np44864\nI01\nssS'unique'\np44865\n(dp44866\nS'editable'\np44867\nI00\nsS'value'\np44868\nI00\nssS'properties'\np44869\n(dp44870\nS'default_value'\np44871\n(dp44872\nS'editable'\np44873\nI00\nsS'value'\np44874\nNssS'summary_default'\np44875\n(dp44876\nS'editable'\np44877\nI01\nsS'value'\np44878\nS'none'\np44879\nssS'valid_types'\np44880\n(dp44881\nS'editable'\np44882\nI01\nsS'value'\np44883\n(lp44884\nS'Group'\np44885\nasssS'description'\np44886\n(dp44887\nS'editable'\np44888\nI01\nsS'value'\np44889\ng47\nsssS'email_all_versions'\np44890\n(dp44891\nS'mandatory'\np44892\n(dp44893\nS'editable'\np44894\nI00\nsS'value'\np44895\nI00\nssS'name'\np44896\n(dp44897\nS'editable'\np44898\nI01\nsS'value'\np44899\nS'Subscribe to All Version Emails'\np44900\nssS'data_type'\np44901\n(dp44902\nS'editable'\np44903\nI00\nsS'value'\np44904\nS'checkbox'\np44905\nssS'entity_type'\np44906\n(dp44907\nS'editable'\np44908\nI00\nsS'value'\np44909\nS'HumanUser'\np44910\nssS'editable'\np44911\n(dp44912\nS'editable'\np44913\nI00\nsS'value'\np44914\nI01\nssS'unique'\np44915\n(dp44916\nS'editable'\np44917\nI00\nsS'value'\np44918\nI00\nssS'properties'\np44919\n(dp44920\nS'default_value'\np44921\n(dp44922\nS'editable'\np44923\nI00\nsS'value'\np44924\nI00\nssS'summary_default'\np44925\n(dp44926\nS'editable'\np44927\nI01\nsS'value'\np44928\nS'none'\np44929\nsssS'description'\np44930\n(dp44931\nS'editable'\np44932\nI01\nsS'value'\np44933\ng47\nsssS'email_inbox_notes'\np44934\n(dp44935\nS'mandatory'\np44936\n(dp44937\nS'editable'\np44938\nI00\nsS'value'\np44939\nI00\nssS'name'\np44940\n(dp44941\nS'editable'\np44942\nI01\nsS'value'\np44943\nS'Subscribe to My Inbox Note Emails'\np44944\nssS'data_type'\np44945\n(dp44946\nS'editable'\np44947\nI00\nsS'value'\np44948\nS'checkbox'\np44949\nssS'entity_type'\np44950\n(dp44951\nS'editable'\np44952\nI00\nsS'value'\np44953\nS'HumanUser'\np44954\nssS'editable'\np44955\n(dp44956\nS'editable'\np44957\nI00\nsS'value'\np44958\nI01\nssS'unique'\np44959\n(dp44960\nS'editable'\np44961\nI00\nsS'value'\np44962\nI00\nssS'properties'\np44963\n(dp44964\nS'default_value'\np44965\n(dp44966\nS'editable'\np44967\nI00\nsS'value'\np44968\nNssS'summary_default'\np44969\n(dp44970\nS'editable'\np44971\nI01\nsS'value'\np44972\nS'none'\np44973\nsssS'description'\np44974\n(dp44975\nS'editable'\np44976\nI01\nsS'value'\np44977\ng47\nsssS'projects'\np44978\n(dp44979\nS'mandatory'\np44980\n(dp44981\nS'editable'\np44982\nI00\nsS'value'\np44983\nI00\nssS'name'\np44984\n(dp44985\nS'editable'\np44986\nI01\nsS'value'\np44987\nS'Projects'\np44988\nssS'data_type'\np44989\n(dp44990\nS'editable'\np44991\nI00\nsS'value'\np44992\nS'multi_entity'\np44993\nssS'entity_type'\np44994\n(dp44995\nS'editable'\np44996\nI00\nsS'value'\np44997\nS'HumanUser'\np44998\nssS'editable'\np44999\n(dp45000\nS'editable'\np45001\nI00\nsS'value'\np45002\nI01\nssS'unique'\np45003\n(dp45004\nS'editable'\np45005\nI00\nsS'value'\np45006\nI00\nssS'properties'\np45007\n(dp45008\nS'default_value'\np45009\n(dp45010\nS'editable'\np45011\nI00\nsS'value'\np45012\nNssS'summary_default'\np45013\n(dp45014\nS'editable'\np45015\nI01\nsS'value'\np45016\nS'none'\np45017\nssS'valid_types'\np45018\n(dp45019\nS'editable'\np45020\nI01\nsS'value'\np45021\n(lp45022\nS'Project'\np45023\nasssS'description'\np45024\n(dp45025\nS'editable'\np45026\nI01\nsS'value'\np45027\ng47\nsssS'enable_tank_integration'\np45028\n(dp45029\nS'mandatory'\np45030\n(dp45031\nS'editable'\np45032\nI00\nsS'value'\np45033\nI00\nssS'name'\np45034\n(dp45035\nS'editable'\np45036\nI01\nsS'value'\np45037\nS'Enable Tank Integration'\np45038\nssS'data_type'\np45039\n(dp45040\nS'editable'\np45041\nI00\nsS'value'\np45042\nS'checkbox'\np45043\nssS'entity_type'\np45044\n(dp45045\nS'editable'\np45046\nI00\nsS'value'\np45047\nS'HumanUser'\np45048\nssS'editable'\np45049\n(dp45050\nS'editable'\np45051\nI00\nsS'value'\np45052\nI01\nssS'unique'\np45053\n(dp45054\nS'editable'\np45055\nI00\nsS'value'\np45056\nI00\nssS'properties'\np45057\n(dp45058\nS'default_value'\np45059\n(dp45060\nS'editable'\np45061\nI00\nsS'value'\np45062\nI01\nssS'summary_default'\np45063\n(dp45064\nS'editable'\np45065\nI01\nsS'value'\np45066\nS'none'\np45067\nsssS'description'\np45068\n(dp45069\nS'editable'\np45070\nI01\nsS'value'\np45071\ng47\nsssS'email_deliveries'\np45072\n(dp45073\nS'mandatory'\np45074\n(dp45075\nS'editable'\np45076\nI00\nsS'value'\np45077\nI00\nssS'name'\np45078\n(dp45079\nS'editable'\np45080\nI01\nsS'value'\np45081\nS'Subscribe to My Deliveries Emails'\np45082\nssS'data_type'\np45083\n(dp45084\nS'editable'\np45085\nI00\nsS'value'\np45086\nS'checkbox'\np45087\nssS'entity_type'\np45088\n(dp45089\nS'editable'\np45090\nI00\nsS'value'\np45091\nS'HumanUser'\np45092\nssS'editable'\np45093\n(dp45094\nS'editable'\np45095\nI00\nsS'value'\np45096\nI01\nssS'unique'\np45097\n(dp45098\nS'editable'\np45099\nI00\nsS'value'\np45100\nI00\nssS'properties'\np45101\n(dp45102\nS'default_value'\np45103\n(dp45104\nS'editable'\np45105\nI00\nsS'value'\np45106\nI00\nssS'summary_default'\np45107\n(dp45108\nS'editable'\np45109\nI01\nsS'value'\np45110\nS'none'\np45111\nsssS'description'\np45112\n(dp45113\nS'editable'\np45114\nI01\nsS'value'\np45115\ng47\nsssS'name'\np45116\n(dp45117\nS'mandatory'\np45118\n(dp45119\nS'editable'\np45120\nI00\nsS'value'\np45121\nI01\nssS'name'\np45122\n(dp45123\nS'editable'\np45124\nI01\nsS'value'\np45125\nS'Name'\np45126\nssS'data_type'\np45127\n(dp45128\nS'editable'\np45129\nI00\nsS'value'\np45130\nS'text'\np45131\nssS'entity_type'\np45132\n(dp45133\nS'editable'\np45134\nI00\nsS'value'\np45135\nS'HumanUser'\np45136\nssS'editable'\np45137\n(dp45138\nS'editable'\np45139\nI00\nsS'value'\np45140\nI01\nssS'unique'\np45141\n(dp45142\nS'editable'\np45143\nI00\nsS'value'\np45144\nI00\nssS'properties'\np45145\n(dp45146\nS'default_value'\np45147\n(dp45148\nS'editable'\np45149\nI00\nsS'value'\np45150\nNssS'summary_default'\np45151\n(dp45152\nS'editable'\np45153\nI01\nsS'value'\np45154\nS'none'\np45155\nsssS'description'\np45156\n(dp45157\nS'editable'\np45158\nI01\nsS'value'\np45159\ng47\nsssS'tag_list'\np45160\n(dp45161\nS'mandatory'\np45162\n(dp45163\nS'editable'\np45164\nI00\nsS'value'\np45165\nI00\nssS'name'\np45166\n(dp45167\nS'editable'\np45168\nI01\nsS'value'\np45169\nS'Tags'\np45170\nssS'data_type'\np45171\n(dp45172\nS'editable'\np45173\nI00\nsS'value'\np45174\nS'tag_list'\np45175\nssS'entity_type'\np45176\n(dp45177\nS'editable'\np45178\nI00\nsS'value'\np45179\nS'HumanUser'\np45180\nssS'editable'\np45181\n(dp45182\nS'editable'\np45183\nI00\nsS'value'\np45184\nI01\nssS'unique'\np45185\n(dp45186\nS'editable'\np45187\nI00\nsS'value'\np45188\nI00\nssS'properties'\np45189\n(dp45190\nS'default_value'\np45191\n(dp45192\nS'editable'\np45193\nI00\nsS'value'\np45194\nNssS'summary_default'\np45195\n(dp45196\nS'editable'\np45197\nI01\nsS'value'\np45198\nS'none'\np45199\nssS'valid_types'\np45200\n(dp45201\nS'editable'\np45202\nI01\nsS'value'\np45203\n(lp45204\nS'Tag'\np45205\nasssS'description'\np45206\n(dp45207\nS'editable'\np45208\nI01\nsS'value'\np45209\ng47\nsssS'created_at'\np45210\n(dp45211\nS'mandatory'\np45212\n(dp45213\nS'editable'\np45214\nI00\nsS'value'\np45215\nI00\nssS'name'\np45216\n(dp45217\nS'editable'\np45218\nI01\nsS'value'\np45219\nS'Date Created'\np45220\nssS'data_type'\np45221\n(dp45222\nS'editable'\np45223\nI00\nsS'value'\np45224\nS'date_time'\np45225\nssS'entity_type'\np45226\n(dp45227\nS'editable'\np45228\nI00\nsS'value'\np45229\nS'HumanUser'\np45230\nssS'editable'\np45231\n(dp45232\nS'editable'\np45233\nI00\nsS'value'\np45234\nI00\nssS'unique'\np45235\n(dp45236\nS'editable'\np45237\nI00\nsS'value'\np45238\nI00\nssS'properties'\np45239\n(dp45240\nS'default_value'\np45241\n(dp45242\nS'editable'\np45243\nI00\nsS'value'\np45244\nNssS'summary_default'\np45245\n(dp45246\nS'editable'\np45247\nI01\nsS'value'\np45248\nS'none'\np45249\nsssS'description'\np45250\n(dp45251\nS'editable'\np45252\nI01\nsS'value'\np45253\ng47\nsssS'permission_rule_set'\np45254\n(dp45255\nS'mandatory'\np45256\n(dp45257\nS'editable'\np45258\nI00\nsS'value'\np45259\nI00\nssS'name'\np45260\n(dp45261\nS'editable'\np45262\nI01\nsS'value'\np45263\nS'Permission Group'\np45264\nssS'data_type'\np45265\n(dp45266\nS'editable'\np45267\nI00\nsS'value'\np45268\nS'entity'\np45269\nssS'entity_type'\np45270\n(dp45271\nS'editable'\np45272\nI00\nsS'value'\np45273\nS'HumanUser'\np45274\nssS'editable'\np45275\n(dp45276\nS'editable'\np45277\nI00\nsS'value'\np45278\nI00\nssS'unique'\np45279\n(dp45280\nS'editable'\np45281\nI00\nsS'value'\np45282\nI00\nssS'properties'\np45283\n(dp45284\nS'default_value'\np45285\n(dp45286\nS'editable'\np45287\nI00\nsS'value'\np45288\nNssS'summary_default'\np45289\n(dp45290\nS'editable'\np45291\nI01\nsS'value'\np45292\nS'none'\np45293\nssS'valid_types'\np45294\n(dp45295\nS'editable'\np45296\nI01\nsS'value'\np45297\n(lp45298\nS'PermissionRuleSet'\np45299\nasssS'description'\np45300\n(dp45301\nS'editable'\np45302\nI01\nsS'value'\np45303\ng47\nsssS'filmstrip_image'\np45304\n(dp45305\nS'mandatory'\np45306\n(dp45307\nS'editable'\np45308\nI00\nsS'value'\np45309\nI00\nssS'name'\np45310\n(dp45311\nS'editable'\np45312\nI01\nsS'value'\np45313\nS'Filmstrip Thumbnail'\np45314\nssS'data_type'\np45315\n(dp45316\nS'editable'\np45317\nI00\nsS'value'\np45318\nS'image'\np45319\nssS'entity_type'\np45320\n(dp45321\nS'editable'\np45322\nI00\nsS'value'\np45323\nS'HumanUser'\np45324\nssS'editable'\np45325\n(dp45326\nS'editable'\np45327\nI00\nsS'value'\np45328\nI01\nssS'unique'\np45329\n(dp45330\nS'editable'\np45331\nI00\nsS'value'\np45332\nI00\nssS'properties'\np45333\n(dp45334\nS'default_value'\np45335\n(dp45336\nS'editable'\np45337\nI00\nsS'value'\np45338\nNssS'summary_default'\np45339\n(dp45340\nS'editable'\np45341\nI01\nsS'value'\np45342\nS'none'\np45343\nsssS'description'\np45344\n(dp45345\nS'editable'\np45346\nI01\nsS'value'\np45347\ng47\nsssS'email_all_notes'\np45348\n(dp45349\nS'mandatory'\np45350\n(dp45351\nS'editable'\np45352\nI00\nsS'value'\np45353\nI00\nssS'name'\np45354\n(dp45355\nS'editable'\np45356\nI01\nsS'value'\np45357\nS'Subscribe to All Note Emails'\np45358\nssS'data_type'\np45359\n(dp45360\nS'editable'\np45361\nI00\nsS'value'\np45362\nS'checkbox'\np45363\nssS'entity_type'\np45364\n(dp45365\nS'editable'\np45366\nI00\nsS'value'\np45367\nS'HumanUser'\np45368\nssS'editable'\np45369\n(dp45370\nS'editable'\np45371\nI00\nsS'value'\np45372\nI01\nssS'unique'\np45373\n(dp45374\nS'editable'\np45375\nI00\nsS'value'\np45376\nI00\nssS'properties'\np45377\n(dp45378\nS'default_value'\np45379\n(dp45380\nS'editable'\np45381\nI00\nsS'value'\np45382\nI00\nssS'summary_default'\np45383\n(dp45384\nS'editable'\np45385\nI01\nsS'value'\np45386\nS'none'\np45387\nsssS'description'\np45388\n(dp45389\nS'editable'\np45390\nI01\nsS'value'\np45391\ng47\nsssS'email_tasks'\np45392\n(dp45393\nS'mandatory'\np45394\n(dp45395\nS'editable'\np45396\nI00\nsS'value'\np45397\nI00\nssS'name'\np45398\n(dp45399\nS'editable'\np45400\nI01\nsS'value'\np45401\nS'Subscribe to My Task Emails'\np45402\nssS'data_type'\np45403\n(dp45404\nS'editable'\np45405\nI00\nsS'value'\np45406\nS'checkbox'\np45407\nssS'entity_type'\np45408\n(dp45409\nS'editable'\np45410\nI00\nsS'value'\np45411\nS'HumanUser'\np45412\nssS'editable'\np45413\n(dp45414\nS'editable'\np45415\nI00\nsS'value'\np45416\nI01\nssS'unique'\np45417\n(dp45418\nS'editable'\np45419\nI00\nsS'value'\np45420\nI00\nssS'properties'\np45421\n(dp45422\nS'default_value'\np45423\n(dp45424\nS'editable'\np45425\nI00\nsS'value'\np45426\nI00\nssS'summary_default'\np45427\n(dp45428\nS'editable'\np45429\nI00\nsS'value'\np45430\nS'none'\np45431\nsssS'description'\np45432\n(dp45433\nS'editable'\np45434\nI01\nsS'value'\np45435\ng47\nsssS'login'\np45436\n(dp45437\nS'mandatory'\np45438\n(dp45439\nS'editable'\np45440\nI00\nsS'value'\np45441\nI00\nssS'name'\np45442\n(dp45443\nS'editable'\np45444\nI01\nsS'value'\np45445\nS'Login'\np45446\nssS'data_type'\np45447\n(dp45448\nS'editable'\np45449\nI00\nsS'value'\np45450\nS'text'\np45451\nssS'entity_type'\np45452\n(dp45453\nS'editable'\np45454\nI00\nsS'value'\np45455\nS'HumanUser'\np45456\nssS'editable'\np45457\n(dp45458\nS'editable'\np45459\nI00\nsS'value'\np45460\nI01\nssS'unique'\np45461\n(dp45462\nS'editable'\np45463\nI00\nsS'value'\np45464\nI01\nssS'properties'\np45465\n(dp45466\nS'default_value'\np45467\n(dp45468\nS'editable'\np45469\nI00\nsS'value'\np45470\ng47\nssS'summary_default'\np45471\n(dp45472\nS'editable'\np45473\nI01\nsS'value'\np45474\nS'none'\np45475\nsssS'description'\np45476\n(dp45477\nS'editable'\np45478\nI01\nsS'value'\np45479\ng47\nsssS'email_all_tickets'\np45480\n(dp45481\nS'mandatory'\np45482\n(dp45483\nS'editable'\np45484\nI00\nsS'value'\np45485\nI00\nssS'name'\np45486\n(dp45487\nS'editable'\np45488\nI01\nsS'value'\np45489\nS'Subscribe to All Ticket Emails'\np45490\nssS'data_type'\np45491\n(dp45492\nS'editable'\np45493\nI00\nsS'value'\np45494\nS'checkbox'\np45495\nssS'entity_type'\np45496\n(dp45497\nS'editable'\np45498\nI00\nsS'value'\np45499\nS'HumanUser'\np45500\nssS'editable'\np45501\n(dp45502\nS'editable'\np45503\nI00\nsS'value'\np45504\nI01\nssS'unique'\np45505\n(dp45506\nS'editable'\np45507\nI00\nsS'value'\np45508\nI00\nssS'properties'\np45509\n(dp45510\nS'default_value'\np45511\n(dp45512\nS'editable'\np45513\nI00\nsS'value'\np45514\nI00\nssS'summary_default'\np45515\n(dp45516\nS'editable'\np45517\nI01\nsS'value'\np45518\nS'none'\np45519\nsssS'description'\np45520\n(dp45521\nS'editable'\np45522\nI01\nsS'value'\np45523\ng47\nsssS'email_all_tasks'\np45524\n(dp45525\nS'mandatory'\np45526\n(dp45527\nS'editable'\np45528\nI00\nsS'value'\np45529\nI00\nssS'name'\np45530\n(dp45531\nS'editable'\np45532\nI01\nsS'value'\np45533\nS'Subscribe to All Task Emails'\np45534\nssS'data_type'\np45535\n(dp45536\nS'editable'\np45537\nI00\nsS'value'\np45538\nS'checkbox'\np45539\nssS'entity_type'\np45540\n(dp45541\nS'editable'\np45542\nI00\nsS'value'\np45543\nS'HumanUser'\np45544\nssS'editable'\np45545\n(dp45546\nS'editable'\np45547\nI00\nsS'value'\np45548\nI01\nssS'unique'\np45549\n(dp45550\nS'editable'\np45551\nI00\nsS'value'\np45552\nI00\nssS'properties'\np45553\n(dp45554\nS'default_value'\np45555\n(dp45556\nS'editable'\np45557\nI00\nsS'value'\np45558\nI00\nssS'summary_default'\np45559\n(dp45560\nS'editable'\np45561\nI00\nsS'value'\np45562\nS'none'\np45563\nsssS'description'\np45564\n(dp45565\nS'editable'\np45566\nI01\nsS'value'\np45567\ng47\nssssS'PermissionRuleSet'\np45568\n(dp45569\nS'code'\np45570\n(dp45571\nS'mandatory'\np45572\n(dp45573\nS'editable'\np45574\nI00\nsS'value'\np45575\nI00\nssS'name'\np45576\n(dp45577\nS'editable'\np45578\nI01\nsS'value'\np45579\nS'Code'\np45580\nssS'data_type'\np45581\n(dp45582\nS'editable'\np45583\nI00\nsS'value'\np45584\nS'text'\np45585\nssS'entity_type'\np45586\n(dp45587\nS'editable'\np45588\nI00\nsS'value'\np45589\nS'PermissionRuleSet'\np45590\nssS'editable'\np45591\n(dp45592\nS'editable'\np45593\nI00\nsS'value'\np45594\nI00\nssS'unique'\np45595\n(dp45596\nS'editable'\np45597\nI00\nsS'value'\np45598\nI00\nssS'properties'\np45599\n(dp45600\nS'default_value'\np45601\n(dp45602\nS'editable'\np45603\nI00\nsS'value'\np45604\nNssS'summary_default'\np45605\n(dp45606\nS'editable'\np45607\nI01\nsS'value'\np45608\nS'none'\np45609\nsssS'description'\np45610\n(dp45611\nS'editable'\np45612\nI01\nsS'value'\np45613\ng47\nsssS'display_name'\np45614\n(dp45615\nS'mandatory'\np45616\n(dp45617\nS'editable'\np45618\nI00\nsS'value'\np45619\nI00\nssS'name'\np45620\n(dp45621\nS'editable'\np45622\nI01\nsS'value'\np45623\nS'Display Name'\np45624\nssS'data_type'\np45625\n(dp45626\nS'editable'\np45627\nI00\nsS'value'\np45628\nS'text'\np45629\nssS'entity_type'\np45630\n(dp45631\nS'editable'\np45632\nI00\nsS'value'\np45633\nS'PermissionRuleSet'\np45634\nssS'editable'\np45635\n(dp45636\nS'editable'\np45637\nI00\nsS'value'\np45638\nI00\nssS'unique'\np45639\n(dp45640\nS'editable'\np45641\nI00\nsS'value'\np45642\nI00\nssS'properties'\np45643\n(dp45644\nS'default_value'\np45645\n(dp45646\nS'editable'\np45647\nI00\nsS'value'\np45648\nNssS'summary_default'\np45649\n(dp45650\nS'editable'\np45651\nI01\nsS'value'\np45652\nS'none'\np45653\nsssS'description'\np45654\n(dp45655\nS'editable'\np45656\nI01\nsS'value'\np45657\ng47\nsssS'entity_type'\np45658\n(dp45659\nS'mandatory'\np45660\n(dp45661\nS'editable'\np45662\nI00\nsS'value'\np45663\nI00\nssS'name'\np45664\n(dp45665\nS'editable'\np45666\nI01\nsS'value'\np45667\nS'Entity Type'\np45668\nssS'data_type'\np45669\n(dp45670\nS'editable'\np45671\nI00\nsS'value'\np45672\nS'entity_type'\np45673\nssS'entity_type'\np45674\n(dp45675\nS'editable'\np45676\nI00\nsS'value'\np45677\nS'PermissionRuleSet'\np45678\nssS'editable'\np45679\n(dp45680\nS'editable'\np45681\nI00\nsS'value'\np45682\nI00\nssS'unique'\np45683\n(dp45684\nS'editable'\np45685\nI00\nsS'value'\np45686\nI00\nssS'properties'\np45687\n(dp45688\nS'default_value'\np45689\n(dp45690\nS'editable'\np45691\nI00\nsS'value'\np45692\nNssS'summary_default'\np45693\n(dp45694\nS'editable'\np45695\nI01\nsS'value'\np45696\nS'none'\np45697\nsssS'description'\np45698\n(dp45699\nS'editable'\np45700\nI01\nsS'value'\np45701\ng47\nsssS'parent_set'\np45702\n(dp45703\nS'mandatory'\np45704\n(dp45705\nS'editable'\np45706\nI00\nsS'value'\np45707\nI00\nssS'name'\np45708\n(dp45709\nS'editable'\np45710\nI01\nsS'value'\np45711\nS'Parent Permission Role'\np45712\nssS'data_type'\np45713\n(dp45714\nS'editable'\np45715\nI00\nsS'value'\np45716\nS'entity'\np45717\nssS'entity_type'\np45718\n(dp45719\nS'editable'\np45720\nI00\nsS'value'\np45721\nS'PermissionRuleSet'\np45722\nssS'editable'\np45723\n(dp45724\nS'editable'\np45725\nI00\nsS'value'\np45726\nI00\nssS'unique'\np45727\n(dp45728\nS'editable'\np45729\nI00\nsS'value'\np45730\nI00\nssS'properties'\np45731\n(dp45732\nS'default_value'\np45733\n(dp45734\nS'editable'\np45735\nI00\nsS'value'\np45736\nNssS'summary_default'\np45737\n(dp45738\nS'editable'\np45739\nI01\nsS'value'\np45740\nS'none'\np45741\nssS'valid_types'\np45742\n(dp45743\nS'editable'\np45744\nI01\nsS'value'\np45745\n(lp45746\nS'PermissionRuleSet'\np45747\nasssS'description'\np45748\n(dp45749\nS'editable'\np45750\nI01\nsS'value'\np45751\ng47\nsssS'cached_display_name'\np45752\n(dp45753\nS'mandatory'\np45754\n(dp45755\nS'editable'\np45756\nI00\nsS'value'\np45757\nI00\nssS'name'\np45758\n(dp45759\nS'editable'\np45760\nI01\nsS'value'\np45761\nS'Cached Display Name'\np45762\nssS'data_type'\np45763\n(dp45764\nS'editable'\np45765\nI00\nsS'value'\np45766\nS'text'\np45767\nssS'entity_type'\np45768\n(dp45769\nS'editable'\np45770\nI00\nsS'value'\np45771\nS'PermissionRuleSet'\np45772\nssS'editable'\np45773\n(dp45774\nS'editable'\np45775\nI00\nsS'value'\np45776\nI00\nssS'unique'\np45777\n(dp45778\nS'editable'\np45779\nI00\nsS'value'\np45780\nI00\nssS'properties'\np45781\n(dp45782\nS'default_value'\np45783\n(dp45784\nS'editable'\np45785\nI00\nsS'value'\np45786\nNssS'summary_default'\np45787\n(dp45788\nS'editable'\np45789\nI00\nsS'value'\np45790\nS'none'\np45791\nsssS'description'\np45792\n(dp45793\nS'editable'\np45794\nI01\nsS'value'\np45795\ng47\nsssS'id'\np45796\n(dp45797\nS'mandatory'\np45798\n(dp45799\nS'editable'\np45800\nI00\nsS'value'\np45801\nI00\nssS'name'\np45802\n(dp45803\nS'editable'\np45804\nI01\nsS'value'\np45805\nS'ID'\np45806\nssS'data_type'\np45807\n(dp45808\nS'editable'\np45809\nI00\nsS'value'\np45810\nS'number'\np45811\nssS'entity_type'\np45812\n(dp45813\nS'editable'\np45814\nI00\nsS'value'\np45815\nS'PermissionRuleSet'\np45816\nssS'editable'\np45817\n(dp45818\nS'editable'\np45819\nI00\nsS'value'\np45820\nI00\nssS'unique'\np45821\n(dp45822\nS'editable'\np45823\nI00\nsS'value'\np45824\nI00\nssS'properties'\np45825\n(dp45826\nS'default_value'\np45827\n(dp45828\nS'editable'\np45829\nI00\nsS'value'\np45830\nNssS'summary_default'\np45831\n(dp45832\nS'editable'\np45833\nI00\nsS'value'\np45834\nS'none'\np45835\nsssS'description'\np45836\n(dp45837\nS'editable'\np45838\nI01\nsS'value'\np45839\ng47\nssssS'EventLogEntry'\np45840\n(dp45841\nS'attribute_name'\np45842\n(dp45843\nS'mandatory'\np45844\n(dp45845\nS'editable'\np45846\nI00\nsS'value'\np45847\nI00\nssS'name'\np45848\n(dp45849\nS'editable'\np45850\nI01\nsS'value'\np45851\nS'Attribute Name'\np45852\nssS'data_type'\np45853\n(dp45854\nS'editable'\np45855\nI00\nsS'value'\np45856\nS'text'\np45857\nssS'entity_type'\np45858\n(dp45859\nS'editable'\np45860\nI00\nsS'value'\np45861\nS'EventLogEntry'\np45862\nssS'editable'\np45863\n(dp45864\nS'editable'\np45865\nI00\nsS'value'\np45866\nI00\nssS'unique'\np45867\n(dp45868\nS'editable'\np45869\nI00\nsS'value'\np45870\nI00\nssS'properties'\np45871\n(dp45872\nS'default_value'\np45873\n(dp45874\nS'editable'\np45875\nI00\nsS'value'\np45876\nNssS'summary_default'\np45877\n(dp45878\nS'editable'\np45879\nI01\nsS'value'\np45880\nS'none'\np45881\nsssS'description'\np45882\n(dp45883\nS'editable'\np45884\nI01\nsS'value'\np45885\ng47\nsssS'description'\np45886\n(dp45887\nS'mandatory'\np45888\n(dp45889\nS'editable'\np45890\nI00\nsS'value'\np45891\nI01\nssS'name'\np45892\n(dp45893\nS'editable'\np45894\nI01\nsS'value'\np45895\nS'Event Summary'\np45896\nssS'data_type'\np45897\n(dp45898\nS'editable'\np45899\nI00\nsS'value'\np45900\nS'text'\np45901\nssS'entity_type'\np45902\n(dp45903\nS'editable'\np45904\nI00\nsS'value'\np45905\nS'EventLogEntry'\np45906\nssS'editable'\np45907\n(dp45908\nS'editable'\np45909\nI00\nsS'value'\np45910\nI00\nssS'unique'\np45911\n(dp45912\nS'editable'\np45913\nI00\nsS'value'\np45914\nI00\nssS'properties'\np45915\n(dp45916\nS'default_value'\np45917\n(dp45918\nS'editable'\np45919\nI00\nsS'value'\np45920\nNssS'summary_default'\np45921\n(dp45922\nS'editable'\np45923\nI01\nsS'value'\np45924\nS'none'\np45925\nsssS'description'\np45926\n(dp45927\nS'editable'\np45928\nI01\nsS'value'\np45929\ng47\nsssS'created_at'\np45930\n(dp45931\nS'mandatory'\np45932\n(dp45933\nS'editable'\np45934\nI00\nsS'value'\np45935\nI00\nssS'name'\np45936\n(dp45937\nS'editable'\np45938\nI01\nsS'value'\np45939\nS'Date Created'\np45940\nssS'data_type'\np45941\n(dp45942\nS'editable'\np45943\nI00\nsS'value'\np45944\nS'date_time'\np45945\nssS'entity_type'\np45946\n(dp45947\nS'editable'\np45948\nI00\nsS'value'\np45949\nS'EventLogEntry'\np45950\nssS'editable'\np45951\n(dp45952\nS'editable'\np45953\nI00\nsS'value'\np45954\nI00\nssS'unique'\np45955\n(dp45956\nS'editable'\np45957\nI00\nsS'value'\np45958\nI00\nssS'properties'\np45959\n(dp45960\nS'default_value'\np45961\n(dp45962\nS'editable'\np45963\nI00\nsS'value'\np45964\nNssS'summary_default'\np45965\n(dp45966\nS'editable'\np45967\nI01\nsS'value'\np45968\nS'latest'\np45969\nsssS'description'\np45970\n(dp45971\nS'editable'\np45972\nI01\nsS'value'\np45973\ng47\nsssS'entity'\np45974\n(dp45975\nS'mandatory'\np45976\n(dp45977\nS'editable'\np45978\nI00\nsS'value'\np45979\nI00\nssS'name'\np45980\n(dp45981\nS'editable'\np45982\nI01\nsS'value'\np45983\nS'Link'\np45984\nssS'data_type'\np45985\n(dp45986\nS'editable'\np45987\nI00\nsS'value'\np45988\nS'entity'\np45989\nssS'entity_type'\np45990\n(dp45991\nS'editable'\np45992\nI00\nsS'value'\np45993\nS'EventLogEntry'\np45994\nssS'editable'\np45995\n(dp45996\nS'editable'\np45997\nI00\nsS'value'\np45998\nI00\nssS'unique'\np45999\n(dp46000\nS'editable'\np46001\nI00\nsS'value'\np46002\nI00\nssS'properties'\np46003\n(dp46004\nS'default_value'\np46005\n(dp46006\nS'editable'\np46007\nI00\nsS'value'\np46008\nNssS'summary_default'\np46009\n(dp46010\nS'editable'\np46011\nI01\nsS'value'\np46012\nS'none'\np46013\nssS'valid_types'\np46014\n(dp46015\nS'editable'\np46016\nI01\nsS'value'\np46017\n(lp46018\nS'ApiUser'\np46019\naS'AppWelcome'\np46020\naS'Asset'\np46021\naS'AssetLibrary'\np46022\naS'Attachment'\np46023\naS'Banner'\np46024\naS'Booking'\np46025\naS'CustomEntity01'\np46026\naS'CustomEntity02'\np46027\naS'CustomEntity03'\np46028\naS'CustomEntity04'\np46029\naS'CustomEntity05'\np46030\naS'CustomNonProjectEntity01'\np46031\naS'CustomNonProjectEntity02'\np46032\naS'CustomNonProjectEntity03'\np46033\naS'Department'\np46034\naS'Element'\np46035\naS'Group'\np46036\naS'HumanUser'\np46037\naS'Icon'\np46038\naS'LocalStorage'\np46039\naS'Note'\np46040\naS'Page'\np46041\naS'PermissionRuleSet'\np46042\naS'Phase'\np46043\naS'PipelineConfiguration'\np46044\naS'Playlist'\np46045\naS'Project'\np46046\naS'PublishedFile'\np46047\naS'PublishedFileDependency'\np46048\naS'PublishedFileType'\np46049\naS'Scene'\np46050\naS'Sequence'\np46051\naS'Shot'\np46052\naS'Status'\np46053\naS'Step'\np46054\naS'Tag'\np46055\naS'TankDependency'\np46056\naS'TankPublishedFile'\np46057\naS'TankType'\np46058\naS'Task'\np46059\naS'TaskTemplate'\np46060\naS'Version'\np46061\nasssS'description'\np46062\n(dp46063\nS'editable'\np46064\nI01\nsS'value'\np46065\ng47\nsssS'project'\np46066\n(dp46067\nS'mandatory'\np46068\n(dp46069\nS'editable'\np46070\nI00\nsS'value'\np46071\nI00\nssS'name'\np46072\n(dp46073\nS'editable'\np46074\nI01\nsS'value'\np46075\nS'Project'\np46076\nssS'data_type'\np46077\n(dp46078\nS'editable'\np46079\nI00\nsS'value'\np46080\nS'entity'\np46081\nssS'entity_type'\np46082\n(dp46083\nS'editable'\np46084\nI00\nsS'value'\np46085\nS'EventLogEntry'\np46086\nssS'editable'\np46087\n(dp46088\nS'editable'\np46089\nI00\nsS'value'\np46090\nI00\nssS'unique'\np46091\n(dp46092\nS'editable'\np46093\nI00\nsS'value'\np46094\nI00\nssS'properties'\np46095\n(dp46096\nS'default_value'\np46097\n(dp46098\nS'editable'\np46099\nI00\nsS'value'\np46100\nNssS'summary_default'\np46101\n(dp46102\nS'editable'\np46103\nI01\nsS'value'\np46104\nS'none'\np46105\nssS'valid_types'\np46106\n(dp46107\nS'editable'\np46108\nI01\nsS'value'\np46109\n(lp46110\nS'Project'\np46111\nasssS'description'\np46112\n(dp46113\nS'editable'\np46114\nI01\nsS'value'\np46115\ng47\nsssS'filmstrip_image'\np46116\n(dp46117\nS'mandatory'\np46118\n(dp46119\nS'editable'\np46120\nI00\nsS'value'\np46121\nI00\nssS'name'\np46122\n(dp46123\nS'editable'\np46124\nI01\nsS'value'\np46125\nS'Filmstrip Thumbnail'\np46126\nssS'data_type'\np46127\n(dp46128\nS'editable'\np46129\nI00\nsS'value'\np46130\nS'image'\np46131\nssS'entity_type'\np46132\n(dp46133\nS'editable'\np46134\nI00\nsS'value'\np46135\nS'EventLogEntry'\np46136\nssS'editable'\np46137\n(dp46138\nS'editable'\np46139\nI00\nsS'value'\np46140\nI01\nssS'unique'\np46141\n(dp46142\nS'editable'\np46143\nI00\nsS'value'\np46144\nI00\nssS'properties'\np46145\n(dp46146\nS'default_value'\np46147\n(dp46148\nS'editable'\np46149\nI00\nsS'value'\np46150\nNssS'summary_default'\np46151\n(dp46152\nS'editable'\np46153\nI01\nsS'value'\np46154\nS'none'\np46155\nsssS'description'\np46156\n(dp46157\nS'editable'\np46158\nI01\nsS'value'\np46159\ng47\nsssS'meta'\np46160\n(dp46161\nS'mandatory'\np46162\n(dp46163\nS'editable'\np46164\nI00\nsS'value'\np46165\nI00\nssS'name'\np46166\n(dp46167\nS'editable'\np46168\nI01\nsS'value'\np46169\nS'Meta Data'\np46170\nssS'data_type'\np46171\n(dp46172\nS'editable'\np46173\nI00\nsS'value'\np46174\nS'serializable'\np46175\nssS'entity_type'\np46176\n(dp46177\nS'editable'\np46178\nI00\nsS'value'\np46179\nS'EventLogEntry'\np46180\nssS'editable'\np46181\n(dp46182\nS'editable'\np46183\nI00\nsS'value'\np46184\nI00\nssS'unique'\np46185\n(dp46186\nS'editable'\np46187\nI00\nsS'value'\np46188\nI00\nssS'properties'\np46189\n(dp46190\nS'default_value'\np46191\n(dp46192\nS'editable'\np46193\nI00\nsS'value'\np46194\nNssS'summary_default'\np46195\n(dp46196\nS'editable'\np46197\nI01\nsS'value'\np46198\nS'none'\np46199\nsssS'description'\np46200\n(dp46201\nS'editable'\np46202\nI01\nsS'value'\np46203\ng47\nsssS'user'\np46204\n(dp46205\nS'mandatory'\np46206\n(dp46207\nS'editable'\np46208\nI00\nsS'value'\np46209\nI00\nssS'name'\np46210\n(dp46211\nS'editable'\np46212\nI01\nsS'value'\np46213\nS'Who'\np46214\nssS'data_type'\np46215\n(dp46216\nS'editable'\np46217\nI00\nsS'value'\np46218\nS'entity'\np46219\nssS'entity_type'\np46220\n(dp46221\nS'editable'\np46222\nI00\nsS'value'\np46223\nS'EventLogEntry'\np46224\nssS'editable'\np46225\n(dp46226\nS'editable'\np46227\nI00\nsS'value'\np46228\nI00\nssS'unique'\np46229\n(dp46230\nS'editable'\np46231\nI00\nsS'value'\np46232\nI00\nssS'properties'\np46233\n(dp46234\nS'default_value'\np46235\n(dp46236\nS'editable'\np46237\nI00\nsS'value'\np46238\nNssS'summary_default'\np46239\n(dp46240\nS'editable'\np46241\nI01\nsS'value'\np46242\nS'none'\np46243\nssS'valid_types'\np46244\n(dp46245\nS'editable'\np46246\nI01\nsS'value'\np46247\n(lp46248\nS'HumanUser'\np46249\naS'ApiUser'\np46250\nasssS'description'\np46251\n(dp46252\nS'editable'\np46253\nI01\nsS'value'\np46254\ng47\nsssS'session_uuid'\np46255\n(dp46256\nS'mandatory'\np46257\n(dp46258\nS'editable'\np46259\nI00\nsS'value'\np46260\nI00\nssS'name'\np46261\n(dp46262\nS'editable'\np46263\nI01\nsS'value'\np46264\nS'Session UUID'\np46265\nssS'data_type'\np46266\n(dp46267\nS'editable'\np46268\nI00\nsS'value'\np46269\nS'uuid'\np46270\nssS'entity_type'\np46271\n(dp46272\nS'editable'\np46273\nI00\nsS'value'\np46274\nS'EventLogEntry'\np46275\nssS'editable'\np46276\n(dp46277\nS'editable'\np46278\nI00\nsS'value'\np46279\nI00\nssS'unique'\np46280\n(dp46281\nS'editable'\np46282\nI00\nsS'value'\np46283\nI00\nssS'properties'\np46284\n(dp46285\nS'default_value'\np46286\n(dp46287\nS'editable'\np46288\nI00\nsS'value'\np46289\nNssS'summary_default'\np46290\n(dp46291\nS'editable'\np46292\nI00\nsS'value'\np46293\nS'none'\np46294\nsssS'description'\np46295\n(dp46296\nS'editable'\np46297\nI01\nsS'value'\np46298\ng47\nsssS'cached_display_name'\np46299\n(dp46300\nS'mandatory'\np46301\n(dp46302\nS'editable'\np46303\nI00\nsS'value'\np46304\nI00\nssS'name'\np46305\n(dp46306\nS'editable'\np46307\nI01\nsS'value'\np46308\nS'Cached Display Name'\np46309\nssS'data_type'\np46310\n(dp46311\nS'editable'\np46312\nI00\nsS'value'\np46313\nS'text'\np46314\nssS'entity_type'\np46315\n(dp46316\nS'editable'\np46317\nI00\nsS'value'\np46318\nS'EventLogEntry'\np46319\nssS'editable'\np46320\n(dp46321\nS'editable'\np46322\nI00\nsS'value'\np46323\nI01\nssS'unique'\np46324\n(dp46325\nS'editable'\np46326\nI00\nsS'value'\np46327\nI00\nssS'properties'\np46328\n(dp46329\nS'default_value'\np46330\n(dp46331\nS'editable'\np46332\nI00\nsS'value'\np46333\nNssS'summary_default'\np46334\n(dp46335\nS'editable'\np46336\nI00\nsS'value'\np46337\nS'none'\np46338\nsssS'description'\np46339\n(dp46340\nS'editable'\np46341\nI01\nsS'value'\np46342\ng47\nsssS'image'\np46343\n(dp46344\nS'mandatory'\np46345\n(dp46346\nS'editable'\np46347\nI00\nsS'value'\np46348\nI00\nssS'name'\np46349\n(dp46350\nS'editable'\np46351\nI01\nsS'value'\np46352\nS'Thumbnail'\np46353\nssS'data_type'\np46354\n(dp46355\nS'editable'\np46356\nI00\nsS'value'\np46357\nS'image'\np46358\nssS'entity_type'\np46359\n(dp46360\nS'editable'\np46361\nI00\nsS'value'\np46362\nS'EventLogEntry'\np46363\nssS'editable'\np46364\n(dp46365\nS'editable'\np46366\nI00\nsS'value'\np46367\nI01\nssS'unique'\np46368\n(dp46369\nS'editable'\np46370\nI00\nsS'value'\np46371\nI00\nssS'properties'\np46372\n(dp46373\nS'default_value'\np46374\n(dp46375\nS'editable'\np46376\nI00\nsS'value'\np46377\nNssS'summary_default'\np46378\n(dp46379\nS'editable'\np46380\nI01\nsS'value'\np46381\nS'none'\np46382\nsssS'description'\np46383\n(dp46384\nS'editable'\np46385\nI01\nsS'value'\np46386\ng47\nsssS'id'\np46387\n(dp46388\nS'mandatory'\np46389\n(dp46390\nS'editable'\np46391\nI00\nsS'value'\np46392\nI00\nssS'name'\np46393\n(dp46394\nS'editable'\np46395\nI01\nsS'value'\np46396\nS'Id'\np46397\nssS'data_type'\np46398\n(dp46399\nS'editable'\np46400\nI00\nsS'value'\np46401\nS'number'\np46402\nssS'entity_type'\np46403\n(dp46404\nS'editable'\np46405\nI00\nsS'value'\np46406\nS'EventLogEntry'\np46407\nssS'editable'\np46408\n(dp46409\nS'editable'\np46410\nI00\nsS'value'\np46411\nI00\nssS'unique'\np46412\n(dp46413\nS'editable'\np46414\nI00\nsS'value'\np46415\nI00\nssS'properties'\np46416\n(dp46417\nS'default_value'\np46418\n(dp46419\nS'editable'\np46420\nI00\nsS'value'\np46421\nNssS'summary_default'\np46422\n(dp46423\nS'editable'\np46424\nI01\nsS'value'\np46425\nS'none'\np46426\nsssS'description'\np46427\n(dp46428\nS'editable'\np46429\nI01\nsS'value'\np46430\ng47\nsssS'event_type'\np46431\n(dp46432\nS'mandatory'\np46433\n(dp46434\nS'editable'\np46435\nI00\nsS'value'\np46436\nI00\nssS'name'\np46437\n(dp46438\nS'editable'\np46439\nI01\nsS'value'\np46440\nS'Event Type'\np46441\nssS'data_type'\np46442\n(dp46443\nS'editable'\np46444\nI00\nsS'value'\np46445\nS'text'\np46446\nssS'entity_type'\np46447\n(dp46448\nS'editable'\np46449\nI00\nsS'value'\np46450\nS'EventLogEntry'\np46451\nssS'editable'\np46452\n(dp46453\nS'editable'\np46454\nI00\nsS'value'\np46455\nI00\nssS'unique'\np46456\n(dp46457\nS'editable'\np46458\nI00\nsS'value'\np46459\nI00\nssS'properties'\np46460\n(dp46461\nS'default_value'\np46462\n(dp46463\nS'editable'\np46464\nI00\nsS'value'\np46465\nNssS'summary_default'\np46466\n(dp46467\nS'editable'\np46468\nI01\nsS'value'\np46469\nS'none'\np46470\nsssS'description'\np46471\n(dp46472\nS'editable'\np46473\nI01\nsS'value'\np46474\ng47\nssssS'TankDependency'\np46475\n(dp46476\nS'id'\np46477\n(dp46478\nS'mandatory'\np46479\n(dp46480\nS'editable'\np46481\nI00\nsS'value'\np46482\nI00\nssS'name'\np46483\n(dp46484\nS'editable'\np46485\nI01\nsS'value'\np46486\nS'Id'\np46487\nssS'data_type'\np46488\n(dp46489\nS'editable'\np46490\nI00\nsS'value'\np46491\nS'number'\np46492\nssS'entity_type'\np46493\n(dp46494\nS'editable'\np46495\nI00\nsS'value'\np46496\nS'TankDependency'\np46497\nssS'editable'\np46498\n(dp46499\nS'editable'\np46500\nI00\nsS'value'\np46501\nI00\nssS'unique'\np46502\n(dp46503\nS'editable'\np46504\nI00\nsS'value'\np46505\nI00\nssS'properties'\np46506\n(dp46507\nS'default_value'\np46508\n(dp46509\nS'editable'\np46510\nI00\nsS'value'\np46511\nNssS'summary_default'\np46512\n(dp46513\nS'editable'\np46514\nI00\nsS'value'\np46515\nS'none'\np46516\nsssS'description'\np46517\n(dp46518\nS'editable'\np46519\nI01\nsS'value'\np46520\ng47\nsssS'cached_display_name'\np46521\n(dp46522\nS'mandatory'\np46523\n(dp46524\nS'editable'\np46525\nI00\nsS'value'\np46526\nI00\nssS'name'\np46527\n(dp46528\nS'editable'\np46529\nI01\nsS'value'\np46530\nS'Cached Display Name'\np46531\nssS'data_type'\np46532\n(dp46533\nS'editable'\np46534\nI00\nsS'value'\np46535\nS'text'\np46536\nssS'entity_type'\np46537\n(dp46538\nS'editable'\np46539\nI00\nsS'value'\np46540\nS'TankDependency'\np46541\nssS'editable'\np46542\n(dp46543\nS'editable'\np46544\nI00\nsS'value'\np46545\nI01\nssS'unique'\np46546\n(dp46547\nS'editable'\np46548\nI00\nsS'value'\np46549\nI00\nssS'properties'\np46550\n(dp46551\nS'default_value'\np46552\n(dp46553\nS'editable'\np46554\nI00\nsS'value'\np46555\nNssS'summary_default'\np46556\n(dp46557\nS'editable'\np46558\nI00\nsS'value'\np46559\nS'none'\np46560\nsssS'description'\np46561\n(dp46562\nS'editable'\np46563\nI01\nsS'value'\np46564\ng47\nsssS'dependent_tank_published_file'\np46565\n(dp46566\nS'mandatory'\np46567\n(dp46568\nS'editable'\np46569\nI00\nsS'value'\np46570\nI00\nssS'name'\np46571\n(dp46572\nS'editable'\np46573\nI01\nsS'value'\np46574\nS'Dependent Tank Published File'\np46575\nssS'data_type'\np46576\n(dp46577\nS'editable'\np46578\nI00\nsS'value'\np46579\nS'entity'\np46580\nssS'entity_type'\np46581\n(dp46582\nS'editable'\np46583\nI00\nsS'value'\np46584\nS'TankDependency'\np46585\nssS'editable'\np46586\n(dp46587\nS'editable'\np46588\nI00\nsS'value'\np46589\nI00\nssS'unique'\np46590\n(dp46591\nS'editable'\np46592\nI00\nsS'value'\np46593\nI00\nssS'properties'\np46594\n(dp46595\nS'default_value'\np46596\n(dp46597\nS'editable'\np46598\nI00\nsS'value'\np46599\nNssS'summary_default'\np46600\n(dp46601\nS'editable'\np46602\nI00\nsS'value'\np46603\nS'none'\np46604\nssS'valid_types'\np46605\n(dp46606\nS'editable'\np46607\nI00\nsS'value'\np46608\n(lp46609\nS'TankPublishedFile'\np46610\nasssS'description'\np46611\n(dp46612\nS'editable'\np46613\nI01\nsS'value'\np46614\ng47\nsssS'tank_published_file'\np46615\n(dp46616\nS'mandatory'\np46617\n(dp46618\nS'editable'\np46619\nI00\nsS'value'\np46620\nI00\nssS'name'\np46621\n(dp46622\nS'editable'\np46623\nI01\nsS'value'\np46624\nS'Tank Published File'\np46625\nssS'data_type'\np46626\n(dp46627\nS'editable'\np46628\nI00\nsS'value'\np46629\nS'entity'\np46630\nssS'entity_type'\np46631\n(dp46632\nS'editable'\np46633\nI00\nsS'value'\np46634\nS'TankDependency'\np46635\nssS'editable'\np46636\n(dp46637\nS'editable'\np46638\nI00\nsS'value'\np46639\nI00\nssS'unique'\np46640\n(dp46641\nS'editable'\np46642\nI00\nsS'value'\np46643\nI00\nssS'properties'\np46644\n(dp46645\nS'default_value'\np46646\n(dp46647\nS'editable'\np46648\nI00\nsS'value'\np46649\nNssS'summary_default'\np46650\n(dp46651\nS'editable'\np46652\nI00\nsS'value'\np46653\nS'none'\np46654\nssS'valid_types'\np46655\n(dp46656\nS'editable'\np46657\nI00\nsS'value'\np46658\n(lp46659\nS'TankPublishedFile'\np46660\nasssS'description'\np46661\n(dp46662\nS'editable'\np46663\nI01\nsS'value'\np46664\ng47\nssssS'AssetShootDayConnection'\np46665\n(dp46666\nS'cached_display_name'\np46667\n(dp46668\nS'mandatory'\np46669\n(dp46670\nS'editable'\np46671\nI00\nsS'value'\np46672\nI00\nssS'name'\np46673\n(dp46674\nS'editable'\np46675\nI01\nsS'value'\np46676\nS'Cached Display Name'\np46677\nssS'data_type'\np46678\n(dp46679\nS'editable'\np46680\nI00\nsS'value'\np46681\nS'text'\np46682\nssS'entity_type'\np46683\n(dp46684\nS'editable'\np46685\nI00\nsS'value'\np46686\nS'AssetShootDayConnection'\np46687\nssS'editable'\np46688\n(dp46689\nS'editable'\np46690\nI00\nsS'value'\np46691\nI01\nssS'unique'\np46692\n(dp46693\nS'editable'\np46694\nI00\nsS'value'\np46695\nI00\nssS'properties'\np46696\n(dp46697\nS'default_value'\np46698\n(dp46699\nS'editable'\np46700\nI00\nsS'value'\np46701\nNssS'summary_default'\np46702\n(dp46703\nS'editable'\np46704\nI00\nsS'value'\np46705\nS'none'\np46706\nsssS'description'\np46707\n(dp46708\nS'editable'\np46709\nI01\nsS'value'\np46710\ng47\nsssS'asset'\np46711\n(dp46712\nS'mandatory'\np46713\n(dp46714\nS'editable'\np46715\nI00\nsS'value'\np46716\nI00\nssS'name'\np46717\n(dp46718\nS'editable'\np46719\nI01\nsS'value'\np46720\nS'Asset'\np46721\nssS'data_type'\np46722\n(dp46723\nS'editable'\np46724\nI00\nsS'value'\np46725\nS'entity'\np46726\nssS'entity_type'\np46727\n(dp46728\nS'editable'\np46729\nI00\nsS'value'\np46730\nS'AssetShootDayConnection'\np46731\nssS'editable'\np46732\n(dp46733\nS'editable'\np46734\nI00\nsS'value'\np46735\nI00\nssS'unique'\np46736\n(dp46737\nS'editable'\np46738\nI00\nsS'value'\np46739\nI00\nssS'properties'\np46740\n(dp46741\nS'default_value'\np46742\n(dp46743\nS'editable'\np46744\nI00\nsS'value'\np46745\nNssS'summary_default'\np46746\n(dp46747\nS'editable'\np46748\nI00\nsS'value'\np46749\nS'none'\np46750\nssS'valid_types'\np46751\n(dp46752\nS'editable'\np46753\nI00\nsS'value'\np46754\n(lp46755\nS'Asset'\np46756\nasssS'description'\np46757\n(dp46758\nS'editable'\np46759\nI01\nsS'value'\np46760\ng47\nsssS'id'\np46761\n(dp46762\nS'mandatory'\np46763\n(dp46764\nS'editable'\np46765\nI00\nsS'value'\np46766\nI01\nssS'name'\np46767\n(dp46768\nS'editable'\np46769\nI01\nsS'value'\np46770\nS'Id'\np46771\nssS'data_type'\np46772\n(dp46773\nS'editable'\np46774\nI00\nsS'value'\np46775\nS'number'\np46776\nssS'entity_type'\np46777\n(dp46778\nS'editable'\np46779\nI00\nsS'value'\np46780\nS'AssetShootDayConnection'\np46781\nssS'editable'\np46782\n(dp46783\nS'editable'\np46784\nI00\nsS'value'\np46785\nI00\nssS'unique'\np46786\n(dp46787\nS'editable'\np46788\nI00\nsS'value'\np46789\nI00\nssS'properties'\np46790\n(dp46791\nS'default_value'\np46792\n(dp46793\nS'editable'\np46794\nI00\nsS'value'\np46795\nNssS'summary_default'\np46796\n(dp46797\nS'editable'\np46798\nI00\nsS'value'\np46799\nS'none'\np46800\nsssS'description'\np46801\n(dp46802\nS'editable'\np46803\nI01\nsS'value'\np46804\ng47\nsssS'shoot_day'\np46805\n(dp46806\nS'mandatory'\np46807\n(dp46808\nS'editable'\np46809\nI00\nsS'value'\np46810\nI00\nssS'name'\np46811\n(dp46812\nS'editable'\np46813\nI01\nsS'value'\np46814\nS'Shoot Day'\np46815\nssS'data_type'\np46816\n(dp46817\nS'editable'\np46818\nI00\nsS'value'\np46819\nS'entity'\np46820\nssS'entity_type'\np46821\n(dp46822\nS'editable'\np46823\nI00\nsS'value'\np46824\nS'AssetShootDayConnection'\np46825\nssS'editable'\np46826\n(dp46827\nS'editable'\np46828\nI00\nsS'value'\np46829\nI00\nssS'unique'\np46830\n(dp46831\nS'editable'\np46832\nI00\nsS'value'\np46833\nI00\nssS'properties'\np46834\n(dp46835\nS'default_value'\np46836\n(dp46837\nS'editable'\np46838\nI00\nsS'value'\np46839\nNssS'summary_default'\np46840\n(dp46841\nS'editable'\np46842\nI00\nsS'value'\np46843\nS'none'\np46844\nssS'valid_types'\np46845\n(dp46846\nS'editable'\np46847\nI00\nsS'value'\np46848\n(lp46849\nS'ShootDay'\np46850\nasssS'description'\np46851\n(dp46852\nS'editable'\np46853\nI01\nsS'value'\np46854\ng47\nssssS'Asset'\np46855\n(dp46856\nS'open_notes_count'\np46857\n(dp46858\nS'mandatory'\np46859\n(dp46860\nS'editable'\np46861\nI00\nsS'value'\np46862\nI00\nssS'name'\np46863\n(dp46864\nS'editable'\np46865\nI01\nsS'value'\np46866\nS'Open Notes Count'\np46867\nssS'data_type'\np46868\n(dp46869\nS'editable'\np46870\nI00\nsS'value'\np46871\nS'text'\np46872\nssS'entity_type'\np46873\n(dp46874\nS'editable'\np46875\nI00\nsS'value'\np46876\nS'Asset'\np46877\nssS'editable'\np46878\n(dp46879\nS'editable'\np46880\nI00\nsS'value'\np46881\nI00\nssS'unique'\np46882\n(dp46883\nS'editable'\np46884\nI00\nsS'value'\np46885\nI00\nssS'properties'\np46886\n(dp46887\nS'default_value'\np46888\n(dp46889\nS'editable'\np46890\nI00\nsS'value'\np46891\nNssS'summary_default'\np46892\n(dp46893\nS'editable'\np46894\nI01\nsS'value'\np46895\nS'none'\np46896\nsssS'description'\np46897\n(dp46898\nS'editable'\np46899\nI01\nsS'value'\np46900\ng47\nsssS'code'\np46901\n(dp46902\nS'mandatory'\np46903\n(dp46904\nS'editable'\np46905\nI00\nsS'value'\np46906\nI01\nssS'name'\np46907\n(dp46908\nS'editable'\np46909\nI01\nsS'value'\np46910\nS'Asset Name'\np46911\nssS'data_type'\np46912\n(dp46913\nS'editable'\np46914\nI00\nsS'value'\np46915\nS'text'\np46916\nssS'entity_type'\np46917\n(dp46918\nS'editable'\np46919\nI00\nsS'value'\np46920\nS'Asset'\np46921\nssS'editable'\np46922\n(dp46923\nS'editable'\np46924\nI00\nsS'value'\np46925\nI01\nssS'unique'\np46926\n(dp46927\nS'editable'\np46928\nI00\nsS'value'\np46929\nI00\nssS'properties'\np46930\n(dp46931\nS'default_value'\np46932\n(dp46933\nS'editable'\np46934\nI00\nsS'value'\np46935\nNssS'summary_default'\np46936\n(dp46937\nS'editable'\np46938\nI01\nsS'value'\np46939\nS'none'\np46940\nsssS'description'\np46941\n(dp46942\nS'editable'\np46943\nI01\nsS'value'\np46944\ng47\nsssS'step_11'\np46945\n(dp46946\nS'mandatory'\np46947\n(dp46948\nS'editable'\np46949\nI00\nsS'value'\np46950\nI00\nssS'name'\np46951\n(dp46952\nS'editable'\np46953\nI01\nsS'value'\np46954\nS'Rig'\np46955\nssS'data_type'\np46956\n(dp46957\nS'editable'\np46958\nI00\nsS'value'\np46959\nS'pivot_column'\np46960\nssS'entity_type'\np46961\n(dp46962\nS'editable'\np46963\nI00\nsS'value'\np46964\nS'Asset'\np46965\nssS'editable'\np46966\n(dp46967\nS'editable'\np46968\nI00\nsS'value'\np46969\nI00\nssS'unique'\np46970\n(dp46971\nS'editable'\np46972\nI00\nsS'value'\np46973\nI00\nssS'properties'\np46974\n(dp46975\nS'default_value'\np46976\n(dp46977\nS'editable'\np46978\nI00\nsS'value'\np46979\nNssS'summary_default'\np46980\n(dp46981\nS'editable'\np46982\nI00\nsS'value'\np46983\nS'none'\np46984\nsssS'description'\np46985\n(dp46986\nS'editable'\np46987\nI01\nsS'value'\np46988\ng47\nsssS'step_10'\np46989\n(dp46990\nS'mandatory'\np46991\n(dp46992\nS'editable'\np46993\nI00\nsS'value'\np46994\nI00\nssS'name'\np46995\n(dp46996\nS'editable'\np46997\nI01\nsS'value'\np46998\nS'Model'\np46999\nssS'data_type'\np47000\n(dp47001\nS'editable'\np47002\nI00\nsS'value'\np47003\nS'pivot_column'\np47004\nssS'entity_type'\np47005\n(dp47006\nS'editable'\np47007\nI00\nsS'value'\np47008\nS'Asset'\np47009\nssS'editable'\np47010\n(dp47011\nS'editable'\np47012\nI00\nsS'value'\np47013\nI00\nssS'unique'\np47014\n(dp47015\nS'editable'\np47016\nI00\nsS'value'\np47017\nI00\nssS'properties'\np47018\n(dp47019\nS'default_value'\np47020\n(dp47021\nS'editable'\np47022\nI00\nsS'value'\np47023\nNssS'summary_default'\np47024\n(dp47025\nS'editable'\np47026\nI00\nsS'value'\np47027\nS'none'\np47028\nsssS'description'\np47029\n(dp47030\nS'editable'\np47031\nI01\nsS'value'\np47032\ng47\nsssS'mocap_takes'\np47033\n(dp47034\nS'mandatory'\np47035\n(dp47036\nS'editable'\np47037\nI00\nsS'value'\np47038\nI00\nssS'name'\np47039\n(dp47040\nS'editable'\np47041\nI01\nsS'value'\np47042\nS'Mocap Takes'\np47043\nssS'data_type'\np47044\n(dp47045\nS'editable'\np47046\nI00\nsS'value'\np47047\nS'multi_entity'\np47048\nssS'entity_type'\np47049\n(dp47050\nS'editable'\np47051\nI00\nsS'value'\np47052\nS'Asset'\np47053\nssS'editable'\np47054\n(dp47055\nS'editable'\np47056\nI00\nsS'value'\np47057\nI01\nssS'unique'\np47058\n(dp47059\nS'editable'\np47060\nI00\nsS'value'\np47061\nI00\nssS'properties'\np47062\n(dp47063\nS'default_value'\np47064\n(dp47065\nS'editable'\np47066\nI00\nsS'value'\np47067\nNssS'summary_default'\np47068\n(dp47069\nS'editable'\np47070\nI01\nsS'value'\np47071\nS'none'\np47072\nssS'valid_types'\np47073\n(dp47074\nS'editable'\np47075\nI01\nsS'value'\np47076\n(lp47077\nS'MocapTake'\np47078\nasssS'description'\np47079\n(dp47080\nS'editable'\np47081\nI01\nsS'value'\np47082\ng47\nsssS'step_12'\np47083\n(dp47084\nS'mandatory'\np47085\n(dp47086\nS'editable'\np47087\nI00\nsS'value'\np47088\nI00\nssS'name'\np47089\n(dp47090\nS'editable'\np47091\nI01\nsS'value'\np47092\nS'Surface'\np47093\nssS'data_type'\np47094\n(dp47095\nS'editable'\np47096\nI00\nsS'value'\np47097\nS'pivot_column'\np47098\nssS'entity_type'\np47099\n(dp47100\nS'editable'\np47101\nI00\nsS'value'\np47102\nS'Asset'\np47103\nssS'editable'\np47104\n(dp47105\nS'editable'\np47106\nI00\nsS'value'\np47107\nI00\nssS'unique'\np47108\n(dp47109\nS'editable'\np47110\nI00\nsS'value'\np47111\nI00\nssS'properties'\np47112\n(dp47113\nS'default_value'\np47114\n(dp47115\nS'editable'\np47116\nI00\nsS'value'\np47117\nNssS'summary_default'\np47118\n(dp47119\nS'editable'\np47120\nI00\nsS'value'\np47121\nS'none'\np47122\nsssS'description'\np47123\n(dp47124\nS'editable'\np47125\nI01\nsS'value'\np47126\ng47\nsssS'image'\np47127\n(dp47128\nS'mandatory'\np47129\n(dp47130\nS'editable'\np47131\nI00\nsS'value'\np47132\nI00\nssS'name'\np47133\n(dp47134\nS'editable'\np47135\nI01\nsS'value'\np47136\nS'Thumbnail'\np47137\nssS'data_type'\np47138\n(dp47139\nS'editable'\np47140\nI00\nsS'value'\np47141\nS'image'\np47142\nssS'entity_type'\np47143\n(dp47144\nS'editable'\np47145\nI00\nsS'value'\np47146\nS'Asset'\np47147\nssS'editable'\np47148\n(dp47149\nS'editable'\np47150\nI00\nsS'value'\np47151\nI01\nssS'unique'\np47152\n(dp47153\nS'editable'\np47154\nI00\nsS'value'\np47155\nI00\nssS'properties'\np47156\n(dp47157\nS'default_value'\np47158\n(dp47159\nS'editable'\np47160\nI00\nsS'value'\np47161\nNssS'summary_default'\np47162\n(dp47163\nS'editable'\np47164\nI01\nsS'value'\np47165\nS'none'\np47166\nsssS'description'\np47167\n(dp47168\nS'editable'\np47169\nI01\nsS'value'\np47170\ng47\nsssS'updated_at'\np47171\n(dp47172\nS'mandatory'\np47173\n(dp47174\nS'editable'\np47175\nI00\nsS'value'\np47176\nI00\nssS'name'\np47177\n(dp47178\nS'editable'\np47179\nI01\nsS'value'\np47180\nS'Date Updated'\np47181\nssS'data_type'\np47182\n(dp47183\nS'editable'\np47184\nI00\nsS'value'\np47185\nS'date_time'\np47186\nssS'entity_type'\np47187\n(dp47188\nS'editable'\np47189\nI00\nsS'value'\np47190\nS'Asset'\np47191\nssS'editable'\np47192\n(dp47193\nS'editable'\np47194\nI00\nsS'value'\np47195\nI00\nssS'unique'\np47196\n(dp47197\nS'editable'\np47198\nI00\nsS'value'\np47199\nI00\nssS'properties'\np47200\n(dp47201\nS'default_value'\np47202\n(dp47203\nS'editable'\np47204\nI00\nsS'value'\np47205\nNssS'summary_default'\np47206\n(dp47207\nS'editable'\np47208\nI01\nsS'value'\np47209\nS'none'\np47210\nsssS'description'\np47211\n(dp47212\nS'editable'\np47213\nI01\nsS'value'\np47214\ng47\nsssS'tasks'\np47215\n(dp47216\nS'mandatory'\np47217\n(dp47218\nS'editable'\np47219\nI00\nsS'value'\np47220\nI00\nssS'name'\np47221\n(dp47222\nS'editable'\np47223\nI01\nsS'value'\np47224\nS'Tasks'\np47225\nssS'data_type'\np47226\n(dp47227\nS'editable'\np47228\nI00\nsS'value'\np47229\nS'multi_entity'\np47230\nssS'entity_type'\np47231\n(dp47232\nS'editable'\np47233\nI00\nsS'value'\np47234\nS'Asset'\np47235\nssS'editable'\np47236\n(dp47237\nS'editable'\np47238\nI00\nsS'value'\np47239\nI01\nssS'unique'\np47240\n(dp47241\nS'editable'\np47242\nI00\nsS'value'\np47243\nI00\nssS'properties'\np47244\n(dp47245\nS'default_value'\np47246\n(dp47247\nS'editable'\np47248\nI00\nsS'value'\np47249\nNssS'summary_default'\np47250\n(dp47251\nS'editable'\np47252\nI01\nsS'value'\np47253\nS'none'\np47254\nssS'valid_types'\np47255\n(dp47256\nS'editable'\np47257\nI01\nsS'value'\np47258\n(lp47259\nS'Task'\np47260\nasssS'description'\np47261\n(dp47262\nS'editable'\np47263\nI01\nsS'value'\np47264\ng47\nsssS'sequences'\np47265\n(dp47266\nS'mandatory'\np47267\n(dp47268\nS'editable'\np47269\nI00\nsS'value'\np47270\nI00\nssS'name'\np47271\n(dp47272\nS'editable'\np47273\nI01\nsS'value'\np47274\nS'Sequences'\np47275\nssS'data_type'\np47276\n(dp47277\nS'editable'\np47278\nI00\nsS'value'\np47279\nS'multi_entity'\np47280\nssS'entity_type'\np47281\n(dp47282\nS'editable'\np47283\nI00\nsS'value'\np47284\nS'Asset'\np47285\nssS'editable'\np47286\n(dp47287\nS'editable'\np47288\nI00\nsS'value'\np47289\nI01\nssS'unique'\np47290\n(dp47291\nS'editable'\np47292\nI00\nsS'value'\np47293\nI00\nssS'properties'\np47294\n(dp47295\nS'default_value'\np47296\n(dp47297\nS'editable'\np47298\nI00\nsS'value'\np47299\nNssS'summary_default'\np47300\n(dp47301\nS'editable'\np47302\nI01\nsS'value'\np47303\nS'none'\np47304\nssS'valid_types'\np47305\n(dp47306\nS'editable'\np47307\nI01\nsS'value'\np47308\n(lp47309\nS'Sequence'\np47310\nasssS'description'\np47311\n(dp47312\nS'editable'\np47313\nI01\nsS'value'\np47314\ng47\nsssS'cached_display_name'\np47315\n(dp47316\nS'mandatory'\np47317\n(dp47318\nS'editable'\np47319\nI00\nsS'value'\np47320\nI00\nssS'name'\np47321\n(dp47322\nS'editable'\np47323\nI01\nsS'value'\np47324\nS'Cached Display Name'\np47325\nssS'data_type'\np47326\n(dp47327\nS'editable'\np47328\nI00\nsS'value'\np47329\nS'text'\np47330\nssS'entity_type'\np47331\n(dp47332\nS'editable'\np47333\nI00\nsS'value'\np47334\nS'Asset'\np47335\nssS'editable'\np47336\n(dp47337\nS'editable'\np47338\nI00\nsS'value'\np47339\nI01\nssS'unique'\np47340\n(dp47341\nS'editable'\np47342\nI00\nsS'value'\np47343\nI00\nssS'properties'\np47344\n(dp47345\nS'default_value'\np47346\n(dp47347\nS'editable'\np47348\nI00\nsS'value'\np47349\nNssS'summary_default'\np47350\n(dp47351\nS'editable'\np47352\nI00\nsS'value'\np47353\nS'none'\np47354\nsssS'description'\np47355\n(dp47356\nS'editable'\np47357\nI01\nsS'value'\np47358\ng47\nsssS'id'\np47359\n(dp47360\nS'mandatory'\np47361\n(dp47362\nS'editable'\np47363\nI00\nsS'value'\np47364\nI00\nssS'name'\np47365\n(dp47366\nS'editable'\np47367\nI01\nsS'value'\np47368\nS'Id'\np47369\nssS'data_type'\np47370\n(dp47371\nS'editable'\np47372\nI00\nsS'value'\np47373\nS'number'\np47374\nssS'entity_type'\np47375\n(dp47376\nS'editable'\np47377\nI00\nsS'value'\np47378\nS'Asset'\np47379\nssS'editable'\np47380\n(dp47381\nS'editable'\np47382\nI00\nsS'value'\np47383\nI00\nssS'unique'\np47384\n(dp47385\nS'editable'\np47386\nI00\nsS'value'\np47387\nI00\nssS'properties'\np47388\n(dp47389\nS'default_value'\np47390\n(dp47391\nS'editable'\np47392\nI00\nsS'value'\np47393\nNssS'summary_default'\np47394\n(dp47395\nS'editable'\np47396\nI01\nsS'value'\np47397\nS'none'\np47398\nsssS'description'\np47399\n(dp47400\nS'editable'\np47401\nI01\nsS'value'\np47402\ng47\nsssS'updated_by'\np47403\n(dp47404\nS'mandatory'\np47405\n(dp47406\nS'editable'\np47407\nI00\nsS'value'\np47408\nI00\nssS'name'\np47409\n(dp47410\nS'editable'\np47411\nI01\nsS'value'\np47412\nS'Updated by'\np47413\nssS'data_type'\np47414\n(dp47415\nS'editable'\np47416\nI00\nsS'value'\np47417\nS'entity'\np47418\nssS'entity_type'\np47419\n(dp47420\nS'editable'\np47421\nI00\nsS'value'\np47422\nS'Asset'\np47423\nssS'editable'\np47424\n(dp47425\nS'editable'\np47426\nI00\nsS'value'\np47427\nI00\nssS'unique'\np47428\n(dp47429\nS'editable'\np47430\nI00\nsS'value'\np47431\nI00\nssS'properties'\np47432\n(dp47433\nS'default_value'\np47434\n(dp47435\nS'editable'\np47436\nI00\nsS'value'\np47437\nNssS'summary_default'\np47438\n(dp47439\nS'editable'\np47440\nI01\nsS'value'\np47441\nS'none'\np47442\nssS'valid_types'\np47443\n(dp47444\nS'editable'\np47445\nI01\nsS'value'\np47446\n(lp47447\nS'HumanUser'\np47448\naS'ApiUser'\np47449\nasssS'description'\np47450\n(dp47451\nS'editable'\np47452\nI01\nsS'value'\np47453\ng47\nsssS'open_notes'\np47454\n(dp47455\nS'mandatory'\np47456\n(dp47457\nS'editable'\np47458\nI00\nsS'value'\np47459\nI00\nssS'name'\np47460\n(dp47461\nS'editable'\np47462\nI01\nsS'value'\np47463\nS'Open Notes'\np47464\nssS'data_type'\np47465\n(dp47466\nS'editable'\np47467\nI00\nsS'value'\np47468\nS'multi_entity'\np47469\nssS'entity_type'\np47470\n(dp47471\nS'editable'\np47472\nI00\nsS'value'\np47473\nS'Asset'\np47474\nssS'editable'\np47475\n(dp47476\nS'editable'\np47477\nI00\nsS'value'\np47478\nI00\nssS'unique'\np47479\n(dp47480\nS'editable'\np47481\nI00\nsS'value'\np47482\nI00\nssS'properties'\np47483\n(dp47484\nS'default_value'\np47485\n(dp47486\nS'editable'\np47487\nI00\nsS'value'\np47488\nNssS'summary_default'\np47489\n(dp47490\nS'editable'\np47491\nI01\nsS'value'\np47492\nS'none'\np47493\nssS'valid_types'\np47494\n(dp47495\nS'editable'\np47496\nI01\nsS'value'\np47497\n(lp47498\nS'Note'\np47499\nasssS'description'\np47500\n(dp47501\nS'editable'\np47502\nI01\nsS'value'\np47503\ng47\nsssS'task_template'\np47504\n(dp47505\nS'mandatory'\np47506\n(dp47507\nS'editable'\np47508\nI00\nsS'value'\np47509\nI00\nssS'name'\np47510\n(dp47511\nS'editable'\np47512\nI01\nsS'value'\np47513\nS'Task Template'\np47514\nssS'data_type'\np47515\n(dp47516\nS'editable'\np47517\nI00\nsS'value'\np47518\nS'entity'\np47519\nssS'entity_type'\np47520\n(dp47521\nS'editable'\np47522\nI00\nsS'value'\np47523\nS'Asset'\np47524\nssS'editable'\np47525\n(dp47526\nS'editable'\np47527\nI00\nsS'value'\np47528\nI01\nssS'unique'\np47529\n(dp47530\nS'editable'\np47531\nI00\nsS'value'\np47532\nI00\nssS'properties'\np47533\n(dp47534\nS'default_value'\np47535\n(dp47536\nS'editable'\np47537\nI00\nsS'value'\np47538\nNssS'summary_default'\np47539\n(dp47540\nS'editable'\np47541\nI01\nsS'value'\np47542\nS'none'\np47543\nssS'valid_types'\np47544\n(dp47545\nS'editable'\np47546\nI01\nsS'value'\np47547\n(lp47548\nS'TaskTemplate'\np47549\nasssS'description'\np47550\n(dp47551\nS'editable'\np47552\nI01\nsS'value'\np47553\ng47\nsssS'created_by'\np47554\n(dp47555\nS'mandatory'\np47556\n(dp47557\nS'editable'\np47558\nI00\nsS'value'\np47559\nI00\nssS'name'\np47560\n(dp47561\nS'editable'\np47562\nI01\nsS'value'\np47563\nS'Created by'\np47564\nssS'data_type'\np47565\n(dp47566\nS'editable'\np47567\nI00\nsS'value'\np47568\nS'entity'\np47569\nssS'entity_type'\np47570\n(dp47571\nS'editable'\np47572\nI00\nsS'value'\np47573\nS'Asset'\np47574\nssS'editable'\np47575\n(dp47576\nS'editable'\np47577\nI00\nsS'value'\np47578\nI00\nssS'unique'\np47579\n(dp47580\nS'editable'\np47581\nI00\nsS'value'\np47582\nI00\nssS'properties'\np47583\n(dp47584\nS'default_value'\np47585\n(dp47586\nS'editable'\np47587\nI00\nsS'value'\np47588\nNssS'summary_default'\np47589\n(dp47590\nS'editable'\np47591\nI01\nsS'value'\np47592\nS'none'\np47593\nssS'valid_types'\np47594\n(dp47595\nS'editable'\np47596\nI01\nsS'value'\np47597\n(lp47598\nS'HumanUser'\np47599\naS'ApiUser'\np47600\nasssS'description'\np47601\n(dp47602\nS'editable'\np47603\nI01\nsS'value'\np47604\ng47\nsssS'parents'\np47605\n(dp47606\nS'mandatory'\np47607\n(dp47608\nS'editable'\np47609\nI00\nsS'value'\np47610\nI00\nssS'name'\np47611\n(dp47612\nS'editable'\np47613\nI01\nsS'value'\np47614\nS'Parent Assets'\np47615\nssS'data_type'\np47616\n(dp47617\nS'editable'\np47618\nI00\nsS'value'\np47619\nS'multi_entity'\np47620\nssS'entity_type'\np47621\n(dp47622\nS'editable'\np47623\nI00\nsS'value'\np47624\nS'Asset'\np47625\nssS'editable'\np47626\n(dp47627\nS'editable'\np47628\nI00\nsS'value'\np47629\nI01\nssS'unique'\np47630\n(dp47631\nS'editable'\np47632\nI00\nsS'value'\np47633\nI00\nssS'properties'\np47634\n(dp47635\nS'default_value'\np47636\n(dp47637\nS'editable'\np47638\nI00\nsS'value'\np47639\nNssS'summary_default'\np47640\n(dp47641\nS'editable'\np47642\nI01\nsS'value'\np47643\nS'none'\np47644\nssS'valid_types'\np47645\n(dp47646\nS'editable'\np47647\nI01\nsS'value'\np47648\n(lp47649\nS'Asset'\np47650\nasssS'description'\np47651\n(dp47652\nS'editable'\np47653\nI01\nsS'value'\np47654\ng47\nsssS'sg_status_list'\np47655\n(dp47656\nS'mandatory'\np47657\n(dp47658\nS'editable'\np47659\nI00\nsS'value'\np47660\nI00\nssS'name'\np47661\n(dp47662\nS'editable'\np47663\nI01\nsS'value'\np47664\nS'Status'\np47665\nssS'data_type'\np47666\n(dp47667\nS'editable'\np47668\nI00\nsS'value'\np47669\nS'status_list'\np47670\nssS'entity_type'\np47671\n(dp47672\nS'editable'\np47673\nI00\nsS'value'\np47674\nS'Asset'\np47675\nssS'editable'\np47676\n(dp47677\nS'editable'\np47678\nI00\nsS'value'\np47679\nI01\nssS'unique'\np47680\n(dp47681\nS'editable'\np47682\nI00\nsS'value'\np47683\nI00\nssS'properties'\np47684\n(dp47685\nS'default_value'\np47686\n(dp47687\nS'editable'\np47688\nI01\nsS'value'\np47689\nS'wtg'\np47690\nssS'valid_values'\np47691\n(dp47692\nS'editable'\np47693\nI01\nsS'value'\np47694\n(lp47695\nS'fin'\np47696\naS'ip'\np47697\naS'omt'\np47698\naS'hld'\np47699\naS'rdy'\np47700\naS'wtg'\np47701\nassS'summary_default'\np47702\n(dp47703\nS'editable'\np47704\nI01\nsS'value'\np47705\nS'status_list'\np47706\nsssS'description'\np47707\n(dp47708\nS'editable'\np47709\nI01\nsS'value'\np47710\ng47\nsssS'elements'\np47711\n(dp47712\nS'mandatory'\np47713\n(dp47714\nS'editable'\np47715\nI00\nsS'value'\np47716\nI00\nssS'name'\np47717\n(dp47718\nS'editable'\np47719\nI01\nsS'value'\np47720\nS'Elements'\np47721\nssS'data_type'\np47722\n(dp47723\nS'editable'\np47724\nI00\nsS'value'\np47725\nS'multi_entity'\np47726\nssS'entity_type'\np47727\n(dp47728\nS'editable'\np47729\nI00\nsS'value'\np47730\nS'Asset'\np47731\nssS'editable'\np47732\n(dp47733\nS'editable'\np47734\nI00\nsS'value'\np47735\nI01\nssS'unique'\np47736\n(dp47737\nS'editable'\np47738\nI00\nsS'value'\np47739\nI00\nssS'properties'\np47740\n(dp47741\nS'default_value'\np47742\n(dp47743\nS'editable'\np47744\nI00\nsS'value'\np47745\nNssS'summary_default'\np47746\n(dp47747\nS'editable'\np47748\nI00\nsS'value'\np47749\nS'none'\np47750\nssS'valid_types'\np47751\n(dp47752\nS'editable'\np47753\nI00\nsS'value'\np47754\n(lp47755\nS'Element'\np47756\nasssS'description'\np47757\n(dp47758\nS'editable'\np47759\nI01\nsS'value'\np47760\ng47\nsssS'description'\np47761\n(dp47762\nS'mandatory'\np47763\n(dp47764\nS'editable'\np47765\nI00\nsS'value'\np47766\nI00\nssS'name'\np47767\n(dp47768\nS'editable'\np47769\nI01\nsS'value'\np47770\nS'Description'\np47771\nssS'data_type'\np47772\n(dp47773\nS'editable'\np47774\nI00\nsS'value'\np47775\nS'text'\np47776\nssS'entity_type'\np47777\n(dp47778\nS'editable'\np47779\nI00\nsS'value'\np47780\nS'Asset'\np47781\nssS'editable'\np47782\n(dp47783\nS'editable'\np47784\nI00\nsS'value'\np47785\nI01\nssS'unique'\np47786\n(dp47787\nS'editable'\np47788\nI00\nsS'value'\np47789\nI00\nssS'properties'\np47790\n(dp47791\nS'default_value'\np47792\n(dp47793\nS'editable'\np47794\nI00\nsS'value'\np47795\nNssS'summary_default'\np47796\n(dp47797\nS'editable'\np47798\nI01\nsS'value'\np47799\nS'none'\np47800\nsssS'description'\np47801\n(dp47802\nS'editable'\np47803\nI01\nsS'value'\np47804\ng47\nsssS'addressings_cc'\np47805\n(dp47806\nS'mandatory'\np47807\n(dp47808\nS'editable'\np47809\nI00\nsS'value'\np47810\nI00\nssS'name'\np47811\n(dp47812\nS'editable'\np47813\nI01\nsS'value'\np47814\nS'Cc'\np47815\nssS'data_type'\np47816\n(dp47817\nS'editable'\np47818\nI00\nsS'value'\np47819\nS'multi_entity'\np47820\nssS'entity_type'\np47821\n(dp47822\nS'editable'\np47823\nI00\nsS'value'\np47824\nS'Asset'\np47825\nssS'editable'\np47826\n(dp47827\nS'editable'\np47828\nI00\nsS'value'\np47829\nI01\nssS'unique'\np47830\n(dp47831\nS'editable'\np47832\nI00\nsS'value'\np47833\nI00\nssS'properties'\np47834\n(dp47835\nS'default_value'\np47836\n(dp47837\nS'editable'\np47838\nI00\nsS'value'\np47839\nNssS'summary_default'\np47840\n(dp47841\nS'editable'\np47842\nI01\nsS'value'\np47843\nS'none'\np47844\nssS'valid_types'\np47845\n(dp47846\nS'editable'\np47847\nI01\nsS'value'\np47848\n(lp47849\nS'Group'\np47850\naS'HumanUser'\np47851\nasssS'description'\np47852\n(dp47853\nS'editable'\np47854\nI01\nsS'value'\np47855\ng47\nsssS'shoot_days'\np47856\n(dp47857\nS'mandatory'\np47858\n(dp47859\nS'editable'\np47860\nI00\nsS'value'\np47861\nI00\nssS'name'\np47862\n(dp47863\nS'editable'\np47864\nI01\nsS'value'\np47865\nS'Shoot Days'\np47866\nssS'data_type'\np47867\n(dp47868\nS'editable'\np47869\nI00\nsS'value'\np47870\nS'multi_entity'\np47871\nssS'entity_type'\np47872\n(dp47873\nS'editable'\np47874\nI00\nsS'value'\np47875\nS'Asset'\np47876\nssS'editable'\np47877\n(dp47878\nS'editable'\np47879\nI00\nsS'value'\np47880\nI01\nssS'unique'\np47881\n(dp47882\nS'editable'\np47883\nI00\nsS'value'\np47884\nI00\nssS'properties'\np47885\n(dp47886\nS'default_value'\np47887\n(dp47888\nS'editable'\np47889\nI00\nsS'value'\np47890\nNssS'summary_default'\np47891\n(dp47892\nS'editable'\np47893\nI01\nsS'value'\np47894\nS'none'\np47895\nssS'valid_types'\np47896\n(dp47897\nS'editable'\np47898\nI01\nsS'value'\np47899\n(lp47900\nS'ShootDay'\np47901\nasssS'description'\np47902\n(dp47903\nS'editable'\np47904\nI01\nsS'value'\np47905\ng47\nsssS'step_0'\np47906\n(dp47907\nS'mandatory'\np47908\n(dp47909\nS'editable'\np47910\nI00\nsS'value'\np47911\nI00\nssS'name'\np47912\n(dp47913\nS'editable'\np47914\nI01\nsS'value'\np47915\nS'ALL TASKS'\np47916\nssS'data_type'\np47917\n(dp47918\nS'editable'\np47919\nI00\nsS'value'\np47920\nS'pivot_column'\np47921\nssS'entity_type'\np47922\n(dp47923\nS'editable'\np47924\nI00\nsS'value'\np47925\nS'Asset'\np47926\nssS'editable'\np47927\n(dp47928\nS'editable'\np47929\nI00\nsS'value'\np47930\nI00\nssS'unique'\np47931\n(dp47932\nS'editable'\np47933\nI00\nsS'value'\np47934\nI00\nssS'properties'\np47935\n(dp47936\nS'default_value'\np47937\n(dp47938\nS'editable'\np47939\nI00\nsS'value'\np47940\nNssS'summary_default'\np47941\n(dp47942\nS'editable'\np47943\nI00\nsS'value'\np47944\nS'none'\np47945\nsssS'description'\np47946\n(dp47947\nS'editable'\np47948\nI01\nsS'value'\np47949\ng47\nsssS'tag_list'\np47950\n(dp47951\nS'mandatory'\np47952\n(dp47953\nS'editable'\np47954\nI00\nsS'value'\np47955\nI00\nssS'name'\np47956\n(dp47957\nS'editable'\np47958\nI01\nsS'value'\np47959\nS'Tags'\np47960\nssS'data_type'\np47961\n(dp47962\nS'editable'\np47963\nI00\nsS'value'\np47964\nS'tag_list'\np47965\nssS'entity_type'\np47966\n(dp47967\nS'editable'\np47968\nI00\nsS'value'\np47969\nS'Asset'\np47970\nssS'editable'\np47971\n(dp47972\nS'editable'\np47973\nI00\nsS'value'\np47974\nI01\nssS'unique'\np47975\n(dp47976\nS'editable'\np47977\nI00\nsS'value'\np47978\nI00\nssS'properties'\np47979\n(dp47980\nS'default_value'\np47981\n(dp47982\nS'editable'\np47983\nI00\nsS'value'\np47984\nNssS'summary_default'\np47985\n(dp47986\nS'editable'\np47987\nI01\nsS'value'\np47988\nS'none'\np47989\nssS'valid_types'\np47990\n(dp47991\nS'editable'\np47992\nI01\nsS'value'\np47993\n(lp47994\nS'Tag'\np47995\nasssS'description'\np47996\n(dp47997\nS'editable'\np47998\nI01\nsS'value'\np47999\ng47\nsssS'assets'\np48000\n(dp48001\nS'mandatory'\np48002\n(dp48003\nS'editable'\np48004\nI00\nsS'value'\np48005\nI00\nssS'name'\np48006\n(dp48007\nS'editable'\np48008\nI01\nsS'value'\np48009\nS'Sub Assets'\np48010\nssS'data_type'\np48011\n(dp48012\nS'editable'\np48013\nI00\nsS'value'\np48014\nS'multi_entity'\np48015\nssS'entity_type'\np48016\n(dp48017\nS'editable'\np48018\nI00\nsS'value'\np48019\nS'Asset'\np48020\nssS'editable'\np48021\n(dp48022\nS'editable'\np48023\nI00\nsS'value'\np48024\nI01\nssS'unique'\np48025\n(dp48026\nS'editable'\np48027\nI00\nsS'value'\np48028\nI00\nssS'properties'\np48029\n(dp48030\nS'default_value'\np48031\n(dp48032\nS'editable'\np48033\nI00\nsS'value'\np48034\nNssS'summary_default'\np48035\n(dp48036\nS'editable'\np48037\nI01\nsS'value'\np48038\nS'none'\np48039\nssS'valid_types'\np48040\n(dp48041\nS'editable'\np48042\nI01\nsS'value'\np48043\n(lp48044\nS'Asset'\np48045\nasssS'description'\np48046\n(dp48047\nS'editable'\np48048\nI01\nsS'value'\np48049\ng47\nsssS'step_9'\np48050\n(dp48051\nS'mandatory'\np48052\n(dp48053\nS'editable'\np48054\nI00\nsS'value'\np48055\nI00\nssS'name'\np48056\n(dp48057\nS'editable'\np48058\nI01\nsS'value'\np48059\nS'Art'\np48060\nssS'data_type'\np48061\n(dp48062\nS'editable'\np48063\nI00\nsS'value'\np48064\nS'pivot_column'\np48065\nssS'entity_type'\np48066\n(dp48067\nS'editable'\np48068\nI00\nsS'value'\np48069\nS'Asset'\np48070\nssS'editable'\np48071\n(dp48072\nS'editable'\np48073\nI00\nsS'value'\np48074\nI00\nssS'unique'\np48075\n(dp48076\nS'editable'\np48077\nI00\nsS'value'\np48078\nI00\nssS'properties'\np48079\n(dp48080\nS'default_value'\np48081\n(dp48082\nS'editable'\np48083\nI00\nsS'value'\np48084\nNssS'summary_default'\np48085\n(dp48086\nS'editable'\np48087\nI00\nsS'value'\np48088\nS'none'\np48089\nsssS'description'\np48090\n(dp48091\nS'editable'\np48092\nI01\nsS'value'\np48093\ng47\nsssS'notes'\np48094\n(dp48095\nS'mandatory'\np48096\n(dp48097\nS'editable'\np48098\nI00\nsS'value'\np48099\nI00\nssS'name'\np48100\n(dp48101\nS'editable'\np48102\nI01\nsS'value'\np48103\nS'Notes'\np48104\nssS'data_type'\np48105\n(dp48106\nS'editable'\np48107\nI00\nsS'value'\np48108\nS'multi_entity'\np48109\nssS'entity_type'\np48110\n(dp48111\nS'editable'\np48112\nI00\nsS'value'\np48113\nS'Asset'\np48114\nssS'editable'\np48115\n(dp48116\nS'editable'\np48117\nI00\nsS'value'\np48118\nI01\nssS'unique'\np48119\n(dp48120\nS'editable'\np48121\nI00\nsS'value'\np48122\nI00\nssS'properties'\np48123\n(dp48124\nS'default_value'\np48125\n(dp48126\nS'editable'\np48127\nI00\nsS'value'\np48128\nNssS'summary_default'\np48129\n(dp48130\nS'editable'\np48131\nI01\nsS'value'\np48132\nS'none'\np48133\nssS'valid_types'\np48134\n(dp48135\nS'editable'\np48136\nI01\nsS'value'\np48137\n(lp48138\nS'Note'\np48139\nasssS'description'\np48140\n(dp48141\nS'editable'\np48142\nI01\nsS'value'\np48143\ng47\nsssS'scenes'\np48144\n(dp48145\nS'mandatory'\np48146\n(dp48147\nS'editable'\np48148\nI00\nsS'value'\np48149\nI00\nssS'name'\np48150\n(dp48151\nS'editable'\np48152\nI01\nsS'value'\np48153\nS'Scenes'\np48154\nssS'data_type'\np48155\n(dp48156\nS'editable'\np48157\nI00\nsS'value'\np48158\nS'multi_entity'\np48159\nssS'entity_type'\np48160\n(dp48161\nS'editable'\np48162\nI00\nsS'value'\np48163\nS'Asset'\np48164\nssS'editable'\np48165\n(dp48166\nS'editable'\np48167\nI00\nsS'value'\np48168\nI01\nssS'unique'\np48169\n(dp48170\nS'editable'\np48171\nI00\nsS'value'\np48172\nI00\nssS'properties'\np48173\n(dp48174\nS'default_value'\np48175\n(dp48176\nS'editable'\np48177\nI00\nsS'value'\np48178\nNssS'summary_default'\np48179\n(dp48180\nS'editable'\np48181\nI01\nsS'value'\np48182\nS'none'\np48183\nssS'valid_types'\np48184\n(dp48185\nS'editable'\np48186\nI01\nsS'value'\np48187\n(lp48188\nS'Scene'\np48189\nasssS'description'\np48190\n(dp48191\nS'editable'\np48192\nI01\nsS'value'\np48193\ng47\nsssS'project'\np48194\n(dp48195\nS'mandatory'\np48196\n(dp48197\nS'editable'\np48198\nI00\nsS'value'\np48199\nI00\nssS'name'\np48200\n(dp48201\nS'editable'\np48202\nI01\nsS'value'\np48203\nS'Project'\np48204\nssS'data_type'\np48205\n(dp48206\nS'editable'\np48207\nI00\nsS'value'\np48208\nS'entity'\np48209\nssS'entity_type'\np48210\n(dp48211\nS'editable'\np48212\nI00\nsS'value'\np48213\nS'Asset'\np48214\nssS'editable'\np48215\n(dp48216\nS'editable'\np48217\nI00\nsS'value'\np48218\nI01\nssS'unique'\np48219\n(dp48220\nS'editable'\np48221\nI00\nsS'value'\np48222\nI00\nssS'properties'\np48223\n(dp48224\nS'default_value'\np48225\n(dp48226\nS'editable'\np48227\nI00\nsS'value'\np48228\nNssS'summary_default'\np48229\n(dp48230\nS'editable'\np48231\nI01\nsS'value'\np48232\nS'none'\np48233\nssS'valid_types'\np48234\n(dp48235\nS'editable'\np48236\nI01\nsS'value'\np48237\n(lp48238\nS'Project'\np48239\nasssS'description'\np48240\n(dp48241\nS'editable'\np48242\nI01\nsS'value'\np48243\ng47\nsssS'filmstrip_image'\np48244\n(dp48245\nS'mandatory'\np48246\n(dp48247\nS'editable'\np48248\nI00\nsS'value'\np48249\nI00\nssS'name'\np48250\n(dp48251\nS'editable'\np48252\nI01\nsS'value'\np48253\nS'Filmstrip Thumbnail'\np48254\nssS'data_type'\np48255\n(dp48256\nS'editable'\np48257\nI00\nsS'value'\np48258\nS'image'\np48259\nssS'entity_type'\np48260\n(dp48261\nS'editable'\np48262\nI00\nsS'value'\np48263\nS'Asset'\np48264\nssS'editable'\np48265\n(dp48266\nS'editable'\np48267\nI00\nsS'value'\np48268\nI01\nssS'unique'\np48269\n(dp48270\nS'editable'\np48271\nI00\nsS'value'\np48272\nI00\nssS'properties'\np48273\n(dp48274\nS'default_value'\np48275\n(dp48276\nS'editable'\np48277\nI00\nsS'value'\np48278\nNssS'summary_default'\np48279\n(dp48280\nS'editable'\np48281\nI01\nsS'value'\np48282\nS'none'\np48283\nsssS'description'\np48284\n(dp48285\nS'editable'\np48286\nI01\nsS'value'\np48287\ng47\nsssS'shots'\np48288\n(dp48289\nS'mandatory'\np48290\n(dp48291\nS'editable'\np48292\nI00\nsS'value'\np48293\nI00\nssS'name'\np48294\n(dp48295\nS'editable'\np48296\nI01\nsS'value'\np48297\nS'Shots'\np48298\nssS'data_type'\np48299\n(dp48300\nS'editable'\np48301\nI00\nsS'value'\np48302\nS'multi_entity'\np48303\nssS'entity_type'\np48304\n(dp48305\nS'editable'\np48306\nI00\nsS'value'\np48307\nS'Asset'\np48308\nssS'editable'\np48309\n(dp48310\nS'editable'\np48311\nI00\nsS'value'\np48312\nI01\nssS'unique'\np48313\n(dp48314\nS'editable'\np48315\nI00\nsS'value'\np48316\nI00\nssS'properties'\np48317\n(dp48318\nS'default_value'\np48319\n(dp48320\nS'editable'\np48321\nI00\nsS'value'\np48322\nNssS'summary_default'\np48323\n(dp48324\nS'editable'\np48325\nI01\nsS'value'\np48326\nS'none'\np48327\nssS'valid_types'\np48328\n(dp48329\nS'editable'\np48330\nI01\nsS'value'\np48331\n(lp48332\nS'Shot'\np48333\nasssS'description'\np48334\n(dp48335\nS'editable'\np48336\nI01\nsS'value'\np48337\ng47\nsssS'sg_asset_library'\np48338\n(dp48339\nS'mandatory'\np48340\n(dp48341\nS'editable'\np48342\nI00\nsS'value'\np48343\nI00\nssS'name'\np48344\n(dp48345\nS'editable'\np48346\nI01\nsS'value'\np48347\nS'Asset Library'\np48348\nssS'data_type'\np48349\n(dp48350\nS'editable'\np48351\nI00\nsS'value'\np48352\nS'entity'\np48353\nssS'entity_type'\np48354\n(dp48355\nS'editable'\np48356\nI00\nsS'value'\np48357\nS'Asset'\np48358\nssS'editable'\np48359\n(dp48360\nS'editable'\np48361\nI00\nsS'value'\np48362\nI01\nssS'unique'\np48363\n(dp48364\nS'editable'\np48365\nI00\nsS'value'\np48366\nI00\nssS'properties'\np48367\n(dp48368\nS'default_value'\np48369\n(dp48370\nS'editable'\np48371\nI00\nsS'value'\np48372\nNssS'summary_default'\np48373\n(dp48374\nS'editable'\np48375\nI01\nsS'value'\np48376\nS'none'\np48377\nssS'valid_types'\np48378\n(dp48379\nS'editable'\np48380\nI01\nsS'value'\np48381\n(lp48382\nS'AssetLibrary'\np48383\nasssS'description'\np48384\n(dp48385\nS'editable'\np48386\nI01\nsS'value'\np48387\ng47\nsssS'sg_asset_type'\np48388\n(dp48389\nS'mandatory'\np48390\n(dp48391\nS'editable'\np48392\nI00\nsS'value'\np48393\nI00\nssS'name'\np48394\n(dp48395\nS'editable'\np48396\nI01\nsS'value'\np48397\nS'Type'\np48398\nssS'data_type'\np48399\n(dp48400\nS'editable'\np48401\nI00\nsS'value'\np48402\nS'list'\np48403\nssS'entity_type'\np48404\n(dp48405\nS'editable'\np48406\nI00\nsS'value'\np48407\nS'Asset'\np48408\nssS'editable'\np48409\n(dp48410\nS'editable'\np48411\nI00\nsS'value'\np48412\nI01\nssS'unique'\np48413\n(dp48414\nS'editable'\np48415\nI00\nsS'value'\np48416\nI00\nssS'properties'\np48417\n(dp48418\nS'default_value'\np48419\n(dp48420\nS'editable'\np48421\nI00\nsS'value'\np48422\nNssS'valid_values'\np48423\n(dp48424\nS'editable'\np48425\nI01\nsS'value'\np48426\n(lp48427\nS'Character'\np48428\naS'Vehicle'\np48429\naS'Prop'\np48430\naS'Environment'\np48431\naS'Matte Painting'\np48432\nassS'summary_default'\np48433\n(dp48434\nS'editable'\np48435\nI01\nsS'value'\np48436\nS'none'\np48437\nsssS'description'\np48438\n(dp48439\nS'editable'\np48440\nI01\nsS'value'\np48441\ng47\nsssS'sg_library'\np48442\n(dp48443\nS'mandatory'\np48444\n(dp48445\nS'editable'\np48446\nI00\nsS'value'\np48447\nI00\nssS'name'\np48448\n(dp48449\nS'editable'\np48450\nI01\nsS'value'\np48451\nS'Library'\np48452\nssS'data_type'\np48453\n(dp48454\nS'editable'\np48455\nI00\nsS'value'\np48456\nS'entity'\np48457\nssS'entity_type'\np48458\n(dp48459\nS'editable'\np48460\nI00\nsS'value'\np48461\nS'Asset'\np48462\nssS'editable'\np48463\n(dp48464\nS'editable'\np48465\nI00\nsS'value'\np48466\nI01\nssS'unique'\np48467\n(dp48468\nS'editable'\np48469\nI00\nsS'value'\np48470\nI00\nssS'properties'\np48471\n(dp48472\nS'default_value'\np48473\n(dp48474\nS'editable'\np48475\nI00\nsS'value'\np48476\nNssS'summary_default'\np48477\n(dp48478\nS'editable'\np48479\nI01\nsS'value'\np48480\nS'none'\np48481\nssS'valid_types'\np48482\n(dp48483\nS'editable'\np48484\nI01\nsS'value'\np48485\n(lp48486\nS'AssetLibrary'\np48487\nasssS'description'\np48488\n(dp48489\nS'editable'\np48490\nI01\nsS'value'\np48491\ng47\nsssS'created_at'\np48492\n(dp48493\nS'mandatory'\np48494\n(dp48495\nS'editable'\np48496\nI00\nsS'value'\np48497\nI00\nssS'name'\np48498\n(dp48499\nS'editable'\np48500\nI01\nsS'value'\np48501\nS'Date Created'\np48502\nssS'data_type'\np48503\n(dp48504\nS'editable'\np48505\nI00\nsS'value'\np48506\nS'date_time'\np48507\nssS'entity_type'\np48508\n(dp48509\nS'editable'\np48510\nI00\nsS'value'\np48511\nS'Asset'\np48512\nssS'editable'\np48513\n(dp48514\nS'editable'\np48515\nI00\nsS'value'\np48516\nI00\nssS'unique'\np48517\n(dp48518\nS'editable'\np48519\nI00\nsS'value'\np48520\nI00\nssS'properties'\np48521\n(dp48522\nS'default_value'\np48523\n(dp48524\nS'editable'\np48525\nI00\nsS'value'\np48526\nNssS'summary_default'\np48527\n(dp48528\nS'editable'\np48529\nI01\nsS'value'\np48530\nS'none'\np48531\nsssS'description'\np48532\n(dp48533\nS'editable'\np48534\nI01\nsS'value'\np48535\ng47\nssss.\n"
  },
  {
    "path": "tests/mockgun/schema_entity.pickle",
    "content": "(dp0\nS'Playlist'\np1\n(dp2\nS'name'\np3\n(dp4\nS'editable'\np5\nI00\nsS'value'\np6\nS'Playlist'\np7\nsssS'AppWelcomeUserConnection'\np8\n(dp9\nS'name'\np10\n(dp11\nS'editable'\np12\nI00\nsS'value'\np13\nS'App Welcome User Connection'\np14\nsssS'Group'\np15\n(dp16\nS'name'\np17\n(dp18\nS'editable'\np19\nI00\nsS'value'\np20\nS'Group'\np21\nsssS'PhysicalAssetMocapTakeConnection'\np22\n(dp23\nS'name'\np24\n(dp25\nS'editable'\np26\nI00\nsS'value'\np27\nS'Physical Asset Mocap Take Connection'\np28\nsssS'CustomEntity05'\np29\n(dp30\nS'name'\np31\n(dp32\nS'editable'\np33\nI00\nsS'value'\np34\nS'Custom Entity05'\np35\nsssS'Note'\np36\n(dp37\nS'name'\np38\n(dp39\nS'editable'\np40\nI00\nsS'value'\np41\nS'Note'\np42\nsssS'TaskDependency'\np43\n(dp44\nS'name'\np45\n(dp46\nS'editable'\np47\nI00\nsS'value'\np48\nS'Task Dependency'\np49\nsssS'PageHit'\np50\n(dp51\nS'name'\np52\n(dp53\nS'editable'\np54\nI00\nsS'value'\np55\nS'Page Hit'\np56\nsssS'ActionMenuItem'\np57\n(dp58\nS'name'\np59\n(dp60\nS'editable'\np61\nI00\nsS'value'\np62\nS'Action Menu Item'\np63\nsssS'Attachment'\np64\n(dp65\nS'name'\np66\n(dp67\nS'editable'\np68\nI00\nsS'value'\np69\nS'File'\np70\nsssS'AssetMocapTakeConnection'\np71\n(dp72\nS'name'\np73\n(dp74\nS'editable'\np75\nI00\nsS'value'\np76\nS'Asset Mocap Take Connection'\np77\nsssS'Department'\np78\n(dp79\nS'name'\np80\n(dp81\nS'editable'\np82\nI00\nsS'value'\np83\nS'Department'\np84\nsssS'AssetSceneConnection'\np85\n(dp86\nS'name'\np87\n(dp88\nS'editable'\np89\nI00\nsS'value'\np90\nS'Asset Scene Connection'\np91\nsssS'CameraMocapTakeConnection'\np92\n(dp93\nS'name'\np94\n(dp95\nS'editable'\np96\nI00\nsS'value'\np97\nS'Camera Mocap Take Connection'\np98\nsssS'Booking'\np99\n(dp100\nS'name'\np101\n(dp102\nS'editable'\np103\nI00\nsS'value'\np104\nS'Booking'\np105\nsssS'CutVersionConnection'\np106\n(dp107\nS'name'\np108\n(dp109\nS'editable'\np110\nI00\nsS'value'\np111\nS'Cut Version Connection'\np112\nsssS'TimeLog'\np113\n(dp114\nS'name'\np115\n(dp116\nS'editable'\np117\nI00\nsS'value'\np118\nS'Time Log'\np119\nsssS'PlaylistVersionConnection'\np120\n(dp121\nS'name'\np122\n(dp123\nS'editable'\np124\nI00\nsS'value'\np125\nS'Playlist Version Connection'\np126\nsssS'CustomNonProjectEntity02'\np127\n(dp128\nS'name'\np129\n(dp130\nS'editable'\np131\nI00\nsS'value'\np132\nS'Custom Non Project Entity02'\np133\nsssS'AssetElementConnection'\np134\n(dp135\nS'name'\np136\n(dp137\nS'editable'\np138\nI00\nsS'value'\np139\nS'Asset Element Connection'\np140\nsssS'ReleaseTicketConnection'\np141\n(dp142\nS'name'\np143\n(dp144\nS'editable'\np145\nI00\nsS'value'\np146\nS'Release Ticket Connection'\np147\nsssS'RevisionRevisionConnection'\np148\n(dp149\nS'name'\np150\n(dp151\nS'editable'\np152\nI00\nsS'value'\np153\nS'Revision Revision Connection'\np154\nsssS'ProjectUserConnection'\np155\n(dp156\nS'name'\np157\n(dp158\nS'editable'\np159\nI00\nsS'value'\np160\nS'Project User Connection'\np161\nsssS'MocapTakeRangeShotConnection'\np162\n(dp163\nS'name'\np164\n(dp165\nS'editable'\np166\nI00\nsS'value'\np167\nS'Mocap Take Range Shot Connection'\np168\nsssS'PublishedFileDependency'\np169\n(dp170\nS'name'\np171\n(dp172\nS'editable'\np173\nI00\nsS'value'\np174\nS'Published File Dependency'\np175\nsssS'Step'\np176\n(dp177\nS'name'\np178\n(dp179\nS'editable'\np180\nI00\nsS'value'\np181\nS'Step'\np182\nsssS'AssetLibrary'\np183\n(dp184\nS'name'\np185\n(dp186\nS'editable'\np187\nI00\nsS'value'\np188\nS'Asset Library'\np189\nsssS'PerformerMocapTakeConnection'\np190\n(dp191\nS'name'\np192\n(dp193\nS'editable'\np194\nI00\nsS'value'\np195\nS'Performer Mocap Take Connection'\np196\nsssS'Phase'\np197\n(dp198\nS'name'\np199\n(dp200\nS'editable'\np201\nI00\nsS'value'\np202\nS'Phase'\np203\nsssS'PublishedFile'\np204\n(dp205\nS'name'\np206\n(dp207\nS'editable'\np208\nI00\nsS'value'\np209\nS'Published File'\np210\nsssS'ShootDaySceneConnection'\np211\n(dp212\nS'name'\np213\n(dp214\nS'editable'\np215\nI00\nsS'value'\np216\nS'Shoot Day Scene Connection'\np217\nsssS'AssetShotConnection'\np218\n(dp219\nS'name'\np220\n(dp221\nS'editable'\np222\nI00\nsS'value'\np223\nS'Asset Shot Connection'\np224\nsssS'TicketTicketConnection'\np225\n(dp226\nS'name'\np227\n(dp228\nS'editable'\np229\nI00\nsS'value'\np230\nS'Ticket Ticket Connection'\np231\nsssS'AssetBlendshapeConnection'\np232\n(dp233\nS'name'\np234\n(dp235\nS'editable'\np236\nI00\nsS'value'\np237\nS'Asset Blendshape Connection'\np238\nsssS'PageSetting'\np239\n(dp240\nS'name'\np241\n(dp242\nS'editable'\np243\nI00\nsS'value'\np244\nS'Page Setting'\np245\nsssS'Status'\np246\n(dp247\nS'name'\np248\n(dp249\nS'editable'\np250\nI00\nsS'value'\np251\nS'Status'\np252\nsssS'Reply'\np253\n(dp254\nS'name'\np255\n(dp256\nS'editable'\np257\nI00\nsS'value'\np258\nS'Reply'\np259\nsssS'Task'\np260\n(dp261\nS'name'\np262\n(dp263\nS'editable'\np264\nI00\nsS'value'\np265\nS'Task'\np266\nsssS'CustomNonProjectEntity01'\np267\n(dp268\nS'name'\np269\n(dp270\nS'editable'\np271\nI00\nsS'value'\np272\nS'Custom Non Project Entity01'\np273\nsssS'ApiUser'\np274\n(dp275\nS'name'\np276\n(dp277\nS'editable'\np278\nI00\nsS'value'\np279\nS'Script'\np280\nsssS'CustomNonProjectEntity03'\np281\n(dp282\nS'name'\np283\n(dp284\nS'editable'\np285\nI00\nsS'value'\np286\nS'Custom Non Project Entity03'\np287\nsssS'LaunchShotConnection'\np288\n(dp289\nS'name'\np290\n(dp291\nS'editable'\np292\nI00\nsS'value'\np293\nS'Launch Shot Connection'\np294\nsssS'ShotShotConnection'\np295\n(dp296\nS'name'\np297\n(dp298\nS'editable'\np299\nI00\nsS'value'\np300\nS'Shot Shot Connection'\np301\nsssS'PerformerRoutineConnection'\np302\n(dp303\nS'name'\np304\n(dp305\nS'editable'\np306\nI00\nsS'value'\np307\nS'Performer Routine Connection'\np308\nsssS'PublishedFileType'\np309\n(dp310\nS'name'\np311\n(dp312\nS'editable'\np313\nI00\nsS'value'\np314\nS'Published File Type'\np315\nsssS'Element'\np316\n(dp317\nS'name'\np318\n(dp319\nS'editable'\np320\nI00\nsS'value'\np321\nS'Element'\np322\nsssS'TankType'\np323\n(dp324\nS'name'\np325\n(dp326\nS'editable'\np327\nI00\nsS'value'\np328\nS'Tank Type'\np329\nsssS'Icon'\np330\n(dp331\nS'name'\np332\n(dp333\nS'editable'\np334\nI00\nsS'value'\np335\nS'Icon'\np336\nsssS'LocalStorage'\np337\n(dp338\nS'name'\np339\n(dp340\nS'editable'\np341\nI00\nsS'value'\np342\nS'Local Storage'\np343\nsssS'TaskTemplate'\np344\n(dp345\nS'name'\np346\n(dp347\nS'editable'\np348\nI00\nsS'value'\np349\nS'Task Template'\np350\nsssS'RevisionTicketConnection'\np351\n(dp352\nS'name'\np353\n(dp354\nS'editable'\np355\nI00\nsS'value'\np356\nS'Revision Ticket Connection'\np357\nsssS'PerformerShootDayConnection'\np358\n(dp359\nS'name'\np360\n(dp361\nS'editable'\np362\nI00\nsS'value'\np363\nS'Performer Shoot Day Connection'\np364\nsssS'PipelineConfiguration'\np365\n(dp366\nS'name'\np367\n(dp368\nS'editable'\np369\nI00\nsS'value'\np370\nS'Pipeline Configuration'\np371\nsssS'LaunchSceneConnection'\np372\n(dp373\nS'name'\np374\n(dp375\nS'editable'\np376\nI00\nsS'value'\np377\nS'Launch Scene Connection'\np378\nsssS'GroupUserConnection'\np379\n(dp380\nS'name'\np381\n(dp382\nS'editable'\np383\nI00\nsS'value'\np384\nS'Group User Connection'\np385\nsssS'AssetSequenceConnection'\np386\n(dp387\nS'name'\np388\n(dp389\nS'editable'\np390\nI00\nsS'value'\np391\nS'Asset Sequence Connection'\np392\nsssS'Page'\np393\n(dp394\nS'name'\np395\n(dp396\nS'editable'\np397\nI00\nsS'value'\np398\nS'Page'\np399\nsssS'CustomEntity02'\np400\n(dp401\nS'name'\np402\n(dp403\nS'editable'\np404\nI00\nsS'value'\np405\nS'Custom Entity02'\np406\nsssS'CustomEntity03'\np407\n(dp408\nS'name'\np409\n(dp410\nS'editable'\np411\nI00\nsS'value'\np412\nS'Custom Entity03'\np413\nsssS'FilesystemLocation'\np414\n(dp415\nS'name'\np416\n(dp417\nS'editable'\np418\nI00\nsS'value'\np419\nS'Filesystem Location'\np420\nsssS'CustomEntity01'\np421\n(dp422\nS'name'\np423\n(dp424\nS'editable'\np425\nI00\nsS'value'\np426\nS'Disk Location'\np427\nsssS'Shot'\np428\n(dp429\nS'name'\np430\n(dp431\nS'editable'\np432\nI00\nsS'value'\np433\nS'Shot'\np434\nsssS'TankPublishedFile'\np435\n(dp436\nS'name'\np437\n(dp438\nS'editable'\np439\nI00\nsS'value'\np440\nS'Tank Published File'\np441\nsssS'CustomEntity04'\np442\n(dp443\nS'name'\np444\n(dp445\nS'editable'\np446\nI00\nsS'value'\np447\nS'Custom Entity04'\np448\nsssS'Sequence'\np449\n(dp450\nS'name'\np451\n(dp452\nS'editable'\np453\nI00\nsS'value'\np454\nS'Sequence'\np455\nsssS'BannerUserConnection'\np456\n(dp457\nS'name'\np458\n(dp459\nS'editable'\np460\nI00\nsS'value'\np461\nS'Banner User Connection'\np462\nsssS'AssetAssetConnection'\np463\n(dp464\nS'name'\np465\n(dp466\nS'editable'\np467\nI00\nsS'value'\np468\nS'Asset Asset Connection'\np469\nsssS'Scene'\np470\n(dp471\nS'name'\np472\n(dp473\nS'editable'\np474\nI00\nsS'value'\np475\nS'Scene'\np476\nsssS'Project'\np477\n(dp478\nS'name'\np479\n(dp480\nS'editable'\np481\nI00\nsS'value'\np482\nS'Project'\np483\nsssS'Version'\np484\n(dp485\nS'name'\np486\n(dp487\nS'editable'\np488\nI00\nsS'value'\np489\nS'Version'\np490\nsssS'ElementShotConnection'\np491\n(dp492\nS'name'\np493\n(dp494\nS'editable'\np495\nI00\nsS'value'\np496\nS'Element Shot Connection'\np497\nsssS'HumanUser'\np498\n(dp499\nS'name'\np500\n(dp501\nS'editable'\np502\nI00\nsS'value'\np503\nS'Person'\np504\nsssS'PermissionRuleSet'\np505\n(dp506\nS'name'\np507\n(dp508\nS'editable'\np509\nI00\nsS'value'\np510\nS'Permission Rule Set'\np511\nsssS'EventLogEntry'\np512\n(dp513\nS'name'\np514\n(dp515\nS'editable'\np516\nI00\nsS'value'\np517\nS'Event Log Entry'\np518\nsssS'TankDependency'\np519\n(dp520\nS'name'\np521\n(dp522\nS'editable'\np523\nI00\nsS'value'\np524\nS'Tank Dependency'\np525\nsssS'AssetShootDayConnection'\np526\n(dp527\nS'name'\np528\n(dp529\nS'editable'\np530\nI00\nsS'value'\np531\nS'Asset Shoot Day Connection'\np532\nsssS'Asset'\np533\n(dp534\nS'name'\np535\n(dp536\nS'editable'\np537\nI00\nsS'value'\np538\nS'Asset'\np539\nsss.\n"
  },
  {
    "path": "tests/requirements.txt",
    "content": "# Copyright (c) 2019 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\n\npytest\npytest-cov\npytest-nunit\n"
  },
  {
    "path": "tests/run_appveyor.bat",
    "content": ":: Copyright (c) 2018 Shotgun Software Inc.\n::\n:: CONFIDENTIAL AND PROPRIETARY\n::\n:: This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n:: Source Code License included in this distribution package. See LICENSE.\n:: By accessing, using, copying or modifying this work you indicate your\n:: agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n:: not expressly granted therein are reserved by Shotgun Software Inc.\n\n::\n:: This file is run by the appveyor builds.\n::\n\ncopy tests\\example_config tests\\config\n%PYTHON%\\Scripts\\pip install -r tests/ci_requirements.txt\n%PYTHON%\\Scripts\\pip install . -U\ncd tests\n%PYTHON%\\Scripts\\nosetests.exe -v --no-path-adjustment\n"
  },
  {
    "path": "tests/test_api.py",
    "content": "# Copyright (c) 2019 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\n\n\"\"\"Test calling the Shotgun API functions.\n\nIncludes short run tests, like simple crud and single finds. See\ntest_api_long for other tests.\n\"\"\"\n\nimport datetime\nimport glob\nimport os\nimport ssl\nimport sys\nimport time\nimport types\nimport unittest\nimport unittest.mock\nimport urllib.parse\nimport urllib.request\nimport urllib.error\nimport uuid\nimport warnings\n\nfrom shotgun_api3.lib.httplib2 import Http\n\nimport shotgun_api3\n\nfrom . import base\n\n\nclass TestShotgunApi(base.LiveTestBase):\n    def setUp(self):\n        super().setUp()\n        # give note unicode content\n        self.sg.update(\"Note\", self.note[\"id\"], {\"content\": \"La Pe\\xf1a\"})\n\n    def test_info(self):\n        \"\"\"Called info\"\"\"\n        # TODO do more to check results\n        self.sg.info()\n\n    def test_server_dates(self):\n        \"\"\"Pass datetimes to the server\"\"\"\n        # TODO check results\n        t = {\"project\": self.project, \"start_date\": datetime.date.today()}\n        self.sg.create(\"Task\", t, [\"content\", \"sg_status_list\"])\n\n    def test_batch(self):\n        \"\"\"Batched create, update, delete\"\"\"\n\n        requests = [\n            {\n                \"request_type\": \"create\",\n                \"entity_type\": \"Shot\",\n                \"data\": {\"code\": \"New Shot 5\", \"project\": self.project},\n            },\n            {\n                \"request_type\": \"update\",\n                \"entity_type\": \"Shot\",\n                \"entity_id\": self.shot[\"id\"],\n                \"data\": {\"code\": \"Changed 1\"},\n            },\n        ]\n\n        new_shot, updated_shot = self.sg.batch(requests)\n\n        self.assertEqual(self.shot[\"id\"], updated_shot[\"id\"])\n        self.assertTrue(new_shot.get(\"id\"))\n\n        new_shot_id = new_shot[\"id\"]\n        requests = [\n            {\"request_type\": \"delete\", \"entity_type\": \"Shot\", \"entity_id\": new_shot_id},\n            {\n                \"request_type\": \"update\",\n                \"entity_type\": \"Shot\",\n                \"entity_id\": self.shot[\"id\"],\n                \"data\": {\"code\": self.shot[\"code\"]},\n            },\n        ]\n\n        result = self.sg.batch(requests)[0]\n        self.assertEqual(True, result)\n\n    def test_empty_batch(self):\n        \"\"\"Empty list sent to .batch()\"\"\"\n        result = self.sg.batch([])\n        self.assertEqual([], result)\n\n    def test_create_update_delete(self):\n        \"\"\"Called create, update, delete, revive\"\"\"\n        data = {\n            \"project\": self.project,\n            \"code\": \"JohnnyApple_Design01_FaceFinal\",\n            \"description\": \"fixed rig per director final notes\",\n            \"sg_status_list\": \"rev\",\n            \"entity\": self.asset,\n            \"user\": self.human_user,\n        }\n\n        version = self.sg.create(\"Version\", data, return_fields=[\"id\"])\n        self.assertTrue(isinstance(version, dict))\n        self.assertTrue(\"id\" in version)\n        # TODO check results more thoroughly\n        # TODO: test returned fields are requested fields\n\n        data = data = {\"description\": \"updated test\"}\n        version = self.sg.update(\"Version\", version[\"id\"], data)\n        self.assertTrue(isinstance(version, dict))\n        self.assertTrue(\"id\" in version)\n\n        rv = self.sg.delete(\"Version\", version[\"id\"])\n        self.assertEqual(True, rv)\n        rv = self.sg.delete(\"Version\", version[\"id\"])\n        self.assertEqual(False, rv)\n\n        rv = self.sg.revive(\"Version\", version[\"id\"])\n        self.assertEqual(True, rv)\n        rv = self.sg.revive(\"Version\", version[\"id\"])\n        self.assertEqual(False, rv)\n\n    def test_last_accessed(self):\n        page = self.sg.find(\"Page\", [], fields=[\"last_accessed\"], limit=1)\n        self.assertEqual(\"Page\", page[0][\"type\"])\n        self.assertEqual(datetime.datetime, type(page[0][\"last_accessed\"]))\n\n    def test_get_session_token(self):\n        \"\"\"Got session UUID\"\"\"\n        # TODO test results\n        rv = self.sg.get_session_token()\n        self.assertTrue(rv)\n\n    def test_upload_download(self):\n        \"\"\"Upload and download an attachment tests\"\"\"\n        # upload / download only works against a live server because it does\n        # not use the standard http interface\n        if \"localhost\" in self.server_url:\n            print(\"upload / down tests skipped for localhost\")\n            return\n\n        this_dir, _ = os.path.split(__file__)\n        path = os.path.abspath(\n            os.path.expanduser(os.path.join(this_dir, \"sg_logo.jpg\"))\n        )\n        size = os.stat(path).st_size\n\n        attach_id = self.sg.upload(\n            \"Version\",\n            self.version[\"id\"],\n            path,\n            \"sg_uploaded_movie\",\n            tag_list=\"monkeys, everywhere, send, help\",\n        )\n\n        # test download with attachment_id\n        attach_file = self.sg.download_attachment(attach_id)\n        self.assertTrue(attach_file is not None)\n        self.assertEqual(size, len(attach_file))\n        orig_file = open(path, \"rb\").read()\n        self.assertEqual(orig_file, attach_file)\n\n        # test download with attachment_id as keyword\n        attach_file = self.sg.download_attachment(attachment_id=attach_id)\n        self.assertTrue(attach_file is not None)\n        self.assertEqual(size, len(attach_file))\n        orig_file = open(path, \"rb\").read()\n        self.assertEqual(orig_file, attach_file)\n\n        # test download with attachment_id (write to disk)\n        file_path = os.path.join(\n            os.path.dirname(os.path.realpath(__file__)), \"sg_logo_download.jpg\"\n        )\n        result = self.sg.download_attachment(attach_id, file_path=file_path)\n        self.assertEqual(result, file_path)\n        # On windows read may not read to end of file unless opened 'rb'\n        fp = open(file_path, \"rb\")\n        attach_file = fp.read()\n        fp.close()\n        self.assertEqual(size, len(attach_file))\n        self.assertEqual(orig_file, attach_file)\n\n        # test download with attachment hash\n        version = self.sg.find_one(\n            \"Version\", [[\"id\", \"is\", self.version[\"id\"]]], [\"sg_uploaded_movie\"]\n        )\n\n        # Look for the attachment we just uploaded, the attachments are not returned from latest\n        # to earliest.\n        attachment = [\n            v\n            for k, v in version[\"sg_uploaded_movie\"].items()\n            if (k, v) == (\"id\", attach_id)\n        ]\n        self.assertEqual(len(attachment), 1)\n\n        attachment = attachment[0]\n        attach_file = self.sg.download_attachment(attachment)\n\n        self.assertTrue(attach_file is not None)\n        self.assertEqual(size, len(attach_file))\n        self.assertEqual(orig_file, attach_file)\n\n        # test download with attachment hash (write to disk)\n        result = self.sg.download_attachment(attachment, file_path=file_path)\n        self.assertEqual(result, file_path)\n        fp = open(file_path, \"rb\")\n        attach_file = fp.read()\n        fp.close()\n        self.assertTrue(attach_file is not None)\n        self.assertEqual(size, len(attach_file))\n        self.assertEqual(orig_file, attach_file)\n\n        # test invalid requests\n        INVALID_S3_URL = \"https://sg-media-usor-01.s3.amazonaws.com/ada3de3ee3873875e1dd44f2eb0882c75ae36a4a/cd31346421dbeef781e0e480f259a3d36652d7f2/IMG_0465.MOV?AWSAccessKeyId=AKIAIQGOBSVN3FSQ5QFA&Expires=1371789959&Signature=SLbzv7DuVlZ8XAoOSQQAiGpF3u8%3D\"  # noqa\n        self.assertRaises(\n            shotgun_api3.ShotgunFileDownloadError,\n            self.sg.download_attachment,\n            {\"url\": INVALID_S3_URL},\n        )\n        INVALID_ATTACHMENT_ID = 99999999\n        self.assertRaises(\n            shotgun_api3.ShotgunFileDownloadError,\n            self.sg.download_attachment,\n            INVALID_ATTACHMENT_ID,\n        )\n        self.assertRaises(\n            TypeError, self.sg.download_attachment, \"/path/to/some/file.jpg\"\n        )\n        self.assertRaises(\n            ValueError, self.sg.download_attachment, {\"id\": 123, \"type\": \"Shot\"}\n        )\n        self.assertRaises(TypeError, self.sg.download_attachment)\n\n        # test upload of non-ascii, unicode path\n        u_path = os.path.abspath(\n            os.path.expanduser(glob.glob(os.path.join(this_dir, \"Noëlご.jpg\"))[0])\n        )\n\n        # If this is a problem, it'll raise with a UnicodeEncodeError. We\n        # don't need to check the results of the upload itself -- we're\n        # only checking that the non-ascii string encoding doesn't trip\n        # us up the way it used to.\n        self.sg.upload(\n            \"Version\",\n            self.version[\"id\"],\n            u_path,\n            \"sg_uploaded_movie\",\n            tag_list=\"monkeys, everywhere, send, help\",\n        )\n\n        # Also make sure that we can pass in a utf-8 encoded string path\n        # with non-ascii characters and have it work properly. This is\n        # primarily a concern on Windows, as it doesn't handle that\n        # situation as well as OS X and Linux.\n        self.sg.upload(\n            \"Version\",\n            self.version[\"id\"],\n            u_path.encode(\"utf-8\"),\n            \"sg_uploaded_movie\",\n            tag_list=\"monkeys, everywhere, send, help\",\n        )\n\n        # cleanup\n        os.remove(file_path)\n\n    @unittest.mock.patch(\"shotgun_api3.Shotgun._send_form\")\n    def test_upload_to_sg(self, mock_send_form):\n        \"\"\"\n        Upload an attachment tests for _upload_to_sg()\n        \"\"\"\n        self.sg.server_info[\"s3_direct_uploads_enabled\"] = False\n        mock_send_form.return_value = \"1\\n:123\\nasd\"\n        this_dir, _ = os.path.split(__file__)\n        u_path = os.path.abspath(\n            os.path.expanduser(glob.glob(os.path.join(this_dir, \"Noëlご.jpg\"))[0])\n        )\n        upload_id = self.sg.upload(\n            \"Version\",\n            self.version[\"id\"],\n            u_path,\n            \"attachments\",\n            tag_list=\"monkeys, everywhere, send, help\",\n        )\n        mock_send_form.assert_called_once()\n        mock_send_form_args, _ = mock_send_form.call_args\n        display_name_to_send = mock_send_form_args[1].get(\"display_name\", \"\")\n        self.assertTrue(isinstance(upload_id, int))\n        self.assertFalse(\n            display_name_to_send.startswith(\"b'\") and display_name_to_send.endswith(\"'\")\n        )\n\n        upload_id = self.sg.upload(\n            \"Version\",\n            self.version[\"id\"],\n            u_path,\n            \"filmstrip_image\",\n            tag_list=\"monkeys, everywhere, send, help\",\n        )\n        self.assertTrue(isinstance(upload_id, int))\n        mock_send_form_args, _ = mock_send_form.call_args\n        display_name_to_send = mock_send_form_args[1].get(\"display_name\", \"\")\n        self.assertTrue(isinstance(upload_id, int))\n        self.assertFalse(\n            display_name_to_send.startswith(\"b'\") and display_name_to_send.endswith(\"'\")\n        )\n\n        mock_send_form.reset_mock()\n        mock_send_form.return_value = \"2\\nIt can't be upload\"\n        self.assertRaises(\n            shotgun_api3.ShotgunError,\n            self.sg.upload,\n            \"Version\",\n            self.version[\"id\"],\n            u_path,\n            \"attachments\",\n            tag_list=\"monkeys, everywhere, send, help\",\n        )\n        mock_send_form.assert_called_once()\n        self.sg.server_info[\"s3_direct_uploads_enabled\"] = True\n\n    def test_upload_thumbnail_in_create(self):\n        \"\"\"Upload a thumbnail via the create method\"\"\"\n        this_dir, _ = os.path.split(__file__)\n        path = os.path.abspath(\n            os.path.expanduser(os.path.join(this_dir, \"sg_logo.jpg\"))\n        )\n\n        # test thumbnail upload\n        data = {\"image\": path, \"code\": \"Test Version\", \"project\": self.project}\n        new_version = self.sg.create(\"Version\", data, return_fields=[\"image\"])\n        new_version = self.find_one_await_thumbnail(\n            \"Version\",\n            [[\"id\", \"is\", new_version[\"id\"]]],\n            fields=[\"image\", \"project\", \"type\", \"id\"],\n        )\n\n        self.assertTrue(new_version is not None)\n        self.assertTrue(isinstance(new_version, dict))\n        self.assertTrue(isinstance(new_version.get(\"id\"), int))\n        self.assertEqual(new_version.get(\"type\"), \"Version\")\n        self.assertEqual(new_version.get(\"project\"), self.project)\n        self.assertTrue(new_version.get(\"image\") is not None)\n\n        h = Http(\".cache\")\n        thumb_resp, content = h.request(new_version.get(\"image\"), \"GET\")\n        self.assertIn(thumb_resp[\"status\"], [\"200\", \"304\"])\n        self.assertIn(thumb_resp[\"content-type\"], [\"image/jpeg\", \"image/png\"])\n\n        self.sg.delete(\"Version\", new_version[\"id\"])\n\n        # test filmstrip image upload\n        data = {\n            \"filmstrip_image\": path,\n            \"code\": \"Test Version\",\n            \"project\": self.project,\n        }\n        new_version = self.sg.create(\"Version\", data, return_fields=[\"filmstrip_image\"])\n        self.assertTrue(new_version is not None)\n        self.assertTrue(isinstance(new_version, dict))\n        self.assertTrue(isinstance(new_version.get(\"id\"), int))\n        self.assertEqual(new_version.get(\"type\"), \"Version\")\n        self.assertEqual(new_version.get(\"project\"), self.project)\n        self.assertTrue(new_version.get(\"filmstrip_image\") is not None)\n\n        url = new_version.get(\"filmstrip_image\")\n        data = self.sg.download_attachment({\"url\": url})\n        self.assertTrue(isinstance(data, bytes))\n\n        self.sg.delete(\"Version\", new_version[\"id\"])\n\n    # end test_upload_thumbnail_in_create\n\n    def test_upload_thumbnail_for_version(self):\n        \"\"\"simple upload thumbnail for version test.\"\"\"\n        this_dir, _ = os.path.split(__file__)\n        path = os.path.abspath(\n            os.path.expanduser(os.path.join(this_dir, \"sg_logo.jpg\"))\n        )\n\n        # upload thumbnail\n        thumb_id = self.sg.upload_thumbnail(\"Version\", self.version[\"id\"], path)\n        self.assertTrue(isinstance(thumb_id, int))\n\n        # check result on version\n        version_with_thumbnail = self.sg.find_one(\n            \"Version\", [[\"id\", \"is\", self.version[\"id\"]]]\n        )\n        version_with_thumbnail = self.find_one_await_thumbnail(\n            \"Version\", [[\"id\", \"is\", self.version[\"id\"]]]\n        )\n\n        self.assertEqual(version_with_thumbnail.get(\"type\"), \"Version\")\n        self.assertEqual(version_with_thumbnail.get(\"id\"), self.version[\"id\"])\n\n        h = Http(\".cache\")\n        thumb_resp, content = h.request(version_with_thumbnail.get(\"image\"), \"GET\")\n        self.assertIn(thumb_resp[\"status\"], [\"200\", \"304\"])\n        self.assertIn(thumb_resp[\"content-type\"], [\"image/jpeg\", \"image/png\"])\n\n        # clear thumbnail\n        response_clear_thumbnail = self.sg.update(\n            \"Version\", self.version[\"id\"], {\"image\": None}\n        )\n        expected_clear_thumbnail = {\n            \"id\": self.version[\"id\"],\n            \"image\": None,\n            \"type\": \"Version\",\n        }\n        self.assertEqual(expected_clear_thumbnail, response_clear_thumbnail)\n\n    def test_upload_thumbnail_for_task(self):\n        \"\"\"simple upload thumbnail for task test.\"\"\"\n        this_dir, _ = os.path.split(__file__)\n        path = os.path.abspath(\n            os.path.expanduser(os.path.join(this_dir, \"sg_logo.jpg\"))\n        )\n\n        # upload thumbnail\n        thumb_id = self.sg.upload_thumbnail(\"Task\", self.task[\"id\"], path)\n        self.assertTrue(isinstance(thumb_id, int))\n\n        # check result on version\n        task_with_thumbnail = self.sg.find_one(\"Task\", [[\"id\", \"is\", self.task[\"id\"]]])\n        task_with_thumbnail = self.find_one_await_thumbnail(\n            \"Task\", [[\"id\", \"is\", self.task[\"id\"]]]\n        )\n\n        self.assertEqual(task_with_thumbnail.get(\"type\"), \"Task\")\n        self.assertEqual(task_with_thumbnail.get(\"id\"), self.task[\"id\"])\n\n        h = Http(\".cache\")\n        thumb_resp, content = h.request(task_with_thumbnail.get(\"image\"), \"GET\")\n        self.assertIn(thumb_resp[\"status\"], [\"200\", \"304\"])\n        self.assertIn(thumb_resp[\"content-type\"], [\"image/jpeg\", \"image/png\"])\n\n        # clear thumbnail\n        response_clear_thumbnail = self.sg.update(\n            \"Version\", self.version[\"id\"], {\"image\": None}\n        )\n        expected_clear_thumbnail = {\n            \"id\": self.version[\"id\"],\n            \"image\": None,\n            \"type\": \"Version\",\n        }\n        self.assertEqual(expected_clear_thumbnail, response_clear_thumbnail)\n\n    def test_upload_thumbnail_with_upload_function(self):\n        \"\"\"Upload thumbnail via upload function test\"\"\"\n        path = os.path.abspath(\n            os.path.expanduser(os.path.join(os.path.dirname(__file__), \"sg_logo.jpg\"))\n        )\n\n        # upload thumbnail\n        thumb_id = self.sg.upload(\"Task\", self.task[\"id\"], path, \"image\")\n        self.assertTrue(isinstance(thumb_id, int))\n\n        # upload filmstrip thumbnail\n        f_thumb_id = self.sg.upload(\"Task\", self.task[\"id\"], path, \"filmstrip_image\")\n        self.assertTrue(isinstance(f_thumb_id, int))\n\n    def test_requires_direct_s3_upload(self):\n        \"\"\"Test _requires_direct_s3_upload\"\"\"\n\n        upload_types = self.sg.server_info.get(\"s3_enabled_upload_types\")\n        direct_uploads_enabled = self.sg.server_info.get(\"s3_direct_uploads_enabled\")\n\n        self.sg.server_info[\"s3_enabled_upload_types\"] = None\n        self.sg.server_info[\"s3_direct_uploads_enabled\"] = None\n\n        # Test s3_enabled_upload_types and s3_direct_uploads_enabled not set\n        self.assertFalse(\n            self.sg._requires_direct_s3_upload(\"Version\", \"sg_uploaded_movie\")\n        )\n\n        self.sg.server_info[\"s3_enabled_upload_types\"] = {\n            \"Version\": [\"sg_uploaded_movie\"]\n        }\n\n        # Test direct_uploads_enabled not set\n        self.assertFalse(\n            self.sg._requires_direct_s3_upload(\"Version\", \"sg_uploaded_movie\")\n        )\n\n        self.sg.server_info[\"s3_direct_uploads_enabled\"] = True\n\n        # Test regular path\n        self.assertTrue(\n            self.sg._requires_direct_s3_upload(\"Version\", \"sg_uploaded_movie\")\n        )\n        self.assertFalse(self.sg._requires_direct_s3_upload(\"Version\", \"abc\"))\n        self.assertFalse(self.sg._requires_direct_s3_upload(\"Abc\", \"abc\"))\n\n        # Test star field wildcard and arrays of fields\n        self.sg.server_info[\"s3_enabled_upload_types\"] = {\n            \"Version\": [\"sg_uploaded_movie\", \"test\", \"other\"],\n            \"Test\": [\"*\"],\n            \"Asset\": \"*\",\n        }\n\n        self.assertTrue(\n            self.sg._requires_direct_s3_upload(\"Version\", \"sg_uploaded_movie\")\n        )\n        self.assertTrue(self.sg._requires_direct_s3_upload(\"Version\", \"test\"))\n        self.assertTrue(self.sg._requires_direct_s3_upload(\"Version\", \"other\"))\n        self.assertTrue(self.sg._requires_direct_s3_upload(\"Test\", \"abc\"))\n        self.assertTrue(self.sg._requires_direct_s3_upload(\"Asset\", \"test\"))\n\n        # Test default allowed upload type\n        self.sg.server_info[\"s3_enabled_upload_types\"] = None\n        self.assertTrue(\n            self.sg._requires_direct_s3_upload(\"Version\", \"sg_uploaded_movie\")\n        )\n        self.assertFalse(self.sg._requires_direct_s3_upload(\"Version\", \"test\"))\n\n        # Test star entity_type\n        self.sg.server_info[\"s3_enabled_upload_types\"] = {\n            \"*\": [\"sg_uploaded_movie\", \"test\"]\n        }\n        self.assertTrue(\n            self.sg._requires_direct_s3_upload(\"Something\", \"sg_uploaded_movie\")\n        )\n        self.assertTrue(self.sg._requires_direct_s3_upload(\"Version\", \"test\"))\n        self.assertFalse(self.sg._requires_direct_s3_upload(\"Version\", \"other\"))\n\n        # Test entity_type and field_name wildcard\n        self.sg.server_info[\"s3_enabled_upload_types\"] = {\"*\": \"*\"}\n        self.assertTrue(\n            self.sg._requires_direct_s3_upload(\"Something\", \"sg_uploaded_movie\")\n        )\n        self.assertTrue(self.sg._requires_direct_s3_upload(\"Version\", \"abc\"))\n\n        self.sg.server_info[\"s3_enabled_upload_types\"] = upload_types\n        self.sg.server_info[\"s3_direct_uploads_enabled\"] = direct_uploads_enabled\n\n    def test_linked_thumbnail_url(self):\n        this_dir, _ = os.path.split(__file__)\n        path = os.path.abspath(\n            os.path.expanduser(os.path.join(this_dir, \"sg_logo.jpg\"))\n        )\n\n        thumb_id = self.sg.upload_thumbnail(\n            \"Project\", self.version[\"project\"][\"id\"], path\n        )\n\n        response_version_with_project = self.find_one_await_thumbnail(\n            \"Version\",\n            [[\"id\", \"is\", self.version[\"id\"]]],\n            fields=[\"id\", \"code\", \"project.Project.image\"],\n            thumbnail_field_name=\"project.Project.image\",\n        )\n\n        if self.sg.server_caps.version and self.sg.server_caps.version >= (3, 3, 0):\n\n            self.assertEqual(response_version_with_project.get(\"type\"), \"Version\")\n            self.assertEqual(\n                response_version_with_project.get(\"id\"), self.version[\"id\"]\n            )\n            self.assertEqual(\n                response_version_with_project.get(\"code\"), self.config.version_code\n            )\n\n            h = Http(\".cache\")\n            thumb_resp, content = h.request(\n                response_version_with_project.get(\"project.Project.image\"), \"GET\"\n            )\n            self.assertIn(thumb_resp[\"status\"], [\"200\", \"304\"])\n            self.assertIn(thumb_resp[\"content-type\"], [\"image/jpeg\", \"image/png\"])\n\n        else:\n            expected_version_with_project = {\n                \"code\": self.config.version_code,\n                \"type\": \"Version\",\n                \"id\": self.version[\"id\"],\n                \"project.Project.image\": thumb_id,\n            }\n            self.assertEqual(\n                expected_version_with_project, response_version_with_project\n            )\n\n    # For now skip tests that are erroneously failling on some sites to\n    # allow CI to pass until the known issue causing this is resolved.\n    @unittest.skip(\"Skipping test that erroneously fails on some sites.\")\n    def test_share_thumbnail(self):\n        \"\"\"share thumbnail between two entities\"\"\"\n\n        def share_thumbnail_retry(*args, **kwargs):\n            # Since share_thumbnail raises a ShotgunError if the thumbnail is still\n            # pending, sleep and retry if this exception is raised, to allow time for\n            # the thumbnail to finish processing.\n            thumbnail_id = None\n            attempts = 0\n            while attempts < base.THUMBNAIL_MAX_ATTEMPTS and thumbnail_id is None:\n                try:\n                    thumbnail_id = self.sg.share_thumbnail(*args, **kwargs)\n                    attempts += 1\n                except shotgun_api3.ShotgunError:\n                    time.sleep(base.THUMBNAIL_RETRY_INTERVAL)\n            return thumbnail_id\n\n        this_dir, _ = os.path.split(__file__)\n        path = os.path.abspath(\n            os.path.expanduser(os.path.join(this_dir, \"sg_logo.jpg\"))\n        )\n\n        # upload thumbnail to first entity and share it with the rest\n        share_thumbnail_retry([self.version, self.shot], thumbnail_path=path)\n        response_version_thumbnail = self.find_one_await_thumbnail(\n            \"Version\",\n            [[\"id\", \"is\", self.version[\"id\"]]],\n            fields=[\"id\", \"code\", \"image\"],\n        )\n        response_shot_thumbnail = self.find_one_await_thumbnail(\n            \"Shot\",\n            [[\"id\", \"is\", self.shot[\"id\"]]],\n            fields=[\"id\", \"code\", \"image\"],\n        )\n\n        shot_url = urllib.parse.urlparse(response_shot_thumbnail.get(\"image\"))\n        version_url = urllib.parse.urlparse(response_version_thumbnail.get(\"image\"))\n        shot_path = _get_path(shot_url)\n        version_path = _get_path(version_url)\n        self.assertEqual(shot_path, version_path)\n\n        # share thumbnail from source entity with entities\n        self.sg.upload_thumbnail(\"Version\", self.version[\"id\"], path)\n        share_thumbnail_retry([self.asset, self.shot], source_entity=self.version)\n        response_version_thumbnail = self.find_one_await_thumbnail(\n            \"Version\",\n            [[\"id\", \"is\", self.version[\"id\"]]],\n            fields=[\"id\", \"code\", \"image\"],\n        )\n        response_shot_thumbnail = self.find_one_await_thumbnail(\n            \"Shot\",\n            [[\"id\", \"is\", self.shot[\"id\"]]],\n            fields=[\"id\", \"code\", \"image\"],\n        )\n        response_asset_thumbnail = self.find_one_await_thumbnail(\n            \"Asset\",\n            [[\"id\", \"is\", self.asset[\"id\"]]],\n            fields=[\"id\", \"code\", \"image\"],\n        )\n\n        shot_url = urllib.parse.urlparse(response_shot_thumbnail.get(\"image\"))\n        version_url = urllib.parse.urlparse(response_version_thumbnail.get(\"image\"))\n        asset_url = urllib.parse.urlparse(response_asset_thumbnail.get(\"image\"))\n\n        shot_path = _get_path(shot_url)\n        version_path = _get_path(version_url)\n        asset_path = _get_path(asset_url)\n\n        self.assertEqual(version_path, shot_path)\n        self.assertEqual(version_path, asset_path)\n\n        # raise errors when missing required params or providing conflicting ones\n        self.assertRaises(\n            shotgun_api3.ShotgunError,\n            self.sg.share_thumbnail,\n            [self.shot, self.asset],\n            path,\n            self.version,\n        )\n        self.assertRaises(\n            shotgun_api3.ShotgunError, self.sg.share_thumbnail, [self.shot, self.asset]\n        )\n\n    @unittest.mock.patch(\"shotgun_api3.Shotgun._send_form\")\n    def test_share_thumbnail_not_ready(self, mock_send_form):\n        \"\"\"throw an exception if trying to share a transient thumbnail\"\"\"\n\n        mock_send_form.return_value = (\n            \"2\"\n            \"\\nsource_entity image is a transient thumbnail that cannot be shared. \"\n            \"Try again later, when the final thumbnail is available\\n\"\n        )\n\n        self.assertRaises(\n            shotgun_api3.ShotgunThumbnailNotReady,\n            self.sg.share_thumbnail,\n            [self.version, self.shot],\n            source_entity=self.asset,\n        )\n\n        mock_send_form.assert_called_once()\n\n    @unittest.mock.patch(\"shotgun_api3.Shotgun._send_form\")\n    def test_share_thumbnail_returns_error(self, mock_send_form):\n        \"\"\"throw an exception if server returns an error code\"\"\"\n\n        mock_send_form.return_value = \"1\\nerror message.\\n\"\n\n        self.assertRaises(\n            shotgun_api3.ShotgunError,\n            self.sg.share_thumbnail,\n            [self.version, self.shot],\n            source_entity=self.asset,\n        )\n\n        mock_send_form.assert_called_once()\n\n    def test_deprecated_functions(self):\n        \"\"\"Deprecated functions raise errors\"\"\"\n        self.assertRaises(shotgun_api3.ShotgunError, self.sg.schema, \"foo\")\n        self.assertRaises(shotgun_api3.ShotgunError, self.sg.entity_types)\n\n    def test_simple_summary(self):\n        \"\"\"Test simple call to summarize\"\"\"\n        summaries = [{\"field\": \"id\", \"type\": \"count\"}]\n        grouping = [{\"direction\": \"asc\", \"field\": \"id\", \"type\": \"exact\"}]\n        filters = [[\"project\", \"is\", self.project]]\n        result = self.sg.summarize(\n            \"Shot\", filters=filters, summary_fields=summaries, grouping=grouping\n        )\n        assert result[\"groups\"]\n        assert result[\"groups\"][0][\"group_name\"]\n        assert result[\"groups\"][0][\"group_value\"]\n        assert result[\"groups\"][0][\"summaries\"]\n        assert result[\"summaries\"]\n\n    def test_summary_include_archived_projects(self):\n        \"\"\"Test summarize with archived project\"\"\"\n        if self.sg.server_caps.version > (5, 3, 13):\n            # archive project\n            self.sg.update(\"Project\", self.project[\"id\"], {\"archived\": True})\n            # Ticket #25082 ability to hide archived projects in summary\n            summaries = [{\"field\": \"id\", \"type\": \"count\"}]\n            grouping = [{\"direction\": \"asc\", \"field\": \"id\", \"type\": \"exact\"}]\n            filters = [[\"project\", \"is\", self.project]]\n            result = self.sg.summarize(\n                \"Shot\",\n                filters=filters,\n                summary_fields=summaries,\n                grouping=grouping,\n                include_archived_projects=False,\n            )\n            self.assertEqual(result[\"summaries\"][\"id\"], 0)\n            self.sg.update(\"Project\", self.project[\"id\"], {\"archived\": False})\n\n    def test_summary_values(self):\n        \"\"\"Test summarize return data\"\"\"\n\n        # create three unique shots\n        shot_prefix = uuid.uuid4().hex\n\n        shots = []\n\n        shot_data_1 = {\n            \"code\": \"%s Shot 1\" % shot_prefix,\n            \"sg_status_list\": \"ip\",\n            \"sg_cut_duration\": 100,\n            \"project\": self.project,\n        }\n\n        shot_data_2 = {\n            \"code\": \"%s Shot 2\" % shot_prefix,\n            \"sg_status_list\": \"ip\",\n            \"sg_cut_duration\": 100,\n            \"project\": self.project,\n        }\n\n        shot_data_3 = {\n            \"code\": \"%s Shot 3\" % shot_prefix,\n            \"sg_status_list\": \"fin\",\n            \"sg_cut_duration\": 100,\n            \"project\": self.project,\n        }\n\n        shot_data_4 = {\n            \"code\": \"%s Shot 4\" % shot_prefix,\n            \"sg_status_list\": \"wtg\",\n            \"sg_cut_duration\": 0,\n            \"project\": self.project,\n        }\n\n        shots.append(self.sg.create(\"Shot\", shot_data_1))\n        shots.append(self.sg.create(\"Shot\", shot_data_2))\n        shots.append(self.sg.create(\"Shot\", shot_data_3))\n        shots.append(self.sg.create(\"Shot\", shot_data_4))\n\n        summaries = [\n            {\"field\": \"id\", \"type\": \"count\"},\n            {\"field\": \"sg_cut_duration\", \"type\": \"sum\"},\n        ]\n        grouping = [{\"direction\": \"asc\", \"field\": \"sg_status_list\", \"type\": \"exact\"}]\n        filters = [\n            [\"project\", \"is\", self.project],\n            [\"code\", \"starts_with\", shot_prefix],\n        ]\n        result = self.sg.summarize(\n            \"Shot\", filters=filters, summary_fields=summaries, grouping=grouping\n        )\n        count = {\"id\": 4, \"sg_cut_duration\": 300}\n        groups = [\n            {\n                \"group_name\": \"fin\",\n                \"group_value\": \"fin\",\n                \"summaries\": {\"id\": 1, \"sg_cut_duration\": 100},\n            },\n            {\n                \"group_name\": \"ip\",\n                \"group_value\": \"ip\",\n                \"summaries\": {\"id\": 2, \"sg_cut_duration\": 200},\n            },\n            {\n                \"group_name\": \"wtg\",\n                \"group_value\": \"wtg\",\n                \"summaries\": {\"id\": 1, \"sg_cut_duration\": 0},\n            },\n        ]\n        # clean up\n        batch_data = []\n        for s in shots:\n            batch_data.append(\n                {\"request_type\": \"delete\", \"entity_type\": \"Shot\", \"entity_id\": s[\"id\"]}\n            )\n        self.sg.batch(batch_data)\n\n        self.assertEqual(result[\"summaries\"], count)\n        # Do not assume the order of the summarized results.\n        self.assertEqual(\n            sorted(result[\"groups\"], key=lambda x: x[\"group_name\"]), groups\n        )\n\n    def test_json_dumps_default_ensure_ascii_disabled(self):\n        \"\"\"Make sure SG'payload is using ensure_ascii for json dumps\"\"\"\n        sg = shotgun_api3.Shotgun(self.config.server_url, **self.auth_args)\n\n        # Mock the _http_request method\n        sg._orig_http_request = sg._http_request\n        sg._http_request = unittest.mock.Mock(wraps=sg._orig_http_request)\n\n        sg.find_one(\n            \"Note\",\n            [[\"content\", \"is\", \"Noëlご\"]],  # Force a non-ascii character\n        )\n\n        sg._http_request.assert_called_once()\n        self.assertIn(\n            b\"No\\xc3\\xabl\\xe3\\x81\\x94\",  # utf-8 encoded version of Noëlご\n            sg._http_request.call_args.args[2],  # Get the body of the request\n        )\n\n    def test_work_schedule(self):\n        \"\"\"test_work_schedule tests WorkDayRules api\"\"\"\n        self.maxDiff = None\n\n        start_date = \"2012-01-01\"\n        start_date_obj = datetime.datetime(2012, 1, 1)\n        end_date = \"2012-01-07\"\n        end_date_obj = datetime.datetime(2012, 1, 7)\n\n        project = self.project\n        # We're going to be comparing this value with the value returned from the server, so extract only the type, id\n        # and name\n        user = {\n            \"type\": self.human_user[\"type\"],\n            \"id\": self.human_user[\"id\"],\n            \"name\": self.human_user[\"name\"],\n        }\n\n        work_schedule = self.sg.work_schedule_read(start_date, end_date, project, user)\n        # Test that the work_schedule_read api method is called with the 'start_date' and 'end_date' arguments\n        # in the 'YYYY-MM-DD' string format.\n        self.assertRaises(\n            shotgun_api3.ShotgunError,\n            self.sg.work_schedule_read,\n            start_date_obj,\n            end_date_obj,\n            project,\n            user,\n        )\n\n        resp = self.sg.work_schedule_update(\"2012-01-02\", False, \"Studio Holiday\")\n        expected = {\n            \"date\": \"2012-01-02\",\n            \"description\": \"Studio Holiday\",\n            \"project\": None,\n            \"user\": None,\n            \"working\": False,\n        }\n        self.assertEqual(expected, resp)\n        resp = self.sg.work_schedule_read(start_date, end_date, project, user)\n        work_schedule[\"2012-01-02\"] = {\n            \"reason\": \"STUDIO_EXCEPTION\",\n            \"working\": False,\n            \"description\": \"Studio Holiday\",\n        }\n        self.assertEqual(work_schedule, resp)\n\n        resp = self.sg.work_schedule_update(\n            \"2012-01-03\", False, \"Project Holiday\", project\n        )\n        expected = {\n            \"date\": \"2012-01-03\",\n            \"description\": \"Project Holiday\",\n            \"project\": project,\n            \"user\": None,\n            \"working\": False,\n        }\n        self.assertEqual(expected, resp)\n        resp = self.sg.work_schedule_read(start_date, end_date, project, user)\n        work_schedule[\"2012-01-03\"] = {\n            \"reason\": \"PROJECT_EXCEPTION\",\n            \"working\": False,\n            \"description\": \"Project Holiday\",\n        }\n        self.assertEqual(work_schedule, resp)\n\n        jan4 = datetime.datetime(2012, 1, 4)\n\n        self.assertRaises(\n            shotgun_api3.ShotgunError,\n            self.sg.work_schedule_update,\n            jan4,\n            False,\n            \"Artist Holiday\",\n            user=user,\n        )\n\n        resp = self.sg.work_schedule_update(\n            \"2012-01-04\", False, \"Artist Holiday\", user=user\n        )\n        expected = {\n            \"date\": \"2012-01-04\",\n            \"description\": \"Artist Holiday\",\n            \"project\": None,\n            \"user\": user,\n            \"working\": False,\n        }\n        self.assertEqual(expected, resp)\n        resp = self.sg.work_schedule_read(start_date, end_date, project, user)\n        work_schedule[\"2012-01-04\"] = {\n            \"reason\": \"USER_EXCEPTION\",\n            \"working\": False,\n            \"description\": \"Artist Holiday\",\n        }\n        self.assertEqual(work_schedule, resp)\n\n    # test_preferences_read fails when preferences don't match the expected\n    # preferences.\n    def test_preferences_read(self):\n        # Only run the tests on a server with the feature.\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (7, 10, 0):\n            return\n\n        # This is a big diff if it fails, so show everything.\n        self.maxDiff = None\n\n        # all prefs\n        resp = self.sg.preferences_read()\n\n        expected = {\n            \"date_component_order\": \"month_day\",\n            \"duration_units\": \"days\",\n            \"format_currency_fields_decimal_options\": \"$1,000.99\",\n            \"format_currency_fields_display_dollar_sign\": False,\n            \"format_currency_fields_negative_options\": \"- $1,000\",\n            \"format_date_fields\": \"08/04/22 OR 04/08/22 (depending on the Month order preference)\",\n            \"format_float_fields\": \"9,999.99\",\n            \"format_float_fields_rounding\": \"9.999999\",\n            \"format_footage_fields\": \"10-05\",\n            \"format_number_fields\": \"1,000\",\n            \"format_time_hour_fields\": \"12 hour\",\n            \"hours_per_day\": 8.0,\n            \"support_local_storage\": True,\n            \"enable_rv_integration\": True,\n            \"enable_shotgun_review_for_rv\": False,\n        }\n        # Simply make sure viewmaster settings are there. These change frequently and we\n        # don't want to have the test break because Viewmaster changed or because we didn't\n        # update the test.\n        self.assertIn(\"view_master_settings\", resp)\n        resp.pop(\"view_master_settings\")\n\n        # Simply make sure creative review settings are there. These change frequently and we\n        # don't want to have the test break because Creative Review changed or because we didn't\n        # update the test.\n        self.assertIn(\"creative_review_settings\", resp)\n        resp.pop(\"creative_review_settings\")\n\n        self.assertEqual(expected, resp)\n\n        # all filtered\n        resp = self.sg.preferences_read(\n            [\"date_component_order\", \"support_local_storage\"]\n        )\n\n        expected = {\"date_component_order\": \"month_day\", \"support_local_storage\": True}\n        self.assertEqual(expected, resp)\n\n        # all filtered with invalid pref\n        resp = self.sg.preferences_read(\n            [\"date_component_order\", \"support_local_storage\", \"email_notifications\"]\n        )\n\n        expected = {\"date_component_order\": \"month_day\", \"support_local_storage\": True}\n        self.assertEqual(expected, resp)\n\n\nclass TestDataTypes(base.LiveTestBase):\n    \"\"\"Test fields representing the different data types mapped on the server side.\n\n    Untested data types:  password, percent, pivot_column, serializable, image, currency\n                          system_task_type, timecode, url, uuid, url_template\n    \"\"\"\n\n    def setUp(self):\n        super().setUp()\n\n    def test_set_checkbox(self):\n        entity = \"HumanUser\"\n        entity_id = self.human_user[\"id\"]\n        field_name = \"email_notes\"\n        pos_values = [False, True]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected, actual)\n\n    def test_set_color(self):\n        entity = \"Task\"\n        entity_id = self.task[\"id\"]\n        field_name = \"color\"\n        pos_values = [\"pipeline_step\", \"222,0,0\"]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected, actual)\n\n    def test_set_date(self):\n        entity = \"Task\"\n        entity_id = self.task[\"id\"]\n        field_name = \"due_date\"\n        pos_values = [\"2008-05-08\", \"2011-05-05\"]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected, actual)\n\n    def test_set_date_time(self):\n        if self.config.jenkins:\n            self.skipTest(\"Jenkins. locked_until not updating.\")\n        entity = \"HumanUser\"\n        entity_id = self.human_user[\"id\"]\n        field_name = \"locked_until\"\n        local = shotgun_api3.shotgun.SG_TIMEZONE.local\n        dt_1 = datetime.datetime(2008, 10, 13, 23, 10, tzinfo=local)\n        dt_2 = datetime.datetime(2009, 10, 13, 23, 10, tzinfo=local)\n        pos_values = [dt_1, dt_2]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected, actual)\n\n    def test_set_duration(self):\n        entity = \"Task\"\n        entity_id = self.task[\"id\"]\n        field_name = \"duration\"\n        pos_values = [2100, 1300]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected, actual)\n\n    def test_set_entity(self):\n        entity = \"Task\"\n        entity_id = self.task[\"id\"]\n        field_name = \"entity\"\n        pos_values = [self.asset, self.shot]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected[\"id\"], actual[\"id\"])\n\n    def test_set_float(self):\n        entity = \"Version\"\n        entity_id = self.version[\"id\"]\n        field_name = \"sg_movie_aspect_ratio\"\n        pos_values = [2.0, 3.0]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected, actual)\n\n    def test_set_list(self):\n        entity = \"Note\"\n        entity_id = self.note[\"id\"]\n        field_name = \"sg_note_type\"\n        pos_values = [\"Internal\", \"Client\"]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected, actual)\n\n    def test_set_multi_entity(self):\n        sg = shotgun_api3.Shotgun(self.config.server_url, **self.auth_args)\n        keys = [\"project\", \"user\", \"code\"]\n        data = {\"project\": self.project, \"user\": self.human_user, \"code\": \"Alpha\"}\n        version_1 = base._find_or_create_entity(sg, \"Version\", data, keys)\n        data = {\"project\": self.project, \"user\": self.human_user, \"code\": \"Beta\"}\n        version_2 = base._find_or_create_entity(sg, \"Version\", data, keys)\n\n        entity = \"Playlist\"\n        entity_id = self.playlist[\"id\"]\n        field_name = \"versions\"\n\n        # Default set behaviour\n        pos_values = [[version_1, version_2]]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(len(expected), len(actual))\n        self.assertEqual(\n            sorted([x[\"id\"] for x in expected]), sorted([x[\"id\"] for x in actual])\n        )\n\n        # Multi-entity remove mode\n        pos_values = [[version_1]]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values, multi_entity_update_mode=\"remove\"\n        )\n        self.assertEqual(1, len(actual))\n        self.assertEqual(len(expected), len(actual))\n        self.assertNotEqual(expected[0][\"id\"], actual[0][\"id\"])\n        self.assertEqual(version_2[\"id\"], actual[0][\"id\"])\n\n        # Multi-entity add mode\n        pos_values = [[version_1]]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values, multi_entity_update_mode=\"add\"\n        )\n        self.assertEqual(2, len(actual))\n        self.assertTrue(version_1[\"id\"] in [x[\"id\"] for x in actual])\n\n        # Multi-entity set mode\n        pos_values = [[version_1, version_2]]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values, multi_entity_update_mode=\"set\"\n        )\n        self.assertEqual(len(expected), len(actual))\n        self.assertEqual(\n            sorted([x[\"id\"] for x in expected]), sorted([x[\"id\"] for x in actual])\n        )\n\n    def test_set_number(self):\n        entity = \"Shot\"\n        entity_id = self.shot[\"id\"]\n        field_name = \"head_in\"\n        pos_values = [2300, 1300]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected, actual)\n\n    def test_set_status_list(self):\n        entity = \"Task\"\n        entity_id = self.task[\"id\"]\n        field_name = \"sg_status_list\"\n        pos_values = [\"wtg\", \"fin\"]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected, actual)\n\n    def test_set_tag_list(self):\n        entity = \"Task\"\n        entity_id = self.task[\"id\"]\n        field_name = \"tag_list\"\n        pos_values = [[\"a\", \"b\"], [\"c\"]]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected, actual)\n\n    def test_set_text(self):\n        entity = \"Note\"\n        entity_id = self.note[\"id\"]\n        field_name = \"content\"\n        pos_values = [\"this content\", \"that content\"]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected, actual)\n\n    def test_set_text_html_entity(self):\n        entity = \"Note\"\n        entity_id = self.note[\"id\"]\n        field_name = \"content\"\n        pos_values = [\"<\", \"<\"]\n        expected, actual = self.assert_set_field(\n            entity, entity_id, field_name, pos_values\n        )\n        self.assertEqual(expected, actual)\n\n    def assert_set_field(\n        self, entity, entity_id, field_name, pos_values, multi_entity_update_mode=None\n    ):\n        query_result = self.sg.find_one(entity, [[\"id\", \"is\", entity_id]], [field_name])\n        initial_value = query_result[field_name]\n        new_value = (initial_value == pos_values[0] and pos_values[1]) or pos_values[0]\n        if multi_entity_update_mode:\n            self.sg.update(\n                entity,\n                entity_id,\n                {field_name: new_value},\n                multi_entity_update_modes={field_name: multi_entity_update_mode},\n            )\n        else:\n            self.sg.update(entity, entity_id, {field_name: new_value})\n        new_values = self.sg.find_one(entity, [[\"id\", \"is\", entity_id]], [field_name])\n        return new_value, new_values[field_name]\n\n\nclass TestUtc(base.LiveTestBase):\n    \"\"\"Test utc options\"\"\"\n\n    def setUp(self):\n        super().setUp()\n        utc = shotgun_api3.shotgun.SG_TIMEZONE.utc\n        self.datetime_utc = datetime.datetime(2008, 10, 13, 23, 10, tzinfo=utc)\n        local = shotgun_api3.shotgun.SG_TIMEZONE.local\n        self.datetime_local = datetime.datetime(2008, 10, 13, 23, 10, tzinfo=local)\n        self.datetime_none = datetime.datetime(2008, 10, 13, 23, 10)\n\n    def test_convert_to_utc(self):\n        if self.config.jenkins:\n            self.skipTest(\"Jenkins. locked_until not updating.\")\n        sg_utc = shotgun_api3.Shotgun(\n            self.config.server_url,\n            http_proxy=self.config.http_proxy,\n            convert_datetimes_to_utc=True,\n            **self.auth_args,\n        )\n        self._assert_expected(sg_utc, self.datetime_none, self.datetime_local)\n        self._assert_expected(sg_utc, self.datetime_local, self.datetime_local)\n\n    def test_no_convert_to_utc(self):\n        if self.config.jenkins:\n            self.skipTest(\"Jenkins. locked_until not updating.\")\n        sg_no_utc = shotgun_api3.Shotgun(\n            self.config.server_url,\n            http_proxy=self.config.http_proxy,\n            convert_datetimes_to_utc=False,\n            **self.auth_args,\n        )\n        self._assert_expected(sg_no_utc, self.datetime_none, self.datetime_none)\n        self._assert_expected(sg_no_utc, self.datetime_utc, self.datetime_none)\n\n    def _assert_expected(self, sg, date_time, expected):\n        entity_name = \"HumanUser\"\n        entity_id = self.human_user[\"id\"]\n        field_name = \"locked_until\"\n        sg.update(entity_name, entity_id, {field_name: date_time})\n        result = sg.find_one(entity_name, [[\"id\", \"is\", entity_id]], [field_name])\n        self.assertEqual(result[field_name], expected)\n\n\nclass TestFind(base.LiveTestBase):\n    def setUp(self):\n        super().setUp()\n        # We will need the created_at field for the shot\n        fields = list(self.shot.keys())[:]\n        fields.append(\"created_at\")\n        self.shot = self.sg.find_one(\"Shot\", [[\"id\", \"is\", self.shot[\"id\"]]], fields)\n        # We will need the uuid field for our LocalStorage\n        fields = list(self.local_storage.keys())[:]\n        fields.append(\"uuid\")\n        self.local_storage = self.sg.find_one(\n            \"LocalStorage\", [[\"id\", \"is\", self.local_storage[\"id\"]]], fields\n        )\n\n    def test_find(self):\n        \"\"\"Called find, find_one for known entities\"\"\"\n        filters = []\n        filters.append([\"project\", \"is\", self.project])\n        filters.append([\"id\", \"is\", self.version[\"id\"]])\n\n        fields = [\"id\"]\n\n        versions = self.sg.find(\"Version\", filters, fields=fields)\n\n        self.assertTrue(isinstance(versions, list))\n        version = versions[0]\n        self.assertEqual(\"Version\", version[\"type\"])\n        self.assertEqual(self.version[\"id\"], version[\"id\"])\n\n        version = self.sg.find_one(\"Version\", filters, fields=fields)\n        self.assertEqual(\"Version\", version[\"type\"])\n        self.assertEqual(self.version[\"id\"], version[\"id\"])\n\n    def _id_in_result(self, entity_type, filters, expected_id):\n        \"\"\"\n        Checks that a given id matches that of entities returned\n        for particular filters.\n        \"\"\"\n        results = self.sg.find(entity_type, filters)\n        return any(result[\"id\"] == expected_id for result in results)\n\n    # TODO test all applicable data types for 'in'\n    # 'currency' => [BigDecimal, Float, NilClass],\n    # 'image' => [Hash, NilClass],\n    # 'percent' => [Bignum, Fixnum, NilClass],\n    # 'serializable' => [Hash, Array, NilClass],\n    # 'system_task_type' => [String, NilClass],\n    # 'timecode' => [Bignum, Fixnum, NilClass],\n    # 'footage' => [Bignum, Fixnum, NilClass, String, Float, BigDecimal],\n    # 'url' => [Hash, NilClass],\n\n    # 'uuid' => [String],\n\n    def test_in_relation_comma_id(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with ids.\n        \"\"\"\n        filters = [[\"id\", \"in\", self.project[\"id\"], 99999]]\n        result = self._id_in_result(\"Project\", filters, self.project[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_id(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with ids.\n        \"\"\"\n        filters = [[\"id\", \"in\", [self.project[\"id\"], 99999]]]\n        result = self._id_in_result(\"Project\", filters, self.project[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_id(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with ids.\n        \"\"\"\n        filters = [[\"id\", \"not_in\", self.project[\"id\"], 99999]]\n        result = self._id_in_result(\"Project\", filters, self.project[\"id\"])\n        self.assertFalse(result)\n\n    def test_in_relation_comma_text(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with text fields.\n        \"\"\"\n        filters = [[\"name\", \"in\", self.project[\"name\"], \"fake project name\"]]\n        result = self._id_in_result(\"Project\", filters, self.project[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_text(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with text fields.\n        \"\"\"\n        filters = [[\"name\", \"in\", [self.project[\"name\"], \"fake project name\"]]]\n        result = self._id_in_result(\"Project\", filters, self.project[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_text(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with ids.\n        \"\"\"\n        filters = [[\"name\", \"not_in\", [self.project[\"name\"], \"fake project name\"]]]\n        result = self._id_in_result(\"Project\", filters, self.project[\"id\"])\n        self.assertFalse(result)\n\n    def test_in_relation_comma_color(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with color fields.\n        \"\"\"\n        filters = [\n            [\"color\", \"in\", self.task[\"color\"], \"Green\"],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_color(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with color fields.\n        \"\"\"\n        filters = [\n            [\"color\", \"in\", [self.task[\"color\"], \"Green\"]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_color(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with color fields.\n        \"\"\"\n        filters = [\n            [\"color\", \"not_in\", [self.task[\"color\"], \"Green\"]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertFalse(result)\n\n    def test_in_relation_comma_date(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with date fields.\n        \"\"\"\n        filters = [\n            [\"due_date\", \"in\", self.task[\"due_date\"], \"2012-11-25\"],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_date(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with date fields.\n        \"\"\"\n        filters = [\n            [\"due_date\", \"in\", [self.task[\"due_date\"], \"2012-11-25\"]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_date(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with date fields.\n        \"\"\"\n        filters = [\n            [\"due_date\", \"not_in\", [self.task[\"due_date\"], \"2012-11-25\"]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertFalse(result)\n\n    # TODO add datetime test for in and not_in\n\n    def test_in_relation_comma_duration(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with duration fields.\n        \"\"\"\n        # we need to get the duration value\n        new_task_keys = list(self.task.keys())[:]\n        new_task_keys.append(\"duration\")\n        self.task = self.sg.find_one(\n            \"Task\", [[\"id\", \"is\", self.task[\"id\"]]], new_task_keys\n        )\n        filters = [\n            [\"duration\", \"in\", self.task[\"duration\"]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_duration(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with duration fields.\n        \"\"\"\n        # we need to get the duration value\n        new_task_keys = list(self.task.keys())[:]\n        new_task_keys.append(\"duration\")\n        self.task = self.sg.find_one(\n            \"Task\", [[\"id\", \"is\", self.task[\"id\"]]], new_task_keys\n        )\n        filters = [\n            [\n                \"duration\",\n                \"in\",\n                [\n                    self.task[\"duration\"],\n                ],\n            ],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_duration(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with duration fields.\n        \"\"\"\n        # we need to get the duration value\n        new_task_keys = list(self.task.keys())[:]\n        new_task_keys.append(\"duration\")\n        self.task = self.sg.find_one(\n            \"Task\", [[\"id\", \"is\", self.task[\"id\"]]], new_task_keys\n        )\n\n        filters = [\n            [\n                \"duration\",\n                \"not_in\",\n                [\n                    self.task[\"duration\"],\n                ],\n            ],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertFalse(result)\n\n    def test_in_relation_comma_entity(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with entity fields.\n        \"\"\"\n        filters = [\n            [\"entity\", \"in\", self.task[\"entity\"], self.asset],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_entity(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with entity fields.\n        \"\"\"\n        filters = [\n            [\"entity\", \"in\", [self.task[\"entity\"], self.asset]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_entity(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with entity fields.\n        \"\"\"\n        filters = [\n            [\"entity\", \"not_in\", [self.task[\"entity\"], self.asset]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertFalse(result)\n\n    def test_in_relation_comma_entity_type(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with entity_type fields.\n        \"\"\"\n        filters = [[\"entity_type\", \"in\", self.step[\"entity_type\"], \"something else\"]]\n\n        result = self._id_in_result(\"Step\", filters, self.step[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_entity_type(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with entity_type fields.\n        \"\"\"\n        filters = [[\"entity_type\", \"in\", [self.step[\"entity_type\"], \"something else\"]]]\n\n        result = self._id_in_result(\"Step\", filters, self.step[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_entity_type(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with entity_type fields.\n        \"\"\"\n        filters = [\n            [\"entity_type\", \"not_in\", [self.step[\"entity_type\"], \"something else\"]]\n        ]\n\n        result = self._id_in_result(\"Step\", filters, self.step[\"id\"])\n        self.assertFalse(result)\n\n    def test_in_relation_comma_float(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with float fields.\n        \"\"\"\n        filters = [\n            [\n                \"sg_frames_aspect_ratio\",\n                \"in\",\n                self.version[\"sg_frames_aspect_ratio\"],\n                44.0,\n            ],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Version\", filters, self.version[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_float(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with float fields.\n        \"\"\"\n        filters = [\n            [\n                \"sg_frames_aspect_ratio\",\n                \"in\",\n                [self.version[\"sg_frames_aspect_ratio\"], 30.0],\n            ],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Version\", filters, self.version[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_float(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with float fields.\n        \"\"\"\n        filters = [\n            [\n                \"sg_frames_aspect_ratio\",\n                \"not_in\",\n                [self.version[\"sg_frames_aspect_ratio\"], 4.4],\n            ],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Version\", filters, self.version[\"id\"])\n        self.assertFalse(result)\n\n    def test_in_relation_comma_list(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with list fields.\n        \"\"\"\n        filters = [\n            [\"frame_count\", \"in\", self.version[\"frame_count\"], 33],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Version\", filters, self.version[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_list(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with list fields.\n        \"\"\"\n        filters = [\n            [\"frame_count\", \"in\", [self.version[\"frame_count\"], 33]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Version\", filters, self.version[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_list(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with list fields.\n        \"\"\"\n        filters = [\n            [\"frame_count\", \"not_in\", [self.version[\"frame_count\"], 33]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Version\", filters, self.version[\"id\"])\n        self.assertFalse(result)\n\n    def test_in_relation_comma_multi_entity(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with multi_entity fields.\n        \"\"\"\n        filters = [\n            [\n                \"task_assignees\",\n                \"in\",\n                self.human_user,\n            ],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_multi_entity(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with multi_entity fields.\n        \"\"\"\n        filters = [\n            [\n                \"task_assignees\",\n                \"in\",\n                [\n                    self.human_user,\n                ],\n            ],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_multi_entity(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with multi_entity fields.\n        \"\"\"\n        filters = [\n            [\n                \"task_assignees\",\n                \"not_in\",\n                [\n                    self.human_user,\n                ],\n            ],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertFalse(result)\n\n    def test_in_relation_comma_number(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with number fields.\n        \"\"\"\n        filters = [\n            [\"frame_count\", \"in\", self.version[\"frame_count\"], 1],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Version\", filters, self.version[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_number(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with number fields.\n        \"\"\"\n        filters = [\n            [\"frame_count\", \"in\", [self.version[\"frame_count\"], 1]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Version\", filters, self.version[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_number(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with number fields.\n        \"\"\"\n        filters = [\n            [\"frame_count\", \"not_in\", [self.version[\"frame_count\"], 1]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Version\", filters, self.version[\"id\"])\n        self.assertFalse(result)\n\n    def test_in_relation_comma_status_list(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with status_list fields.\n        \"\"\"\n        filters = [\n            [\"sg_status_list\", \"in\", self.task[\"sg_status_list\"], \"fin\"],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_status_list(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with status_list fields.\n        \"\"\"\n        filters = [\n            [\"sg_status_list\", \"in\", [self.task[\"sg_status_list\"], \"fin\"]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_status_list(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with status_list fields.\n        \"\"\"\n        filters = [\n            [\"sg_status_list\", \"not_in\", [self.task[\"sg_status_list\"], \"fin\"]],\n            [\"project\", \"is\", self.project],\n        ]\n\n        result = self._id_in_result(\"Task\", filters, self.task[\"id\"])\n        self.assertFalse(result)\n\n    def test_in_relation_comma_uuid(self):\n        \"\"\"\n        Test that 'in' relation using commas (old format) works with uuid fields.\n        \"\"\"\n        filters = [\n            [\n                \"uuid\",\n                \"in\",\n                self.local_storage[\"uuid\"],\n            ]\n        ]\n\n        result = self._id_in_result(\"LocalStorage\", filters, self.local_storage[\"id\"])\n        self.assertTrue(result)\n\n    def test_in_relation_list_uuid(self):\n        \"\"\"\n        Test that 'in' relation using list (new format) works with uuid fields.\n        \"\"\"\n        filters = [\n            [\n                \"uuid\",\n                \"in\",\n                [\n                    self.local_storage[\"uuid\"],\n                ],\n            ]\n        ]\n\n        result = self._id_in_result(\"LocalStorage\", filters, self.local_storage[\"id\"])\n        self.assertTrue(result)\n\n    def test_not_in_relation_uuid(self):\n        \"\"\"\n        Test that 'not_in' relation using commas (old format) works with uuid fields.\n        \"\"\"\n        filters = [\n            [\n                \"uuid\",\n                \"not_in\",\n                [\n                    self.local_storage[\"uuid\"],\n                ],\n            ]\n        ]\n\n        result = self._id_in_result(\"LocalStorage\", filters, self.local_storage[\"id\"])\n        self.assertFalse(result)\n\n    def test_find_in(self):\n        \"\"\"Test use of 'in' relation with find.\"\"\"\n        # id\n        # old comma seperated format\n        filters = [[\"id\", \"in\", self.project[\"id\"], 99999]]\n        projects = self.sg.find(\"Project\", filters)\n        # can't use 'any' in py 2.4\n        match = False\n        for project in projects:\n            if project[\"id\"] == self.project[\"id\"]:\n                match = True\n        self.assertTrue(match)\n\n        # new list format\n        filters = [[\"id\", \"in\", [self.project[\"id\"], 99999]]]\n        projects = self.sg.find(\"Project\", filters)\n        # can't use 'any' in py 2.4\n        match = False\n        for project in projects:\n            if project[\"id\"] == self.project[\"id\"]:\n                match = True\n        self.assertTrue(match)\n\n        # text field\n        filters = [[\"name\", \"in\", [self.project[\"name\"], \"fake project name\"]]]\n        projects = self.sg.find(\"Project\", filters)\n        project = projects[0]\n        self.assertEqual(self.project[\"id\"], project[\"id\"])\n\n    def test_unsupported_filters(self):\n        self.assertRaises(\n            shotgun_api3.Fault,\n            self.sg.find_one,\n            \"Shot\",\n            [[\"image\", \"is_not\", [{\"type\": \"Thumbnail\", \"id\": 9}]]],\n        )\n        self.assertRaises(\n            shotgun_api3.Fault,\n            self.sg.find_one,\n            \"HumanUser\",\n            [[\"password_proxy\", \"is_not\", [None]]],\n        )\n        self.assertRaises(\n            shotgun_api3.Fault,\n            self.sg.find_one,\n            \"EventLogEntry\",\n            [[\"meta\", \"is_not\", [None]]],\n        )\n        self.assertRaises(\n            shotgun_api3.Fault,\n            self.sg.find_one,\n            \"Revision\",\n            [[\"meta\", \"attachment\", [None]]],\n        )\n\n    def test_zero_is_not_none(self):\n        \"\"\"Test the zero and None are differentiated using \"is_not\" filter.\n        Ticket #25127\n        \"\"\"\n        # Create a number field if it doesn't already exist\n        num_field = \"sg_api_tests_number_field\"\n        if num_field not in list(self.sg.schema_field_read(\"Asset\").keys()):\n            self.sg.schema_field_create(\n                \"Asset\", \"number\", num_field.replace(\"sg_\", \"\").replace(\"_\", \" \")\n            )\n\n        # Set to None\n        self.sg.update(\"Asset\", self.asset[\"id\"], {num_field: None})\n\n        # Should be filtered out\n        result = self.sg.find(\n            \"Asset\",\n            [[\"id\", \"is\", self.asset[\"id\"]], [num_field, \"is_not\", None]],\n            [num_field],\n        )\n        self.assertEqual([], result)\n\n        # Set it to zero\n        self.sg.update(\"Asset\", self.asset[\"id\"], {num_field: 0})\n\n        # Should not be filtered out\n        result = self.sg.find_one(\n            \"Asset\",\n            [[\"id\", \"is\", self.asset[\"id\"]], [num_field, \"is_not\", None]],\n            [num_field],\n        )\n        self.assertFalse(result is None)\n\n        # Set it to some other number\n        self.sg.update(\"Asset\", self.asset[\"id\"], {num_field: 1})\n\n        # Should not be filtered out\n        result = self.sg.find_one(\n            \"Asset\",\n            [[\"id\", \"is\", self.asset[\"id\"]], [num_field, \"is_not\", None]],\n            [num_field],\n        )\n        self.assertFalse(result is None)\n\n    def test_include_archived_projects(self):\n        if self.sg.server_caps.version > (5, 3, 13):\n            # Ticket #25082\n            result = self.sg.find_one(\"Shot\", [[\"id\", \"is\", self.shot[\"id\"]]])\n            self.assertEqual(self.shot[\"id\"], result[\"id\"])\n\n            # archive project\n            self.sg.update(\"Project\", self.project[\"id\"], {\"archived\": True})\n\n            # setting defaults to True, so we should get result\n            result = self.sg.find_one(\"Shot\", [[\"id\", \"is\", self.shot[\"id\"]]])\n            self.assertEqual(self.shot[\"id\"], result[\"id\"])\n\n            result = self.sg.find_one(\n                \"Shot\", [[\"id\", \"is\", self.shot[\"id\"]]], include_archived_projects=False\n            )\n            self.assertEqual(None, result)\n\n            # unarchive project\n            self.sg.update(\"Project\", self.project[\"id\"], {\"archived\": False})\n\n\nclass TestExportPage(base.LiveTestBase):\n\n    def setUp(self):\n        super(TestExportPage, self).setUp(\"HumanUser\")\n\n    def test_export_page_unavailable(self):\n        \"\"\"\n        Test export_page raises when report does not exist.\n        \"\"\"\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (5, 1, 22):\n            return\n\n        page_entity = self.sg.create(\"Page\", {\"entity_type\": \"Shot\"})\n        error_messages = [\n            \"This functionality is currently not available\",\n            f\"Export for Page id={page_entity['id']} not available\",\n        ]\n\n        with self.assertRaises(Exception) as cm:\n            self.sg.export_page(page_entity[\"id\"], \"csv\")\n        msg = str(cm.exception)\n        self.assertIn(msg, error_messages)\n\n        with self.assertRaises(Exception) as cm:\n            self.sg.export_page(page_entity[\"id\"], \"csv\", layout_name=\"My Layout\")\n        msg = str(cm.exception)\n        self.assertIn(msg, error_messages)\n\n    def test_export_page_format_missing(self):\n        \"\"\"\n        Test export_page raises for invalid format.\n        \"\"\"\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (5, 1, 22):\n            return\n\n        with self.assertRaises(Exception) as cm:\n            self.sg.export_page(11, None)\n        self.assertIn(\"'format' missing\", str(cm.exception))\n\n        with self.assertRaises(Exception) as cm:\n            self.sg.export_page(11, None, layout_name=\"My Layout\")\n        self.assertIn(\"'format' missing\", str(cm.exception))\n\n    def test_export_page_missing_page_id(self):\n        \"\"\"\n        Test export_page raises for missing page id.\n        \"\"\"\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (5, 1, 22):\n            return\n\n        with self.assertRaises(Exception) as cm:\n            self.sg.export_page(None, \"csv\")\n        self.assertIn(\"'page_id' missing\", str(cm.exception))\n\n        with self.assertRaises(Exception) as cm:\n            self.sg.export_page(None, \"csv\", layout_name=\"My Layout\")\n        self.assertIn(\"'page_id' missing\", str(cm.exception))\n\n    @unittest.mock.patch(\"shotgun_api3.shotgun.Http.request\")\n    def test_export_page_without_layout_name(self, mock_request):\n        \"\"\"\n        Test export_page works when layout_name is not provided.\n        \"\"\"\n\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (5, 1, 22):\n            return\n\n        # Mock the underlying Http.request to return CSV content with appropriate headers\n        csv_body = \"ID,Name,Status\\n1,Shot 001,ip\\n2,Shot 002,rev\\n\"\n        response = unittest.mock.MagicMock(name=\"response mock\")\n        response.status = 200\n        response.reason = \"OK\"\n        response.items.return_value = [(\"content-type\", \"text/csv; charset=utf-8\")]\n        mock_request.return_value = (response, csv_body)\n        result = self.sg.export_page(11, \"csv\")\n        self.assertIsInstance(result, str)\n        self.assertTrue(result.startswith(\"ID,Name,Status\"))\n\n\nclass TestFollow(base.LiveTestBase):\n\n    def test_follow_unfollow(self):\n        \"\"\"Test follow method\"\"\"\n\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (5, 1, 22):\n            return\n\n        with self.gen_entity(\n            \"HumanUser\",\n            projects=[self.project],\n        ) as human_user, self.gen_entity(\n            \"Shot\",\n            project=self.project,\n        ) as shot:\n            result = self.sg.follow(human_user, shot)\n            assert result[\"followed\"]\n\n            result = self.sg.unfollow(human_user, shot)\n            assert result[\"unfollowed\"]\n\n    def test_followers(self):\n        \"\"\"Test followers method\"\"\"\n\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (5, 1, 22):\n            return\n\n        with self.gen_entity(\n            \"HumanUser\",\n            projects=[self.project],\n        ) as human_user, self.gen_entity(\n            \"Shot\",\n            project=self.project,\n        ) as shot:\n            result = self.sg.follow(human_user, shot)\n            assert result[\"followed\"]\n\n            result = self.sg.followers(shot)\n\n            self.assertEqual(1, len(result))\n            self.assertEqual(human_user[\"id\"], result[0][\"id\"])\n\n    def test_following(self):\n        \"\"\"Test following method\"\"\"\n\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (7, 0, 12):\n            warnings.warn(\n                \"Test bypassed because PTR server used does not support this feature.\",\n                FutureWarning,\n            )\n            return\n\n        with self.gen_entity(\n            \"HumanUser\",\n            projects=[self.project],\n        ) as human_user, self.gen_entity(\n            \"Shot\",\n            project=self.project,\n        ) as shot, self.gen_entity(\n            \"Task\",\n            project=self.project,\n        ) as task:\n            result = self.sg.follow(human_user, shot)\n            assert result[\"followed\"]\n\n            result = self.sg.following(human_user)\n\n            self.assertEqual(1, len(result))\n\n            result = self.sg.follow(human_user, task)\n            assert result[\"followed\"]\n\n            result = self.sg.following(human_user)\n\n            self.assertEqual(2, len(result))\n            result = self.sg.following(human_user, entity_type=\"Task\")\n            self.assertEqual(1, len(result))\n            result = self.sg.following(human_user, entity_type=\"Shot\")\n            self.assertEqual(1, len(result))\n\n            shot_project_id = self.sg.find_one(\n                \"Shot\", [[\"id\", \"is\", shot[\"id\"]]], [\"project.Project.id\"]\n            )[\"project.Project.id\"]\n            task_project_id = self.sg.find_one(\n                \"Task\", [[\"id\", \"is\", task[\"id\"]]], [\"project.Project.id\"]\n            )[\"project.Project.id\"]\n            project_count = 2 if shot_project_id == task_project_id else 1\n            result = self.sg.following(\n                human_user, project={\"type\": \"Project\", \"id\": shot_project_id}\n            )\n            self.assertEqual(project_count, len(result))\n            result = self.sg.following(\n                human_user, project={\"type\": \"Project\", \"id\": task_project_id}\n            )\n            self.assertEqual(project_count, len(result))\n            result = self.sg.following(\n                human_user,\n                project={\"type\": \"Project\", \"id\": shot_project_id},\n                entity_type=\"Shot\",\n            )\n            self.assertEqual(1, len(result))\n            result = self.sg.following(\n                human_user,\n                project={\"type\": \"Project\", \"id\": task_project_id},\n                entity_type=\"Task\",\n            )\n            self.assertEqual(1, len(result))\n\n\nclass TestErrors(base.TestBase):\n    def setUp(self):\n        auth_mode = \"HumanUser\" if self.config.jenkins else \"ApiUser\"\n        super().setUp(auth_mode)\n\n    def test_bad_auth(self):\n        \"\"\"test_bad_auth invalid script name or api key raises fault\"\"\"\n        server_url = self.config.server_url\n        script_name = \"not_real_script_name\"\n        api_key = self.config.api_key\n        login = self.config.human_login\n        password = self.config.human_password\n        auth_token = \"111111\"\n\n        # Test various combinations of illegal arguments\n        self.assertRaises(ValueError, shotgun_api3.Shotgun, server_url)\n        self.assertRaises(ValueError, shotgun_api3.Shotgun, server_url, None, api_key)\n        self.assertRaises(\n            ValueError, shotgun_api3.Shotgun, server_url, script_name, None\n        )\n        self.assertRaises(\n            ValueError,\n            shotgun_api3.Shotgun,\n            server_url,\n            script_name,\n            api_key,\n            login=login,\n            password=password,\n        )\n        self.assertRaises(ValueError, shotgun_api3.Shotgun, server_url, login=login)\n        self.assertRaises(\n            ValueError, shotgun_api3.Shotgun, server_url, password=password\n        )\n        self.assertRaises(\n            ValueError,\n            shotgun_api3.Shotgun,\n            server_url,\n            script_name,\n            login=login,\n            password=password,\n        )\n        self.assertRaises(\n            ValueError,\n            shotgun_api3.Shotgun,\n            server_url,\n            login=login,\n            auth_token=auth_token,\n        )\n        self.assertRaises(\n            ValueError,\n            shotgun_api3.Shotgun,\n            server_url,\n            password=password,\n            auth_token=auth_token,\n        )\n        self.assertRaises(\n            ValueError,\n            shotgun_api3.Shotgun,\n            server_url,\n            script_name,\n            login=login,\n            password=password,\n            auth_token=auth_token,\n        )\n        self.assertRaises(\n            ValueError,\n            shotgun_api3.Shotgun,\n            server_url,\n            api_key=api_key,\n            login=login,\n            password=password,\n            auth_token=auth_token,\n        )\n\n        # Test failed authentications\n        sg = shotgun_api3.Shotgun(server_url, script_name, api_key)\n        self.assertRaises(shotgun_api3.AuthenticationFault, sg.find_one, \"Shot\", [])\n\n        script_name = self.config.script_name\n        api_key = \"notrealapikey\"\n        sg = shotgun_api3.Shotgun(server_url, script_name, api_key)\n        self.assertRaises(shotgun_api3.AuthenticationFault, sg.find_one, \"Shot\", [])\n\n        sg = shotgun_api3.Shotgun(\n            server_url, login=login, password=\"not a real password\"\n        )\n        self.assertRaises(shotgun_api3.AuthenticationFault, sg.find_one, \"Shot\", [])\n\n        # This may trigger an account lockdown. Make sure it is not locked anymore.\n        user = self.sg.find_one(\"HumanUser\", [[\"login\", \"is\", login]])\n        self.sg.update(\"HumanUser\", user[\"id\"], {\"locked_until\": None})\n\n    @unittest.mock.patch(\"shotgun_api3.shotgun.Http.request\")\n    def test_status_not_200(self, mock_request):\n        response = unittest.mock.MagicMock(name=\"response mock\", spec=dict)\n        response.status = 300\n        response.reason = \"reason\"\n        mock_request.return_value = (response, {})\n        self.assertRaises(shotgun_api3.ProtocolError, self.sg.find_one, \"Shot\", [])\n\n    @unittest.mock.patch(\"shotgun_api3.shotgun.Http.request\")\n    def test_make_call_retry(self, mock_request):\n        response = unittest.mock.MagicMock(name=\"response mock\", spec=dict)\n        response.status = 200\n        response.reason = \"reason\"\n        mock_request.return_value = (response, {})\n\n        bak_rpc_attempt_interval = self.sg.config.rpc_attempt_interval\n        self.sg.config.rpc_attempt_interval = 0\n        try:\n            # First: make the request raise a consistent exception\n            mock_request.side_effect = Exception(\"not working\")\n            with self.assertLogs(\n                \"shotgun_api3\", level=\"DEBUG\"\n            ) as cm1, self.assertRaises(Exception) as cm2:\n                self.sg.info()\n\n            self.assertEqual(cm2.exception.args[0], \"not working\")\n            log_content = \"\\n\".join(cm1.output)\n            self.assertIn(\n                \"Request failed.  Reason: not working\",\n                log_content,\n            )\n\n            # Last: raise a SSLEOFError exception - SG-34910\n            def my_side_effect2(*args, **kwargs):\n                try:\n                    if my_side_effect2.counter < 1:\n                        raise ssl.SSLEOFError(\n                            \"EOF occurred in violation of protocol (_ssl.c:2426)\"\n                        )\n\n                    return unittest.mock.DEFAULT\n                finally:\n                    my_side_effect2.counter += 1\n\n            my_side_effect2.counter = 0\n            mock_request.side_effect = my_side_effect2\n\n            with self.assertLogs(\"shotgun_api3\", level=\"DEBUG\") as cm:\n                self.assertIsInstance(\n                    self.sg.info(),\n                    dict,\n                )\n\n            log_content = \"\\n\".join(cm.output)\n            self.assertIn(\"SSLEOFError\", log_content)\n            self.assertIn(\n                \"Request failed, attempt 1 of 3.  Retrying\",\n                log_content,\n            )\n            self.assertNotIn(\n                \"Request failed, attempt 2 of 3.  Retrying\",\n                log_content,\n            )\n        finally:\n            self.sg.config.rpc_attempt_interval = bak_rpc_attempt_interval\n\n    @unittest.mock.patch.object(urllib.request.OpenerDirector, \"open\")\n    def test_sanitized_auth_params(self, mock_open):\n        # Simulate the server blowing up and giving us a 500 error\n        mock_open.side_effect = urllib.error.HTTPError(\"url\", 500, \"message\", {}, None)\n\n        this_dir, _ = os.path.split(__file__)\n        thumbnail_path = os.path.abspath(os.path.join(this_dir, \"sg_logo.jpg\"))\n\n        try:\n            # Try to upload a bogus file\n            self.sg.upload(\"Note\", 1234, thumbnail_path)\n        except shotgun_api3.ShotgunError as e:\n            self.assertFalse(str(self.api_key) in str(e))\n            return\n\n        # You should never get here... Otherwise some mocking failed and the\n        # except above wasn't properly run\n        self.assertTrue(False)\n\n    def test_upload_empty_file(self):\n        \"\"\"\n        Test uploading an empty file raises an error.\n        \"\"\"\n        this_dir, _ = os.path.split(__file__)\n        path = os.path.abspath(os.path.expanduser(os.path.join(this_dir, \"empty.txt\")))\n        self.assertRaises(\n            shotgun_api3.ShotgunError, self.sg.upload, \"Version\", 123, path\n        )\n        self.assertRaises(\n            shotgun_api3.ShotgunError, self.sg.upload_thumbnail, \"Version\", 123, path\n        )\n        self.assertRaises(\n            shotgun_api3.ShotgunError,\n            self.sg.upload_filmstrip_thumbnail,\n            \"Version\",\n            123,\n            path,\n        )\n\n    def test_upload_missing_file(self):\n        \"\"\"\n        Test uploading an missing file raises an error.\n        \"\"\"\n        path = \"/path/to/nowhere/foo.txt\"\n        self.assertRaises(\n            shotgun_api3.ShotgunError, self.sg.upload, \"Version\", 123, path\n        )\n        self.assertRaises(\n            shotgun_api3.ShotgunError, self.sg.upload_thumbnail, \"Version\", 123, path\n        )\n        self.assertRaises(\n            shotgun_api3.ShotgunError,\n            self.sg.upload_filmstrip_thumbnail,\n            \"Version\",\n            123,\n            path,\n        )\n\n\n#    def test_malformed_response(self):\n#        # TODO ResponseError\n#        pass\n\n\nclass TestScriptUserSudoAuth(base.LiveTestBase):\n    def setUp(self):\n        super().setUp()\n\n        self.sg.update(\n            \"HumanUser\",\n            self.human_user[\"id\"],\n            {\"projects\": [self.project]},\n        )\n\n    def test_user_is_creator(self):\n        \"\"\"\n        Test 'sudo_as_login' option: on create, ensure appropriate user is set in created-by\n        \"\"\"\n\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (5, 3, 12):\n            return\n\n        x = shotgun_api3.Shotgun(\n            self.config.server_url,\n            http_proxy=self.config.http_proxy,\n            sudo_as_login=self.config.human_login,\n            **self.auth_args,\n        )\n\n        data = {\n            \"project\": self.project,\n            \"code\": \"JohnnyApple_Design01_FaceFinal\",\n            \"description\": \"fixed rig per director final notes\",\n            \"sg_status_list\": \"na\",\n            \"entity\": self.asset,\n            \"user\": self.human_user,\n        }\n\n        version = x.create(\"Version\", data, return_fields=[\"id\", \"created_by\"])\n        self.assertTrue(isinstance(version, dict))\n        self.assertTrue(\"id\" in version)\n        self.assertTrue(\"created_by\" in version)\n        self.assertEqual(self.config.human_name, version[\"created_by\"][\"name\"])\n\n\nclass TestHumanUserSudoAuth(base.TestBase):\n    def setUp(self):\n        super().setUp(\"HumanUser\")\n\n    def test_human_user_sudo_auth_fails(self):\n        \"\"\"\n        Test 'sudo_as_login' option for HumanUser.\n        Request fails on server because user has no permission to Sudo.\n        \"\"\"\n        if self.config.jenkins:\n            self.skipTest(\"Jenkins. locked_until not updating.\")\n\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (5, 3, 12):\n            return\n\n        x = shotgun_api3.Shotgun(\n            self.config.server_url,\n            login=self.config.human_login,\n            password=self.config.human_password,\n            http_proxy=self.config.http_proxy,\n            sudo_as_login=\"blah\",\n        )\n        self.assertRaises(shotgun_api3.Fault, x.find_one, \"Shot\", [])\n        expected = \"The user does not have permission to 'sudo':\"\n        try:\n            x.find_one(\"Shot\", [])\n        except shotgun_api3.Fault as e:\n            # py24 exceptions don't have message attr\n            if hasattr(e, \"message\"):\n                self.assertTrue(e.message.startswith(expected))\n            else:\n                self.assertTrue(e.args[0].startswith(expected))\n\n\nclass TestHumanUserAuth(base.HumanUserAuthLiveTestBase):\n    \"\"\"\n    Testing the username/password authentication method\n    \"\"\"\n\n    def test_humanuser_find(self):\n        \"\"\"Called find, find_one for known entities as human user\"\"\"\n        filters = []\n        filters.append([\"project\", \"is\", self.project])\n        filters.append([\"id\", \"is\", self.version[\"id\"]])\n\n        fields = [\"id\"]\n\n        versions = self.sg.find(\"Version\", filters, fields=fields)\n\n        self.assertTrue(isinstance(versions, list))\n        version = versions[0]\n        self.assertEqual(\"Version\", version[\"type\"])\n        self.assertEqual(self.version[\"id\"], version[\"id\"])\n\n        version = self.sg.find_one(\"Version\", filters, fields=fields)\n        self.assertEqual(\"Version\", version[\"type\"])\n        self.assertEqual(self.version[\"id\"], version[\"id\"])\n\n    def test_humanuser_upload_thumbnail_for_version(self):\n        \"\"\"simple upload thumbnail for version test as human user.\"\"\"\n        this_dir, _ = os.path.split(__file__)\n        path = os.path.abspath(\n            os.path.expanduser(os.path.join(this_dir, \"sg_logo.jpg\"))\n        )\n\n        # upload thumbnail\n        thumb_id = self.sg.upload_thumbnail(\"Version\", self.version[\"id\"], path)\n        self.assertTrue(isinstance(thumb_id, int))\n\n        # check result on version\n        version_with_thumbnail = self.find_one_await_thumbnail(\n            \"Version\",\n            [[\"id\", \"is\", self.version[\"id\"]]],\n        )\n\n        self.assertEqual(version_with_thumbnail.get(\"type\"), \"Version\")\n        self.assertEqual(version_with_thumbnail.get(\"id\"), self.version[\"id\"])\n\n        h = Http(\".cache\")\n        thumb_resp, content = h.request(version_with_thumbnail.get(\"image\"), \"GET\")\n        self.assertIn(thumb_resp[\"status\"], [\"200\", \"304\"])\n        self.assertIn(thumb_resp[\"content-type\"], [\"image/jpeg\", \"image/png\"])\n\n        # clear thumbnail\n        response_clear_thumbnail = self.sg.update(\n            \"Version\", self.version[\"id\"], {\"image\": None}\n        )\n        expected_clear_thumbnail = {\n            \"id\": self.version[\"id\"],\n            \"image\": None,\n            \"type\": \"Version\",\n        }\n        self.assertEqual(expected_clear_thumbnail, response_clear_thumbnail)\n\n\nclass TestSessionTokenAuth(base.SessionTokenAuthLiveTestBase):\n    \"\"\"\n    Testing the session token based authentication method\n    \"\"\"\n\n    def test_humanuser_find(self):\n        \"\"\"Called find, find_one for known entities as session token based user\"\"\"\n\n        if self.sg.server_caps.version >= (5, 4, 1):\n\n            filters = []\n            filters.append([\"project\", \"is\", self.project])\n            filters.append([\"id\", \"is\", self.version[\"id\"]])\n\n            fields = [\"id\"]\n\n            versions = self.sg.find(\"Version\", filters, fields=fields)\n\n            self.assertTrue(isinstance(versions, list))\n            version = versions[0]\n            self.assertEqual(\"Version\", version[\"type\"])\n            self.assertEqual(self.version[\"id\"], version[\"id\"])\n\n            version = self.sg.find_one(\"Version\", filters, fields=fields)\n            self.assertEqual(\"Version\", version[\"type\"])\n            self.assertEqual(self.version[\"id\"], version[\"id\"])\n\n    def test_humanuser_upload_thumbnail_for_version(self):\n        \"\"\"simple upload thumbnail for version test as session based token user.\"\"\"\n\n        if self.sg.server_caps.version >= (5, 4, 1):\n\n            this_dir, _ = os.path.split(__file__)\n            path = os.path.abspath(\n                os.path.expanduser(os.path.join(this_dir, \"sg_logo.jpg\"))\n            )\n\n            # upload thumbnail\n            thumb_id = self.sg.upload_thumbnail(\"Version\", self.version[\"id\"], path)\n            self.assertTrue(isinstance(thumb_id, int))\n\n            # check result on version\n            version_with_thumbnail = self.find_one_await_thumbnail(\n                \"Version\",\n                [[\"id\", \"is\", self.version[\"id\"]]],\n            )\n\n            self.assertEqual(version_with_thumbnail.get(\"type\"), \"Version\")\n            self.assertEqual(version_with_thumbnail.get(\"id\"), self.version[\"id\"])\n\n            h = Http(\".cache\")\n            thumb_resp, content = h.request(version_with_thumbnail.get(\"image\"), \"GET\")\n            self.assertIn(thumb_resp[\"status\"], [\"200\", \"304\"])\n            self.assertIn(thumb_resp[\"content-type\"], [\"image/jpeg\", \"image/png\"])\n\n            # clear thumbnail\n            response_clear_thumbnail = self.sg.update(\n                \"Version\", self.version[\"id\"], {\"image\": None}\n            )\n            expected_clear_thumbnail = {\n                \"id\": self.version[\"id\"],\n                \"image\": None,\n                \"type\": \"Version\",\n            }\n            self.assertEqual(expected_clear_thumbnail, response_clear_thumbnail)\n\n\nclass TestProjectLastAccessedByCurrentUser(base.LiveTestBase):\n    # Ticket #24681\n    def test_logged_in_user(self):\n        if self.sg.server_caps.version and self.sg.server_caps.version < (5, 3, 20):\n            return\n\n        sg = shotgun_api3.Shotgun(\n            self.config.server_url,\n            login=self.config.human_login,\n            password=self.config.human_password,\n            http_proxy=self.config.http_proxy,\n        )\n\n        sg.update_project_last_accessed(self.project)\n        initial = sg.find_one(\n            \"Project\",\n            [[\"id\", \"is\", self.project[\"id\"]]],\n            [\"last_accessed_by_current_user\"],\n        )\n\n        # Make sure time has elapsed so there is a difference between the two time stamps.\n        time.sleep(2)\n\n        sg.update_project_last_accessed(self.project)\n\n        current = sg.find_one(\n            \"Project\",\n            [[\"id\", \"is\", self.project[\"id\"]]],\n            [\"last_accessed_by_current_user\"],\n        )\n        self.assertNotEqual(initial, current)\n        # it's possible initial is None\n        assert (\n            initial[\"last_accessed_by_current_user\"]\n            < current[\"last_accessed_by_current_user\"]\n        )\n\n    def test_pass_in_user(self):\n        if self.sg.server_caps.version and self.sg.server_caps.version < (5, 3, 20):\n            return\n\n        sg = shotgun_api3.Shotgun(\n            self.config.server_url,\n            login=self.config.human_login,\n            password=self.config.human_password,\n            http_proxy=self.config.http_proxy,\n        )\n\n        initial = sg.find_one(\n            \"Project\",\n            [[\"id\", \"is\", self.project[\"id\"]]],\n            [\"last_accessed_by_current_user\"],\n        )\n        time.sleep(1)\n\n        # this instance of the api is not logged in as a user\n        self.sg.update_project_last_accessed(self.project, user=self.human_user)\n\n        current = sg.find_one(\n            \"Project\",\n            [[\"id\", \"is\", self.project[\"id\"]]],\n            [\"last_accessed_by_current_user\"],\n        )\n        self.assertNotEqual(initial, current)\n        # it's possible initial is None\n        if initial:\n            assert (\n                initial[\"last_accessed_by_current_user\"]\n                < current[\"last_accessed_by_current_user\"]\n            )\n\n    def test_sudo_as_user(self):\n        if self.sg.server_caps.version and self.sg.server_caps.version < (5, 3, 20):\n            return\n\n        sg = shotgun_api3.Shotgun(\n            self.config.server_url,\n            http_proxy=self.config.http_proxy,\n            sudo_as_login=self.config.human_login,\n            **self.auth_args,\n        )\n\n        initial = sg.find_one(\n            \"Project\",\n            [[\"id\", \"is\", self.project[\"id\"]]],\n            [\"last_accessed_by_current_user\"],\n        )\n        time.sleep(1)\n\n        sg.update_project_last_accessed(self.project)\n\n        current = sg.find_one(\n            \"Project\",\n            [[\"id\", \"is\", self.project[\"id\"]]],\n            [\"last_accessed_by_current_user\"],\n        )\n        self.assertNotEqual(initial, current)\n        # it's possible initial is None\n        if initial:\n            assert (\n                initial[\"last_accessed_by_current_user\"]\n                < current[\"last_accessed_by_current_user\"]\n            )\n\n\nclass TestActivityStream(base.LiveTestBase):\n    \"\"\"\n    Unit tests for the activity_stream_read() method\n    \"\"\"\n\n    def setUp(self):\n        super().setUp()\n        self._prefix = uuid.uuid4().hex\n\n        self._shot = self.sg.create(\n            \"Shot\",\n            {\"code\": \"%s activity stream test\" % self._prefix, \"project\": self.project},\n        )\n\n        self._note = self.sg.create(\n            \"Note\",\n            {\"content\": \"Test!\", \"project\": self.project, \"note_links\": [self._shot]},\n        )\n\n        # check that if the created_by is a script user, we want to ensure\n        # that event log generation is enabled for this user. If it has been\n        # disabled, these tests will fail because the activity stream is\n        # connected to events. In this case, print a warning to the user\n        d = self.sg.find_one(\n            \"Shot\",\n            [[\"id\", \"is\", self._shot[\"id\"]]],\n            [\"created_by.ApiUser.generate_event_log_entries\"],\n        )\n\n        if d[\"created_by.ApiUser.generate_event_log_entries\"] is False:\n            # events are turned off! warn the user\n            print(\n                \"WARNING! Looks like the script user that is running these \"\n                \"tests has got the generate event log entries setting set to \"\n                \"off. This will cause the activity stream tests to fail. \"\n                \"Please enable event log generation for the script user.\"\n            )\n\n    def tearDown(self):\n        batch_data = []\n        batch_data.append(\n            {\n                \"request_type\": \"delete\",\n                \"entity_type\": self._note[\"type\"],\n                \"entity_id\": self._note[\"id\"],\n            }\n        )\n        batch_data.append(\n            {\n                \"request_type\": \"delete\",\n                \"entity_type\": self._shot[\"type\"],\n                \"entity_id\": self._shot[\"id\"],\n            }\n        )\n        self.sg.batch(batch_data)\n\n        super().tearDown()\n\n    def test_simple(self):\n        \"\"\"\n        Test activity stream\n        \"\"\"\n\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (6, 2, 0):\n            return\n\n        result = self.sg.activity_stream_read(self._shot[\"type\"], self._shot[\"id\"])\n\n        expected_keys = [\n            \"earliest_update_id\",\n            \"entity_id\",\n            \"entity_type\",\n            \"latest_update_id\",\n            \"updates\",\n        ]\n\n        self.assertEqual(set(expected_keys), set(result.keys()))\n        self.assertEqual(len(result[\"updates\"]), 2)\n        self.assertEqual(result[\"entity_type\"], \"Shot\")\n        self.assertEqual(result[\"entity_id\"], self._shot[\"id\"])\n\n    def test_limit(self):\n        \"\"\"\n        Test limited activity stream\n        \"\"\"\n\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (6, 2, 0):\n            return\n\n        result = self.sg.activity_stream_read(\n            self._shot[\"type\"], self._shot[\"id\"], limit=1\n        )\n\n        self.assertEqual(len(result[\"updates\"]), 1)\n        self.assertEqual(result[\"updates\"][0][\"update_type\"], \"create\")\n        self.assertEqual(result[\"updates\"][0][\"meta\"][\"entity_type\"], \"Note\")\n\n    def test_extra_fields(self):\n        \"\"\"\n        Test additional fields for activity stream\n        \"\"\"\n\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (6, 2, 0):\n            return\n\n        result = self.sg.activity_stream_read(\n            self._shot[\"type\"],\n            self._shot[\"id\"],\n            entity_fields={\"Shot\": [\"created_by.HumanUser.image\"], \"Note\": [\"content\"]},\n        )\n\n        self.assertEqual(len(result[\"updates\"]), 2)\n        self.assertEqual(\n            set(result[\"updates\"][0][\"primary_entity\"].keys()),\n            set([\"content\", \"id\", \"name\", \"status\", \"type\"]),\n        )\n\n        self.assertEqual(\n            set(result[\"updates\"][1][\"primary_entity\"].keys()),\n            set([\"created_by.HumanUser.image\", \"id\", \"name\", \"status\", \"type\"]),\n        )\n\n\nclass TestNoteThreadRead(base.LiveTestBase):\n    \"\"\"\n    Unit tests for the note_thread_read method\n    \"\"\"\n\n    def setUp(self):\n        super().setUp()\n\n        # get path to our std attahcment\n        this_dir, _ = os.path.split(__file__)\n        self._thumbnail_path = os.path.abspath(os.path.join(this_dir, \"sg_logo.jpg\"))\n\n    def _check_note(self, data, note_id, additional_fields):\n\n        # check the expected fields\n        expected_fields = set(\n            [\"content\", \"created_at\", \"created_by\", \"id\", \"type\"] + additional_fields\n        )\n\n        self.assertEqual(expected_fields, set(data.keys()))\n\n        # check that the data matches the data we get from a find call\n        note_data = self.sg.find_one(\n            \"Note\", [[\"id\", \"is\", note_id]], list(expected_fields)\n        )\n        # remove images before comparison\n        if (\n            \"created_by.HumanUser.image\" in note_data\n            and \"created_by.HumanUser.image\" in data\n        ):\n            note_data.pop(\"created_by.HumanUser.image\")\n            data.pop(\"created_by.HumanUser.image\")\n        self.assertEqual(note_data, data)\n\n    def _check_reply(self, data, reply_id, additional_fields):\n\n        # check the expected fields\n        expected_fields = set(\n            [\"content\", \"created_at\", \"user\", \"id\", \"type\"] + additional_fields\n        )\n        self.assertEqual(expected_fields, set(data.keys()))\n\n        # check that the data matches the data we get from a find call\n        reply_data = self.sg.find_one(\n            \"Reply\", [[\"id\", \"is\", reply_id]], list(expected_fields)\n        )\n\n        # the reply stream adds an image to the user fields in order\n        # to include thumbnails for users, so remove this before we compare\n        # against the shotgun find data. The image is tested elsewhere.\n        del data[\"user\"][\"image\"]\n\n        self.assertEqual(reply_data, data)\n\n    def _check_attachment(self, data, attachment_id, additional_fields):\n        # check the expected fields\n        expected_fields = set(\n            [\"created_at\", \"created_by\", \"id\", \"type\"] + additional_fields\n        )\n        self.assertEqual(expected_fields, set(data.keys()))\n\n        # check that the data matches the data we get from a find call\n        attachment_data = self.sg.find_one(\n            \"Attachment\", [[\"id\", \"is\", attachment_id]], list(expected_fields)\n        )\n\n        # remove images before comparison\n        if \"this_file\" in attachment_data and \"this_file\" in data:\n            attachment_data[\"this_file\"].pop(\"url\")\n            data[\"this_file\"].pop(\"url\")\n        self.assertEqual(attachment_data, data)\n\n    # For now skip tests that are erroneously failling on some sites to\n    # allow CI to pass until the known issue causing this is resolved.\n    @unittest.skip(\"Skipping test that erroneously fails on some sites.\")\n    def test_simple(self):\n        \"\"\"\n        Test note reply thread API call\n        \"\"\"\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (6, 2, 0):\n            return\n\n        user_entity = \"HumanUser\" if self.config.jenkins else \"ApiUser\"\n\n        # create note\n        note = self.sg.create(\"Note\", {\"content\": \"Test!\", \"project\": self.project})\n\n        # for this test, we check that the replies returned also\n        # contain the thumbnail associated with the user doing the\n        # reply. For this, make sure that there is a thumbnail\n        # associated with the current user\n\n        d = self.sg.find_one(\n            \"Note\",\n            [[\"id\", \"is\", note[\"id\"]]],\n            [\"created_by\", f\"created_by.{user_entity}.image\"],\n        )\n\n        current_thumbnail = d[f\"created_by.{user_entity}.image\"]\n\n        if current_thumbnail is None:\n            # upload thumbnail\n            self.sg.upload_thumbnail(\n                user_entity, d[\"created_by\"][\"id\"], self._thumbnail_path\n            )\n\n            d = self.sg.find_one(\n                \"Note\",\n                [[\"id\", \"is\", note[\"id\"]]],\n                [\"created_by\", f\"created_by.{user_entity}.image\"],\n            )\n\n            current_thumbnail = d[f\"created_by.{user_entity}.image\"]\n\n        # get thread\n        result = self.sg.note_thread_read(note[\"id\"])\n        self.assertEqual(len(result), 1)\n        self._check_note(result[0], note[\"id\"], additional_fields=[])\n\n        # now add a reply\n        reply = self.sg.create(\"Reply\", {\"content\": \"Reply Content\", \"entity\": note})\n\n        # get thread\n        result = self.sg.note_thread_read(note[\"id\"])\n        self.assertEqual(len(result), 2)\n\n        # now check that the reply thumbnail field matches\n        # the uploaded thumbnail. strip off any s3 querystring\n        # for the comparison\n        reply_thumb = result[1][\"user\"][\"image\"]\n        url_obj_a = urllib.parse.urlparse(current_thumbnail)\n        url_obj_b = urllib.parse.urlparse(reply_thumb)\n        self.assertEqual(\n            \"%s/%s\" % (url_obj_a.netloc, url_obj_a.path),\n            \"%s/%s\" % (url_obj_b.netloc, url_obj_b.path),\n        )\n\n        # and check ther rest of the data\n        self._check_note(result[0], note[\"id\"], additional_fields=[])\n        self._check_reply(result[1], reply[\"id\"], additional_fields=[])\n\n        # now upload an attachment\n        attachment_id = self.sg.upload(note[\"type\"], note[\"id\"], self._thumbnail_path)\n\n        # get thread\n        result = self.sg.note_thread_read(note[\"id\"])\n        self.assertEqual(len(result), 3)\n        self._check_note(result[0], note[\"id\"], additional_fields=[])\n        self._check_reply(result[1], reply[\"id\"], additional_fields=[])\n        self._check_attachment(result[2], attachment_id, additional_fields=[])\n\n    # For now skip tests that are erroneously failling on some sites to\n    # allow CI to pass until the known issue causing this is resolved.\n    @unittest.skip(\"Skipping test that erroneously fails on some sites.\")\n    def test_complex(self):\n        \"\"\"\n        Test note reply thread API call with additional params\n        \"\"\"\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (6, 2, 0):\n            return\n\n        additional_fields = {\n            \"Note\": [\n                \"created_by.HumanUser.image\",\n                \"addressings_to\",\n                \"playlist\",\n                \"user\",\n            ],\n            \"Reply\": [\"content\"],\n            \"Attachment\": [\"this_file\"],\n        }\n\n        # create note\n        note = self.sg.create(\n            \"Note\",\n            {\n                \"content\": \"Test!\",\n                \"project\": self.project,\n                \"addressings_to\": [self.human_user],\n            },\n        )\n\n        # get thread\n        result = self.sg.note_thread_read(note[\"id\"], additional_fields)\n\n        self.assertEqual(len(result), 1)\n        self._check_note(result[0], note[\"id\"], additional_fields[\"Note\"])\n\n        # now add a reply\n        reply = self.sg.create(\"Reply\", {\"content\": \"Reply Content\", \"entity\": note})\n\n        # get thread\n        result = self.sg.note_thread_read(note[\"id\"], additional_fields)\n        self.assertEqual(len(result), 2)\n        self._check_note(result[0], note[\"id\"], additional_fields[\"Note\"])\n        self._check_reply(result[1], reply[\"id\"], additional_fields[\"Reply\"])\n\n        # now upload an attachment\n        attachment_id = self.sg.upload(note[\"type\"], note[\"id\"], self._thumbnail_path)\n\n        # get thread\n        result = self.sg.note_thread_read(note[\"id\"], additional_fields)\n        self.assertEqual(len(result), 3)\n        self._check_note(result[0], note[\"id\"], additional_fields[\"Note\"])\n        self._check_reply(result[1], reply[\"id\"], additional_fields[\"Reply\"])\n\n        self._check_attachment(\n            result[2], attachment_id, additional_fields[\"Attachment\"]\n        )\n\n\nclass TestTextSearch(base.LiveTestBase):\n    \"\"\"\n    Unit tests for the text_search() method\n    \"\"\"\n\n    def setUp(self):\n        super().setUp()\n\n        # create 5 shots and 5 assets to search for\n        self._prefix = uuid.uuid4().hex\n\n        batch_data = []\n        for i in range(5):\n            data = {\n                \"code\": \"%s Text Search %s\" % (self._prefix, i),\n                \"project\": self.project,\n            }\n            batch_data.append(\n                {\"request_type\": \"create\", \"entity_type\": \"Shot\", \"data\": data}\n            )\n            batch_data.append(\n                {\"request_type\": \"create\", \"entity_type\": \"Asset\", \"data\": data}\n            )\n        data = self.sg.batch(batch_data)\n\n        self._shot_ids = [x[\"id\"] for x in data if x[\"type\"] == \"Shot\"]\n        self._asset_ids = [x[\"id\"] for x in data if x[\"type\"] == \"Asset\"]\n\n    def tearDown(self):\n\n        # clean up\n        batch_data = []\n        for shot_id in self._shot_ids:\n            batch_data.append(\n                {\"request_type\": \"delete\", \"entity_type\": \"Shot\", \"entity_id\": shot_id}\n            )\n        for asset_id in self._asset_ids:\n            batch_data.append(\n                {\n                    \"request_type\": \"delete\",\n                    \"entity_type\": \"Asset\",\n                    \"entity_id\": asset_id,\n                }\n            )\n        self.sg.batch(batch_data)\n\n        super().tearDown()\n\n    def test_simple(self):\n        \"\"\"\n        Test basic global search\n        \"\"\"\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (6, 2, 0):\n            return\n\n        result = self.sg.text_search(\"%s Text Search\" % self._prefix, {\"Shot\": []})\n\n        self.assertEqual(set([\"matches\", \"terms\"]), set(result.keys()))\n        self.assertEqual(result[\"terms\"], [self._prefix, \"text\", \"search\"])\n        matches = result[\"matches\"]\n        self.assertEqual(len(matches), 5)\n\n        for match in matches:\n            self.assertTrue(match[\"id\"] in self._shot_ids)\n            self.assertEqual(match[\"type\"], \"Shot\")\n            self.assertEqual(match[\"project_id\"], self.project[\"id\"])\n            self.assertEqual(match[\"image\"], None)\n\n    def test_limit(self):\n        \"\"\"\n        Test limited global search\n        \"\"\"\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (6, 2, 0):\n            return\n\n        result = self.sg.text_search(\n            \"%s Text Search\" % self._prefix, {\"Shot\": []}, limit=3\n        )\n        matches = result[\"matches\"]\n        self.assertEqual(len(matches), 3)\n\n    def test_entity_filter(self):\n        \"\"\"\n        Test basic multi-type global search\n        \"\"\"\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (6, 2, 0):\n            return\n\n        result = self.sg.text_search(\n            \"%s Text Search\" % self._prefix, {\"Shot\": [], \"Asset\": []}\n        )\n\n        matches = result[\"matches\"]\n\n        self.assertEqual(set([\"matches\", \"terms\"]), set(result.keys()))\n        self.assertEqual(len(matches), 10)\n\n    def test_complex_entity_filter(self):\n        \"\"\"\n        Test complex multi-type global search\n        \"\"\"\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (6, 2, 0):\n            return\n\n        result = self.sg.text_search(\n            \"%s Text Search\" % self._prefix,\n            {\n                \"Shot\": [[\"code\", \"ends_with\", \"3\"]],\n                \"Asset\": [\n                    {\"filter_operator\": \"any\", \"filters\": [[\"code\", \"ends_with\", \"4\"]]}\n                ],\n            },\n        )\n\n        matches = result[\"matches\"]\n\n        self.assertEqual(set([\"matches\", \"terms\"]), set(result.keys()))\n        self.assertEqual(len(matches), 2)\n\n        self.assertEqual(matches[0][\"type\"], \"Shot\")\n        self.assertEqual(matches[0][\"name\"], \"%s Text Search 3\" % self._prefix)\n        self.assertEqual(matches[1][\"type\"], \"Asset\")\n        self.assertEqual(matches[1][\"name\"], \"%s Text Search 4\" % self._prefix)\n\n\nclass TestReadAdditionalFilterPresets(base.LiveTestBase):\n    \"\"\"\n    Unit tests for the additional_filter_presets read parameter\n    \"\"\"\n\n    def test_simple_case(self):\n        if self.sg_version < (7, 0, 0):\n            warnings.warn(\n                \"Test bypassed because PTR server used does not support this feature.\",\n                FutureWarning,\n            )\n            return\n\n        filters = [[\"project\", \"is\", self.project], [\"id\", \"is\", self.version[\"id\"]]]\n\n        fields = [\"id\"]\n\n        additional_filters = [\n            {\"preset_name\": \"LATEST\", \"latest_by\": \"ENTITIES_CREATED_AT\"}\n        ]\n\n        versions = self.sg.find(\n            \"Version\",\n            filters,\n            fields=fields,\n            additional_filter_presets=additional_filters,\n        )\n        version = versions[0]\n        self.assertEqual(\"Version\", version[\"type\"])\n        self.assertEqual(self.version[\"id\"], version[\"id\"])\n\n    def test_find_one(self):\n        if self.sg_version < (7, 0, 0):\n            warnings.warn(\n                \"Test bypassed because PTR server used does not support this feature.\",\n                FutureWarning,\n            )\n            return\n\n        filters = [[\"project\", \"is\", self.project], [\"id\", \"is\", self.version[\"id\"]]]\n\n        fields = [\"id\"]\n\n        additional_filters = [\n            {\"preset_name\": \"LATEST\", \"latest_by\": \"ENTITIES_CREATED_AT\"}\n        ]\n\n        version = self.sg.find_one(\n            \"Version\",\n            filters,\n            fields=fields,\n            additional_filter_presets=additional_filters,\n        )\n        self.assertEqual(\"Version\", version[\"type\"])\n        self.assertEqual(self.version[\"id\"], version[\"id\"])\n\n    def test_filter_with_no_name(self):\n        if self.sg_version < (7, 0, 0):\n            warnings.warn(\n                \"Test bypassed because PTR server used does not support this feature.\",\n                FutureWarning,\n            )\n            return\n\n        filters = [[\"project\", \"is\", self.project], [\"id\", \"is\", self.version[\"id\"]]]\n\n        fields = [\"id\"]\n\n        additional_filters = [{}]\n\n        self.assertRaises(\n            shotgun_api3.Fault,\n            self.sg.find,\n            \"Version\",\n            filters,\n            fields=fields,\n            additional_filter_presets=additional_filters,\n        )\n\n    def test_invalid_filter(self):\n        if self.sg_version < (7, 0, 0):\n            warnings.warn(\n                \"Test bypassed because PTR server used does not support this feature.\",\n                FutureWarning,\n            )\n            return\n\n        filters = [[\"project\", \"is\", self.project], [\"id\", \"is\", self.version[\"id\"]]]\n\n        fields = [\"id\"]\n\n        additional_filters = [{\"preset_name\": \"BAD_FILTER\"}]\n\n        self.assertRaises(\n            shotgun_api3.Fault,\n            self.sg.find,\n            \"Version\",\n            filters,\n            fields=fields,\n            additional_filter_presets=additional_filters,\n        )\n\n    def test_filter_not_iterable(self):\n        if self.sg_version < (7, 0, 0):\n            warnings.warn(\n                \"Test bypassed because PTR server used does not support this feature.\",\n                FutureWarning,\n            )\n            return\n\n        filters = [[\"project\", \"is\", self.project], [\"id\", \"is\", self.version[\"id\"]]]\n\n        fields = [\"id\"]\n\n        additional_filters = 3\n\n        self.assertRaises(\n            shotgun_api3.Fault,\n            self.sg.find,\n            \"Version\",\n            filters,\n            fields=fields,\n            additional_filter_presets=additional_filters,\n        )\n\n    def test_filter_not_list_of_iterable(self):\n        if self.sg_version < (7, 0, 0):\n            warnings.warn(\n                \"Test bypassed because PTR server used does not support this feature.\",\n                FutureWarning,\n            )\n            return\n\n        filters = [[\"project\", \"is\", self.project], [\"id\", \"is\", self.version[\"id\"]]]\n\n        fields = [\"id\"]\n\n        additional_filters = [3]\n\n        self.assertRaises(\n            shotgun_api3.Fault,\n            self.sg.find,\n            \"Version\",\n            filters,\n            fields=fields,\n            additional_filter_presets=additional_filters,\n        )\n\n    def test_multiple_latest_filters(self):\n        if self.sg_version < (7, 0, 0):\n            warnings.warn(\n                \"Test bypassed because PTR server used does not support this feature.\",\n                FutureWarning,\n            )\n            return\n\n        filters = [[\"project\", \"is\", self.project], [\"id\", \"is\", self.version[\"id\"]]]\n\n        fields = [\"id\"]\n\n        additional_filters = (\n            {\"preset_name\": \"LATEST\", \"latest_by\": \"ENTITY_CREATED_AT\"},\n            {\n                \"preset_name\": \"LATEST\",\n                \"latest_by\": \"PIPELINE_STEP_NUMBER_AND_ENTITIES_CREATED_AT\",\n            },\n        )\n\n        self.assertRaises(\n            shotgun_api3.Fault,\n            self.sg.find,\n            \"Version\",\n            filters,\n            fields=fields,\n            additional_filter_presets=additional_filters,\n        )\n\n    def test_modify_visibility(self):\n        \"\"\"\n        Ensure the visibility of a field can be edited via the API.\n        \"\"\"\n        # If the version of Shotgun is too old, do not run this test.\n        # TODO: Update this with the real version number once the feature is released.\n        if self.sg_version < (8, 5, 0):\n            warnings.warn(\n                \"Test bypassed because PTR server used does not support this feature.\",\n                FutureWarning,\n            )\n            return\n\n        field_display_name = \"Project Visibility Test\"\n        field_name = \"sg_{0}\".format(field_display_name.lower().replace(\" \", \"_\"))\n\n        schema = self.sg.schema_field_read(\"Asset\")\n        # Ensure the custom field exists.\n        if field_name not in schema:\n            self.sg.schema_field_create(\"Asset\", \"text\", \"Project Visibility Test\")\n\n        # Grab any two projects that we can use for toggling the visible property with.\n        projects = self.sg.find(\n            \"Project\", [], order=[{\"field_name\": \"id\", \"direction\": \"asc\"}]\n        )\n        project_1 = projects[0]\n        project_2 = projects[1]\n\n        # First, reset the field visibility in a known state, i.e. visible for both projects,\n        # in case the last test run failed midway through.\n        self.sg.schema_field_update(\"Asset\", field_name, {\"visible\": True}, project_1)\n        self.assertEqual(\n            {\"value\": True, \"editable\": True},\n            self.sg.schema_field_read(\"Asset\", field_name, project_1)[field_name][\n                \"visible\"\n            ],\n        )\n        self.sg.schema_field_update(\"Asset\", field_name, {\"visible\": True}, project_2)\n        self.assertEqual(\n            {\"value\": True, \"editable\": True},\n            self.sg.schema_field_read(\"Asset\", field_name, project_2)[field_name][\n                \"visible\"\n            ],\n        )\n\n        # Built-in fields should remain not editable.\n        self.assertFalse(\n            self.sg.schema_field_read(\"Asset\", \"code\")[\"code\"][\"visible\"][\"editable\"]\n        )\n\n        # Custom fields should be editable\n        self.assertEqual(\n            {\"value\": True, \"editable\": True},\n            self.sg.schema_field_read(\"Asset\", field_name)[field_name][\"visible\"],\n        )\n\n        # Hide the field on project 1\n        self.sg.schema_field_update(\"Asset\", field_name, {\"visible\": False}, project_1)\n        # It should not be visible anymore.\n        self.assertEqual(\n            {\"value\": False, \"editable\": True},\n            self.sg.schema_field_read(\"Asset\", field_name, project_1)[field_name][\n                \"visible\"\n            ],\n        )\n\n        # The field should be visible on the second project.\n        self.assertEqual(\n            {\"value\": True, \"editable\": True},\n            self.sg.schema_field_read(\"Asset\", field_name, project_2)[field_name][\n                \"visible\"\n            ],\n        )\n\n        # Restore the visibility on the field.\n        self.sg.schema_field_update(\"Asset\", field_name, {\"visible\": True}, project_1)\n        self.assertEqual(\n            {\"value\": True, \"editable\": True},\n            self.sg.schema_field_read(\"Asset\", field_name, project_1)[field_name][\n                \"visible\"\n            ],\n        )\n\n\nclass TestLibImports(base.LiveTestBase):\n    \"\"\"\n    Ensure that included modules are importable and that the correct version is\n    present.\n    \"\"\"\n\n    def test_import_httplib(self):\n        \"\"\"\n        Ensure that httplib2 is importable and objects are available\n        \"\"\"\n        from shotgun_api3.lib import httplib2\n\n        # Ensure that Http object is available.  This is a good indication that\n        # the httplib2 module contents are importable.\n        self.assertTrue(hasattr(httplib2, \"Http\"))\n        self.assertTrue(isinstance(httplib2.Http, object))\n\n        # Ensure that socks submodule is present and importable using a from\n        # import -- this is a good indication that external httplib2 imports\n        # from shotgun_api3 will work as expected.\n        from shotgun_api3.lib.httplib2 import socks\n\n        self.assertTrue(isinstance(socks, types.ModuleType))\n        # Make sure that objects in socks are available as expected\n        self.assertTrue(hasattr(socks, \"HTTPError\"))\n\n\ndef _get_path(url):\n    \"\"\"Returns path component of a url without the sheme, host, query, anchor, or any other\n    additional elements.\n    For example, the url \"https://foo.shotgunstudio.com/page/2128#Shot_1190_sr10101_034\"\n    returns \"/page/2128\"\n    \"\"\"\n    # url_parse returns native objects for older python versions (2.4)\n    if isinstance(url, dict):\n        return url.get(\"path\")\n    elif isinstance(url, tuple):\n        # 3rd component is the path\n        return url[2]\n    else:\n        return url.path\n\n\nif __name__ == \"__main__\":\n    unittest.main()\n"
  },
  {
    "path": "tests/test_api_long.py",
    "content": "# Copyright (c) 2019 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\n\n\"\"\"Longer tests for calling the Shotgun API functions.\n\nIncludes the schema functions and the automated searching for all entity types\n\"\"\"\n\nfrom . import base\nimport random\nimport shotgun_api3\n\n\nclass TestShotgunApiLong(base.LiveTestBase):\n    def test_automated_find(self):\n        \"\"\"Called find for each entity type and read all fields\"\"\"\n\n        # Whitelist certain data types for order_field, since no_sorting is not\n        # currently exposed.  These should be good bets to be sortable.\n        sortable_types = (\"number\", \"date\")\n\n        all_entities = list(self.sg.schema_entity_read().keys())\n        direction = \"asc\"\n        filter_operator = \"all\"\n        limit = 1\n        page = 1\n        for entity_type in all_entities:\n            if entity_type in (\n                \"Asset\",\n                \"Task\",\n                \"Shot\",\n                \"Attachment\",\n                \"Candidate\",\n                \"MimProject\",\n                \"MimEntity\",\n                \"MimField\",\n            ):\n                continue\n            print(\"Finding entity type %s\" % entity_type)\n\n            fields = self.sg.schema_field_read(entity_type)\n            if not fields:\n                print(\"No fields for %s skipping\" % entity_type)\n                continue\n\n            # trying to use some different code paths to the other find test\n            # pivot_column fields aren't valid for sorting so ensure we're\n            # not using one.\n            order_field = None\n            for field_name, field in fields.items():\n                # Restrict sorting to only types we know will always be sortable\n                # Since no_sorting is not exposed to us, we'll have to rely on\n                # this as a safeguard against trying to sort by a field with\n                # allow_sorting=false.\n                if field[\"data_type\"][\"value\"] in sortable_types:\n                    order_field = field_name\n                    break\n            # TODO for our test project, we haven't populated these entities....\n            order = None\n            if order_field:\n                order = [{\"field_name\": order_field, \"direction\": direction}]\n            if \"project\" in fields:\n                filters = [[\"project\", \"is\", self.project]]\n            else:\n                filters = []\n\n            records = self.sg.find(\n                entity_type,\n                filters,\n                fields=list(fields.keys()),\n                order=order,\n                filter_operator=filter_operator,\n                limit=limit,\n                page=page,\n            )\n\n            self.assertTrue(isinstance(records, list))\n\n            if filter_operator == \"all\":\n                filter_operator = \"any\"\n            else:\n                filter_operator = \"all\"\n            if direction == \"desc\":\n                direction = \"asc\"\n            else:\n                direction = \"desc\"\n            limit = (limit % 5) + 1\n            page = (page % 3) + 1\n\n    def test_schema(self):\n        \"\"\"Called schema functions\"\"\"\n\n        schema = self.sg.schema_entity_read()\n        self.assertTrue(schema, dict)\n        self.assertTrue(len(schema) > 0)\n\n        schema = self.sg.schema_read()\n        self.assertTrue(schema, dict)\n        self.assertTrue(len(schema) > 0)\n\n        schema = self.sg.schema_field_read(\"Version\")\n        self.assertTrue(schema, dict)\n        self.assertTrue(len(schema) > 0)\n\n        schema = self.sg.schema_field_read(\"Version\", field_name=\"user\")\n        self.assertTrue(schema, dict)\n        self.assertTrue(len(schema) > 0)\n        self.assertTrue(\"user\" in schema)\n\n        # An explanation is in order here. the field code that is created in shotgun is based on the human display name\n        # that is provided , so for example \"Money Count\" would generate the field code 'sg_monkey_count' . The field\n        # that is created in this test is retired at the end of the test but when this test is run again against\n        # the same database ( which happens on our Continuous Integration server ) trying to create a new field\n        # called \"Monkey Count\" will now fail due to the new Delete Field Forever features we have added to shotgun\n        # since there will a retired field called sg_monkey_count. The old behavior was to go ahead and create a new\n        # \"Monkey Count\" field with a field code with an incremented number of the end like sg_monkey_count_1. The new\n        # behavior is to raise an error in hopes the user will go into the UI and delete the old retired field forever.\n\n        # make a the name of the field somewhat unique\n        human_field_name = \"Monkey \" + str(random.getrandbits(24))\n\n        properties = {\"description\": \"How many monkeys were needed\"}\n        new_field_name = self.sg.schema_field_create(\n            \"Version\", \"number\", human_field_name, properties=properties\n        )\n\n        properties = {\"description\": \"How many monkeys turned up\"}\n        ret_val = self.sg.schema_field_update(\"Version\", new_field_name, properties)\n        self.assertTrue(ret_val)\n\n        ret_val = self.sg.schema_field_delete(\"Version\", new_field_name)\n        self.assertTrue(ret_val)\n\n    def test_schema_with_project(self):\n        \"\"\"Called schema functions with project\"\"\"\n\n        project_entity = {\"type\": \"Project\", \"id\": 0}\n\n        if not self.sg.server_caps.version or self.sg.server_caps.version < (5, 4, 4):\n            # server does not support this!\n            self.assertRaises(\n                shotgun_api3.ShotgunError, self.sg.schema_entity_read, project_entity\n            )\n            self.assertRaises(\n                shotgun_api3.ShotgunError, self.sg.schema_read, project_entity\n            )\n            self.assertRaises(\n                shotgun_api3.ShotgunError,\n                self.sg.schema_field_read,\n                \"Version\",\n                None,\n                project_entity,\n            )\n            self.assertRaises(\n                shotgun_api3.ShotgunError,\n                self.sg.schema_field_read,\n                \"Version\",\n                \"user\",\n                project_entity,\n            )\n\n        else:\n            schema = self.sg.schema_entity_read(project_entity)\n            self.assertTrue(schema, dict)\n            self.assertTrue(len(schema) > 0)\n            self.assertTrue(\"Project\" in schema)\n            self.assertTrue(\"visible\" in schema[\"Project\"])\n\n            schema = self.sg.schema_read(project_entity)\n            self.assertTrue(schema, dict)\n            self.assertTrue(len(schema) > 0)\n            self.assertTrue(\"Version\" in schema)\n            self.assertFalse(\"visible\" in schema)\n\n            schema = self.sg.schema_field_read(\"Version\", project_entity=project_entity)\n            self.assertTrue(schema, dict)\n            self.assertTrue(len(schema) > 0)\n            self.assertTrue(\"user\" in schema)\n            self.assertTrue(\"visible\" in schema[\"user\"])\n\n            schema = self.sg.schema_field_read(\"Version\", \"user\", project_entity)\n            self.assertTrue(schema, dict)\n            self.assertTrue(len(schema) > 0)\n            self.assertTrue(\"user\" in schema)\n            self.assertTrue(\"visible\" in schema[\"user\"])\n\n\nif __name__ == \"__main__\":\n    base.unittest.main()\n"
  },
  {
    "path": "tests/test_client.py",
    "content": "# Copyright (c) 2019 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\n\n\"\"\"Tests against the client software that do not involve calling the\nCRUD functions. These tests always use a mock http connection so not not\nneed a live server to run against.\"\"\"\n\nimport configparser\nimport base64\nimport datetime\nimport json\nimport os\nimport platform\nimport re\nimport sys\nimport time\nimport unittest\nimport unittest.mock\nimport urllib.parse\nimport urllib.error\n\nimport shotgun_api3.lib.httplib2 as httplib2\nimport shotgun_api3 as api\nfrom shotgun_api3.shotgun import ServerCapabilities, SG_TIMEZONE\nfrom . import base\n\n\ndef b64encode(val):\n    if isinstance(val, str):\n        val = val.encode(\"utf-8\")\n\n    return base64.encodebytes(val).decode(\"utf-8\")\n\n\nclass TestShotgunClient(base.MockTestBase):\n    \"\"\"Test case for shotgun api with server interactions mocked.\"\"\"\n\n    def setUp(self):\n        super().setUp()\n        # get domain and uri scheme\n        match = re.search(\"(https?://)(.*)\", self.server_url)\n        self.uri_prefix = match.group(1)\n        self.domain = match.group(2)\n        # always want the mock on\n        self._setup_mock()\n\n    def test_detect_client_caps(self):\n        \"\"\"Client and server capabilities detected\"\"\"\n        client_caps = self.sg.client_caps\n        self.sg.connect()\n        self.assertEqual(1, self.sg._http_request.call_count)\n\n        self.assertTrue(client_caps is not None)\n        self.assertTrue(client_caps.platform in (\"windows\", \"linux\", \"mac\"))\n        self.assertTrue(client_caps.local_path_field.startswith(\"local_path\"))\n        self.assertTrue(str(client_caps).startswith(\"ClientCapabilities\"))\n        self.assertTrue(client_caps.py_version.startswith(str(sys.version_info[0])))\n        self.assertTrue(client_caps.py_version.endswith(str(sys.version_info[1])))\n        self.assertTrue(client_caps.ssl_version is not None)\n        # todo test for version string (eg. \"1.2.3ng\") or \"unknown\"\n\n    def test_detect_server_caps(self):\n        \"\"\"test_detect_server_caps tests that ServerCapabilities object is made\n        with appropriate settings for given server version.\"\"\"\n        # has paging is tested else where.\n        server_info = {\"version\": [9, 9, 9]}\n        self._mock_http(server_info)\n        # ensrue the server caps is re-read\n        self.sg._server_caps = None\n        self.assertTrue(self.sg.server_caps is not None)\n        self.assertFalse(self.sg.server_caps.is_dev)\n        self.assertEqual((9, 9, 9), self.sg.server_caps.version)\n        self.assertTrue(self.server_url.endswith(self.sg.server_caps.host))\n        self.assertTrue(str(self.sg.server_caps).startswith(\"ServerCapabilities\"))\n        self.assertEqual(server_info, self.sg.server_info)\n\n        self._mock_http({\"version\": [9, 9, 9, \"Dev\"]})\n        self.sg._server_caps = None\n        self.assertTrue(self.sg.server_caps.is_dev)\n\n    def test_server_version_json(self):\n        \"\"\"test_server_version_json tests expected versions for json support.\"\"\"\n        sc = ServerCapabilities(\"foo\", {\"version\": (2, 4, 0)})\n\n        sc.version = (2, 3, 99)\n        self.assertRaises(api.ShotgunError, sc._ensure_json_supported)\n        self.assertRaises(\n            api.ShotgunError, ServerCapabilities, \"foo\", {\"version\": (2, 2, 0)}\n        )\n\n        sc.version = (0, 0, 0)\n        self.assertRaises(api.ShotgunError, sc._ensure_json_supported)\n\n        sc.version = (2, 4, 0)\n        sc._ensure_json_supported()\n\n        sc.version = (2, 5, 0)\n        sc._ensure_json_supported()\n\n    def test_extra_auth_params(self):\n        \"\"\"test_extra_auth_params tests provided auth_params are included in request\"\"\"\n        # ok for the mock server to just return an error, we want to look at\n        # what's in the request\n        self._mock_http({\"message\": \"Go BANG\", \"exception\": True})\n\n        def auth_args():\n            args = self.sg._http_request.call_args[0]\n            body = args[2]\n            body = json.loads(body)\n            return body[\"params\"][0]\n\n        self.sg.config.extra_auth_params = None\n        self.assertRaises(api.Fault, self.sg.delete, \"FakeType\", 1)\n        self.assertTrue(\"product\" not in auth_args())\n\n        self.sg.config.extra_auth_params = {\"product\": \"rv\"}\n        self.assertRaises(api.Fault, self.sg.delete, \"FakeType\", 1)\n        self.assertEqual(\"rv\", auth_args()[\"product\"])\n\n    def test_session_uuid(self):\n        \"\"\"test_session_uuid tests session UUID is included in request\"\"\"\n        # ok for the mock server to just return an error, we want to look at\n        # whats in the request\n        self._mock_http({\"message\": \"Go BANG\", \"exception\": True})\n\n        def auth_args():\n            args = self.sg._http_request.call_args[0]\n            body = args[2]\n            body = json.loads(body)\n            return body[\"params\"][0]\n\n        self.sg.set_session_uuid(None)\n        self.assertRaises(api.Fault, self.sg.delete, \"FakeType\", 1)\n        self.assertTrue(\"session_uuid\" not in auth_args())\n\n        my_uuid = \"5a1d49b0-0c69-11e0-a24c-003048d17544\"\n        self.sg.set_session_uuid(my_uuid)\n        self.assertRaises(api.Fault, self.sg.delete, \"FakeType\", 1)\n        self.assertEqual(my_uuid, auth_args()[\"session_uuid\"])\n\n    def test_url(self):\n        \"\"\"Server url is parsed correctly\"\"\"\n        login = self.human_user[\"login\"]\n        password = self.human_password\n\n        self.assertRaises(ValueError, api.Shotgun, None, None, None, connect=False)\n        self.assertRaises(\n            ValueError, api.Shotgun, \"file://foo.com\", None, None, connect=False\n        )\n\n        self.assertEqual(\"/api3/json\", self.sg.config.api_path)\n\n        # support auth details in the url of the form\n        login_password = \"%s:%s\" % (login, password)\n        # login:password@domain\n        auth_url = \"%s%s@%s\" % (self.uri_prefix, login_password, self.domain)\n        sg = api.Shotgun(auth_url, None, None, connect=False)\n        expected = \"Basic \" + b64encode(urllib.parse.unquote(login_password)).strip()\n        self.assertEqual(expected, sg.config.authorization)\n\n    def test_b64encode(self):\n        \"\"\"Parse value using the proper encoder.\"\"\"\n        login = \"thelogin\"\n        password = \"%thepassw0r#$\"\n        login_password = \"%s:%s\" % (login, password)\n        expected = \"dGhlbG9naW46JXRoZXBhc3N3MHIjJA==\"\n        result = b64encode(urllib.parse.unquote(login_password)).strip()\n        self.assertEqual(expected, result)\n\n    def test_read_config(self):\n        \"\"\"Validate that config values are properly coerced.\"\"\"\n        this_dir = os.path.dirname(os.path.realpath(__file__))\n        config_path = os.path.join(this_dir, \"test_config_file\")\n        config = configparser.ConfigParser()\n        config.read(config_path)\n        result = config.get(\"SERVER_INFO\", \"api_key\")\n        expected = \"%abce\"\n\n        self.assertEqual(expected, result)\n\n    def test_split_url(self):\n        \"\"\"Validate that url parts are properly extracted.\"\"\"\n\n        sg = api.Shotgun(\"https://ci.shotgunstudio.com\", \"foo\", \"bar\", connect=False)\n\n        base_url = \"https://ci.shotgunstudio.com\"\n        expected_server = \"ci.shotgunstudio.com\"\n        expected_auth = None\n        auth, server = sg._split_url(base_url)\n        self.assertEqual(auth, expected_auth)\n        self.assertEqual(server, expected_server)\n\n        base_url = \"https://ci.shotgunstudio.com:9500\"\n        expected_server = \"ci.shotgunstudio.com:9500\"\n        expected_auth = None\n        auth, server = sg._split_url(base_url)\n        self.assertEqual(auth, expected_auth)\n        self.assertEqual(server, expected_server)\n\n        base_url = \"https://x:y@ci.shotgunstudio.com:9500\"\n        expected_server = \"ci.shotgunstudio.com:9500\"\n        expected_auth = \"x:y\"\n        auth, server = sg._split_url(base_url)\n        self.assertEqual(auth, expected_auth)\n        self.assertEqual(server, expected_server)\n\n        base_url = \"https://12345XYZ@ci.shotgunstudio.com:9500\"\n        expected_server = \"ci.shotgunstudio.com:9500\"\n        expected_auth = \"12345XYZ\"\n        auth, server = sg._split_url(base_url)\n        self.assertEqual(auth, expected_auth)\n        self.assertEqual(server, expected_server)\n\n    def test_authorization(self):\n        \"\"\"Authorization passed to server\"\"\"\n        login = self.human_user[\"login\"]\n        password = self.human_password\n        login_password = \"%s:%s\" % (login, password)\n        # login:password@domain\n        auth_url = \"%s%s@%s\" % (self.uri_prefix, login_password, self.domain)\n\n        self.sg = api.Shotgun(auth_url, \"foo\", \"bar\", connect=False)\n        self._setup_mock()\n        self._mock_http({\"version\": [2, 4, 0, \"Dev\"]})\n\n        self.sg.info()\n\n        args, _ = self.sg._http_request.call_args\n        verb, path, body, headers = args\n\n        expected = \"Basic \" + b64encode(urllib.parse.unquote(login_password)).strip()\n        self.assertEqual(expected, headers.get(\"Authorization\"))\n\n    def test_localization_header_default(self):\n        \"\"\"Localization header not passed to server without explicitly setting PTR localization config to True\"\"\"\n        self.sg.info()\n\n        args, _ = self.sg._http_request.call_args\n        _, _, _, headers = args\n        expected_header_value = \"auto\"\n\n        self.assertEqual(None, headers.get(\"locale\"))\n\n    def test_localization_header_when_localized(self):\n        \"\"\"Localization header passed to server when setting PTR localization config to True\"\"\"\n        self.sg.config.localized = True\n\n        self.sg.info()\n\n        args, _ = self.sg._http_request.call_args\n        _, _, _, headers = args\n        expected_header_value = \"auto\"\n\n        self.assertEqual(\"auto\", headers.get(\"locale\"))\n\n    def test_user_agent(self):\n        \"\"\"User-Agent passed to server\"\"\"\n        # test default user agent\n        self.sg.info()\n        client_caps = self.sg.client_caps\n        config = self.sg.config\n        args, _ = self.sg._http_request.call_args\n        _, _, _, headers = args\n        ssl_validate_lut = {True: \"no-validate\", False: \"validate\"}\n        expected = \"shotgun-json (%s); Python %s (%s); ssl %s\" % (\n            api.__version__,\n            client_caps.py_version,\n            client_caps.platform.capitalize(),\n            client_caps.ssl_version,\n        )\n        self.assertEqual(expected, headers.get(\"user-agent\"))\n\n        # test adding to user agent\n        self.sg.add_user_agent(\"test-agent\")\n        self.sg.info()\n        args, _ = self.sg._http_request.call_args\n        _, _, _, headers = args\n        expected = \"shotgun-json (%s); Python %s (%s); ssl %s; test-agent\" % (\n            api.__version__,\n            client_caps.py_version,\n            client_caps.platform.capitalize(),\n            client_caps.ssl_version,\n        )\n        self.assertEqual(expected, headers.get(\"user-agent\"))\n\n        # test resetting user agent\n        self.sg.reset_user_agent()\n        self.sg.info()\n        args, _ = self.sg._http_request.call_args\n        _, _, _, headers = args\n        expected = \"shotgun-json (%s); Python %s (%s); ssl %s\" % (\n            api.__version__,\n            client_caps.py_version,\n            client_caps.platform.capitalize(),\n            client_caps.ssl_version,\n        )\n        self.assertEqual(expected, headers.get(\"user-agent\"))\n\n    def test_connect_close(self):\n        \"\"\"Connection is closed and opened.\"\"\"\n        # The mock created an existing mock connection,\n        self.sg.connect()\n        self.assertEqual(0, self.mock_conn.request.call_count)\n        self.sg.close()\n        self.assertEqual(None, self.sg._connection)\n\n    def test_network_retry(self):\n        \"\"\"Network failure is retried, with a sleep call between retries.\"\"\"\n        self.sg._http_request.side_effect = httplib2.HttpLib2Error\n\n        with unittest.mock.patch(\"time.sleep\") as mock_sleep:\n            self.assertRaises(httplib2.HttpLib2Error, self.sg.info)\n            self.assertTrue(\n                self.sg._http_request.call_count == 1,\n                \"Call is repeated\",\n            )\n\n    def test_set_retry_interval(self):\n        \"\"\"Setting the retry interval through parameter and environment variable works.\"\"\"\n        original_env_val = os.environ.pop(\"SHOTGUN_API_RETRY_INTERVAL\", None)\n\n        try:\n\n            def run_interval_test(expected_interval, interval_property=None):\n                self.sg = api.Shotgun(\n                    self.config.server_url,\n                    self.config.script_name,\n                    self.config.api_key,\n                    http_proxy=self.config.http_proxy,\n                    connect=self.connect,\n                )\n                self._setup_mock()\n                if interval_property:\n                    # if a value was provided for interval_property, set the\n                    # config's property to that value.\n                    self.sg.config.rpc_attempt_interval = interval_property\n                self.sg._http_request.side_effect = httplib2.HttpLib2Error\n                self.assertEqual(self.sg.config.rpc_attempt_interval, expected_interval)\n                self.test_network_retry()\n\n            # Try passing parameter and ensure the correct interval is used.\n            run_interval_test(expected_interval=2500, interval_property=2500)\n\n            # Try setting ENV VAR and ensure the correct interval is used.\n            os.environ[\"SHOTGUN_API_RETRY_INTERVAL\"] = \"2000\"\n            run_interval_test(expected_interval=2000)\n\n            # Try both parameter and environment variable, to ensure parameter wins.\n            run_interval_test(expected_interval=4000, interval_property=4000)\n\n        finally:\n            # Restore environment variable.\n            if original_env_val is not None:\n                os.environ[\"SHOTGUN_API_RETRY_INTERVAL\"] = original_env_val\n            elif \"SHOTGUN_API_RETRY_INTERVAL\" in os.environ:\n                os.environ.pop(\"SHOTGUN_API_RETRY_INTERVAL\")\n\n    def test_http_error(self):\n        \"\"\"HTTP error raised and not retried.\"\"\"\n        self._mock_http(\"big old error string\", status=(500, \"Internal Server Error\"))\n        self.assertRaises(api.ProtocolError, self.sg.info)\n        self.assertEqual(1, self.sg._http_request.call_count, \"Call is not repeated\")\n\n    def test_rpc_error(self):\n        \"\"\"RPC error transformed into Python error\"\"\"\n        self._mock_http({\"message\": \"Go BANG\", \"exception\": True})\n        self.assertRaises(api.Fault, self.sg.info)\n\n        try:\n            self.sg.info()\n        except api.Fault as e:\n            self.assertEqual(\"Go BANG\", str(e))\n\n    def test_call_rpc(self):\n        \"\"\"Named rpc method is called and results handled\"\"\"\n        d = {\"no-results\": \"data without a results key\"}\n        self._mock_http(d)\n        rv = self.sg._call_rpc(\"no-results\", None)\n        self._assert_http_method(\"no-results\", None)\n        expected = \"rpc response without results key is returned as-is\"\n        self.assertEqual(d, rv, expected)\n\n        d = {\"results\": {\"singleton\": \"result\"}}\n        self._mock_http(d)\n        rv = self.sg._call_rpc(\"singleton\", None)\n        self._assert_http_method(\"singleton\", None)\n        expected = \"rpc response with singleton result\"\n        self.assertEqual(d[\"results\"], rv, expected)\n\n        d = {\"results\": [\"foo\", \"bar\"]}\n        a = {\"some\": \"args\"}\n        self._mock_http(d)\n        rv = self.sg._call_rpc(\"list\", a)\n        self._assert_http_method(\"list\", a)\n        expected = \"rpc response with list result\"\n        self.assertEqual(d[\"results\"], rv, expected)\n\n        d = {\"results\": [\"foo\", \"bar\"]}\n        a = {\"some\": \"args\"}\n        self._mock_http(d)\n        rv = self.sg._call_rpc(\"list-first\", a, first=True)\n        self._assert_http_method(\"list-first\", a)\n        expected = \"rpc response with list result, first item\"\n        self.assertEqual(d[\"results\"][0], rv, expected)\n\n        # Test payload encoding with non-ascii characters (using utf-8 literal)\n        d = {\"results\": [\"foo\", \"bar\"]}\n        a = {\n            \"utf_literal\": \"\\xe2\\x88\\x9a\",\n        }\n        self._mock_http(d)\n        rv = self.sg._call_rpc(\"list\", a)\n        expected = \"rpc response with list result\"\n        self.assertEqual(d[\"results\"], rv, expected)\n\n        # Test that we raise on a 5xx. This is ensuring the retries behavior\n        # in place specific to 5xx responses still eventually ends up raising.\n        # 502\n        d = {\"results\": [\"foo\", \"bar\"]}\n        a = {\"some\": \"args\"}\n        self._mock_http(d, status=(502, \"bad gateway\"))\n        self.assertRaises(api.ProtocolError, self.sg._call_rpc, \"list\", a)\n        self.assertEqual(\n            self.sg.MAX_ATTEMPTS,\n            self.sg._http_request.call_count,\n            f\"Call is repeated up to {self.sg.MAX_ATTEMPTS} times\",\n        )\n\n        # 504\n        d = {\"results\": [\"foo\", \"bar\"]}\n        a = {\"some\": \"args\"}\n        self._mock_http(d, status=(504, \"gateway timeout\"))\n        self.assertRaises(api.ProtocolError, self.sg._call_rpc, \"list\", a)\n        self.assertEqual(\n            self.sg.MAX_ATTEMPTS,\n            self.sg._http_request.call_count,\n            f\"Call is repeated up to {self.sg.MAX_ATTEMPTS} times\",\n        )\n\n    def test_upload_s3_503(self):\n        \"\"\"\n        Test 503 response is retried when uploading to S3.\n        \"\"\"\n        this_dir, _ = os.path.split(__file__)\n        storage_url = \"http://foo.com/\"\n        path = os.path.abspath(\n            os.path.expanduser(os.path.join(this_dir, \"sg_logo.jpg\"))\n        )\n        # Expected HTTPError exception error message\n        expected = (\n            \"The server is currently down or to busy to reply.\"\n            \"Please try again later.\"\n        )\n\n        # Test the Internal function that is used to upload each\n        # data part in the context of multi-part uploads to S3, we\n        # simulate the HTTPError exception raised with 503 status errors\n        with self.assertRaises(api.ShotgunError, msg=expected):\n            self.sg._upload_file_to_storage(path, storage_url)\n        # Test the max retries attempt\n        self.assertTrue(\n            self.sg.MAX_ATTEMPTS == self.sg._make_upload_request.call_count,\n            f\"Call is repeated up to {self.sg.MAX_ATTEMPTS} times\",\n        )\n\n    def test_upload_s3_500(self):\n        \"\"\"\n        Test 500 response is retried when uploading to S3.\n        \"\"\"\n        self._setup_mock(s3_status_code_error=500)\n        this_dir, _ = os.path.split(__file__)\n        storage_url = \"http://foo.com/\"\n        path = os.path.abspath(\n            os.path.expanduser(os.path.join(this_dir, \"sg_logo.jpg\"))\n        )\n        # Expected HTTPError exception error message\n        expected = (\n            \"The server is currently down or to busy to reply.\"\n            \"Please try again later.\"\n        )\n\n        # Test the Internal function that is used to upload each\n        # data part in the context of multi-part uploads to S3, we\n        # simulate the HTTPError exception raised with 503 status errors\n        with self.assertRaises(api.ShotgunError, msg=expected):\n            self.sg._upload_file_to_storage(path, storage_url)\n        # Test the max retries attempt\n        self.assertTrue(\n            self.sg.MAX_ATTEMPTS == self.sg._make_upload_request.call_count,\n            f\"Call is repeated up to {self.sg.MAX_ATTEMPTS} times\",\n        )\n\n    def test_upload_s3_urlerror__get_attachment_upload_info(self):\n        \"\"\"\n        Test URLError response is retried when invoking _send_form\n        \"\"\"\n        mock_opener = unittest.mock.Mock()\n        mock_opener.return_value.open.side_effect = urllib.error.URLError(\n            \"[WinError 10054] An existing connection was forcibly closed by the remote host\"\n        )\n        self.sg._build_opener = mock_opener\n        this_dir, _ = os.path.split(__file__)\n        path = os.path.abspath(\n            os.path.expanduser(os.path.join(this_dir, \"sg_logo.jpg\"))\n        )\n\n        with self.assertRaises(api.ShotgunError) as cm:\n            self.sg._get_attachment_upload_info(False, path, False)\n\n        # Test the max retries attempt\n        self.assertEqual(\n            self.sg.MAX_ATTEMPTS,\n            mock_opener.return_value.open.call_count,\n            f\"Call is repeated up to {self.sg.MAX_ATTEMPTS} times\",\n        )\n\n        # Test the exception message\n        the_exception = cm.exception\n        self.assertEqual(str(the_exception), \"Max attempts limit reached.\")\n\n    def test_upload_s3_urlerror__upload_to_storage(self):\n        \"\"\"\n        Test URLError response is retried when uploading to S3.\n        \"\"\"\n        self.sg._make_upload_request = unittest.mock.Mock(\n            spec=api.Shotgun._make_upload_request,\n            side_effect=urllib.error.URLError(\n                \"[Errno 104] Connection reset by peer\",\n            ),\n        )\n\n        this_dir, _ = os.path.split(__file__)\n        storage_url = \"http://foo.com/\"\n        path = os.path.abspath(\n            os.path.expanduser(os.path.join(this_dir, \"sg_logo.jpg\"))\n        )\n\n        # Test the Internal function that is used to upload each\n        # data part in the context of multi-part uploads to S3, we\n        # simulate the HTTPError exception raised with 503 status errors\n        with self.assertRaises(api.ShotgunError) as cm:\n            self.sg._upload_file_to_storage(path, storage_url)\n\n        # Test the max retries attempt\n        self.assertEqual(\n            self.sg.MAX_ATTEMPTS,\n            self.sg._make_upload_request.call_count,\n            f\"Call is repeated up to {self.sg.MAX_ATTEMPTS} times\",\n        )\n\n        # Test the exception message\n        the_exception = cm.exception\n        self.assertEqual(str(the_exception), \"Max attempts limit reached.\")\n\n    def test_transform_data(self):\n        \"\"\"Outbound data is transformed\"\"\"\n        timestamp = time.time()\n        # microseconds will be last during transforms\n        now = datetime.datetime.fromtimestamp(timestamp).replace(\n            microsecond=0, tzinfo=SG_TIMEZONE.local\n        )\n        utc_now = (\n            datetime.datetime.fromtimestamp(timestamp, tz=datetime.timezone.utc)\n            .replace(microsecond=0)\n            .astimezone(None)\n            .replace(tzinfo=None)\n        )\n        local = {\"date\": now.strftime(\"%Y-%m-%d\"), \"datetime\": now, \"time\": now.time()}\n        # date will still be the local date, because they are not transformed\n        utc = {\n            \"date\": now.strftime(\"%Y-%m-%d\"),\n            \"datetime\": utc_now,\n            \"time\": utc_now.time(),\n        }\n\n        def _datetime(s, f):\n            return datetime.datetime(*time.strptime(s, f)[:6])\n\n        def assert_wire(wire, match):\n            self.assertTrue(isinstance(wire[\"date\"], str))\n            d = _datetime(wire[\"date\"], \"%Y-%m-%d\").date()\n            d = wire[\"date\"]\n            self.assertEqual(match[\"date\"], d)\n            self.assertTrue(isinstance(wire[\"datetime\"], str))\n            d = _datetime(wire[\"datetime\"], \"%Y-%m-%dT%H:%M:%SZ\")\n            self.assertEqual(match[\"datetime\"], d)\n            self.assertTrue(isinstance(wire[\"time\"], str))\n            d = _datetime(wire[\"time\"], \"%Y-%m-%dT%H:%M:%SZ\")\n            self.assertEqual(match[\"time\"], d.time())\n\n        # leave as local\n        # AMORTON: tests disabled for now, always have utc over the wire\n        # self.sg.config.convert_datetimes_to_utc = False\n        # wire = self.sg._transform_outbound(local)\n        # print(\"local {}\".format(local))\n        # print(\"wire {}\".format(wire))\n        # assert_wire(wire, local)\n        # wire = self.sg._transform_inbound(wire)\n        # #times will become datetime over the wire\n        # wire[\"time\"] = wire[\"time\"].time()\n        # self.assertEqual(local, wire)\n\n        self.sg.config.convert_datetimes_to_utc = True\n        wire = self.sg._transform_outbound(local)\n        assert_wire(wire, utc)\n        wire = self.sg._transform_inbound(wire)\n        # times will become datetime over the wire\n        wire[\"time\"] = wire[\"time\"].time()\n        self.assertEqual(local, wire)\n\n    def test_encode_payload(self):\n        \"\"\"Request body is encoded as JSON\"\"\"\n\n        d = {\"this is \": \"my data \\u00e0\"}\n        j = self.sg._encode_payload(d)\n        self.assertTrue(isinstance(j, bytes))\n\n        d = {\"this is \": \"my data\"}\n        j = self.sg._encode_payload(d)\n        self.assertTrue(isinstance(j, bytes))\n\n    def test_decode_response_ascii(self):\n        self._assert_decode_resonse(True, \"my data \\u00e0\")\n\n    def test_decode_response_unicode(self):\n        self._assert_decode_resonse(False, \"my data \\u00e0\")\n\n    def _assert_decode_resonse(self, ensure_ascii, data):\n        \"\"\"HTTP Response is decoded as JSON or text\"\"\"\n\n        headers = {\"content-type\": \"application/json;charset=utf-8\"}\n        d = {\"this is \": data}\n        sg = api.Shotgun(\n            self.config.server_url,\n            self.config.script_name,\n            self.config.api_key,\n            http_proxy=self.config.http_proxy,\n            connect=False,\n        )\n\n        j = json.dumps(d, ensure_ascii=ensure_ascii)\n        self.assertEqual(d, sg._decode_response(headers, j))\n\n        headers[\"content-type\"] = \"text/javascript\"\n        self.assertEqual(d, sg._decode_response(headers, j))\n\n        headers[\"content-type\"] = \"text/foo\"\n        self.assertEqual(j, sg._decode_response(headers, j))\n\n    def test_parse_records(self):\n        \"\"\"Parse records to replace thumbnail and local paths\"\"\"\n\n        system = platform.system().lower()\n        if system == \"darwin\":\n            local_path_field = \"local_path_mac\"\n        elif system in [\"windows\", \"microsoft\"]:\n            local_path_field = \"local_path_windows\"\n        elif system == \"linux\":\n            local_path_field = \"local_path_linux\"\n        orig = {\n            \"type\": \"FakeAsset\",\n            \"id\": 1234,\n            \"image\": \"blah\",\n            \"foo\": {\n                \"link_type\": \"local\",\n                local_path_field: \"/foo/bar.jpg\",\n            },\n        }\n        url = \"http://foo/files/0000/0000/0012/232/shot_thumb.jpg\"\n        self.sg._build_thumb_url = unittest.mock.Mock(return_value=url)\n\n        modified, txt = self.sg._parse_records([orig, \"plain text\"])\n        self.assertEqual(\"plain text\", txt, \"non dict value is left as is\")\n\n        self.sg._build_thumb_url.assert_called_once_with(\"FakeAsset\", 1234)\n\n        self.assertEqual(url, modified[\"image\"], \"image path changed to url path\")\n        self.assertEqual(\"/foo/bar.jpg\", modified[\"foo\"][\"local_path\"])\n        self.assertEqual(\"file:///foo/bar.jpg\", modified[\"foo\"][\"url\"])\n\n    def test_thumb_url(self):\n        \"\"\"Thumbnail endpoint used to get thumbnail url\"\"\"\n\n        # the thumbnail service returns a two line\n        # test response success code on line 1, data on line 2\n        resp = \"1\\n/files/0000/0000/0012/232/shot_thumb.jpg\"\n        self._mock_http(resp, headers={\"content-type\": \"text/plain\"})\n        self.sg.config.scheme = \"http\"\n        self.sg.config.server = \"foo.com\"\n\n        url = self.sg._build_thumb_url(\"FakeAsset\", 1234)\n\n        self.assertEqual(\"http://foo.com/files/0000/0000/0012/232/shot_thumb.jpg\", url)\n        self.assertTrue(self.sg._http_request.called, \"http request made to get url\")\n        args, _ = self.sg._http_request.call_args\n        verb, path, body, headers = args\n        self.assertEqual(\n            \"/upload/get_thumbnail_url?entity_type=FakeAsset&entity_id=1234\",\n            path,\n            \"thumbnail url called with correct args\",\n        )\n\n        resp = \"0\\nSome Error\"\n        self._mock_http(resp, headers={\"content-type\": \"text/plain\"})\n        self.assertRaises(api.ShotgunError, self.sg._build_thumb_url, \"FakeAsset\", 456)\n\n        resp = \"99\\nSome Error\"\n        self._mock_http(resp, headers={\"content-type\": \"text/plain\"})\n        self.assertRaises(RuntimeError, self.sg._build_thumb_url, \"FakeAsset\", 456)\n\n\nclass TestShotgunClientInterface(base.MockTestBase):\n    \"\"\"Tests expected interface for shotgun module and client\"\"\"\n\n    def test_client_interface(self):\n        expected_attributes = [\"base_url\", \"config\", \"client_caps\", \"server_caps\"]\n        for expected_attribute in expected_attributes:\n            if not hasattr(self.sg, expected_attribute):\n                assert False, \"%s not found on %s\" % (expected_attribute, self.sg)\n\n    def test_module_interface(self):\n        import shotgun_api3\n\n        expected_contents = [\n            \"Shotgun\",\n            \"ShotgunError\",\n            \"Fault\",\n            \"ProtocolError\",\n            \"ResponseError\",\n            \"Error\",\n            \"sg_timezone\",\n            \"__version__\",\n        ]\n        for expected_content in expected_contents:\n            if not hasattr(shotgun_api3, expected_content):\n                assert False, \"%s not found on module %s\" % (\n                    expected_content,\n                    shotgun_api3,\n                )\n\n\nif __name__ == \"__main__\":\n    unittest.main()\n"
  },
  {
    "path": "tests/test_config_file",
    "content": "[SERVER_INFO]\nserver_url     : https://url\nscript_name    : xyz\napi_key        : %%abce\n\n[TEST_DATA]\nproject_name   : hjkl\n"
  },
  {
    "path": "tests/test_mockgun.py",
    "content": "#! /opt/local/bin/python\n\n#  -----------------------------------------------------------------------------\n#  Copyright (c) 2009-2017, Shotgun Software Inc\n#\n#  Redistribution and use in source and binary forms, with or without\n#  modification, are permitted provided that the following conditions are met:\n#\n#   - Redistributions of source code must retain the above copyright notice, this\n#     list of conditions and the following disclaimer.\n#\n#   - Redistributions in binary form must reproduce the above copyright notice,\n#     this list of conditions and the following disclaimer in the documentation\n#     and/or other materials provided with the distribution.\n#\n#   - Neither the name of the Shotgun Software Inc nor the names of its\n#     contributors may be used to endorse or promote products derived from this\n#     software without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n#  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n#  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n#  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n#  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n#  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n#  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n#  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n#\n# -----------------------------------------------------------------------------\n\n\"\"\"\nUnit tests for Mockgun. Does not require an Internet connection\nand can be run on their own by typing \"python test_mockgun.py\".\n\"\"\"\n\nimport datetime\nimport re\nimport os\nimport unittest\nfrom shotgun_api3.lib.mockgun import Shotgun as Mockgun\nfrom shotgun_api3 import ShotgunError\n\nmockgun_schema_folder = os.path.join(os.path.dirname(__file__), \"mockgun\")\n\nMockgun.set_schema_paths(\n    os.path.join(mockgun_schema_folder, \"schema.pickle\"),\n    os.path.join(mockgun_schema_folder, \"schema_entity.pickle\"),\n)\n\n\nclass TestMockgunModuleInterface(unittest.TestCase):\n    \"\"\"\n    mockgun.py was turned into a module. Ensure we haven't broken the interface.\n    \"\"\"\n\n    def test_interface_intact(self):\n        \"\"\"\n        Ensure everything that was public before still is.\n        \"\"\"\n\n        from shotgun_api3.lib import mockgun\n\n        # Try to access everything. If something is missing, it will raise an\n        # error.\n        mockgun.MockgunError\n        mockgun.generate_schema\n        mockgun.Shotgun\n\n\nclass TestValidateFilterSyntax(unittest.TestCase):\n    \"\"\"\n    Tests filter syntax support.\n    \"\"\"\n\n    def setUp(self):\n        \"\"\"\n        Creates test data.\n        \"\"\"\n        super().setUp()\n\n        self._mockgun = Mockgun(\n            \"https://test.shotgunstudio.com\", login=\"user\", password=\"1234\"\n        )\n\n        self._mockgun.create(\"Shot\", {\"code\": \"shot\"})\n\n    def test_filter_array_or_dict(self):\n        \"\"\"\n        Ensure that arrays and dictionaries are supported for filters.\n        \"\"\"\n        # This should not throw.\n        self._mockgun.find(\n            \"Shot\",\n            [\n                {\"filter_operator\": \"any\", \"filters\": [[\"code\", \"is\", \"shot\"]]},\n                [\"code\", \"is\", \"shot\"],\n            ],\n        )\n\n        # We can't have not dict/list values for filters however.\n        self.assertRaisesRegex(\n            ShotgunError,\n            \"Filters can only be lists or dictionaries, not int.\",\n            lambda: self._mockgun.find(\"Shot\", [1]),\n        )\n\n\nclass TestEntityFieldComparison(unittest.TestCase):\n    \"\"\"\n    Checks if entity fields comparison work.\n    \"\"\"\n\n    def setUp(self):\n        \"\"\"\n        Creates test data.\n        \"\"\"\n        self._mockgun = Mockgun(\n            \"https://test.shotgunstudio.com\", login=\"user\", password=\"1234\"\n        )\n\n        self._project_link = self._mockgun.create(\n            \"Project\", {\"name\": \"project\", \"archived\": False}\n        )\n\n        # This entity will ensure that a populated link field will be comparable.\n        self._mockgun.create(\n            \"PipelineConfiguration\",\n            {\n                \"code\": \"with_project\",\n                \"project\": self._project_link,\n            },\n        )\n\n        # This entity will ensure that an unpopulated link field will be comparable.\n        self._mockgun.create(\"PipelineConfiguration\", {\"code\": \"without_project\"})\n\n    def test_searching_for_none_entity_field(self):\n        \"\"\"\n        Ensures that comparison with None work.\n        \"\"\"\n\n        items = self._mockgun.find(\"PipelineConfiguration\", [[\"project\", \"is\", None]])\n        self.assertEqual(len(items), 1)\n\n        items = self._mockgun.find(\n            \"PipelineConfiguration\", [[\"project\", \"is_not\", None]]\n        )\n        self.assertEqual(len(items), 1)\n\n    def test_searching_for_initialized_entity_field(self):\n        \"\"\"\n        Ensures that comparison with an entity works.\n        \"\"\"\n        items = self._mockgun.find(\n            \"PipelineConfiguration\", [[\"project\", \"is\", self._project_link]]\n        )\n        self.assertEqual(len(items), 1)\n\n        items = self._mockgun.find(\n            \"PipelineConfiguration\", [[\"project\", \"is_not\", self._project_link]]\n        )\n        self.assertEqual(len(items), 1)\n\n    def test_find_entity_with_none_link(self):\n        \"\"\"\n        Make sure that we can search for sub entity fields on entities that have the field not set.\n        \"\"\"\n        # The pipeline configuration without_project doesn't have the project field set, so we're expecting\n        # it to not be returned here.\n        items = self._mockgun.find(\n            \"PipelineConfiguration\", [[\"project.Project.archived\", \"is\", False]]\n        )\n        self.assertEqual(len(items), 1)\n        self.assertEqual(items[0][\"id\"], self._project_link[\"id\"])\n\n\nclass TestTextFieldOperators(unittest.TestCase):\n    \"\"\"\n    Checks if text field comparison work.\n    \"\"\"\n\n    def setUp(self):\n        \"\"\"\n        Creates test data.\n        \"\"\"\n        self._mockgun = Mockgun(\n            \"https://test.shotgunstudio.com\", login=\"user\", password=\"1234\"\n        )\n        self._user1 = self._mockgun.create(\"HumanUser\", {\"login\": \"user\"})\n        self._user2 = self._mockgun.create(\"HumanUser\", {\"login\": None})\n\n    def test_operator_is(self):\n        \"\"\"\n        Ensure is operator work.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"is\", \"user\"]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_is_none(self):\n        \"\"\"\n        Ensure is operator work when used with None.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"is\", None]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user2[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_is_case_sensitivity(self):\n        \"\"\"\n        Ensure is operator is case insensitive.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"is\", \"USER\"]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_is_not(self):\n        \"\"\"\n        Ensure the is_not operator works.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"is_not\", \"user\"]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user2[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_is_not_none(self):\n        \"\"\"\n        Ensure the is_not operator works when used with None.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"is_not\", None]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_is_not_case_sensitivity(self):\n        \"\"\"\n        Ensure the is_not operator is case insensitive.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"is_not\", \"USER\"]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user2[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_in(self):\n        \"\"\"\n        Ensure the in operator works.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"in\", [\"user\"]]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_in_none(self):\n        \"\"\"\n        Ensure the in operator works with a list containing None.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"in\", [None]]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user2[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_in_case_sensitivity(self):\n        \"\"\"\n        Ensure the in operator is case insensitive.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"in\", [\"USER\"]]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_not_in(self):\n        \"\"\"\n        Ensure the not_in operator works.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"not_in\", [\"foo\"]]])\n        expected = [\n            {\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]},\n            {\"type\": \"HumanUser\", \"id\": self._user2[\"id\"]},\n        ]\n        self.assertEqual(expected, actual)\n\n    def test_operator_not_in_none(self):\n        \"\"\"\n        Ensure the not_not operator works with a list containing None.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"not_in\", [None]]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_not_in_case_sensitivity(self):\n        \"\"\"\n        Ensure the not_in operator is case insensitive.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"not_in\", [\"USER\"]]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user2[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_contains(self):\n        \"\"\"\n        Ensures the contains operator works.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"contains\", \"se\"]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_contains_case_sensitivity(self):\n        \"\"\"\n        Ensure the contains operator is case insensitive.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"contains\", \"SE\"]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_not_contains(self):\n        \"\"\"\n        Ensure the not_contains operator works.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"not_contains\", \"user\"]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user2[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_not_contains_case_sensitivity(self):\n        \"\"\"\n        Ensure the not_contains operator is case insensitive.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"not_contains\", \"USER\"]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user2[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_starts_with(self):\n        \"\"\"\n        Ensure the starts_with operator works.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"starts_with\", \"us\"]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_starts_with_case_sensitivity(self):\n        \"\"\"\n        Ensure the starts_with operator is case insensitive.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"starts_with\", \"US\"]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_ends_with(self):\n        \"\"\"\n        Ensure the ends_with operator works.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"ends_with\", \"er\"]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n    def test_operator_ends_with_case_sensitivity(self):\n        \"\"\"\n        Ensure the starts_with operator is case insensitive.\n        \"\"\"\n        actual = self._mockgun.find(\"HumanUser\", [[\"login\", \"ends_with\", \"ER\"]])\n        expected = [{\"type\": \"HumanUser\", \"id\": self._user1[\"id\"]}]\n        self.assertEqual(expected, actual)\n\n\nclass TestMultiEntityFieldComparison(unittest.TestCase):\n    \"\"\"\n    Ensures multi entity field comparison work.\n    \"\"\"\n\n    def setUp(self):\n        \"\"\"\n        Creates test data.\n        \"\"\"\n\n        self._mockgun = Mockgun(\n            \"https://test.shotgunstudio.com\", login=\"user\", password=\"1234\"\n        )\n\n        # Create two users to assign to the pipeline configurations.\n        self._user1 = self._mockgun.create(\"HumanUser\", {\"login\": \"user1\"})\n        self._user2 = self._mockgun.create(\"HumanUser\", {\"login\": \"user2\"})\n\n        # Create pipeline configurations that are assigned none, one or two users.\n        self._mockgun.create(\n            \"PipelineConfiguration\", {\"code\": \"with_user1\", \"users\": [self._user1]}\n        )\n\n        self._mockgun.create(\n            \"PipelineConfiguration\", {\"code\": \"with_user2\", \"users\": [self._user2]}\n        )\n\n        self._mockgun.create(\n            \"PipelineConfiguration\",\n            {\"code\": \"with_both\", \"users\": [self._user2, self._user1]},\n        )\n\n        self._mockgun.create(\n            \"PipelineConfiguration\", {\"code\": \"with_none\", \"users\": []}\n        )\n\n    def test_find_by_sub_entity_field(self):\n        \"\"\"\n        Ensures that queries on linked entity fields works.\n        \"\"\"\n        items = self._mockgun.find(\n            \"PipelineConfiguration\", [[\"users.HumanUser.login\", \"is\", \"user1\"]]\n        )\n        self.assertEqual(len(items), 2)\n\n        items = self._mockgun.find(\n            \"PipelineConfiguration\", [[\"users.HumanUser.login\", \"is\", \"user2\"]]\n        )\n        self.assertEqual(len(items), 2)\n\n        items = self._mockgun.find(\n            \"PipelineConfiguration\", [[\"users.HumanUser.login\", \"contains\", \"ser\"]]\n        )\n        self.assertEqual(len(items), 3)\n\n        # Lets get fancy a bit.\n        items = self._mockgun.find(\n            \"PipelineConfiguration\",\n            [\n                {\n                    \"filter_operator\": \"any\",\n                    \"filters\": [\n                        [\"users.HumanUser.login\", \"is\", \"user1\"],\n                        [\"users.HumanUser.login\", \"is\", \"user2\"],\n                    ],\n                }\n            ],\n        )\n        self.assertEqual(len(items), 3)\n\n        items = self._mockgun.find(\n            \"PipelineConfiguration\",\n            [\n                {\n                    \"filter_operator\": \"all\",\n                    \"filters\": [\n                        [\"users.HumanUser.login\", \"is\", \"user1\"],\n                        [\"users.HumanUser.login\", \"is\", \"user2\"],\n                    ],\n                }\n            ],\n        )\n        self.assertEqual(len(items), 1)\n\n    def test_find_with_none(self):\n        \"\"\"\n        Ensures comparison with multi-entity fields and None works.\n        \"\"\"\n        items = self._mockgun.find(\n            \"PipelineConfiguration\", [[\"users\", \"is\", None]], [\"users\"]\n        )\n        self.assertEqual(len(items), 1)\n        self.assertEqual(items[0][\"users\"], [])\n\n        items = self._mockgun.find(\n            \"PipelineConfiguration\", [[\"users\", \"is_not\", None]], [\"users\"]\n        )\n        self.assertEqual(len(items), 3)\n        for item in items:\n            self.assertTrue(len(item[\"users\"]) > 0)\n\n\nclass TestMultiEntityFieldUpdate(unittest.TestCase):\n    \"\"\"\n    Ensures multi entity field update modes work.\n    \"\"\"\n\n    def setUp(self):\n        \"\"\"\n        Creates test data.\n        \"\"\"\n\n        self._mockgun = Mockgun(\n            \"https://test.shotgunstudio.com\", login=\"user\", password=\"1234\"\n        )\n\n        # Create two versions to assign to the shot.\n        self._version1 = self._mockgun.create(\"Version\", {\"code\": \"version1\"})\n        self._version2 = self._mockgun.create(\"Version\", {\"code\": \"version2\"})\n        self._version3 = self._mockgun.create(\"Version\", {\"code\": \"version3\"})\n\n        # remove 'code' field for later comparisons\n        del self._version1[\"code\"]\n        del self._version2[\"code\"]\n        del self._version3[\"code\"]\n\n        # Create playlists\n        self._add_playlist = self._mockgun.create(\n            \"Playlist\",\n            {\"code\": \"playlist1\", \"versions\": [self._version1, self._version2]},\n        )\n        self._remove_playlist = self._mockgun.create(\n            \"Playlist\",\n            {\n                \"code\": \"playlist1\",\n                \"versions\": [self._version1, self._version2, self._version3],\n            },\n        )\n        self._set_playlist = self._mockgun.create(\n            \"Playlist\",\n            {\"code\": \"playlist1\", \"versions\": [self._version1, self._version2]},\n        )\n\n    def test_update_add(self):\n        \"\"\"\n        Ensures that \"add\" multi_entity_update_mode works.\n        \"\"\"\n        # Attempts to add _version2\n        # It already exists on the playlist and should not be duplicated\n        self._mockgun.update(\n            \"Playlist\",\n            self._add_playlist[\"id\"],\n            {\"versions\": [self._version2, self._version3]},\n            multi_entity_update_modes={\"versions\": \"add\"},\n        )\n\n        playlist = self._mockgun.find_one(\n            \"Playlist\", [[\"id\", \"is\", self._add_playlist[\"id\"]]], [\"versions\"]\n        )\n        self.assertEqual(\n            playlist[\"versions\"], [self._version1, self._version2, self._version3]\n        )\n\n    def test_update_remove(self):\n        \"\"\"\n        Ensures that \"remove\" multi_entity_update_mode works.\n        \"\"\"\n        self._mockgun.update(\n            \"Playlist\",\n            self._remove_playlist[\"id\"],\n            {\"versions\": [self._version2]},\n            multi_entity_update_modes={\"versions\": \"remove\"},\n        )\n\n        playlist = self._mockgun.find_one(\n            \"Playlist\", [[\"id\", \"is\", self._remove_playlist[\"id\"]]], [\"versions\"]\n        )\n        self.assertEqual(playlist[\"versions\"], [self._version1, self._version3])\n\n    def test_update_set(self):\n        \"\"\"\n        Ensures that \"set\" multi_entity_update_mode works.\n        \"\"\"\n        self._mockgun.update(\n            \"Playlist\",\n            self._set_playlist[\"id\"],\n            {\"versions\": [self._version2, self._version3]},\n            multi_entity_update_modes={\"versions\": \"set\"},\n        )\n\n        playlist = self._mockgun.find_one(\n            \"Playlist\", [[\"id\", \"is\", self._set_playlist[\"id\"]]], [\"versions\"]\n        )\n        self.assertEqual(playlist[\"versions\"], [self._version2, self._version3])\n\n    def test_batch_update(self):\n        self._mockgun.batch(\n            [\n                {\n                    \"request_type\": \"update\",\n                    \"entity_type\": \"Playlist\",\n                    \"entity_id\": self._set_playlist[\"id\"],\n                    \"data\": {\"versions\": [self._version1, self._version2]},\n                    \"multi_entity_update_modes\": {\"versions\": \"set\"},\n                }\n            ]\n        )\n        playlist = self._mockgun.find_one(\n            \"Playlist\", [[\"id\", \"is\", self._set_playlist[\"id\"]]], [\"versions\"]\n        )\n        self.assertEqual(playlist[\"versions\"], [self._version1, self._version2])\n\n\nclass TestFilterOperator(unittest.TestCase):\n    \"\"\"\n    Unit tests for the filter_operator filter syntax.\n    \"\"\"\n\n    def setUp(self):\n        \"\"\"\n        Creates tests data.\n        \"\"\"\n        super().setUp()\n\n        self._mockgun = Mockgun(\n            \"https://test.shotgunstudio.com\", login=\"user\", password=\"1234\"\n        )\n\n        self._prj1_link = self._mockgun.create(\"Project\", {\"name\": \"prj1\"})\n\n        self._prj2_link = self._mockgun.create(\"Project\", {\"name\": \"prj2\"})\n\n        self._shot1 = self._mockgun.create(\n            \"Shot\",\n            {\n                \"code\": \"shot1\",\n                \"project\": self._prj1_link,\n                \"description\": \"a\",\n                \"sg_cut_order\": 2,\n            },\n        )\n\n        self._shot2 = self._mockgun.create(\n            \"Shot\", {\"code\": \"shot2\", \"project\": self._prj1_link, \"sg_cut_order\": 1}\n        )\n\n        self._shot3 = self._mockgun.create(\n            \"Shot\", {\"code\": \"shot3\", \"project\": self._prj2_link, \"description\": \"b\"}\n        )\n\n        self._user1 = self._mockgun.create(\n            \"HumanUser\", {\"login\": \"user1\", \"password_strength\": 0.2}\n        )\n\n        self._user2 = self._mockgun.create(\n            \"HumanUser\", {\"login\": \"user2\", \"created_at\": datetime.datetime(2025, 1, 1)}\n        )\n\n    def test_simple_filter_operators(self):\n        \"\"\"\n        Tests a simple use of the filter_operator.\n        \"\"\"\n        shots = self._mockgun.find(\n            \"Shot\",\n            [\n                {\n                    \"filter_operator\": \"any\",\n                    \"filters\": [[\"code\", \"is\", \"shot1\"], [\"code\", \"is\", \"shot2\"]],\n                }\n            ],\n        )\n\n        self.assertEqual(len(shots), 2)\n\n        shots = self._mockgun.find(\n            \"Shot\",\n            [\n                {\n                    \"filter_operator\": \"all\",\n                    \"filters\": [[\"code\", \"is\", \"shot1\"], [\"code\", \"is\", \"shot2\"]],\n                }\n            ],\n        )\n\n        self.assertEqual(len(shots), 0)\n\n    def test_ordered_filter_operator(self):\n        \"\"\"\n        Test use of the order feature of filter_operator on supported data types.\n        \"\"\"\n        find_args = [\"Shot\", [], [\"code\"]]\n\n        # str field\n        shots = self._mockgun.find(\n            *find_args, order=[{\"field_name\": \"description\", \"direction\": \"asc\"}]\n        )\n        self.assertEqual([s[\"code\"] for s in shots], [\"shot2\", \"shot1\", \"shot3\"])\n\n        shots = self._mockgun.find(\n            *find_args, order=[{\"field_name\": \"description\", \"direction\": \"desc\"}]\n        )\n        self.assertEqual([s[\"code\"] for s in shots], [\"shot3\", \"shot1\", \"shot2\"])\n\n        # int field\n        shots = self._mockgun.find(\n            *find_args, order=[{\"field_name\": \"sg_cut_order\", \"direction\": \"asc\"}]\n        )\n        self.assertEqual([s[\"code\"] for s in shots], [\"shot3\", \"shot2\", \"shot1\"])\n\n        # float field\n        users = self._mockgun.find(\n            \"HumanUser\",\n            [],\n            [\"login\"],\n            order=[{\"field_name\": \"password_strength\", \"direction\": \"asc\"}],\n        )\n        self.assertEqual([u[\"login\"] for u in users], [\"user2\", \"user1\"])\n\n        # date_time field\n        users = self._mockgun.find(\n            \"HumanUser\",\n            [],\n            [\"login\"],\n            order=[{\"field_name\": \"created_at\", \"direction\": \"asc\"}],\n        )\n        self.assertEqual([u[\"login\"] for u in users], [\"user1\", \"user2\"])\n\n    def test_nested_filter_operators(self):\n        \"\"\"\n        Tests a the use of the filter_operator nested\n        inside the filter_operator.\n        \"\"\"\n        shots = self._mockgun.find(\n            \"Shot\",\n            [\n                {\n                    \"filter_operator\": \"any\",\n                    \"filters\": [\n                        {\n                            \"filter_operator\": \"all\",\n                            \"filters\": [\n                                [\"code\", \"is\", \"shot1\"],\n                                [\"project\", \"is\", self._prj1_link],\n                            ],\n                        },\n                        {\n                            \"filter_operator\": \"all\",\n                            \"filters\": [\n                                [\"code\", \"is\", \"shot3\"],\n                                [\"project\", \"is\", self._prj2_link],\n                            ],\n                        },\n                    ],\n                }\n            ],\n        )\n\n        self.assertEqual(len(shots), 2)\n\n    def test_invalid_operator(self):\n\n        self.assertRaisesRegex(\n            ShotgunError,\n            \"Unknown filter_operator type: bad\",\n            lambda: self._mockgun.find(\n                \"Shot\", [{\"filter_operator\": \"bad\", \"filters\": []}]\n            ),\n        )\n\n        self.assertRaisesRegex(\n            ShotgunError,\n            \"Bad filter operator, requires keys 'filter_operator' and 'filters',\",\n            lambda: self._mockgun.find(\"Shot\", [{}]),\n        )\n\n\nclass TestConfig(unittest.TestCase):\n    \"\"\"\n    Tests the shotgun._Config class\n    \"\"\"\n\n    def test_set_server_params_with_regular_url(self):\n        \"\"\"\n        Make sure it works with a normal URL.\n        \"\"\"\n        mockgun = Mockgun(\"https://server.shotgunstudio.com/\")\n        self.assertEqual(mockgun.config.scheme, \"https\")\n        self.assertEqual(mockgun.config.server, \"server.shotgunstudio.com\")\n        self.assertEqual(mockgun.config.api_path, \"/api3/json\")\n\n    def test_set_server_params_with_url_with_path(self):\n        \"\"\"\n        Make sure it works with a URL with a path\n        \"\"\"\n        mockgun = Mockgun(\"https://local/something/\")\n        self.assertEqual(mockgun.config.scheme, \"https\")\n        self.assertEqual(mockgun.config.server, \"local\")\n        self.assertEqual(mockgun.config.api_path, \"/something/api3/json\")\n\n\nif __name__ == \"__main__\":\n    unittest.main()\n"
  },
  {
    "path": "tests/test_proxy.py",
    "content": "#! /opt/local/bin/python\n\n# Copyright (c) 2019 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\nimport sys\nfrom . import base\nimport shotgun_api3 as api\n\n\nclass ServerConnectionTest(base.TestBase):\n    \"\"\"Tests for server connection\"\"\"\n\n    def setUp(self):\n        super().setUp()\n\n    def test_connection(self):\n        \"\"\"Tests server connects and returns nothing\"\"\"\n        result = self.sg.connect()\n        self.assertEqual(result, None)\n\n    def test_proxy_info(self):\n        \"\"\"check proxy value depending http_proxy setting in config\"\"\"\n        self.sg.connect()\n        if self.config.http_proxy:\n            sys.stderr.write(\"[WITH PROXY] \")\n            self.assertTrue(\n                isinstance(self.sg._connection.proxy_info, api.lib.httplib2.ProxyInfo)\n            )\n        else:\n            sys.stderr.write(\"[NO PROXY] \")\n            self.assertEqual(self.sg._connection.proxy_info, None)\n"
  },
  {
    "path": "tests/test_unit.py",
    "content": "#! /opt/local/bin/python\n\n# Copyright (c) 2019 Shotgun Software Inc.\n#\n# CONFIDENTIAL AND PROPRIETARY\n#\n# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n# Source Code License included in this distribution package. See LICENSE.\n# By accessing, using, copying or modifying this work you indicate your\n# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n# not expressly granted therein are reserved by Shotgun Software Inc.\n\nimport os\nimport ssl\nimport unittest\nfrom unittest import mock\nimport urllib.request\nimport urllib.error\n\nimport shotgun_api3 as api\nfrom shotgun_api3.lib.httplib2 import Http\n\n\nclass TestShotgunInit(unittest.TestCase):\n    \"\"\"Test case for Shotgun.__init__\"\"\"\n\n    def setUp(self):\n        self.server_path = \"http://server_path\"\n        self.script_name = \"script_name\"\n        self.api_key = \"api_key\"\n\n    # Proxy Server Tests\n    def test_http_proxy_server(self):\n        proxy_server = \"someserver.com\"\n        http_proxy = proxy_server\n        sg = api.Shotgun(\n            self.server_path,\n            self.script_name,\n            self.api_key,\n            http_proxy=http_proxy,\n            connect=False,\n        )\n        self.assertEqual(sg.config.proxy_server, proxy_server)\n        self.assertEqual(sg.config.proxy_port, 8080)\n        proxy_server = \"123.456.789.012\"\n        http_proxy = proxy_server\n        sg = api.Shotgun(\n            self.server_path,\n            self.script_name,\n            self.api_key,\n            http_proxy=http_proxy,\n            connect=False,\n        )\n        self.assertEqual(sg.config.proxy_server, proxy_server)\n        self.assertEqual(sg.config.proxy_port, 8080)\n\n    def test_http_proxy_server_and_port(self):\n        proxy_server = \"someserver.com\"\n        proxy_port = 1234\n        http_proxy = \"%s:%d\" % (proxy_server, proxy_port)\n        sg = api.Shotgun(\n            self.server_path,\n            self.script_name,\n            self.api_key,\n            http_proxy=http_proxy,\n            connect=False,\n        )\n        self.assertEqual(sg.config.proxy_server, proxy_server)\n        self.assertEqual(sg.config.proxy_port, proxy_port)\n        proxy_server = \"123.456.789.012\"\n        proxy_port = 1234\n        http_proxy = \"%s:%d\" % (proxy_server, proxy_port)\n        sg = api.Shotgun(\n            self.server_path,\n            self.script_name,\n            self.api_key,\n            http_proxy=http_proxy,\n            connect=False,\n        )\n        self.assertEqual(sg.config.proxy_server, proxy_server)\n        self.assertEqual(sg.config.proxy_port, proxy_port)\n\n    def test_http_proxy_server_and_port_with_authentication(self):\n        proxy_server = \"someserver.com\"\n        proxy_port = 1234\n        proxy_user = \"user\"\n        proxy_pass = \"password\"\n        http_proxy = \"%s:%s@%s:%d\" % (proxy_user, proxy_pass, proxy_server, proxy_port)\n        sg = api.Shotgun(\n            self.server_path,\n            self.script_name,\n            self.api_key,\n            http_proxy=http_proxy,\n            connect=False,\n        )\n        self.assertEqual(sg.config.proxy_server, proxy_server)\n        self.assertEqual(sg.config.proxy_port, proxy_port)\n        self.assertEqual(sg.config.proxy_user, proxy_user)\n        self.assertEqual(sg.config.proxy_pass, proxy_pass)\n        proxy_server = \"123.456.789.012\"\n        proxy_port = 1234\n        proxy_user = \"user\"\n        proxy_pass = \"password\"\n        http_proxy = \"%s:%s@%s:%d\" % (proxy_user, proxy_pass, proxy_server, proxy_port)\n        sg = api.Shotgun(\n            self.server_path,\n            self.script_name,\n            self.api_key,\n            http_proxy=http_proxy,\n            connect=False,\n        )\n        self.assertEqual(sg.config.proxy_server, proxy_server)\n        self.assertEqual(sg.config.proxy_port, proxy_port)\n        self.assertEqual(sg.config.proxy_user, proxy_user)\n        self.assertEqual(sg.config.proxy_pass, proxy_pass)\n\n    def test_http_proxy_with_at_in_password(self):\n        proxy_server = \"someserver.com\"\n        proxy_port = 1234\n        proxy_user = \"user\"\n        proxy_pass = \"p@ssword\"\n        http_proxy = \"%s:%s@%s:%d\" % (proxy_user, proxy_pass, proxy_server, proxy_port)\n        sg = api.Shotgun(\n            self.server_path,\n            self.script_name,\n            self.api_key,\n            http_proxy=http_proxy,\n            connect=False,\n        )\n        self.assertEqual(sg.config.proxy_server, proxy_server)\n        self.assertEqual(sg.config.proxy_port, proxy_port)\n        self.assertEqual(sg.config.proxy_user, proxy_user)\n        self.assertEqual(sg.config.proxy_pass, proxy_pass)\n\n    def test_malformatted_proxy_info(self):\n        conn_info = {\n            \"base_url\": self.server_path,\n            \"script_name\": self.script_name,\n            \"api_key\": self.api_key,\n            \"connect\": False,\n        }\n        conn_info[\"http_proxy\"] = \"http://someserver.com\"\n        self.assertRaises(ValueError, api.Shotgun, **conn_info)\n        conn_info[\"http_proxy\"] = \"user@someserver.com\"\n        self.assertRaises(ValueError, api.Shotgun, **conn_info)\n        conn_info[\"http_proxy\"] = \"someserver.com:1234:5678\"\n        self.assertRaises(ValueError, api.Shotgun, **conn_info)\n\n\nclass TestShotgunSummarize(unittest.TestCase):\n    \"\"\"Test case for _create_summary_request function and parameter\n    validation as it exists in Shotgun.summarize.\n\n    Does not require database connection or test data.\"\"\"\n\n    def setUp(self):\n        self.sg = api.Shotgun(\n            \"http://server_path\", \"script_name\", \"api_key\", connect=False\n        )\n\n    def test_filter_operator_none(self):\n        expected_logical_operator = \"and\"\n        filter_operator = None\n        self._assert_filter_operator(expected_logical_operator, filter_operator)\n\n    def _assert_filter_operator(self, expected_logical_operator, filter_operator):\n        result = self.get_call_rpc_params(None, {\"filter_operator\": filter_operator})\n        actual_logical_operator = result[\"filters\"][\"logical_operator\"]\n        self.assertEqual(expected_logical_operator, actual_logical_operator)\n\n    def test_filter_operator_all(self):\n        expected_logical_operator = \"and\"\n        filter_operator = \"all\"\n        self._assert_filter_operator(expected_logical_operator, filter_operator)\n\n    def test_filter_operator_or(self):\n        expected_logical_operator = \"or\"\n        filter_operator = \"or\"\n        self._assert_filter_operator(expected_logical_operator, filter_operator)\n\n    def test_filters(self):\n        path = \"path\"\n        relation = \"relation\"\n        value = \"value\"\n        expected_condition = {\"path\": path, \"relation\": relation, \"values\": [value]}\n        args = [\"\", [[path, relation, value]], None]\n        result = self.get_call_rpc_params(args, {})\n        actual_condition = result[\"filters\"][\"conditions\"][0]\n        self.assertEqual(expected_condition, actual_condition)\n\n    @mock.patch(\"shotgun_api3.Shotgun._call_rpc\")\n    def get_call_rpc_params(self, args, kws, call_rpc):\n        \"\"\"Return params sent to _call_rpc from summarize.\"\"\"\n        if not args:\n            args = [None, [], None]\n        self.sg.summarize(*args, **kws)\n        return call_rpc.call_args[0][1]\n\n    def test_grouping(self):\n        result = self.get_call_rpc_params(None, {})\n        self.assertFalse(\"grouping\" in result)\n        grouping = [\"something\"]\n        kws = {\"grouping\": grouping}\n        result = self.get_call_rpc_params(None, kws)\n        self.assertEqual(grouping, result[\"grouping\"])\n\n    def test_grouping_type(self):\n        \"\"\"test_grouping_type tests that grouping parameter is a list or None\"\"\"\n        self.assertRaises(\n            ValueError, self.sg.summarize, \"\", [], [], grouping=\"Not a list\"\n        )\n\n\nclass TestShotgunBatch(unittest.TestCase):\n    def setUp(self):\n        self.sg = api.Shotgun(\n            \"http://server_path\", \"script_name\", \"api_key\", connect=False\n        )\n\n    def test_missing_required_key(self):\n        req = {}\n        # requires keys request_type and entity_type\n        self.assertRaises(api.ShotgunError, self.sg.batch, [req])\n        req[\"entity_type\"] = \"Entity\"\n        self.assertRaises(api.ShotgunError, self.sg.batch, [req])\n        req[\"request_type\"] = \"not_real_type\"\n        self.assertRaises(api.ShotgunError, self.sg.batch, [req])\n        # create requires data key\n        req[\"request_type\"] = \"create\"\n        self.assertRaises(api.ShotgunError, self.sg.batch, [req])\n        # update requires entity_id and data\n        req[\"request_type\"] = \"update\"\n        req[\"data\"] = {}\n        self.assertRaises(api.ShotgunError, self.sg.batch, [req])\n        del req[\"data\"]\n        req[\"entity_id\"] = 2334\n        self.assertRaises(api.ShotgunError, self.sg.batch, [req])\n        # delete requires entity_id\n        req[\"request_type\"] = \"delete\"\n        del req[\"entity_id\"]\n        self.assertRaises(api.ShotgunError, self.sg.batch, [req])\n\n\nclass TestServerCapabilities(unittest.TestCase):\n    def test_no_server_version(self):\n        self.assertRaises(api.ShotgunError, api.shotgun.ServerCapabilities, \"host\", {})\n\n    def test_bad_version(self):\n        \"\"\"test_bad_meta tests passing bad meta data type\"\"\"\n        self.assertRaises(\n            api.ShotgunError,\n            api.shotgun.ServerCapabilities,\n            \"host\",\n            {\"version\": (0, 0, 0)},\n        )\n\n    def test_dev_version(self):\n        serverCapabilities = api.shotgun.ServerCapabilities(\n            \"host\", {\"version\": (3, 4, 0, \"Dev\")}\n        )\n        self.assertEqual(serverCapabilities.version, (3, 4, 0))\n        self.assertTrue(serverCapabilities.is_dev)\n\n        serverCapabilities = api.shotgun.ServerCapabilities(\n            \"host\", {\"version\": (2, 4, 0)}\n        )\n        self.assertEqual(serverCapabilities.version, (2, 4, 0))\n        self.assertFalse(serverCapabilities.is_dev)\n\n\nclass TestClientCapabilities(unittest.TestCase):\n\n    def test_darwin(self):\n        self.assert_platform(\"Darwin\", \"mac\")\n\n    def test_windows(self):\n        self.assert_platform(\"win32\", \"windows\")\n\n    def test_linux(self):\n        self.assert_platform(\"Linux\", \"linux\")\n\n    def assert_platform(self, sys_ret_val, expected):\n        platform = api.shotgun.sys.platform\n        try:\n            api.shotgun.sys.platform = sys_ret_val\n            expected_local_path_field = \"local_path_%s\" % expected\n\n            client_caps = api.shotgun.ClientCapabilities()\n            self.assertEqual(client_caps.platform, expected)\n            self.assertEqual(client_caps.local_path_field, expected_local_path_field)\n        finally:\n            api.shotgun.sys.platform = platform\n\n    def test_no_platform(self):\n        platform = api.shotgun.sys.platform\n        try:\n            api.shotgun.sys.platform = \"unsupported\"\n            client_caps = api.shotgun.ClientCapabilities()\n            self.assertEqual(client_caps.platform, None)\n            self.assertEqual(client_caps.local_path_field, None)\n        finally:\n            api.shotgun.sys.platform = platform\n\n    @mock.patch(\"shotgun_api3.shotgun.sys\")\n    def test_py_version(self, mock_sys):\n        major = 2\n        minor = 7\n        micro = 3\n        mock_sys.version_info = (major, minor, micro, \"final\", 0)\n        expected_py_version = \"%s.%s\" % (major, minor)\n        client_caps = api.shotgun.ClientCapabilities()\n        self.assertEqual(client_caps.py_version, expected_py_version)\n\n\nclass TestFilters(unittest.TestCase):\n    maxDiff = None\n\n    def test_empty(self):\n        expected = {\"logical_operator\": \"and\", \"conditions\": []}\n\n        result = api.shotgun._translate_filters([], None)\n        self.assertEqual(result, expected)\n\n    def test_simple(self):\n        filters = [[\"code\", \"is\", \"test\"], [\"sg_status_list\", \"is\", \"ip\"]]\n\n        expected = {\n            \"logical_operator\": \"or\",\n            \"conditions\": [\n                {\"path\": \"code\", \"relation\": \"is\", \"values\": [\"test\"]},\n                {\"path\": \"sg_status_list\", \"relation\": \"is\", \"values\": [\"ip\"]},\n            ],\n        }\n\n        result = api.shotgun._translate_filters(filters, \"any\")\n        self.assertEqual(result, expected)\n\n    # Test both styles of passing arrays\n    def test_arrays(self):\n        expected = {\n            \"logical_operator\": \"and\",\n            \"conditions\": [\n                {\n                    \"path\": \"code\",\n                    \"relation\": \"in\",\n                    \"values\": [\"test1\", \"test2\", \"test3\"],\n                }\n            ],\n        }\n\n        filters = [[\"code\", \"in\", \"test1\", \"test2\", \"test3\"]]\n\n        result = api.shotgun._translate_filters(filters, \"all\")\n        self.assertEqual(result, expected)\n\n        filters = [[\"code\", \"in\", [\"test1\", \"test2\", \"test3\"]]]\n\n        result = api.shotgun._translate_filters(filters, \"all\")\n        self.assertEqual(result, expected)\n\n    def test_nested(self):\n        filters = [\n            [\"code\", \"in\", \"test\"],\n            {\n                \"filter_operator\": \"any\",\n                \"filters\": [\n                    [\"sg_status_list\", \"is\", \"ip\"],\n                    [\"sg_status_list\", \"is\", \"fin\"],\n                    {\n                        \"filter_operator\": \"all\",\n                        \"filters\": [\n                            [\"sg_status_list\", \"is\", \"hld\"],\n                            [\"assets\", \"is\", {\"type\": \"Asset\", \"id\": 9}],\n                        ],\n                    },\n                ],\n            },\n        ]\n\n        expected = {\n            \"logical_operator\": \"and\",\n            \"conditions\": [\n                {\"path\": \"code\", \"relation\": \"in\", \"values\": [\"test\"]},\n                {\n                    \"logical_operator\": \"or\",\n                    \"conditions\": [\n                        {\"path\": \"sg_status_list\", \"relation\": \"is\", \"values\": [\"ip\"]},\n                        {\"path\": \"sg_status_list\", \"relation\": \"is\", \"values\": [\"fin\"]},\n                        {\n                            \"logical_operator\": \"and\",\n                            \"conditions\": [\n                                {\n                                    \"path\": \"sg_status_list\",\n                                    \"relation\": \"is\",\n                                    \"values\": [\"hld\"],\n                                },\n                                {\n                                    \"path\": \"assets\",\n                                    \"relation\": \"is\",\n                                    \"values\": [{\"type\": \"Asset\", \"id\": 9}],\n                                },\n                            ],\n                        },\n                    ],\n                },\n            ],\n        }\n\n        result = api.shotgun._translate_filters(filters, \"all\")\n        self.assertEqual(result, expected)\n\n    def test_invalid(self):\n        self.assertRaises(api.ShotgunError, api.shotgun._translate_filters, [], \"bogus\")\n        self.assertRaises(\n            api.ShotgunError, api.shotgun._translate_filters, [\"bogus\"], \"all\"\n        )\n\n        filters = [{\"filter_operator\": \"bogus\", \"filters\": []}]\n\n        self.assertRaises(\n            api.ShotgunError, api.shotgun._translate_filters, filters, \"all\"\n        )\n\n        filters = [{\"filters\": []}]\n\n        self.assertRaises(\n            api.ShotgunError, api.shotgun._translate_filters, filters, \"all\"\n        )\n\n        filters = [{\"filter_operator\": \"all\", \"filters\": {\"bogus\": \"bogus\"}}]\n\n        self.assertRaises(\n            api.ShotgunError, api.shotgun._translate_filters, filters, \"all\"\n        )\n\n    @mock.patch.dict(os.environ, {\"SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION\": \"1\"})\n    def test_related_object(self):\n        filters = [\n            [\n                \"project\",\n                \"is\",\n                {\n                    \"foo\": \"foo\",\n                    \"bar\": \"bar\",\n                    \"id\": 999,\n                    \"baz\": \"baz\",\n                    \"type\": \"Anything\",\n                },\n            ],\n        ]\n        expected = {\n            \"logical_operator\": \"and\",\n            \"conditions\": [\n                {\n                    \"path\": \"project\",\n                    \"relation\": \"is\",\n                    \"values\": [\n                        {\n                            \"foo\": \"foo\",\n                            \"bar\": \"bar\",\n                            \"baz\": \"baz\",\n                            \"id\": 999,\n                            \"type\": \"Anything\",\n                        }\n                    ],\n                }\n            ],\n        }\n        api.Shotgun(\"http://server_path\", \"script_name\", \"api_key\", connect=False)\n        result = api.shotgun._translate_filters(filters, \"all\")\n        self.assertEqual(result, expected)\n\n    @mock.patch(\"shotgun_api3.shotgun.SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION\", False)\n    def test_related_object_entity_optimization_is(self):\n        filters = [\n            [\n                \"project\",\n                \"is\",\n                {\n                    \"foo\": \"foo\",\n                    \"bar\": \"bar\",\n                    \"id\": 999,\n                    \"baz\": \"baz\",\n                    \"type\": \"Anything\",\n                },\n            ],\n        ]\n        expected = {\n            \"logical_operator\": \"and\",\n            \"conditions\": [\n                {\n                    \"path\": \"project\",\n                    \"relation\": \"is\",\n                    \"values\": [\n                        {\n                            \"id\": 999,\n                            \"type\": \"Anything\",\n                        }\n                    ],\n                }\n            ],\n        }\n        api.Shotgun(\"http://server_path\", \"script_name\", \"api_key\", connect=False)\n        result = api.shotgun._translate_filters(filters, \"all\")\n        self.assertEqual(result, expected)\n\n        # Now test a non-related object. The expected result should not be optimized.\n        filters = [\n            [\n                \"something\",\n                \"is\",\n                {\"foo\": \"foo\", \"bar\": \"bar\"},\n            ],\n        ]\n        expected = {\n            \"logical_operator\": \"and\",\n            \"conditions\": [\n                {\n                    \"path\": \"something\",\n                    \"relation\": \"is\",\n                    \"values\": [{\"bar\": \"bar\", \"foo\": \"foo\"}],\n                }\n            ],\n        }\n        api.Shotgun(\"http://server_path\", \"script_name\", \"api_key\", connect=False)\n        result = api.shotgun._translate_filters(filters, \"all\")\n        self.assertEqual(result, expected)\n\n    @mock.patch(\"shotgun_api3.shotgun.SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION\", False)\n    def test_related_object_entity_optimization_in(self):\n        filters = [\n            [\n                \"project\",\n                \"in\",\n                [\n                    {\n                        \"foo1\": \"foo1\",\n                        \"bar1\": \"bar1\",\n                        \"id\": 999,\n                        \"baz1\": \"baz1\",\n                        \"type\": \"Anything\",\n                    },\n                    {\n                        \"foo2\": \"foo2\",\n                        \"bar2\": \"bar2\",\n                        \"id\": 998,\n                        \"baz2\": \"baz2\",\n                        \"type\": \"Anything\",\n                    },\n                    {\"foo3\": \"foo3\", \"bar3\": \"bar3\"},\n                ],\n            ],\n        ]\n        expected = {\n            \"logical_operator\": \"and\",\n            \"conditions\": [\n                {\n                    \"path\": \"project\",\n                    \"relation\": \"in\",\n                    \"values\": [\n                        {\n                            \"id\": 999,\n                            \"type\": \"Anything\",\n                        },\n                        {\n                            \"id\": 998,\n                            \"type\": \"Anything\",\n                        },\n                        {\n                            \"foo3\": \"foo3\",\n                            \"bar3\": \"bar3\",\n                        },\n                    ],\n                }\n            ],\n        }\n        api.Shotgun(\"http://server_path\", \"script_name\", \"api_key\", connect=False)\n        result = api.shotgun._translate_filters(filters, \"all\")\n        self.assertEqual(result, expected)\n\n    def test_related_object_update_entity(self):\n        entity_type = \"Anything\"\n        entity_id = 999\n        multi_entity_update_modes = {\"link\": \"set\", \"name\": \"set\"}\n        data = {\n            \"name\": \"test\",\n            \"link\": {\n                \"name\": \"test\",\n                \"url\": \"http://test.com\",\n            },\n        }\n        expected = {\n            \"id\": 999,\n            \"type\": \"Anything\",\n            \"fields\": [\n                {\n                    \"field_name\": \"name\",\n                    \"value\": \"test\",\n                    \"multi_entity_update_mode\": \"set\",\n                },\n                {\n                    \"field_name\": \"link\",\n                    \"value\": {\n                        \"name\": \"test\",\n                        \"url\": \"http://test.com\",\n                    },\n                    \"multi_entity_update_mode\": \"set\",\n                },\n            ],\n        }\n        sg = api.Shotgun(\"http://server_path\", \"script_name\", \"api_key\", connect=False)\n        result = sg._translate_update_params(\n            entity_type, entity_id, data, multi_entity_update_modes\n        )\n        self.assertEqual(result, expected)\n\n    @mock.patch(\"shotgun_api3.shotgun.SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION\", False)\n    def test_related_object_update_optimization_entity(self):\n        entity_type = \"Anything\"\n        entity_id = 999\n        multi_entity_update_modes = {\"project\": \"set\", \"link\": \"set\", \"name\": \"set\"}\n        data = {\n            \"name\": \"test\",\n            \"link\": {\n                \"name\": \"test\",\n                \"url\": \"http://test.com\",\n            },\n            \"project\": {\n                \"foo1\": \"foo1\",\n                \"bar1\": \"bar1\",\n                \"id\": 888,\n                \"baz1\": \"baz1\",\n                \"type\": \"Project\",\n            },\n        }\n        expected = {\n            \"id\": 999,\n            \"type\": \"Anything\",\n            \"fields\": [\n                {\n                    \"field_name\": \"name\",\n                    \"value\": \"test\",\n                    \"multi_entity_update_mode\": \"set\",\n                },\n                {\n                    \"field_name\": \"link\",\n                    \"value\": {\n                        \"name\": \"test\",\n                        \"url\": \"http://test.com\",\n                    },\n                    \"multi_entity_update_mode\": \"set\",\n                },\n                {\n                    \"field_name\": \"project\",\n                    \"multi_entity_update_mode\": \"set\",\n                    \"value\": {\n                        # Entity is optimized with type/id fields.\n                        \"id\": 888,\n                        \"type\": \"Project\",\n                    },\n                },\n            ],\n        }\n        sg = api.Shotgun(\"http://server_path\", \"script_name\", \"api_key\", connect=False)\n        result = sg._translate_update_params(\n            entity_type, entity_id, data, multi_entity_update_modes\n        )\n        self.assertEqual(result, expected)\n\n    @mock.patch(\"shotgun_api3.shotgun.SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION\", False)\n    def test_related_object_update_optimization_entity_multi(self):\n        entity_type = \"Asset\"\n        entity_id = 6626\n        data = {\n            \"sg_status_list\": \"ip\",\n            \"project\": {\"id\": 70, \"type\": \"Project\", \"name\": \"important name 70\"},\n            \"sg_vvv\": [\n                {\"id\": 6440, \"type\": \"Asset\"},\n                {\"id\": 6441, \"type\": \"Asset\", \"custom_name\": \"disposable name 6441\"},\n                {\n                    # To be kept\n                    \"id\": 6442,\n                    \"type\": \"Asset\",\n                    \"url\": \"http://test.com/asset/6442\",\n                    # to be removed\n                    \"custom_name\": \"disposable name 1\",\n                    \"custom_name2\": \"disposable name 2\",\n                    \"custom_name3\": \"disposable name 3\",\n                    \"custom_name4\": \"disposable name 4\",\n                },\n                {\n                    \"sg_nested\": {\n                        \"level1\": {\n                            \"level2\": {\"id\": 123, \"type\": \"Entity\", \"foo\": \"bar\"}\n                        }\n                    }\n                },\n            ],\n            \"sg_class\": {\n                # To be kept\n                \"id\": 1,\n                \"type\": \"CustomEntity53\",\n                \"url\": \"http://test.com\",\n                \"name\": \"important class name\",\n                \"local_path\": \"/some/local/path\",\n                # to be removed\n                \"custom_name\": \"disposable name 1\",\n                \"custom_name2\": \"disposable name 2\",\n                \"custom_name3\": \"disposable name 3\",\n                \"custom_name4\": \"disposable name 4\",\n            },\n        }\n        expected = {\n            \"type\": \"Asset\",\n            \"id\": 6626,\n            \"fields\": [\n                {\"field_name\": \"sg_status_list\", \"value\": \"ip\"},\n                {\n                    \"field_name\": \"project\",\n                    \"value\": {\n                        \"type\": \"Project\",\n                        \"id\": 70,\n                        \"name\": \"important name 70\",\n                    },\n                },\n                {\n                    \"field_name\": \"sg_vvv\",\n                    \"value\": [\n                        {\"id\": 6440, \"type\": \"Asset\"},\n                        {\"id\": 6441, \"type\": \"Asset\"},\n                        {\n                            \"id\": 6442,\n                            \"type\": \"Asset\",\n                            \"url\": \"http://test.com/asset/6442\",\n                        },\n                        {\n                            \"sg_nested\": {\n                                \"level1\": {\n                                    \"level2\": {\n                                        \"id\": 123,\n                                        \"type\": \"Entity\",\n                                        \"foo\": \"bar\",\n                                    }\n                                }\n                            }\n                        },\n                    ],\n                },\n                {\n                    \"field_name\": \"sg_class\",\n                    \"value\": {\n                        \"type\": \"CustomEntity53\",\n                        \"id\": 1,\n                        \"name\": \"important class name\",\n                        \"url\": \"http://test.com\",\n                        \"local_path\": \"/some/local/path\",\n                    },\n                },\n            ],\n        }\n        sg = api.Shotgun(\"http://server_path\", \"script_name\", \"api_key\", connect=False)\n        result = sg._translate_update_params(entity_type, entity_id, data, None)\n        self.assertEqual(result, expected)\n\n\nclass TestCerts(unittest.TestCase):\n    # A dummy bad url provided by Amazon\n    bad_url = \"https://untrusted-root.badssl.com/\"\n    # A list of Amazon cert URLS, taken from here:\n    # https://aws.amazon.com/blogs/security/how-to-prepare-for-aws-move-to-its-own-certificate-authority/\n    test_urls = [\n        \"https://good.sca1a.amazontrust.com\",\n        \"https://good.sca2a.amazontrust.com\",\n        \"https://good.sca3a.amazontrust.com\",\n        \"https://good.sca4a.amazontrust.com\",\n        \"https://good.sca0a.amazontrust.com\",\n    ]\n\n    def setUp(self):\n        self.sg = api.Shotgun(\n            \"http://server_path\", \"script_name\", \"api_key\", connect=False\n        )\n\n        # Get the location of the certs file\n        self.certs = self.sg._get_certs_file(None)\n\n    def _check_url_with_sg_api_httplib2(self, url, certs):\n        \"\"\"\n        Given a url and the certs file, it will do a simple\n        request and return the result.\n        \"\"\"\n        http = Http(ca_certs=certs)\n        return http.request(url)\n\n    def _check_url_with_urllib(self, url):\n        \"\"\"\n        Given a url it will perform a simple request and return a result.\n        \"\"\"\n        # create a request using the opener generated by the PTR API.\n        # The `_build_opener` method internally should use the correct certs.\n        opener = self.sg._build_opener(urllib.request.HTTPHandler)\n        request = urllib.request.Request(url)\n        return opener.open(request)\n\n    def test_found_correct_cert(self):\n        \"\"\"\n        Checks that the cert file the API is finding,\n        (when a cert path isn't passed and the SHOTGUN_API_CACERTS\n        isn't set), is the one bundled with this API\n        \"\"\"\n        # Get the path to the cert file we expect the Shotgun API to find\n        cert_path = os.path.normpath(\n            # Get the path relative to where we picked up the API and not relative\n            # to file on disk. On CI we pip install the API to run the tests\n            # so we have to pick the location from the installed copy.\n            # Call dirname to remove from __init__.py\n            os.path.join(os.path.dirname(api.__file__), \"lib\", \"certifi\", \"cacert.pem\")\n        )\n        # Now ensure that the path the PTR API has found is correct.\n        self.assertEqual(cert_path, self.certs)\n        self.assertTrue(os.path.isfile(self.certs))\n\n    def test_httplib(self):\n        \"\"\"\n        Checks that we can access the amazon urls using our bundled\n        certificate with httplib.\n        \"\"\"\n        # First check that we get an error when trying to connect to a known dummy bad URL\n        self.assertRaises(\n            (ssl.SSLError, ssl.CertificateError),\n            self._check_url_with_sg_api_httplib2,\n            self.bad_url,\n            self.certs,\n        )\n\n        # Now check that the good urls connect properly using the certs\n        for url in self.test_urls:\n            response, message = self._check_url_with_sg_api_httplib2(url, self.certs)\n            self.assertEqual(response[\"status\"], \"200\")\n\n    def test_urlib(self):\n        \"\"\"\n        Checks that we can access the amazon urls using our bundled\n        certificate with urllib.\n        \"\"\"\n        # First check that we get an error when trying to connect to a known dummy bad URL\n        self.assertRaises(\n            urllib.error.URLError, self._check_url_with_urllib, self.bad_url\n        )\n\n        # Now check that the good urls connect properly using the certs\n        for url in self.test_urls:\n            response = self._check_url_with_urllib(url)\n            assert response is not None\n\n\nif __name__ == \"__main__\":\n    unittest.main()\n"
  },
  {
    "path": "update_httplib2.py",
    "content": "#!/usr/bin/env python3\n\n\"\"\"\nUpdates the httplib2 module.\n\nRun as \"./upgrade_httplib2.py vX.Y.Z\" to get a specific release from github.\n\"\"\"\n\nimport pathlib\nimport tempfile\nimport shutil\nimport subprocess\nimport sys\n\n\nclass Utilities:\n    def download_archive(self, file_path, file_name):\n        \"\"\"Download the archive from github.\"\"\"\n        print(f\"Downloading {file_name}\")\n        subprocess.check_output(\n            [\n                \"curl\",\n                \"-L\",\n                f\"https://github.com/httplib2/httplib2/archive/{file_name}\",\n                \"-o\",\n                file_path,\n            ]\n        )\n\n    def unzip_archive(self, file_path, file_name, temp_dir):\n        \"\"\"Unzip in a temp dir.\"\"\"\n        print(f\"Unzipping {file_name}\")\n        subprocess.check_output([\"unzip\", str(file_path), \"-d\", str(temp_dir)])\n\n    def remove_folder(self, path):\n        \"\"\"Remove a folder recursively.\"\"\"\n        print(f\"Removing the folder {path}\")\n        shutil.rmtree(path, ignore_errors=True)\n\n    def git_remove(self, target):\n        print(f\"Removing {target} in git.\")\n        try:\n            subprocess.check_output(\n                [\n                    \"git\",\n                    \"rm\",\n                    \"-rf\",\n                ]\n                + target\n            )\n        except Exception as e:\n            pass\n\n    def copy_folder(self, source, target):\n        \"\"\"Copy a folder recursively.\"\"\"\n        shutil.copytree(source, target)\n\n    def sanitize_file(self, file_path):\n        \"\"\"Normalize file imports and remove unnecessary strings.\"\"\"\n        with open(file_path, \"r\") as f:\n            contents = f.read()\n\n        contents = contents.replace(\"from httplib2.\", \"from .\")\n        contents = contents.replace(\"from httplib2\", \"from .\")\n        contents = contents.replace(\n            \"import pyparsing as pp\", \"from .. import pyparsing as pp\"\n        )\n\n        with open(file_path, \"w\") as f:\n            f.write(contents)\n\n\ndef main(temp_path, repo_root, version):\n    # Paths and file names\n    httplib2_dir = repo_root / \"shotgun_api3\" / \"lib\" / \"httplib2\"\n    file_name = f\"{version}.zip\"\n    file_path = temp_path / file_name\n\n    utilities = Utilities()\n\n    # Downloads the archive from github\n    utilities.download_archive(file_path, file_name)\n\n    # Unzip in a temp dir\n    unzipped_folder = temp_path / \"unzipped\"\n    unzipped_folder.mkdir()\n    utilities.unzip_archive(file_path, file_name, unzipped_folder)\n\n    # Removes the previous version of httplib2\n    utilities.git_remove([str(httplib2_dir)])\n    utilities.remove_folder(httplib2_dir)\n\n    # Copies a new version into place.\n    print(\"Copying new version of httplib2\")\n    root_folder = unzipped_folder / f\"httplib2-{version[1:]}\"\n    utilities.copy_folder(str(root_folder / \"python3\" / \"httplib2\"), httplib2_dir)\n    utilities.remove_folder(f\"{httplib2_dir}/test\")\n\n    # Patches the httplib2 imports so they are relative instead of absolute.\n    print(\"Patching imports\")\n    for python_file in httplib2_dir.rglob(\"*.py\"):\n        utilities.sanitize_file(python_file)\n\n    # Adding files to the git repo.\n    print(\"Adding to git\")\n    subprocess.check_output([\"git\", \"add\", str(httplib2_dir)])  # nosec B607\n\n\nif __name__ == \"__main__\":\n    try:\n        temp_path = pathlib.Path(tempfile.mkdtemp())\n        main(temp_path, pathlib.Path(__file__).parent, sys.argv[1])\n    finally:\n        shutil.rmtree(temp_path)\n"
  }
]